Version: SMASH-2.0
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_SMASH_FORWARDDECLARATIONS_H_
11 #define SRC_INCLUDE_SMASH_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 ScatterActionMulti;
61 class BoxModus;
62 class Clock;
63 class Configuration;
64 class CrossSections;
65 class DecayModes;
66 class DecayType;
67 class FourVector;
68 class ThreeVector;
69 class ModusDefault;
70 class OutputInterface;
71 class ParticleData;
72 class Particles;
73 class ParticleType;
74 class ParticleTypePtr;
75 class IsoParticleType;
76 class PdgCode;
77 class DecayBranch;
78 class CollisionBranch;
79 class Tabulation;
80 class ExperimentBase;
81 struct ExperimentParameters;
82 struct Nucleoncorr;
83 
85 
87 enum class CalculationFrame {
91 };
92 
94 enum class FermiMotion {
96  Off,
98  On,
100  Frozen,
101 };
102 
104 enum class Sampling {
106  Uniform,
108  Quadratic,
110  Custom,
111 };
112 
114 enum class TimeStepMode : char {
116  None,
118  Fixed,
119 };
120 
136 };
137 
154  IC_ES,
155  IC_1M,
156  IC_2M,
157  IC_Massive,
158 };
159 
168 enum class ExpansionMode {
169  NoExpansion,
170  MasslessFRW,
171  MassiveFRW,
172  Exponential,
173 };
174 
176 enum class NNbarTreatment {
180  Resonances,
182  Strings,
183 };
184 
186 enum class ThermodynamicQuantity : char {
188  Tmn,
189  TmnLandau,
191  j_QBS
192 };
193 
195 enum class CollisionCriterion {
197  Geometric,
199  Stochastic,
201  Covariant
202 };
203 
205 enum class OutputOnlyFinal {
207  Yes,
209  No,
212  IfNotEmpty,
213 };
214 
217  All = 50,
218  Elastic = 0,
219  NN_to_NR = 1,
220  NN_to_DR = 2,
221  KN_to_KN = 3,
224  NNbar = 6,
228 };
229 
231 typedef std::bitset<10> ReactionsBitSet;
232 
237 };
238 
240 typedef std::bitset<2> MultiParticleReactionsBitSet;
241 
252  ModeSampling,
253  BiasedBF,
254  UnbiasedBF,
255 };
256 
258 using ActionPtr = build_unique_ptr_<Action>;
259 using ScatterActionPtr = build_unique_ptr_<ScatterAction>;
260 using ScatterActionMultiPtr = build_unique_ptr_<ScatterActionMulti>;
261 using ActionList = build_vector_<ActionPtr>;
262 
263 using OutputPtr = build_unique_ptr_<OutputInterface>;
264 using OutputsList = build_vector_<OutputPtr>;
265 
266 using ParticleList = build_vector_<ParticleData>;
267 using ParticleTypeList = build_vector_<ParticleType>;
268 using ParticleTypePtrList = build_vector_<ParticleTypePtr>;
269 using IsoParticleTypeList = build_vector_<IsoParticleType>;
270 
271 template <typename T>
272 using ProcessBranchPtr = build_unique_ptr_<T>;
273 template <typename T>
274 using ProcessBranchList = build_vector_<ProcessBranchPtr<T>>;
275 using DecayBranchPtr = build_unique_ptr_<DecayBranch>;
276 using DecayBranchList = build_vector_<DecayBranchPtr>;
277 using CollisionBranchPtr = build_unique_ptr_<CollisionBranch>;
278 using CollisionBranchList = build_vector_<CollisionBranchPtr>;
279 
280 using TabulationPtr = build_unique_ptr_<Tabulation>;
281 using ExperimentPtr = build_unique_ptr_<ExperimentBase>;
282 using DecayTypePtr = build_unique_ptr_<DecayType>;
283 
284 namespace bf = boost::filesystem;
286 
287 } // namespace smash
288 
289 #endif // SRC_INCLUDE_SMASH_FORWARDDECLARATIONS_H_
SphereInitialCondition::IC_Massive
smash
Definition: action.h:24
NN_to_DR
Definition: forwarddeclarations.h:220
ThermodynamicQuantity::TmnLandau
Sampling::Quadratic
Sample from areal / quadratic distribution.
CalculationFrame::CenterOfVelocity
ThermodynamicQuantity::LandauVelocity
TimeStepMode
TimeStepMode
The time step mode.
Definition: forwarddeclarations.h:114
SphereInitialCondition::IC_2M
OutputOnlyFinal
OutputOnlyFinal
Whether and when only final state particles should be printed.
Definition: forwarddeclarations.h:205
IncludedMultiParticleReactions
IncludedMultiParticleReactions
The different groups of multi-particle reactions that one can include.
Definition: forwarddeclarations.h:234
NNbar
Definition: forwarddeclarations.h:224
ExpansionMode::NoExpansion
PiDeuteron_to_NN
Definition: forwarddeclarations.h:225
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:132
Strangeness_exchange
Definition: forwarddeclarations.h:223
IncludedReactions
IncludedReactions
The different groups of 2 to 2 reactions that one can include.
Definition: forwarddeclarations.h:216
Elastic
Definition: forwarddeclarations.h:218
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:231
Sampling::Custom
Sample from custom, user-defined distribution.
MultiParticleReactionsBitSet
std::bitset< 2 > MultiParticleReactionsBitSet
Container for the 2 to 2 reactions in the code.
Definition: forwarddeclarations.h:240
ThermalizationAlgorithm::UnbiasedBF
Deuteron_3to2
Definition: forwarddeclarations.h:236
ThermalizationAlgorithm
ThermalizationAlgorithm
Defines the algorithm used for the forced thermalization.
Definition: forwarddeclarations.h:251
OutputOnlyFinal::IfNotEmpty
Print only final-state particles, and those only if the event is not empty.
CollisionCriterion::Stochastic
Stochastic Criteiron.
CollisionCriterion::Covariant
Covariant Criterion.
Sampling
Sampling
Possible methods of impact parameter sampling.
Definition: forwarddeclarations.h:104
ThermodynamicQuantity::Tmn
SphereInitialCondition::IC_1M
ExpansionMode::MassiveFRW
All
Definition: forwarddeclarations.h:217
BoxInitialCondition::ThermalMomentaQuantum
CollisionCriterion
CollisionCriterion
Criteria used to check collisions.
Definition: forwarddeclarations.h:195
ExpansionMode::MasslessFRW
NDeuteron_to_Ndprime
Definition: forwarddeclarations.h:227
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:151
BoxInitialCondition::ThermalMomentaBoltzmann
KN_to_KN
Definition: forwarddeclarations.h:221
KN_to_KDelta
Definition: forwarddeclarations.h:222
ThermalizationAlgorithm::BiasedBF
NNbarTreatment::Resonances
Use intermediate Resonances.
CalculationFrame
CalculationFrame
The calculation frame.
Definition: forwarddeclarations.h:87
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:186
smash::DensityType::None
NN_to_NR
Definition: forwarddeclarations.h:219
ThermodynamicQuantity::j_QBS
NNbarTreatment
NNbarTreatment
Treatment of N Nbar Annihilation.
Definition: forwarddeclarations.h:176
NNbarTreatment::NoAnnihilation
No Annihilation.
CalculationFrame::CenterOfMass
PiDeuteron_to_pidprime
Definition: forwarddeclarations.h:226
CollisionCriterion::Geometric
(Default) geometric criterion.
ExpansionMode
ExpansionMode
Defines properties of expansion for the metric (e.g.
Definition: forwarddeclarations.h:168
smash::NeedsToWrap::No
TimeStepMode::Fixed
Use fixed time step.
FermiMotion
FermiMotion
Option to use Fermi Motion.
Definition: forwarddeclarations.h:94
Meson_3to1
Definition: forwarddeclarations.h:235