feat(sandbox): added example input params

This commit is contained in:
2026-06-02 17:02:19 +02:00
parent 22083d5d11
commit 3d2eb46d0d
7 changed files with 50 additions and 27 deletions

View File

@@ -0,0 +1,2 @@
cli11_proj = subproject('cli11')
cli11_dep = cli11_proj.get_variable('CLI11_dep')

View File

@@ -2,4 +2,5 @@ cmake = import('cmake')
subdir('fourdst') subdir('fourdst')
subdir('xxHash') subdir('xxHash')
subdir('CLI11')

View File

@@ -44,7 +44,7 @@ namespace fourdst::composition::io {
L09 L09
}; };
std::unordered_map<SolarCompositions, std::string> SolarCompositions_to_string_map = { inline std::unordered_map<SolarCompositions, std::string> SolarCompositions_to_string_map = {
{SolarCompositions::AG89, "AG89"}, {SolarCompositions::AG89, "AG89"},
{SolarCompositions::GN93, "GN93"}, {SolarCompositions::GN93, "GN93"},
{SolarCompositions::GS98, "GS98"}, {SolarCompositions::GS98, "GS98"},
@@ -57,7 +57,7 @@ namespace fourdst::composition::io {
{SolarCompositions::L09, "L09"} {SolarCompositions::L09, "L09"}
}; };
std::unordered_map<IsotopicPercentages, std::string> IsotopicPercentages_to_string_map = { inline std::unordered_map<IsotopicPercentages, std::string> IsotopicPercentages_to_string_map = {
{IsotopicPercentages::L03, "L03"}, {IsotopicPercentages::L03, "L03"},
{IsotopicPercentages::L09, "L09"} {IsotopicPercentages::L09, "L09"}
}; };
@@ -114,9 +114,9 @@ namespace fourdst::composition {
double initial_z, double initial_z,
double initial_y); double initial_y);
[[nodiscard]] Composition get_composition_record(const SolarCompositions metal_fraction_scheme, // [[nodiscard]] Composition get_composition_record(const SolarCompositions metal_fraction_scheme,
const IsotopicPercentages isotopic_percentage_scheme, // const IsotopicPercentages isotopic_percentage_scheme,
double initial_z, // double initial_z,
double initial_y); // double initial_y);
} }

View File

@@ -344,15 +344,15 @@ namespace fourdst::composition {
} }
Composition get_composition_record(const SolarCompositions metal_fraction_scheme, // Composition get_composition_record(const io::SolarCompositions metal_fraction_scheme,
const IsotopicPercentages isotopic_percentage_scheme, // const io::IsotopicPercentages isotopic_percentage_scheme,
double initial_z, // double initial_z,
double initial_y) { // double initial_y) {
return get_composition_record( // return get_composition_record(
SolarComposition_to_string_map.at(metal_fraction_scheme), // io::SolarComposition_to_string_map.at(metal_fraction_scheme),
IsotopicPercentages_to_string.at(isotopic_percentage_scheme), // io::IsotopicPercentages_to_string.at(isotopic_percentage_scheme),
initial_z, // initial_z,
initial_y // initial_y
); // );
} // }
} }

10
subprojects/cli11.wrap Normal file
View File

@@ -0,0 +1,10 @@
[wrap-file]
directory = CLI11-2.6.1
source_url = https://github.com/CLIUtils/CLI11/archive/refs/tags/v2.6.1.tar.gz
source_filename = CLI11-2.6.1.tar.gz
source_hash = 377691f3fac2b340f12a2f79f523c780564578ba3d6eaf5238e9f35895d5ba95
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/cli11_2.6.1-1/CLI11-2.6.1.tar.gz
wrapdb_version = 2.6.1-1
[provide]
dependency_names = CLI11

View File

@@ -1 +1 @@
executable('sandbox', 'sandbox.cpp', dependencies: [species_weight_dep, composition_dep, config_dep,]) executable('sandbox', 'sandbox.cpp', dependencies: [species_weight_dep, composition_dep, config_dep, cli11_dep])

View File

@@ -15,6 +15,8 @@
#include <unordered_map> #include <unordered_map>
#include <print> #include <print>
#include <ranges> #include <ranges>
#include <algorithm>
#include "CLI/CLI.hpp"
int main(int argc, char** argv) { int main(int argc, char** argv) {
@@ -23,21 +25,29 @@ int main(int argc, char** argv) {
// Options for metal_frac_scheme: ['AG89', 'GN93', 'GS98', 'L03', 'AGS05', 'AGSS09', 'A09_Przybilla', 'MB22_photospheric', 'AAG21_photospheric', 'L09'] // Options for metal_frac_scheme: ['AG89', 'GN93', 'GS98', 'L03', 'AGS05', 'AGSS09', 'A09_Przybilla', 'MB22_photospheric', 'AAG21_photospheric', 'L09']
// Options for isotopic percentage scheme: [L03_data, L09_data] // Options for isotopic percentage scheme: [L03_data, L09_data]
double initial_z;
std::string metal_fraction_scheme;
// CLI::App app("Loading Z fractions"); auto keys = fourdst::composition::io::SolarCompositions_to_string_map | std::views::values | std::ranges::to<std::vector>();
// fourdst::config::Config<Options> config; CLI::App app("Example App To Load Solar Composition");
// fourdst::config::register_as_cli(config, app); app.add_option("-z,--initial_z", initial_z, "Initial Z")->required();
// app.parse(argc, argv) app.add_option("-c,--solar-composition", metal_fraction_scheme)->
check(
CLI::IsMember(
keys,
CLI::ignore_case)
);
std::string metal_fraction_scheme, isotopic_percentage_scheme; CLI11_PARSE(app, argc, argv);
double initial_z, initial_y;
std::string isotopic_percentage_scheme;
double initial_y;
// the following four should be user input // the following four should be user input
// initial_y can be optional // initial_y can be optional
initial_z = 0.02; // initial_z = 0.02;
initial_y = 0.24 + 2*initial_z; initial_y = 0.24 + 2*initial_z;
metal_fraction_scheme = "AG89";
isotopic_percentage_scheme = "L03_data"; isotopic_percentage_scheme = "L03_data";
fourdst::composition::io::ChemicalFileParser parser; fourdst::composition::io::ChemicalFileParser parser;