Building the C++ library

The following section describes building the AMICI C++ library:

Note

The AMICI C++ interface only supports simulation of models imported using the Python interface and Matlab interface. It cannot be used for model import itself.

Prerequisites:

  • CBLAS compatible BLAS library

  • a C++17 compatible compiler

  • a C compiler

  • Optional: * HDF5 libraries * boost for serialization

To use AMICI from C++, run the

./scripts/buildSuiteSparse.sh
./scripts/buildSundials.sh
./scripts/buildAmici.sh

script to build the AMICI library.

Note

On some systems, the CMake executable may be named something other than cmake. In this case, set the CMAKE environment variable to the correct name (e.g. export CMAKE=cmake3, in case you have CMake available as cmake3).

The static library can then be linked from

./build/libamici.a

In CMake-based packages, amici can be linked via

find_package(Amici)

For further usage, consult the AMICI C++ interface documentation.

Supported CBLAS libraries

The C++ interfaces require a system installation of a CBLAS-compatible Basic Linear Algebra Subprograms (BLAS) library. AMICI has been tested with various implementations such as Accelerate, Intel MKL, cblas, openblas and atlas.

Optional SuperLU_MT support

To build AMICI with SuperLU_MT support, run

./scripts/buildSuperLUMT.sh
./scripts/buildSundials.sh
cd build/
cmake -DSUNDIALS_SUPERLUMT_ENABLE=ON ..
make