feat(graphnet_sandbox): Added CLI

Added cli options for controling temperature, density, and Tmax
This commit is contained in:
2025-11-24 14:55:17 -05:00
parent 1e23c89f8e
commit ce8717b248
2 changed files with 19 additions and 18 deletions

View File

@@ -11,11 +11,14 @@
#include "quill/Logger.h" #include "quill/Logger.h"
#include "quill/Backend.h" #include "quill/Backend.h"
#include "CLI/CLI.hpp"
#include <clocale> #include <clocale>
#include <boost/json/src.hpp> #include <boost/json/src.hpp>
#include "gridfire/reaction/reaclib.h"
static std::terminate_handler g_previousHandler = nullptr; static std::terminate_handler g_previousHandler = nullptr;
boost::json::object g_reaction_contribution_history; boost::json::object g_reaction_contribution_history;
@@ -251,13 +254,22 @@ void callback_main(const gridfire::solver::CVODESolverStrategy::TimestepContext&
record_contribution_callback(ctx); record_contribution_callback(ctx);
} }
int main() { int main(int argc, char** argv) {
using namespace gridfire; using namespace gridfire;
constexpr double temp = 1.5e7; CLI::App app{"GridFire Sandbox Application."};
constexpr double rho = 1.5e2;
constexpr double tMax = 3e17; double temp = 1.5e7;
NetIn netIn = init(temp, rho, tMax); double rho = 1.5e2;
double tMax = 3.1536e+17;
app.add_option("-t,--temp", temp, "Temperature in K (Default 1.5e7K)");
app.add_option("-r,--rho", rho, "Density in g/cm^3 (Default 1.5e2g/cm^3)");
app.add_option("--tmax", tMax, "Maximum simulation time in s (Default 3.1536e17s)");
CLI11_PARSE(app, argc, argv);
const NetIn netIn = init(temp, rho, tMax);
policy::MainSequencePolicy stellarPolicy(netIn.composition); policy::MainSequencePolicy stellarPolicy(netIn.composition);
stellarPolicy.construct(); stellarPolicy.construct();
@@ -266,19 +278,8 @@ int main() {
solver::CVODESolverStrategy solver(engine); solver::CVODESolverStrategy solver(engine);
solver.set_callback(solver::CVODESolverStrategy::TimestepCallback(callback_main)); solver.set_callback(solver::CVODESolverStrategy::TimestepCallback(callback_main));
const NetOut netOut = solver.evaluate(netIn, true); const NetOut netOut = solver.evaluate(netIn, false);
log_results(netOut, netIn); log_results(netOut, netIn);
log_callback_data(temp); log_callback_data(temp);
// LOG_TRACE_L1(LogManager::getInstance().getLogger("log"), "Performing final engine update for verification...");
//
//
// const std::vector<double> Y = {0.2131, 1.991e-6, 0.1917, 6.310e-7, 3.296e-4, 9.62e-3, 1.62e-3, 5.16e-4};
// const std::vector<std::string> symbols = {"H-1", "He-3", "He-4", "C-12", "N-14", "O-16", "Ne-20", "Mg-24"};
//
// fourdst::composition::Composition manualLateComposition(symbols, Y);
// const fourdst::composition::Composition comp = engine.update(netIn);
// std::cout << comp.getMolarAbundance("H-2") << std::endl;
} }

View File

@@ -1,5 +1,5 @@
executable( executable(
'graphnet_sandbox', 'graphnet_sandbox',
'main.cpp', 'main.cpp',
dependencies: [gridfire_dep, composition_dep, plugin_dep], dependencies: [gridfire_dep, composition_dep, plugin_dep, cli11_dep],
) )