Global Impurity Transport Code
For reference, please visit the archived copy of the GITR project - GITR_legacy
The GITR program takes background plasma profiles, equilibrium, geometry, and surface model and performs large scale simulation of plasma induced erosion, plasma transport of those impurities, self-sputtering, and redeposition.
The physics implemented in GITR is based on the trace-impurity assumption. i.e. The density of impurities created in the GITR code is negligible in its effect on the background plasma parameters.
Beginning from a set of initial conditions, the code steps each particle through a set of operators until certain conditions on the particles are reached (crossing a boundary or timing out). The operators acting on the particles are dependent on the prescibed fields and profiles of the background.
. Top Level: Top level build system file **CMakeLists.txt**, LICENSE file, README.md (this file)
├── CMake ---> build system files
├── docs ---> more detailed documentation
├── dev_docs ---> documentation for developers
├── images ---> repo visuals for websites and presentations
├── include ---> C++ header files
├── src ---> C++ source files
├── test_include ---> C++ unit test header files
└── test_src ---> C++ unit test source files
- cmake version 3.13 or newer required
- CUDA
- Enabled by default, disable with -DGITR_USE_CUDA=0
- Requires existing installation. Set:
- -DCMAKE_CUDA_COMPILER=/path/to/nvcc
- libconfig
- consumes human-readable input config files
- to use existing installation, set:
- -DLIBCONFIG_INCLUDE_DIR=/path/to/libconfig/include (libconfig headers)
- -DLIBCONFIG_LIBRARY=/path/to/libconfig.so
- -DLIBCONFIGPP_INCLUDE_DIR=/path/to/libconfig++/include (libconfig headers)
- -DLIBCONFIGPP_LIBRARY=/path/to/libconfig++.so
- netcdf-c
- input/output raw data format
- to use existing installation set:
- -DNETCDF_LIBRARY=/path/to/libnetcdf.so
- -DNETCDF_INCLUDE_DIR=/path/to/netcdf-c/include (netcdf-c headers)
- netcdf-cxx4
- C++ extensions to netcdf-c
- to use an existing installation, set:
- -DNETCDF_CXX_LIBRARY=/path/to/libnetcdf-cxx4.so
- -DNETCDF_CXX_INCLUDE_DIR=/path/to/netcdf-cxx4/include (netcdf-c headers)
- thrust
- header-only library
- included in CUDA installation if gpu support enabled
- to use existing installation, set:
- -DTHRUST_INCLUDE_DIR=/path/to/thrust
- this should only be necessary if CUDA is disabled
- header-only library
Configure build system with CMake. Physics operators can be activated via -D-style build-time options provided to CMake.
cmake -S /path/to/GITR -B /path/to/build -Doption_name
or
cd GITR/build;
cmake -Doption_name ..
The list of options can be viewed in:
CMake/user_options.cmake
Once the project is configured, compile:
cd build
make -j
GITR expects to be run in a directory containing directories input and output. The input directory must contain a file called gitrInput.cfg. Reference docs/runtime_config.md for details about this file. These following options in the file must be mirrored with their CMake -D-style counterpart build-time option.
Navigate to this directory and run:
/path/to/build/GITR
The default configuration options in GITR are compatible with the input deck in: GITR_CPC_example.
Navigate to the user-created build directory and run:
ctest
Create a new issue under GitHub's Issues tab.
Search the GitHub discussions tab for existing threads or start a new one.
Fork this repository, branch off of dev, and open a merge request into dev.
Navigate to
GITR/docs/release_notes.md