Version: SMASH-1.8
forwarddeclarations.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2020
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 
200 enum class OutputOnlyFinal {
202  Yes,
204  No,
207  IfNotEmpty,
208 };
209 
212  All = 50,
213  Elastic = 0,
214  NN_to_NR = 1,
215  NN_to_DR = 2,
216  KN_to_KN = 3,
219  NNbar = 6,
223 };
224 
226 typedef std::bitset<10> ReactionsBitSet;
227 
238  ModeSampling,
239  BiasedBF,
240  UnbiasedBF,
241 };
242 
244 using ActionPtr = build_unique_ptr_<Action>;
245 using ScatterActionPtr = build_unique_ptr_<ScatterAction>;
246 using ActionList = build_vector_<ActionPtr>;
247 
248 using OutputPtr = build_unique_ptr_<OutputInterface>;
249 using OutputsList = build_vector_<OutputPtr>;
250 
251 using ParticleList = build_vector_<ParticleData>;
252 using ParticleTypeList = build_vector_<ParticleType>;
253 using ParticleTypePtrList = build_vector_<ParticleTypePtr>;
254 using IsoParticleTypeList = build_vector_<IsoParticleType>;
255 
256 template <typename T>
257 using ProcessBranchPtr = build_unique_ptr_<T>;
258 template <typename T>
259 using ProcessBranchList = build_vector_<ProcessBranchPtr<T>>;
260 using DecayBranchPtr = build_unique_ptr_<DecayBranch>;
261 using DecayBranchList = build_vector_<DecayBranchPtr>;
262 using CollisionBranchPtr = build_unique_ptr_<CollisionBranch>;
263 using CollisionBranchList = build_vector_<CollisionBranchPtr>;
264 
265 using TabulationPtr = build_unique_ptr_<Tabulation>;
266 using ExperimentPtr = build_unique_ptr_<ExperimentBase>;
267 using DecayTypePtr = build_unique_ptr_<DecayType>;
268 
269 namespace bf = boost::filesystem;
271 
272 } // namespace smash
273 
274 #endif // SRC_INCLUDE_FORWARDDECLARATIONS_H_
SphereInitialCondition::IC_Massive
smash
Definition: action.h:24
NN_to_DR
Definition: forwarddeclarations.h:215
ThermodynamicQuantity::TmnLandau
Sampling::Quadratic
Sample from areal / quadratic distribution.
CalculationFrame::CenterOfVelocity
ThermodynamicQuantity::LandauVelocity
TimeStepMode
TimeStepMode
The time step mode.
Definition: forwarddeclarations.h:113
SphereInitialCondition::IC_2M
OutputOnlyFinal
OutputOnlyFinal
Whether and when only final state particles should be printed.
Definition: forwarddeclarations.h:200
NNbar
Definition: forwarddeclarations.h:219
ExpansionMode::NoExpansion
PiDeuteron_to_NN
Definition: forwarddeclarations.h:220
ExpansionMode::Exponential
NNbarTreatment::Strings
Use string fragmentation.
FermiMotion::Off
Don't use fermi motion.
BoxInitialCondition
BoxInitialCondition
Initial condition for a particle in a box.
Definition: forwarddeclarations.h:131
Strangeness_exchange
Definition: forwarddeclarations.h:218
IncludedReactions
IncludedReactions
The different groups of 2 to 2 reactions that one can include.
Definition: forwarddeclarations.h:211
Elastic
Definition: forwarddeclarations.h:213
FermiMotion::Frozen
Use fermi motion without potentials.
ReactionsBitSet
std::bitset< 10 > ReactionsBitSet
Container for the 2 to 2 reactions in the code.
Definition: forwarddeclarations.h:226
Sampling::Custom
Sample from custom, user-defined distribution.
ThermalizationAlgorithm::UnbiasedBF
ThermalizationAlgorithm
ThermalizationAlgorithm
Defines the algorithm used for the forced thermalization.
Definition: forwarddeclarations.h:237
OutputOnlyFinal::IfNotEmpty
Print only final-state particles, and those only if the event is not empty.
CollisionCriterion::Stochastic
Stochastic Criteiron.
Sampling
Sampling
Possible methods of impact parameter sampling.
Definition: forwarddeclarations.h:103
ThermodynamicQuantity::Tmn
SphereInitialCondition::IC_1M
ExpansionMode::MassiveFRW
All
Definition: forwarddeclarations.h:212
CollisionCriterion
CollisionCriterion
Criteria used to check collisions.
Definition: forwarddeclarations.h:192
ExpansionMode::MasslessFRW
NDeuteron_to_Ndprime
Definition: forwarddeclarations.h:222
OutputOnlyFinal::Yes
Print only final-state particles.
CalculationFrame::FixedTarget
ThermodynamicQuantity::EckartDensity
ThermalizationAlgorithm::ModeSampling
SphereInitialCondition::IC_ES
SphereInitialCondition
SphereInitialCondition
Initial condition for a particle in a sphere.
Definition: forwarddeclarations.h:149
KN_to_KN
Definition: forwarddeclarations.h:216
KN_to_KDelta
Definition: forwarddeclarations.h:217
ThermalizationAlgorithm::BiasedBF
NNbarTreatment::Resonances
Use intermediate Resonances.
CalculationFrame
CalculationFrame
The calculation frame.
Definition: forwarddeclarations.h:86
BoxInitialCondition::ThermalMomenta
Sampling::Uniform
Sample from uniform distribution.
FermiMotion::On
Use fermi motion in combination with potentials.
BoxInitialCondition::PeakedMomenta
ThermodynamicQuantity
ThermodynamicQuantity
Represents thermodynamic quantities that can be printed out.
Definition: forwarddeclarations.h:183
smash::DensityType::None
NN_to_NR
Definition: forwarddeclarations.h:214
ThermodynamicQuantity::j_QBS
NNbarTreatment
NNbarTreatment
Treatment of N Nbar Annihilation.
Definition: forwarddeclarations.h:173
NNbarTreatment::NoAnnihilation
No Annihilation.
CalculationFrame::CenterOfMass
PiDeuteron_to_pidprime
Definition: forwarddeclarations.h:221
CollisionCriterion::Geometric
(Default) geometric criterion.
ExpansionMode
ExpansionMode
Defines properties of expansion for the metric (e.g.
Definition: forwarddeclarations.h:165
smash::NeedsToWrap::No
TimeStepMode::Fixed
Use fixed time step.
FermiMotion
FermiMotion
Option to use Fermi Motion.
Definition: forwarddeclarations.h:93