The KiT-RT (Kinetic Transport Solver for Radiation Therapy) framework is a high-performance open source platform for radiation transport. Its main focus is on radiotherapy planning in cancer treatment. To enable problem-specific method selection, the framework provides different deterministic solver types. This not only facilitates treatment planning, but also provides tools to investigate various research questions in the field of radiative transfer. This goal is supported by an easily extendable code structure that allows for straightforward implementation of additional methods and techniques.
The documentation can be found here. The preprint for the KiT-RT journal paper is available here.
A short description of kinetic theory can be found here.
- Compiler with C++17 support
- cmake >= v3.16
- LAPACK
- OpenMP
- MPI
- python3
- VTK
- git
If you choose to enable the machine learning tools via the BUILD_ML option, you need to install the tensorflow C-API:
FILENAME=libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
wget -q --no-check-certificate https://storage.googleapis.com/tensorflow/libtensorflow/${FILENAME}
tar -C /usr/local -xzf ${FILENAME}
ldconfig /usr/local/lib
- pydicom
- numpy
- pygmsh version 6.1.1
pip install pygmsh==6.1.1
(note that newer versions are not yet supported)
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
In case of the make build system (available on most systems) run:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make -j
Execute the compiled binary by handing over a valid config file, e.g.:
./KiT-RT ../examples/linesource_SN.cfg
In order to run the code in parallel execute:
OMP_NUM_THREADS=N mpirun -np J ./KiT-RT ../examples/linesource_SN.cfg
with N
equal to the number of shared memory threads and J
equal to the number of distrubuted memory threads.
After compiling the framework with:
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON ../
make -j
Unit test can be run with:
make test
A preconfigured docker container can also be used to run the code. By running
docker run --rm -ti -v $(pwd):/home kitrt/test:latest
To use the tensorflow backend for neural network based entropy closures, please use the tensorflow equippend containter by running
docker run --rm -ti -v $(pwd):/home kitrt/test_ml:latest
from the current folder will be mounted to the docker container and the code can be executed without any of the required dependencies.
Bash scripts are provided in the folder tools/CI to get started with the docker environments. To start an interactive docker environment, execute
docker run -i -t --rm -v $(pwd)/../..:/mnt kitrt/test:latest /bin/bash
To use the neural network based entropy closure, one needs to install the tensorflow C++ backend. Just use the following commands:
FILENAME=libtensorflow-cpu-linux-x86_64-2.7.0.tar.gz
wget -q --no-check-certificate https://storage.googleapis.com/tensorflow/libtensorflow/${FILENAME}
tar -C /usr/local -xzf ${FILENAME}
ldconfig /usr/local/lib
and for a gpu based version (you need supported hardware and gpu drivers, see here ):
FILENAME=libtensorflow-gpu-linux-x86_64-2.7.0.tar.gz
wget -q --no-check-certificate https://storage.googleapis.com/tensorflow/libtensorflow/${FILENAME}
tar -C /usr/local -xzf ${FILENAME}
ldconfig /usr/local/lib
@article{kitrt2023,
title={KiT-RT: An extendable framework for radiative transfer and therapy},
author={Kusch, Jonas and Schotth{\"o}fer, Steffen and Stammer, Pia and Wolters, Jannick and Xiao, Tianbai},
journal={ACM Transactions on Mathematical Software},
volume={49},
number={4},
pages={1--24},
year={2023},
publisher={ACM New York, NY}
}