Version: SMASH-1.7
forwarddeclarations.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2019
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_FORWARDDECLARATIONS_H_
11 #define SRC_INCLUDE_FORWARDDECLARATIONS_H_
12 
14 // exclude most content here from documentation
15 
16 #include <iosfwd>
17 #include <memory>
18 #include <vector>
19 
20 #ifdef _LIBCPP_BEGIN_NAMESPACE_STD
21 _LIBCPP_BEGIN_NAMESPACE_STD
22 #else
23 namespace std {
24 #endif
25 
26 template <typename T>
27 class allocator;
28 template <typename T, typename A>
29 class vector;
30 
31 template <typename T>
32 struct default_delete;
33 template <typename T, typename Deleter>
34 class unique_ptr;
35 
36 template <std::size_t N>
37 class bitset;
38 
39 #ifdef _LIBCPP_END_NAMESPACE_STD
40 _LIBCPP_END_NAMESPACE_STD
41 #else
42 } // namespace std
43 #endif
44 
45 namespace boost {
46 namespace filesystem {
47 class path;
48 } // namespace filesystem
49 } // namespace boost
50 
51 namespace smash {
52 
53 template <typename T>
54 using build_unique_ptr_ = std::unique_ptr<T, std::default_delete<T>>;
55 template <typename T>
56 using build_vector_ = std::vector<T, std::allocator<T>>;
57 
58 class Action;
59 class ScatterAction;
60 class BoxModus;
61 class Clock;
62 class Configuration;
63 class CrossSections;
64 class DecayModes;
65 class DecayType;
66 class FourVector;
67 class ThreeVector;
68 class ModusDefault;
69 class OutputInterface;
70 class ParticleData;
71 class Particles;
72 class ParticleType;
73 class ParticleTypePtr;
74 class IsoParticleType;
75 class PdgCode;
76 class DecayBranch;
77 class CollisionBranch;
78 class Tabulation;
79 class ExperimentBase;
80 struct ExperimentParameters;
81 struct Nucleoncorr;
82 
84 
86 enum class CalculationFrame {
90 };
91 
93 enum class FermiMotion {
95  Off,
97  On,
99  Frozen,
100 };
101 
103 enum class Sampling {
105  Uniform,
107  Quadratic,
109  Custom,
110 };
111 
113 enum class TimeStepMode : char {
115  None,
117  Fixed,
118 };
119 
134 };
135 
151  IC_ES,
152  IC_1M,
153  IC_2M,
154  IC_Massive,
155 };
156 
165 enum class ExpansionMode {
166  NoExpansion,
167  MasslessFRW,
168  MassiveFRW,
169  Exponential,
170 };
171 
173 enum class NNbarTreatment {
177  Resonances,
179  Strings,
180 };
181 
183 enum class ThermodynamicQuantity : char {
185  Tmn,
186  TmnLandau,
188  j_QBS
189 };
190 
192 enum class CollisionCriterion {
194  Geometric,
196  Stochastic
197 };
198 
201  All = 50,
202  Elastic = 0,
203  NN_to_NR = 1,
204  NN_to_DR = 2,
205  KN_to_KN = 3,
208  NNbar = 6,
212 };
213 
215 typedef std::bitset<10> ReactionsBitSet;
216 
227  ModeSampling,
228  BiasedBF,
229  UnbiasedBF,
230 };
231 
233 using ActionPtr = build_unique_ptr_<Action>;
234 using ScatterActionPtr = build_unique_ptr_<ScatterAction>;
235 using ActionList = build_vector_<ActionPtr>;
236 
237 using OutputPtr = build_unique_ptr_<OutputInterface>;
238 using OutputsList = build_vector_<OutputPtr>;
239 
240 using ParticleList = build_vector_<ParticleData>;
241 using ParticleTypeList = build_vector_<ParticleType>;
242 using ParticleTypePtrList = build_vector_<ParticleTypePtr>;
243 using IsoParticleTypeList = build_vector_<IsoParticleType>;
244 
245 template <typename T>
246 using ProcessBranchPtr = build_unique_ptr_<T>;
247 template <typename T>
248 using ProcessBranchList = build_vector_<ProcessBranchPtr<T>>;
249 using DecayBranchPtr = build_unique_ptr_<DecayBranch>;
250 using DecayBranchList = build_vector_<DecayBranchPtr>;
251 using CollisionBranchPtr = build_unique_ptr_<CollisionBranch>;
252 using CollisionBranchList = build_vector_<CollisionBranchPtr>;
253 
254 using TabulationPtr = build_unique_ptr_<Tabulation>;
255 using ExperimentPtr = build_unique_ptr_<ExperimentBase>;
256 using DecayTypePtr = build_unique_ptr_<DecayType>;
257 
258 namespace bf = boost::filesystem;
260 
261 } // namespace smash
262 
263 #endif // SRC_INCLUDE_FORWARDDECLARATIONS_H_
ThermalizationAlgorithm
Defines the algorithm used for the forced thermalization.
FermiMotion
Option to use Fermi Motion.
(Default) geometric criterion.
Stochastic Criteiron.
BoxInitialCondition
Initial condition for a particle in a box.
STL namespace.
NNbarTreatment
Treatment of N Nbar Annihilation.
IncludedReactions
The different groups of 2 to 2 reactions that one can include.
Sample from uniform distribution.
SphereInitialCondition
Initial condition for a particle in a sphere.
CollisionCriterion
Criteria used to check collisions.
CalculationFrame
The calculation frame.
ThermodynamicQuantity
Represents thermodynamic quantities that can be printed out.
TimeStepMode
The time step mode.
Sample from custom, user-defined distribution.
Don&#39;t use time steps; propagate from action to action.
Sample from areal / quadratic distribution.
Don&#39;t use fermi motion.
std::bitset< 10 > ReactionsBitSet
Container for the 2 to 2 reactions in the code.
Use fermi motion without potentials.
Use string fragmentation.
Use fixed time step.
Use intermediate Resonances.
ExpansionMode
Defines properties of expansion for the metric (e.g.
Sampling
Possible methods of impact parameter sampling.
Use fermi motion in combination with potentials.
Definition: action.h:24