Version: SMASH-1.5
forwarddeclarations.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2018
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 
83 
85 enum class CalculationFrame {
89 };
90 
92 enum class FermiMotion {
94  Off,
96  On,
98  Frozen,
99 };
100 
102 enum class Sampling {
104  Uniform,
106  Quadratic,
108  Custom,
109 };
110 
112 enum class TimeStepMode : char {
114  None,
116  Fixed,
117 };
118 
133 };
134 
150  IC_ES,
151  IC_1M,
152  IC_2M,
153  IC_Massive,
154 };
155 
164 enum class ExpansionMode {
165  NoExpansion,
166  MasslessFRW,
167  MassiveFRW,
168  Exponential,
169 };
170 
172 enum class NNbarTreatment {
176  Resonances,
178  Strings,
179 };
180 
182 enum class ThermodynamicQuantity : char {
184  Tmn,
185  TmnLandau,
187 };
188 
191  All = 50,
192  Elastic = 0,
193  NN_to_NR = 1,
194  NN_to_DR = 2,
195  KN_to_KN = 3,
198 };
199 
201 typedef std::bitset<6> ReactionsBitSet;
202 
213  ModeSampling,
214  BiasedBF,
215  UnbiasedBF,
216 };
217 
219 using ActionPtr = build_unique_ptr_<Action>;
220 using ScatterActionPtr = build_unique_ptr_<ScatterAction>;
221 using ActionList = build_vector_<ActionPtr>;
222 
223 using OutputPtr = build_unique_ptr_<OutputInterface>;
224 using OutputsList = build_vector_<OutputPtr>;
225 
226 using ParticleList = build_vector_<ParticleData>;
227 using ParticleTypeList = build_vector_<ParticleType>;
228 using ParticleTypePtrList = build_vector_<ParticleTypePtr>;
229 using IsoParticleTypeList = build_vector_<IsoParticleType>;
230 
231 template <typename T>
232 using ProcessBranchPtr = build_unique_ptr_<T>;
233 template <typename T>
234 using ProcessBranchList = build_vector_<ProcessBranchPtr<T>>;
235 using DecayBranchPtr = build_unique_ptr_<DecayBranch>;
236 using DecayBranchList = build_vector_<DecayBranchPtr>;
237 using CollisionBranchPtr = build_unique_ptr_<CollisionBranch>;
238 using CollisionBranchList = build_vector_<CollisionBranchPtr>;
239 
240 using TabulationPtr = build_unique_ptr_<Tabulation>;
241 using ExperimentPtr = build_unique_ptr_<ExperimentBase>;
242 using DecayTypePtr = build_unique_ptr_<DecayType>;
243 
244 namespace bf = boost::filesystem;
246 
247 } // namespace smash
248 
249 #endif // SRC_INCLUDE_FORWARDDECLARATIONS_H_
ThermalizationAlgorithm
Defines the algorithm used for the forced thermalization.
FermiMotion
Option to use Fermi Motion.
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.
CalculationFrame
The calculation frame.
ThermodynamicQuantity
Represents thermodynamic quantities that can be printed out.
TimeStepMode
The time step mode.
Sample from custom, user-defined distribution.
Sample from areal / quadratic distribution.
Don&#39;t use fermi motion.
std::bitset< 6 > 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