Version: SMASH-1.6
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 
193  All = 50,
194  Elastic = 0,
195  NN_to_NR = 1,
196  NN_to_DR = 2,
197  KN_to_KN = 3,
200 };
201 
203 typedef std::bitset<6> ReactionsBitSet;
204 
215  ModeSampling,
216  BiasedBF,
217  UnbiasedBF,
218 };
219 
221 using ActionPtr = build_unique_ptr_<Action>;
222 using ScatterActionPtr = build_unique_ptr_<ScatterAction>;
223 using ActionList = build_vector_<ActionPtr>;
224 
225 using OutputPtr = build_unique_ptr_<OutputInterface>;
226 using OutputsList = build_vector_<OutputPtr>;
227 
228 using ParticleList = build_vector_<ParticleData>;
229 using ParticleTypeList = build_vector_<ParticleType>;
230 using ParticleTypePtrList = build_vector_<ParticleTypePtr>;
231 using IsoParticleTypeList = build_vector_<IsoParticleType>;
232 
233 template <typename T>
234 using ProcessBranchPtr = build_unique_ptr_<T>;
235 template <typename T>
236 using ProcessBranchList = build_vector_<ProcessBranchPtr<T>>;
237 using DecayBranchPtr = build_unique_ptr_<DecayBranch>;
238 using DecayBranchList = build_vector_<DecayBranchPtr>;
239 using CollisionBranchPtr = build_unique_ptr_<CollisionBranch>;
240 using CollisionBranchList = build_vector_<CollisionBranchPtr>;
241 
242 using TabulationPtr = build_unique_ptr_<Tabulation>;
243 using ExperimentPtr = build_unique_ptr_<ExperimentBase>;
244 using DecayTypePtr = build_unique_ptr_<DecayType>;
245 
246 namespace bf = boost::filesystem;
248 
249 } // namespace smash
250 
251 #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.
Don&#39;t use time steps; propagate from action to action.
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