From 3d2eb46d0dcf5816e7de54a58006e72e0a8b9d94 Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Tue, 2 Jun 2026 17:02:19 +0200 Subject: [PATCH] feat(sandbox): added example input params --- build-config/CLI11/meson.build | 2 ++ build-config/meson.build | 1 + .../composition/io/standard_compositions.h | 12 ++++---- .../lib/io/standard_compositions.cpp | 22 +++++++-------- subprojects/cli11.wrap | 10 +++++++ tests/composition/sandbox/meson.build | 2 +- tests/composition/sandbox/sandbox.cpp | 28 +++++++++++++------ 7 files changed, 50 insertions(+), 27 deletions(-) create mode 100644 build-config/CLI11/meson.build create mode 100644 subprojects/cli11.wrap diff --git a/build-config/CLI11/meson.build b/build-config/CLI11/meson.build new file mode 100644 index 0000000..a8549f3 --- /dev/null +++ b/build-config/CLI11/meson.build @@ -0,0 +1,2 @@ +cli11_proj = subproject('cli11') +cli11_dep = cli11_proj.get_variable('CLI11_dep') \ No newline at end of file diff --git a/build-config/meson.build b/build-config/meson.build index 5174d60..59bb535 100644 --- a/build-config/meson.build +++ b/build-config/meson.build @@ -2,4 +2,5 @@ cmake = import('cmake') subdir('fourdst') subdir('xxHash') +subdir('CLI11') diff --git a/src/composition/include/fourdst/composition/io/standard_compositions.h b/src/composition/include/fourdst/composition/io/standard_compositions.h index 47d2f46..3940010 100644 --- a/src/composition/include/fourdst/composition/io/standard_compositions.h +++ b/src/composition/include/fourdst/composition/io/standard_compositions.h @@ -44,7 +44,7 @@ namespace fourdst::composition::io { L09 }; - std::unordered_map SolarCompositions_to_string_map = { + inline std::unordered_map SolarCompositions_to_string_map = { {SolarCompositions::AG89, "AG89"}, {SolarCompositions::GN93, "GN93"}, {SolarCompositions::GS98, "GS98"}, @@ -57,7 +57,7 @@ namespace fourdst::composition::io { {SolarCompositions::L09, "L09"} }; - std::unordered_map IsotopicPercentages_to_string_map = { + inline std::unordered_map IsotopicPercentages_to_string_map = { {IsotopicPercentages::L03, "L03"}, {IsotopicPercentages::L09, "L09"} }; @@ -114,9 +114,9 @@ namespace fourdst::composition { double initial_z, double initial_y); - [[nodiscard]] Composition get_composition_record(const SolarCompositions metal_fraction_scheme, - const IsotopicPercentages isotopic_percentage_scheme, - double initial_z, - double initial_y); + // [[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 32ee63c..e7126a0 100644 --- a/src/composition/lib/io/standard_compositions.cpp +++ b/src/composition/lib/io/standard_compositions.cpp @@ -344,15 +344,15 @@ namespace fourdst::composition { } - 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 - ); - } + // Composition get_composition_record(const io::SolarCompositions metal_fraction_scheme, + // const io::IsotopicPercentages isotopic_percentage_scheme, + // double initial_z, + // double initial_y) { + // return get_composition_record( + // io::SolarComposition_to_string_map.at(metal_fraction_scheme), + // io::IsotopicPercentages_to_string.at(isotopic_percentage_scheme), + // initial_z, + // initial_y + // ); + // } } diff --git a/subprojects/cli11.wrap b/subprojects/cli11.wrap new file mode 100644 index 0000000..0072590 --- /dev/null +++ b/subprojects/cli11.wrap @@ -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 \ No newline at end of file diff --git a/tests/composition/sandbox/meson.build b/tests/composition/sandbox/meson.build index 0469d10..6e0a825 100644 --- a/tests/composition/sandbox/meson.build +++ b/tests/composition/sandbox/meson.build @@ -1 +1 @@ -executable('sandbox', 'sandbox.cpp', dependencies: [species_weight_dep, composition_dep, config_dep,]) \ No newline at end of file +executable('sandbox', 'sandbox.cpp', dependencies: [species_weight_dep, composition_dep, config_dep, cli11_dep]) \ No newline at end of file diff --git a/tests/composition/sandbox/sandbox.cpp b/tests/composition/sandbox/sandbox.cpp index 3c70505..196f7f5 100644 --- a/tests/composition/sandbox/sandbox.cpp +++ b/tests/composition/sandbox/sandbox.cpp @@ -15,6 +15,8 @@ #include #include #include +#include +#include "CLI/CLI.hpp" 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 isotopic percentage scheme: [L03_data, L09_data] - - // CLI::App app("Loading Z fractions"); + double initial_z; + std::string metal_fraction_scheme; - // fourdst::config::Config config; - // fourdst::config::register_as_cli(config, app); - // app.parse(argc, argv) + auto keys = fourdst::composition::io::SolarCompositions_to_string_map | std::views::values | std::ranges::to(); - std::string metal_fraction_scheme, isotopic_percentage_scheme; - double initial_z, initial_y; + CLI::App app("Example App To Load Solar Composition"); + app.add_option("-z,--initial_z", initial_z, "Initial Z")->required(); + app.add_option("-c,--solar-composition", metal_fraction_scheme)-> + check( + CLI::IsMember( + keys, + CLI::ignore_case) + ); + + CLI11_PARSE(app, argc, argv); + + std::string isotopic_percentage_scheme; + double initial_y; // the following four should be user input // initial_y can be optional - initial_z = 0.02; + // initial_z = 0.02; initial_y = 0.24 + 2*initial_z; - metal_fraction_scheme = "AG89"; isotopic_percentage_scheme = "L03_data"; fourdst::composition::io::ChemicalFileParser parser;