You're reading an old version of this documentation. For the latest released version, please have a look at v5.1.0.
Build for Linux¶
Prerequisites¶
CMake (>= 3.12.0)
GCC >= 5.0 or Clang >= 3.4
Optional: MATLAB R2009a or greater
Optional: Git
Assumed directory structure:
<ROOT> |-libs | |- sundials | |- hdf5 | |- superlu | |- suitesparse |-code |-cadet |-build
Note that the version numbers of the files and packages below are subject to change and will not always reflect the most recent version.
Build dependencies¶
HDF5¶
You can either build HDF5 yourself or rely on the packages provided by your Linux distribution.
Obtain HDF5 from your distribution: * Install the development package
of your distribution (e.g., libhdf5-dev for Ubuntu and Debian,
hdf5-devel OpenSUSE) * Additional postfixes or prefixes in the
library names (e.g., Debian uses libhdf5_serial.* instead of
libhdf5.*) can cause troubles when CMake is trying to find HDF5. If
this is the case, you can circumvent this by using symlinks
ln -s libhdf5_serial.* libhdf5.*. However, this can later cause
troubles because other packages might contain this file.
Build HDF5 yourself: * Download CMake-enabled source from
https://www.hdfgroup.org/downloads/hdf5/source-code/ * Unzip and make
sure that the directory path does not contain blank spaces * Open a
terminal and change to the unzipped directory * Execute
ctest -S HDF5config.cmake,BUILD_GENERATOR=Unix,INSTALLDIR="<ROOT>/Libs/hdf5" -C Release -V
* Extract the created HDF5-1.10.0-patch1-Linux.tar.gz file to
<ROOT>/Libs/hdf5 such that you have <ROOT>/Libs/hdf5/lib
SUNDIALS¶
Download SUNDIALS source from http://computation.llnl.gov/projects/sundials/sundials-software (version <= 3.2.1)
Unzip
Open a terminal and change to the parent directory of the unzipped directory
Create a new folder
sundialsbuildand change to itExecute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>/Libs/sundials" -DEXAMPLES_ENABLE=OFF -DOPENMP_ENABLE=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS=-fPIC ../sundials-3.2.1/Execute
make installDelete the folder
sundialsbuild(e.g., executerm -rf sundialsbuildin the parent directory ofsundialsbuild)
LAPACK¶
You can either use a LAPACK implementation provided by your distribution or install the freely available Intel MKL which is very fast and probably faster than your distribution’s implementation.
Obtain LAPACK from your distribution: * Install the packages (LAPACK
and BLAS) of your distribution (e.g., liblapack3, liblapack-dev,
libblas3, libblas-dev for Ubuntu and Debian). Note that some
packages only provide reference (i.e., slow) implementations and others
(e.g., ATLAS, GOTO) perform much faster.
SuperLU¶
Download SuperLU source from https://github.com/xiaoyeli/superlu
Unzip
Open a terminal and change to the parent directory of the unzipped directory
Create a new folder
superlubuildand change to itExecute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>/Libs/superlu" -Denable_complex=OFF -Denable_complex16=OFF -Denable_blaslib=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE=Release ../SuperLU_5.2.1/Execute
make installDelete the folder
superlubuild(e.g., executerm -rf superlubuildin the parent directory ofsuperlubuild)
UMFPACK¶
Download SuiteSparse source from http://faculty.cse.tamu.edu/davis/suitesparse.html
Unzip
Open a terminal and change to the unzipped directory
Execute
make install INSTALL="<ROOT>/Libs/suitesparse" CHOLMOD_CONFIG=-DNPARTITIONormake install INSTALL="<ROOT>/Libs/suitesparse" CHOLMOD_CONFIG=-DNPARTITION AUTOCC=no CC=<COMPILER> CXX=<C++COMPILER>if you want to manually select the compiler
Build CADET¶
Download release of CADET or checkout from git
Place the source in
<ROOT>/codeand create the directory<ROOT>/buildOpen a terminal and change to
<ROOT>/buildIf you have built HDF5 yourself, execute
export HDF5_ROOT=<ROOT>/Libs/hdf5Execute
export SUNDIALS_ROOT=<ROOT>/Libs/sundialsExecute
export SUPERLU_ROOT=<ROOT>/Libs/superluExecute
export UMFPACK_ROOT=<ROOT>/Libs/suitesparseIf using MKL, execute
export MKLROOT=/opt/intel/mklUsing standard LAPACK: Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>/cadet" ../code/Using MKL (sequential): Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>/cadet" -DBLA_VENDOR=Intel10_64lp_seq ../code/Using MKL (parallel): Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>/cadet" -DBLA_VENDOR=Intel10_64lp ../code/If CMake was not able to locate MATLAB, execute
export MATLAB_ROOT=/path/to/my/MATLAB/R2016aand try to run CMake againExecute
makeExecute
make install