Installation

Build

Required dependencies

  • Compiler with C++17 support

  • cmake >= v3.12.4

  • LAPACK

  • OpenMP

  • MPI

  • VTK

  • git

  • ninja or make

Obtain submodules

Note that an active internet connection is required for the first build in order to download the latest versions of the required submodules! For the first build only, download all submodules:

git submodule update --init --recursive

Compile the code

Make build system (available on most systems)

cd code/build/release
cmake -DCMAKE_BUILD_TYPE=Release ../../
make

If building in parallel is desired, change the last line to make -jN, where N optimally is equal to the number of available threads+1.

Ninja build system:

cd code/build/release
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../../
ninja

The resulting executable will automatically be placed in the code/bin folder.


Run

Execute the compiled binary from the bin folder and hand over a valid TOML-styled config file. Example from inside the code directory:

`bash ./KiT-RT ../input/example.cfg `

In order to run the code in parallel execute:

`bash OMP_NUM_THREADS=N mpirun -np J ./KiT-RT ../input/example.cfg `

with N equal to the number of shared memory threads and J equal to the number of distrubuted memory threads.


Tests

After compiling the framework as described above just run:

make test

The unit_tests executable will also be placed in in the build folder.