The SPM framework is a high-performance open source platform for solving the linear Boltzmann equation, which is commonly adopted to describe radiative transfer. The implementation solvers includes SN (discrete ordinate), PN (spherical harmonics), and MN (moment closure) methods. A short description of kinetic theory can be found here.
- Compiler with C++17 support
- cmake >= v3.16
- LAPACK
- OpenMP
- MPI
- python3
- VTK
- git
Note that an active internet connection is required for the first build in order to download the suitable versions of the required submodules! For the first build only, download all submodules:
git submodule update --init --recursive
The executable file can be build with cmake workflow:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make -j N
Execute the compiled binary by handing over a valid config file, e.g.:
./SPM ../input/linesource_SN.cfg
In order to run the code in parallel execute:
OMP_NUM_THREADS=N mpirun -np J ./SPM ../examples/linesource_SN.cfg
with N
equal to the number of shared memory threads and J
equal to the number of distrubuted memory threads.