10 #ifndef SRC_INCLUDE_SMASH_INPUT_KEYS_H_
11 #define SRC_INCLUDE_SMASH_INPUT_KEYS_H_
1444 {
"2.1",
"3.0",
"3.0"}};
2067 {
"1.0",
"3.0",
"3.2"}};
2302 {
"2.2",
"3.1",
"3.2"}};
2327 "Ignore_Minimum_Decay_Width_For_Decays_At_The_End",
2774 std::make_pair(3.5, 4.5),
2791 std::make_pair(1.9, 2.2),
3834 std::array<double, 2>{{0.0, 0.0}},
4429 std::array<double, 3>{{0.0, 0.0, 0.0}},
4798 std::vector<std::string>{
"ID",
"charge"},
4880 std::vector<std::string>{
"ID",
"charge"},
4979 std::vector<std::string>{},
4986 std::vector<std::string>{},
4993 std::vector<std::string>{},
5006 std::vector<std::string>{},
5023 std::vector<std::string>{},
5067 std::vector<std::string>{},
5124 std::vector<std::string>{},
5175 std::vector<std::string>{},
5212 std::vector<std::string>{},
5250 std::vector<std::string>{},
5266 {
"1.8",
"3.2",
"3.3"}};
5281 {
"1.7",
"3.2",
"3.3"}};
5296 {
"2.2",
"3.2",
"3.3"}};
5311 {
"2.2",
"3.2",
"3.3"}};
5558 std::array<double, 3>{{0.0, 0.0, 0.0}},
5588 std::set<ThermodynamicQuantity>{},
6036 std::reference_wrapper<const Key<bool>>,
6037 std::reference_wrapper<const Key<int>>,
6038 std::reference_wrapper<const Key<int64_t>>,
6039 std::reference_wrapper<const Key<double>>,
6040 std::reference_wrapper<const Key<std::string>>,
6041 std::reference_wrapper<const Key<std::array<int, 3>>>,
6042 std::reference_wrapper<const Key<std::array<double, 2>>>,
6043 std::reference_wrapper<const Key<std::array<double, 3>>>,
6044 std::reference_wrapper<const Key<std::pair<double, double>>>,
6045 std::reference_wrapper<const Key<std::vector<double>>>,
6046 std::reference_wrapper<const Key<std::vector<std::string>>>,
6047 std::reference_wrapper<const Key<std::set<ThermodynamicQuantity>>>,
6048 std::reference_wrapper<const Key<std::map<PdgCode, int>>>,
6049 std::reference_wrapper<const Key<std::map<std::string, std::string>>>,
6050 std::reference_wrapper<const Key<einhard::LogLevel>>,
6051 std::reference_wrapper<const Key<BoxInitialCondition>>,
6052 std::reference_wrapper<const Key<CalculationFrame>>,
6053 std::reference_wrapper<const Key<CollisionCriterion>>,
6054 std::reference_wrapper<const Key<DensityType>>,
6055 std::reference_wrapper<const Key<DerivativesMode>>,
6056 std::reference_wrapper<const Key<ExpansionMode>>,
6057 std::reference_wrapper<const Key<FermiMotion>>,
6058 std::reference_wrapper<const Key<FieldDerivativesMode>>,
6059 std::reference_wrapper<const Key<FluidizableProcessesBitSet>>,
6060 std::reference_wrapper<const Key<FluidizationType>>,
6061 std::reference_wrapper<const Key<MultiParticleReactionsBitSet>>,
6062 std::reference_wrapper<const Key<SpinInteractionType>>,
6063 std::reference_wrapper<const Key<NNbarTreatment>>,
6064 std::reference_wrapper<const Key<OutputOnlyFinal>>,
6065 std::reference_wrapper<const Key<PdgCode>>,
6066 std::reference_wrapper<const Key<PseudoResonance>>,
6067 std::reference_wrapper<const Key<ReactionsBitSet>>,
6068 std::reference_wrapper<const Key<RestFrameDensityDerivativesMode>>,
6069 std::reference_wrapper<const Key<Sampling>>,
6070 std::reference_wrapper<const Key<SmearingMode>>,
6071 std::reference_wrapper<const Key<SphereInitialCondition>>,
6072 std::reference_wrapper<const Key<ThermalizationAlgorithm>>,
6073 std::reference_wrapper<const Key<TimeStepMode>>,
6074 std::reference_wrapper<const Key<TotalCrossSectionStrategy>>>;
6077 inline static const std::vector<key_references_variant>
list = {
6384 return get_key_reference<einhard::LogLevel>({
"Logging", std::string{area}});
6394 std::string_view content) {
6395 return get_key_reference<std::vector<std::string>>(
6396 {
"Output", std::string{content},
"Format"});
6413 template <
typename T>
6415 using key_reference = std::reference_wrapper<const Key<T>>;
6417 if (candidate.has_value()) {
6418 return std::get<key_reference>(candidate.value());
6420 throw std::invalid_argument(
"No database key with keys \"" +
6421 join(labels,
": ") +
"\" was found.");
6435 if (labels.size() == 0)
6436 return std::nullopt;
6437 auto iterator_to_key_references_variant =
6441 [&labels](
auto &&arg) {
6442 return arg.get().has_same_labels(labels);
6447 return std::nullopt;
6449 return *iterator_to_key_references_variant;
default_type default_value() const
Get the default value of the key.
This is the main include file for Einhard.
@ Off
Don't use fermi motion.
std::bitset< 10 > ReactionsBitSet
Container for the 2 to 2 reactions in the code.
@ Strings
Use string fragmentation.
@ Fixed
Use fixed time step.
std::bitset< 5 > FluidizableProcessesBitSet
@ TopDownMeasured
Mix the two above, using the parametrizations only for measured processes, and summing up partials fo...
@ Quadratic
Sample from areal / quadratic distribution.
std::bitset< 4 > MultiParticleReactionsBitSet
Container for the n to m reactions in the code.
@ Covariant
Covariant Criterion.
@ ThermalMomentaBoltzmann
A thermalized ensemble is generated, with momenta sampled from a Maxwell-Boltzmann distribution.
@ LargestFromUnstable
Heaviest possible resonance from processes with at least one resonance in the incoming particles.
@ Yes
Print only final-state particles.
@ Off
No spin interactions.
std::vector< std::string > KeyLabels
Descriptive alias for storing key labels, i.e.
@ Dependent
Default value which depends on other keys
std::string join(const std::vector< std::string > &v, const std::string &delim)
Join strings using delimiter.
std::variant< std::reference_wrapper< const Key< bool > >, std::reference_wrapper< const Key< int > >, std::reference_wrapper< const Key< int64_t > >, std::reference_wrapper< const Key< double > >, std::reference_wrapper< const Key< std::string > >, std::reference_wrapper< const Key< std::array< int, 3 > >>, std::reference_wrapper< const Key< std::array< double, 2 > >>, std::reference_wrapper< const Key< std::array< double, 3 > >>, std::reference_wrapper< const Key< std::pair< double, double > >>, std::reference_wrapper< const Key< std::vector< double > >>, std::reference_wrapper< const Key< std::vector< std::string > >>, std::reference_wrapper< const Key< std::set< ThermodynamicQuantity > >>, std::reference_wrapper< const Key< std::map< PdgCode, int > >>, std::reference_wrapper< const Key< std::map< std::string, std::string > >>, std::reference_wrapper< const Key< einhard::LogLevel > >, std::reference_wrapper< const Key< BoxInitialCondition > >, std::reference_wrapper< const Key< CalculationFrame > >, std::reference_wrapper< const Key< CollisionCriterion > >, std::reference_wrapper< const Key< DensityType > >, std::reference_wrapper< const Key< DerivativesMode > >, std::reference_wrapper< const Key< ExpansionMode > >, std::reference_wrapper< const Key< FermiMotion > >, std::reference_wrapper< const Key< FieldDerivativesMode > >, std::reference_wrapper< const Key< FluidizableProcessesBitSet > >, std::reference_wrapper< const Key< FluidizationType > >, std::reference_wrapper< const Key< MultiParticleReactionsBitSet > >, std::reference_wrapper< const Key< SpinInteractionType > >, std::reference_wrapper< const Key< NNbarTreatment > >, std::reference_wrapper< const Key< OutputOnlyFinal > >, std::reference_wrapper< const Key< PdgCode > >, std::reference_wrapper< const Key< PseudoResonance > >, std::reference_wrapper< const Key< ReactionsBitSet > >, std::reference_wrapper< const Key< RestFrameDensityDerivativesMode > >, std::reference_wrapper< const Key< Sampling > >, std::reference_wrapper< const Key< SmearingMode > >, std::reference_wrapper< const Key< SphereInitialCondition > >, std::reference_wrapper< const Key< ThermalizationAlgorithm > >, std::reference_wrapper< const Key< TimeStepMode > >, std::reference_wrapper< const Key< TotalCrossSectionStrategy > >> key_references_variant
Alias for the type to be used in the list of keys.