- CMake (>= 3.12.0)
- Microsoft Visual Studio 2017 (Community Edition, or better) or Intel C++ 18.0
- Optional: MATLAB R2009a or greater
- Optional: Git
- Optional: Intel MKL
- Optional: TBB
Assumed directory structure:
<ROOT> |-Libs | |- sundials | |- hdf5 | |- lapack | |- suitesparse | |- tbb |-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. In the following, we will use Visual Studio 2019 and CMake 3.17.0. We also assume that Intel MKL is installed.
- Make sure that no HDF5 libraries are installed (remove already existing HDF5 installations)
- 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 VS2019x64 Command Prompt and change to the unzipped directory
- Execute
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201964,INSTALLDIR="<ROOT>\Libs\hdf5" -C Release -V
- Extract the created
HDF5-1.12.0-win64.zip
file to<ROOT>/Libs/hdf5
such that you have<ROOT>/Libs/hdf5/lib
- Download SUNDIALS source from http://computation.llnl.gov/projects/sundials/sundials-software (version <= 3.2.1)
- Unzip
- Open VS2019x64 Command Prompt and change to the parent directory of the unzipped directory
- Create a new folder
sundialsbuild
and change to it - Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>\Libs\sundials" -DEXAMPLES_ENABLE=OFF -DOPENMP_ENABLE=ON -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 16 2019" -A x64 -DCMAKE_C_FLAGS="/GL" -DCMAKE_STATIC_LINKER_FLAGS="/LTCG" -DCMAKE_BUILD_TYPE=Release ..\sundials-3.2.1\
- Execute
msbuild.exe INSTALL.vcxproj /p:Configuration=Release;Platform=x64
In the following, CLAPACK is built and used. You can also install the freely available Intel MKL which is very fast and certainly much faster than CLAPACK. If MKL is used, skip this step.
- Download
clapack-3.2.1-CMAKE.tgz
from https://icl.cs.utk.edu/lapack-for-windows/clapack/index.html#build and unzip - Open VS2019x64 Command Prompt and change to the parent directory of the unzipped directory
- Create a new folder
clapackbuild
and change to it - Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>\Libs\clapack" -G "Visual Studio 16 2019" -A x64 -DCMAKE_C_FLAGS="/GL" -DCMAKE_CXX_FLAGS="/GL" -DCMAKE_STATIC_LINKER_FLAGS="/LTCG" ..\clapack-3.2.1-
- Execute
msbuild.exe CLAPACK.sln /p:Configuration=Release;Platform=x64
- Execute
msbuild.exe INSTALL.vcxproj /p:Configuration=Release;Platform=x64
- Rename
<ROOT>\Libs\clapack\lib\libf2c.lib
to<ROOT>\Libs\clapack\lib\f2c.lib
- Download a release from https://github.com/oneapi-src/oneTBB/releases
- Unzip to
<ROOT>/Libs/tbb
such that you have<ROOT>/Libs/tbb/README
-
Download SuiteSparse source from http://faculty.cse.tamu.edu/davis/suitesparse.html
-
Download CMake build system source from https://github.com/jlblancoc/suitesparse-metis-for-windows
-
Unzip both into the same directory such that there are
<DIR>\SuiteSparse-5.7.1
and<DIR>\suitesparse-metis-for-windows-master
-
Open VS2019x64 Command Prompt and change to the directory
<DIR>
that contains both unzipped directories -
Copy all SuiteSparse source files from
<DIR>\SuiteSparse-5.7.1
to<DIR>\suitesparse-metis-for-windows-master\SuiteSparse
viaxcopy .\SuiteSparse-5.7.1 .\suitesparse-metis-for-windows-master\SuiteSparse /s /e /y
-
Delete the directory
<DIR>\suitesparse-metis-for-windows-master\lapack_windows
-
Create a new folder
suitesparsebuild
and change to it -
If using MKL, execute
set MKLROOT=C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.0.166\windows\mkl
-
Using CLAPACK: Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>\Libs\suitesparse" -DCMAKE_LIBRARY_PATH="<ROOT>\Libs\clapack\lib" -DBLA_STATIC=ON -G "Visual Studio 16 2019" -A x64 -DCMAKE_C_FLAGS="/GL" -DCMAKE_STATIC_LINKER_FLAGS="/LTCG" -DCMAKE_BUILD_TYPE=Release -DBUILD_METIS=OFF ..\suitesparse-metis-for-windows-master\
Using MKL (sequential): Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>\Libs\suitesparse" -DBLA_VENDOR=Intel10_64lp_seq -DBLA_STATIC=ON -G "Visual Studio 16 2019" -A x64 -DCMAKE_C_FLAGS="/GL" -DCMAKE_STATIC_LINKER_FLAGS="/LTCG" -DCMAKE_BUILD_TYPE=Release -DBUILD_METIS=OFF ..\suitesparse-metis-for-windows-master\
-
Execute
msbuild.exe INSTALL.vcxproj /p:Configuration=Release;Platform=x64
-
Download release of CADET or checkout from git
-
Place the source in
<ROOT>\code
and create the directory<ROOT>\build
-
Open VS2019x64 Command Prompt and change to
<ROOT>\build
-
If you have built SUNDIALS, execute
set SUNDIALS_ROOT=<ROOT>\Libs\sundials
and add-DENABLE_PACKAGED_SUNDIALS=OFF
to the CMake command (see below) -
If you have built UMFPACK, execute
set UMFPACK_ROOT=<ROOT>\Libs\suitesparse
-
Execute
set TBB_ROOT=<ROOT>\Libs\tbb
-
Execute
set HDF5_ROOT=<ROOT>\Libs\hdf5
-
If using MKL, execute
set MKLROOT=C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.0.166\windows\mkl
-
Using CLAPACK: Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>\cadet" -DBUILD_TESTS=OFF -DCMAKE_LIBRARY_PATH="<ROOT>\Libs\clapack\lib" -G "Visual Studio 16 2019" -A x64 -DBLA_VENDOR=CLAPACK -DENABLE_STATIC_LINK_LAPACK=ON ..\code\
Using MKL (sequential): Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>\cadet" -DBUILD_TESTS=OFF -G "Visual Studio 16 2019" -A x64 -DBLA_VENDOR=Intel10_64lp_seq -DENABLE_STATIC_LINK_LAPACK=ON ..\code\
Using MKL (parallel): Execute
cmake -DCMAKE_INSTALL_PREFIX="<ROOT>\cadet" -DBUILD_TESTS=OFF -G "Visual Studio 16 2019" -A x64 -DBLA_VENDOR=Intel10_64lp -DENABLE_STATIC_LINK_LAPACK=ON ..\code\
-
Execute
msbuild.exe INSTALL.vcxproj /p:Configuration=Release;Platform=x64
-
If CADET does not start (i.e.,
cadet-cli
does not run), try copying<ROOT>\Libs\tbb\bin\intel64\vc14\tbb_preview.dll
to the directory that containscadet-cli
(i.e.,<ROOT>\cadet\bin\
) -
If the Matlab interface does not work, try copying
<ROOT>\Libs\tbb\bin\intel64\vc14\tbb_preview.dll
to the directory that containsCadetMex.mexw64
(i.e.,<ROOT>\cadet\matlab\bin\
)