Configuration files

KiT-RT uses a simple key-value format parsed by Config (see src/common/config.cpp). It is not strict TOML.

Syntax

  • One option per line: KEY = VALUE

  • Lists use parentheses: SCREEN_OUTPUT = (ITER, MASS, RMS_FLUX)

  • Comments often use % in existing examples

  • Boolean values use YES/NO

  • Relative paths are resolved from the config file directory

Minimal example

OUTPUT_DIR = ../../../result
OUTPUT_FILE = checkerboard_SN
LOG_DIR = ../../../result/logs
MESH_FILE = ../../mesh_files/checkerboard.su2

PROBLEM = CHECKERBOARD
SOLVER = SN_SOLVER
CFL_NUMBER = 0.5
TIME_FINAL = 0.4

BC_DIRICHLET = ( void )

QUAD_TYPE = GAUSS_LEGENDRE_TENSORIZED_2D
QUAD_ORDER = 4

VOLUME_OUTPUT = (MINIMAL)

Core options

File and paths:

  • OUTPUT_DIR, OUTPUT_FILE, LOG_DIR, LOG_FILE

  • MESH_FILE, CT_FILE, DATA_DIR

  • LOAD_RESTART_SOLUTION, SAVE_RESTART_SOLUTION_FREQUENCY

Solver setup:

  • SOLVER, PROBLEM, HPC_SOLVER

  • CFL_NUMBER, TIME_FINAL, RECONS_ORDER, TIME_INTEGRATION_ORDER

  • MAX_MOMENT_SOLVER, SPATIAL_DIM, SN_ALL_GAUSS_PTS

Physics and closures:

  • KERNEL, SPHERICAL_BASIS

  • ENTROPY_FUNCTIONAL, ENTROPY_OPTIMIZER

  • REGULARIZER_GAMMA, NEWTON_*, NEURAL_MODEL_*

Boundary and quadrature:

  • BC_DIRICHLET, BC_NEUMANN

  • QUAD_TYPE, QUAD_ORDER

Output control:

  • VOLUME_OUTPUT, VOLUME_OUTPUT_FREQUENCY

  • SCREEN_OUTPUT, SCREEN_OUTPUT_FREQUENCY

  • HISTORY_OUTPUT, HISTORY_OUTPUT_FREQUENCY

Current enum values (from code)

These names come from include/common/globalconstants.hpp and are the strings accepted by the config parser.

SOLVER:

  • SN_SOLVER

  • PN_SOLVER

  • MN_SOLVER

  • MN_SOLVER_NORMALIZED

  • CSD_SN_SOLVER

  • CSD_PN

  • CSD_MN

PROBLEM:

  • LINESOURCE, LINESOURCE_1D

  • CHECKERBOARD, CHECKERBOARD_1D

  • STARMAP_VALIDATION, AIRCAVITY_1D

  • WATERPHANTOM, WATERPHANTOM_1D, RADIATIONCT

  • MELTINGCUBE, MELTINGCUBE_1D

  • HOHLRAUM, SYMMETRIC_HOHLRAUM, QUARTER_HOHLRAUM

  • LATTICE, HALF_LATTICE

QUAD_TYPE:

  • MONTE_CARLO

  • GAUSS_LEGENDRE_TENSORIZED, GAUSS_LEGENDRE_TENSORIZED_2D, GAUSS_LEGENDRE_1D

  • LEVEL_SYMMETRIC, LEBEDEV, LDFESA, TESSALATION, PRODUCT

  • MIDPOINT_1D, MIDPOINT_2D, MIDPOINT_3D

  • RECTANGULAR_1D, RECTANGULAR_2D, RECTANGULAR_3D

KERNEL:

  • ISOTROPIC, ISOTROPIC_1D

SPHERICAL_BASIS:

  • SPHERICAL_HARMONICS

  • SPHERICAL_MONOMIALS

  • SPHERICAL_MONOMIALS_ROTATED

ENTROPY_FUNCTIONAL:

  • QUADRATIC

  • MAXWELL_BOLTZMANN

  • BOSE_EINSTEIN

  • FERMI_DIRAC

ENTROPY_OPTIMIZER:

  • NEWTON

  • REGULARIZED_NEWTON

  • PART_REGULARIZED_NEWTON

  • REDUCED_NEWTON

  • REDUCED_PART_REGULARIZED_NEWTON

  • ML

VOLUME_OUTPUT:

  • ANALYTIC, MINIMAL, MOMENTS, DUAL_MOMENTS, MEDICAL

SCREEN_OUTPUT and HISTORY_OUTPUT:

  • ITER, WALL_TIME, SIM_TIME, MASS, RMS_FLUX

  • VTK_OUTPUT, CSV_OUTPUT

  • CUR_OUTFLOW, TOTAL_OUTFLOW, CUR_OUTFLOW_P1, TOTAL_OUTFLOW_P1

  • CUR_OUTFLOW_P2, TOTAL_OUTFLOW_P2, MAX_OUTFLOW

  • CUR_PARTICLE_ABSORPTION, TOTAL_PARTICLE_ABSORPTION, MAX_PARTICLE_ABSORPTION

  • TOTAL_PARTICLE_ABSORPTION_CENTER, TOTAL_PARTICLE_ABSORPTION_VERTICAL, TOTAL_PARTICLE_ABSORPTION_HORIZONTAL

  • PROBE_MOMENT_TIME_TRACE, VAR_ABSORPTION_GREEN, ABSORPTION_GREEN_BLOCK

  • AVG_ABSORPTION_GREEN_BLOCK_INTEGRATED, VAR_ABSORPTION_GREEN_BLOCK_INTEGRATED, ABSORPTION_GREEN_LINE

SAMPLER_NAME:

  • CLASSIFICATION_SAMPLER

  • REGRESSION_SAMPLER

HPC SN config pattern

The HPC path is selected with:

  • SOLVER = SN_SOLVER

  • HPC_SOLVER = YES

Example (from validation inputs):

PROBLEM = LATTICE
SOLVER = SN_SOLVER
HPC_SOLVER = YES
RECONS_ORDER = 2
TIME_INTEGRATION_ORDER = 2
QUAD_TYPE = GAUSS_LEGENDRE_TENSORIZED_2D
QUAD_ORDER = 4

Reference configs

Validated examples are under:

  • tests/input/validation_tests/SN_solver

  • tests/input/validation_tests/PN_solver

  • tests/input/validation_tests/MN_solver

  • tests/input/validation_tests/CSD_PN_solver

  • tests/input/validation_tests/CSD_MN_solver

  • tests/input/validation_tests/SN_solver_hpc