10 #ifndef SRC_INCLUDE_SMASH_INPUT_KEYS_H_
11 #define SRC_INCLUDE_SMASH_INPUT_KEYS_H_
1395 {
"2.1",
"3.0",
"3.0"}};
1986 {
"1.0",
"3.0",
"3.2"}};
2222 {
"2.2",
"3.1",
"3.2"}};
2247 "Ignore_Minimum_Decay_Width_For_Decays_At_The_End",
2673 std::make_pair(3.5, 4.5),
2690 std::make_pair(1.9, 2.2),
3733 std::array<double, 2>{{0.0, 0.0}},
4659 std::vector<std::string>{},
4666 std::vector<std::string>{},
4673 std::vector<std::string>{},
4686 std::vector<std::string>{},
4703 std::vector<std::string>{},
4746 {
"Output",
"Particles",
"Quantities"},
4747 std::vector<std::string>{},
4804 std::vector<std::string>{},
5202 std::array<double, 3>{{0.0, 0.0, 0.0}},
5232 std::set<ThermodynamicQuantity>{},
5680 std::reference_wrapper<const Key<bool>>,
5681 std::reference_wrapper<const Key<int>>,
5682 std::reference_wrapper<const Key<int64_t>>,
5683 std::reference_wrapper<const Key<double>>,
5684 std::reference_wrapper<const Key<std::string>>,
5685 std::reference_wrapper<const Key<std::array<int, 3>>>,
5686 std::reference_wrapper<const Key<std::array<double, 2>>>,
5687 std::reference_wrapper<const Key<std::array<double, 3>>>,
5688 std::reference_wrapper<const Key<std::pair<double, double>>>,
5689 std::reference_wrapper<const Key<std::vector<double>>>,
5690 std::reference_wrapper<const Key<std::vector<std::string>>>,
5691 std::reference_wrapper<const Key<std::set<ThermodynamicQuantity>>>,
5692 std::reference_wrapper<const Key<std::map<PdgCode, int>>>,
5693 std::reference_wrapper<const Key<std::map<std::string, std::string>>>,
5694 std::reference_wrapper<const Key<einhard::LogLevel>>,
5695 std::reference_wrapper<const Key<BoxInitialCondition>>,
5696 std::reference_wrapper<const Key<CalculationFrame>>,
5697 std::reference_wrapper<const Key<CollisionCriterion>>,
5698 std::reference_wrapper<const Key<DensityType>>,
5699 std::reference_wrapper<const Key<DerivativesMode>>,
5700 std::reference_wrapper<const Key<ExpansionMode>>,
5701 std::reference_wrapper<const Key<FermiMotion>>,
5702 std::reference_wrapper<const Key<FieldDerivativesMode>>,
5703 std::reference_wrapper<const Key<FluidizableProcessesBitSet>>,
5704 std::reference_wrapper<const Key<FluidizationType>>,
5705 std::reference_wrapper<const Key<MultiParticleReactionsBitSet>>,
5706 std::reference_wrapper<const Key<NNbarTreatment>>,
5707 std::reference_wrapper<const Key<OutputOnlyFinal>>,
5708 std::reference_wrapper<const Key<PdgCode>>,
5709 std::reference_wrapper<const Key<PseudoResonance>>,
5710 std::reference_wrapper<const Key<ReactionsBitSet>>,
5711 std::reference_wrapper<const Key<RestFrameDensityDerivativesMode>>,
5712 std::reference_wrapper<const Key<Sampling>>,
5713 std::reference_wrapper<const Key<SmearingMode>>,
5714 std::reference_wrapper<const Key<SphereInitialCondition>>,
5715 std::reference_wrapper<const Key<ThermalizationAlgorithm>>,
5716 std::reference_wrapper<const Key<TimeStepMode>>,
5717 std::reference_wrapper<const Key<TotalCrossSectionStrategy>>>;
5720 inline static const std::vector<key_references_variant>
list = {
6014 return get_key_reference<einhard::LogLevel>({
"Logging", std::string{area}});
6024 std::string_view content) {
6025 return get_key_reference<std::vector<std::string>>(
6026 {
"Output", std::string{content},
"Format"});
6043 template <
typename T>
6045 using key_reference = std::reference_wrapper<const Key<T>>;
6047 if (candidate.has_value()) {
6048 return std::get<key_reference>(candidate.value());
6050 throw std::invalid_argument(
"No database key with keys \"" +
6051 join(labels,
": ") +
"\" was found.");
6065 if (labels.size() == 0)
6066 return std::nullopt;
6067 auto iterator_to_key_references_variant =
6071 [&labels](
auto &&arg) {
6072 return arg.get().has_same_labels(labels);
6077 return std::nullopt;
6079 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.
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< 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.