Giter Site home page Giter Site logo

hedilict / candi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dealii/candi

0.0 1.0 0.0 765 KB

candi - (Compile & Install) - Downloads, configures, builds and installs deal.II

License: GNU Lesser General Public License v3.0

Shell 100.00%

candi's Introduction

candi (Compile & Install)

The candi.sh shell script downloads, configures, builds, and installs deal.II with common dependencies on linux-based systems.

Quickstart

The following commands download the current stable version of the installer and then install the latest deal.II release and common dependencies:

  git clone https://github.com/dealii/candi.git
  cd candi
  ./candi.sh

Follow the instructions on the screen (you can abort the process by pressing < CTRL > + C)

Examples

Install deal.II on RHEL 7, CentOS 7 or Fedora:

  module load mpi/openmpi-`uname -i`
  ./candi.sh

Install deal.II on Ubuntu (16.04), 18.04, 20.xx:

  ./candi.sh

Install deal.II on macOS (experimental):

  ./candi.sh

Install deal.II on Windows 10 (1709):

Since the Creators Update in fall 2017 (Windows 10 (1709)) the Windows Subsystem for Linux (WSL) is an official part.

For a detailed instruction how to install WSL, the new WSL 2 and a recent Ubuntu distribution on Windows 10 you can follow the Microsoft Documentation.

Within the Ubuntu terminal application, upgrade Ubuntu first, then clone this repository and run candi

  sudo apt-get update
  sudo apt-get upgrade
  git clone https://github.com/dealii/candi.git
  cd candi
  ./candi.sh

Install deal.II on a generic Linux system or cluster:

  ./candi.sh --platform=./deal.II-toolchain/platforms/supported/linux_cluster.platform

Note that you probably also want to change the prefix path, or the path to BLAS and LAPACK in the configuration file (see documentation below).

Install deal.II on a system without pre-installed git:

  wget https://github.com/dealii/candi/archive/master.tar.gz
  tar -xzf master.tar.gz
  cd candi-master
  ./candi.sh

Note that in this case you will need to activate the installation of git by uncommenting the line #PACKAGES="${PACKAGES} once:git" in candi.cfg.

Advanced Configuration

Command line options

Help: [-h], [--help]

You can get a list of all command line options by running

  ./candi.sh -h
  ./candi.sh --help

You can combine the command line options given below.

Prefix path: [-p <path>], [-p=<path>], [--prefix=<path>]

  ./candi.sh -p "/path/to/install/dir"
  ./candi.sh -p="/path/to/install/dir"
  ./candi.sh --prefix="/path/to/install/dir"

Multiple build processes: [-j<N>], [-j <N>], [--jobs=<N>]

  ./candi.sh -j<N>
  ./candi.sh -j <N>
  ./candi.sh --jobs=<N>
  • Example: to use 2 build processes type ./candi.sh -j 2.
  • Be careful with this option! You need to have enough system memory (e.g. at least 8GB for 2 or more processes).

Specific platform: [-pf=<platform>], [--platform=<platform>]

  ./candi.sh -pf=./deal.II-toolchain/platforms/...
  ./candi.sh --platform=./deal.II-toolchain/platforms/...

If your platform is not detected automatically you can specify it with this option manually. As shown above, this option is used to install deal.II via candi on linux clusters, for example. For a complete list of supported platforms see deal.II-toolchain/platforms.

User interaction: [-y], [--yes], [--assume-yes]

  ./candi.sh -y
  ./candi.sh --yes
  ./candi.sh --assume-yes

With this option you skip the user interaction. This might be useful if you submit the installation to the queueing system of a cluster.

Configuration file options

If you want to change the set of packages to be installed, you can enable or disable a package in the configuration file candi.cfg. This file is a simple text file and can be changed with any text editor.

Currently, we provide the packages

  • trilinos
  • petsc, slepc
  • superlu_dist (to be used with trilinos)
  • p4est
  • hdf5
  • opencascade

and others. For a complete list see deal.II-toolchain/packages.

There are several options within the configuration file, for example:

  • Remove existing build directories to use always a fresh setup
  CLEAN_BUILD={ON|OFF}
  • Enable native compiler optimizations like -march=native
  NATIVE_OPTIMIZATIONS={ON|OFF}
  • Enable the build of the deal.II examples
  BUILD_EXAMPLES={ON|OFF}

and more.

Furthermore you can specify the install directory and other internal directories, where the source and build files are stored:

  • The DOWNLOAD_PATH folder (can be safely removed after installation)
  • The UNPACK_PATH folder of the downloaded packages (can be safely removed after installation)
  • The BUILD_PATH folder (can be safely removed after installation)
  • The INSTALL_PATH destination folder

Single package installation mode

If you prefer to install only a single package, you can do so by

  ./candi.sh --packages="dealii"

for instance, or a set of packages by

  ./candi.sh --packages="opencascade petsc"

Developer mode

Our installer provides a software developer mode by setting DEVELOPER_MODE=ON within candi.cfg.

More precisely, the developer mode skips the package fetch and unpack, everything else (package configuration, building and installation) is done as before.

Note that you need to have a previous run of candi and you must not remove the UNPACK_PATH directory. Then you can modify source files in UNPACK_PATH of a package and run candi again.

candi's People

Contributors

bangerth avatar curtcorum avatar drwells avatar fvanmaele avatar gassmoeller avatar koecher avatar masterleinad avatar maxrudolph avatar ohcfe avatar rezarastak avatar rombur avatar tjhei avatar xywei avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.