Configuration files¶
Configuration files are written in TOML-style
. A number of examples (link examples) can be found in the ./code/input
folder. Users can also handover their own files, which should follow the following specifications:
Parameters¶
Below you can see the possible parameters that can be specified in a config file. Which of these parameters are required depends on the chosen application and solver
// --- Options ---
// File Structure
std::string _inputDir; // Directory for input files
std::string _outputDir; // Directory for output files
std::string _outputFile; // Name of output file
std::string _logDir; // Directory of log file
std::string _logFileName; // Name of log file
std::string _meshFile; // Name of mesh file
std::string _ctFile; // Name of CT file
// Quadrature
QUAD_NAME _quadName; // Quadrature Name
unsigned short _quadOrder; // Quadrature Order
unsigned _nQuadPoints;
// Mesh
unsigned _nCells;
// Solver
double _CFL; // CFL Number for Solver
double _tEnd; // Final Time for Simulation
PROBLEM_NAME _problemName; // Name of predefined Problem
SOLVER_NAME _solverName; // Name of the used Solver
ENTROPY_NAME _entropyName; // Name of the used Entropy Functional
unsigned short _maxMomentDegree; // Maximal Order of Moments for PN and MN Solver
unsigned short _reconsOrder; // Spatial Order of Accuracy for Solver
// Linesource
double _sigmaS; // Scattering coeffient for Linesource test case
/*If true, very low entries (10^-10 or smaller) of the flux matrices will be set to zero,
* to improve floating point accuracy */
bool _cleanFluxMat;
/*If true, the SN Solver uses all Gauss pts in the quadrature */
bool _allGaussPts;
/*If true, continuous slowing down approximation will be used */
bool _csd;
std::string _hydrogenFile; // Name of hydrogen cross section file
std::string _oxygenFile; // Name of oxygen cross section file
// Boundary Conditions
/*List of all Pairs (marker, BOUNDARY_TYPE), e.g. (farfield,DIRICHLET).
*Each Boundary Conditions must have an entry in enum BOUNDARY_TYPE*/
std::vector<std::pair<std::string, BOUNDARY_TYPE>> _boundaries;
unsigned short _nMarkerDirichlet; // Number of Dirichlet BC markers. Enum entry: DIRICHLET
unsigned short _nMarkerNeumann; // Number of Neumann BC markers. Enum entry: Neumann
std::vector<std::string> _MarkerDirichlet; // Dirichlet BC markers.
std::vector<std::string> _MarkerNeumann; // Neumann BC markers.
// Scattering Kernel
KERNEL_NAME _kernelName; // Scattering Kernel Name
// Optimizer
OPTIMIZER_NAME _entropyOptimizerName; // Choice of optimizer
double _optimizerEpsilon; // termination criterion epsilon for Newton Optmizer
unsigned short _newtonIter; // Maximal Number of newton iterations
double _newtonStepSize; // Stepsize factor for newton optimizer
unsigned short _newtonLineSearchIter; // Maximal Number of line search iterations for newton optimizer
bool _newtonFastMode; // If true, we skip the NewtonOptimizer for quadratic entropy and assign alpha = u
// Output Options
unsigned short _nVolumeOutput; // Number of volume outputs
std::vector<VOLUME_OUTPUT> _volumeOutput; // Output groups for volume output
unsigned short _volumeOutputFrequency; // Frequency of vtk write of volume output
unsigned short _nScreenOutput; // Number of screen outputs
std::vector<SCALAR_OUTPUT> _screenOutput; // Output groups for screen output
unsigned short _screenOutputFrequency; // Frequency of screen output
unsigned short _nHistoryOutput; // Number of screen outputs
std::vector<SCALAR_OUTPUT> _historyOutput; // Output groups for screen output
unsigned short _historyOutputFrequency; // Frequency of screen output