Installation

Requirements

Base requirements
  • C++11 capable compiler

  • MPI support

  • CMake v.3.14 or higher

Optional requirements
  • Fortran 2003 capable compiler (Fortran interface)

  • Fortran 2008 capable compiler (Usage of the mpi_f08 interface)

  • VTK 7.1 or higher (Domain output)

  • Boost testing utilities

  • Doxygen and Sphinx with breathe (Documentation)

Installation

  1. Clone the library from https://gitlab.version.fz-juelich.de/SLMS/loadbalancing into $ALL_ROOT_DIR.

  2. Create the build directory $ALL_BUILD_DIR some place else.

  3. Call cmake -S "$ALL_ROOT_DIR" -B "$ALL_BUILD_DIR" to set up the installation. Other compile time features should be set here. To use a specific compiler and Boost installation use: CC=gcc CXX=g++ BOOST_ROOT=$BOOST_DIR cmake [...].

  4. To build and install the library then run: cmake --build "$ALL_BUILD_DIR" and cmake --install "$ALL_BUILD_DIR". Afterwards, the built examples and library files are placed in $ALL_INSTALL_DIR.

Compile time features

-DCMAKE_INSTALL_PREFIX=$ALL_INSTALL_DIR (default: system dependent)

Install into $ALL_INSTALL_DIR after compiling.

-DCM_ALL_VTK_OUTPUT=ON (default: OFF)

Enable VTK output of domains. Requires VTK 7.1 or higher.

-DCM_ALL_FORTRAN=ON (default: OFF)

Enable Fortran interface. Requires Fortran 2003 capable compiler.

-DCM_ALL_USE_F08=ON (default: OFF)

Enable usage of mpi_f08 module for MPI. Requires Fortran 2008 capable compiler and compatible MPI installation.

-DCM_ALL_FORTRAN_ERROR_ABORT=ON (default: OFF)

Abort execution on any error when using the Fortran interface instead of setting the error number and leaving error handling to the user.

-DCM_ALL_VORONOI=ON (default: OFF)

Enable Voronoi mesh method and subsequently compilation and linkage of Voro++.

-DCM_ALL_TESTS=ON (default: OFF)

Turns on generation of tests. Will only generate unit tests by default and additional tests can be enabled with other flags, see below. Tests can be run from the build directory with ctest. Requires the Boost test utilities.

-DCM_ALL_TESTS_INTEGRATION=ON (default: OFF)

Enables integration/feature tests. Requires CM_ALL_TESTS to be enabled as well.

-DCM_ALL_AUTO_DOC=ON (default: OFF)

Generate documentation using doxygen and Sphinx.

-DCMAKE_BUILD_TYPE=Debug (default: Release)

Enable library internal debugging features. Using DebugWithOpt also turns on some optimizations.

-DCM_ALL_DEBUG=ON (default: OFF)

Enable self consistency checks within the library itself.

-DVTK_DIR=$VTK_DIR (default: system dependent)

Path to an explicit VTK installation. Make sure that VTK is compiled with the same MPI as the library and subsequently your code.