diff --git a/src/composition/include/fourdst/composition/io/standard_compositions.h b/src/composition/include/fourdst/composition/io/standard_compositions.h index 7235138..47d2f46 100644 --- a/src/composition/include/fourdst/composition/io/standard_compositions.h +++ b/src/composition/include/fourdst/composition/io/standard_compositions.h @@ -25,6 +25,43 @@ namespace fourdst::composition::io { std::vector mass_numbers; std::vector percentages; }; + + enum class SolarCompositions { + AG89, + GN93, + GS98, + L03, + AGS05, + AGS09, + A09_Pryzbilla, + MB22_photospheric, + AAG21_photospheric, + L09 + }; + + enum class IsotopicPercentages { + L03, + L09 + }; + + std::unordered_map SolarCompositions_to_string_map = { + {SolarCompositions::AG89, "AG89"}, + {SolarCompositions::GN93, "GN93"}, + {SolarCompositions::GS98, "GS98"}, + {SolarCompositions::L03, "L03"}, + {SolarCompositions::AGS05, "AGS05"}, + {SolarCompositions::AGS09, "AGS09"}, + {SolarCompositions::A09_Pryzbilla, "A09_Pryzbilla"}, + {SolarCompositions::MB22_photospheric, "MB22_photospheric"}, + {SolarCompositions::AAG21_photospheric, "AAG21_photospheric"}, + {SolarCompositions::L09, "L09"} + }; + + std::unordered_map IsotopicPercentages_to_string_map = { + {IsotopicPercentages::L03, "L03"}, + {IsotopicPercentages::L09, "L09"} + }; + /** * @class ChemicalFileParser * @brief An abstract base class for chemical file parsers. @@ -73,7 +110,13 @@ namespace fourdst::composition::io { namespace fourdst::composition { [[nodiscard]] Composition get_composition_record(const std::string& metal_fraction_scheme, - const std::string& isotopic_percentage_scheme, - double initial_z, double initial_y); + const std::string& isotopic_percentage_scheme, + double initial_z, + double initial_y); -} \ No newline at end of file + [[nodiscard]] Composition get_composition_record(const SolarCompositions metal_fraction_scheme, + const IsotopicPercentages isotopic_percentage_scheme, + double initial_z, + double initial_y); + +} diff --git a/src/composition/lib/io/standard_compositions.cpp b/src/composition/lib/io/standard_compositions.cpp index 0425d40..32ee63c 100644 --- a/src/composition/lib/io/standard_compositions.cpp +++ b/src/composition/lib/io/standard_compositions.cpp @@ -343,4 +343,16 @@ namespace fourdst::composition { return comp; } -} \ No newline at end of file + + Composition get_composition_record(const SolarCompositions metal_fraction_scheme, + const IsotopicPercentages isotopic_percentage_scheme, + double initial_z, + double initial_y) { + return get_composition_record( + SolarComposition_to_string_map.at(metal_fraction_scheme), + IsotopicPercentages_to_string.at(isotopic_percentage_scheme), + initial_z, + initial_y + ); + } +}