globalconstants.h 3.49 KB
Newer Older
1
/*!
2
 * \file GlobalConstants.h
3
4
5
6
7
8
 * \brief All global defined (physical) constants, enums etc
 * \author <blank>
 * \version 0.0
 *
 */

9
10
#ifndef GLOBAL_CONSTANTS_H
#define GLOBAL_CONSTANTS_H
11

12
13
#include <map>
#include <string>
14

15
// --- Definition for global constants goes here ---
16

17
const unsigned int MAX_STRING_SIZE = 200; /*!< @brief Maximum size for strings. */
18
19
20

// --- Definition of enums goes here ---

21
enum BOUNDARY_TYPE { DIRICHLET, NEUMANN, NONE, INVALID };
22
23

// --- Definition of enums for EnumOptions goes here ---
24

25
/*! @brief Enum for all currently available quadratures in rtsn.
26
27
 *         Option enums are written in capital letters with underscores as spaces (e.g option "time integration" has option enum "TIME_INTEGRATION")
 */
Jonas Kusch's avatar
Jonas Kusch committed
28
enum QUAD_NAME { QUAD_MonteCarlo, QUAD_GaussLegendreTensorized, QUAD_GaussLegendre1D, QUAD_LevelSymmetric, QUAD_Lebedev, QUAD_LDFESA };
29

30
/*! @brief Conversion Map String to enum
31
 */
32
33
inline std::map<std::string, QUAD_NAME> Quadrature_Map{ { "MONTE_CARLO", QUAD_MonteCarlo },
                                                        { "GAUSS_LEGENDRE_TENSORIZED", QUAD_GaussLegendreTensorized },
Jonas Kusch's avatar
Jonas Kusch committed
34
                                                        { "GAUSS_LEGENDRE_1D", QUAD_GaussLegendre1D },
35
36
37
38
                                                        { "LEVEL_SYMMETRIC", QUAD_LevelSymmetric },
                                                        { "LEBEDEV", QUAD_Lebedev },
                                                        { "LDFESA", QUAD_LDFESA } };

39
// Problem name
40
41
42
43
44
45
46
47
enum PROBLEM_NAME {
    PROBLEM_LineSource,
    PROBLEM_Checkerboard,
    PROBLEM_ElectronRT,
    PROBLEM_WaterPhantom,
    PROBLEM_LineSource_Pseudo_1D,
    PROBLEM_LineSource_Pseudo_1D_Physics
};
48

49
50
51
inline std::map<std::string, PROBLEM_NAME> Problem_Map{ { "LINESOURCE", PROBLEM_LineSource },
                                                        { "CHECKERBOARD", PROBLEM_Checkerboard },
                                                        { "ELECTRONRT", PROBLEM_ElectronRT },
52
                                                        { "WATERPHANTOM", PROBLEM_WaterPhantom },
53
54
                                                        { "LINESOURCE_PSEUDO_1D", PROBLEM_LineSource_Pseudo_1D },
                                                        { "LINESOURCE_PSEUDO_1D_PHYSICS", PROBLEM_LineSource_Pseudo_1D_Physics } };
55

56
// Kernel name
57
enum KERNEL_NAME { KERNEL_Isotropic, KERNEL_Isotropic1D };
jannick.wolters's avatar
jannick.wolters committed
58

59
inline std::map<std::string, KERNEL_NAME> Kernel_Map{ { "ISOTROPIC", KERNEL_Isotropic }, { "ISOTROPIC_1D", KERNEL_Isotropic1D } };
jannick.wolters's avatar
jannick.wolters committed
60

61
// Solver name
Jonas Kusch's avatar
Jonas Kusch committed
62
enum SOLVER_NAME { SN_SOLVER, CSD_SN_SOLVER, PN_SOLVER, MN_SOLVER };
63

Jonas Kusch's avatar
Jonas Kusch committed
64
65
inline std::map<std::string, SOLVER_NAME> Solver_Map{
    { "SN_SOLVER", SN_SOLVER }, { "CSD_SN_SOLVER", CSD_SN_SOLVER }, { "PN_SOLVER", PN_SOLVER }, { "MN_SOLVER", MN_SOLVER } };
66

67
// Entropy functional
68
enum ENTROPY_NAME { QUADRATIC, MAXWELL_BOLTZMANN, BOSE_EINSTEIN, FERMI_DIRAC };
69
70

inline std::map<std::string, ENTROPY_NAME> Entropy_Map{
71
    { "QUADRATIC", QUADRATIC }, { "MAXWELL_BOLTZMANN", MAXWELL_BOLTZMANN }, { "BOSE_EINSTEIN", BOSE_EINSTEIN }, { "FERMI_DIRAC", FERMI_DIRAC } };
72

73
// Optimizer
74
75
76
enum OPTIMIZER_NAME { NEWTON, ML };

inline std::map<std::string, OPTIMIZER_NAME> Optimizer_Map{ { "NEWTON", NEWTON }, { "ML", ML } };
77
78

// Volume output
79
enum VOLUME_OUTPUT { ANALYTIC, MINIMAL, MOMENTS, DUAL_MOMENTS };
80

81
82
inline std::map<std::string, VOLUME_OUTPUT> VolOutput_Map{
    { "ANALYTIC", ANALYTIC }, { "MINIMAL", MINIMAL }, { "MOMENTS", MOMENTS }, { "DUAL_MOMENTS", DUAL_MOMENTS } };
83

84
#endif    // GLOBAL_CONSTANTS_H