GridFire 0.0.1a
General Purpose Nuclear Network
Loading...
Searching...
No Matches
gridfire::utils Namespace Reference

Functions

std::string formatNuclearTimescaleLogString (const DynamicEngine &engine, const std::vector< double > &Y, const double T9, const double rho)
 Formats a map of nuclear species timescales into a human-readable string.
 

Function Documentation

◆ formatNuclearTimescaleLogString()

std::string gridfire::utils::formatNuclearTimescaleLogString ( const DynamicEngine & engine,
const std::vector< double > & Y,
const double T9,
const double rho )

Formats a map of nuclear species timescales into a human-readable string.

This function takes a reaction network engine and the current plasma conditions to calculate the characteristic timescales for each species. It then formats this information into a neatly aligned ASCII table, which is suitable for logging or printing to the console.

Parameters
engineA constant reference to a DynamicEngine object, used to calculate the species timescales.
YA vector of the molar abundances (mol/g) for each species.
T9The temperature in units of 10^9 K.
rhoThe plasma density in g/cm^3.
Returns
A std::string containing the formatted table of species and their timescales.

Pre-conditions

  • The engine must be in a valid state.
  • The size of the Y vector must be consistent with the number of species expected by the engine.

Algorithm

  1. Calls the getSpeciesTimescales method on the provided engine to get the timescale for each species under the given conditions.
  2. Determines the maximum length of the species names to dynamically set the width of the "Species" column for proper alignment.
  3. Uses a std::ostringstream to build the output string.
  4. Constructs a header for the table with titles "Species" and "Timescale (s)".
  5. Iterates through the map of timescales, adding a row to the table for each species.
  6. Timescales are formatted in scientific notation with 3 digits of precision.
  7. Special handling is included to print "inf" for infinite timescales.
  8. The final string, including header and footer lines, is returned.

Usage

// Assume 'my_engine' is a valid DynamicEngine object and Y, T9, rho are initialized.
std::string log_output = gridfire::utils::formatNuclearTimescaleLogString(my_engine, Y, T9, rho);
std::cout << log_output;
// Example Output:
// == Timescales (s) ==
// Species Timescale (s)
// ==========================
// h1 1.234e+05
// he4 inf
// c12 8.765e-02
// ==========================
std::string formatNuclearTimescaleLogString(const DynamicEngine &engine, const std::vector< double > &Y, const double T9, const double rho)
Formats a map of nuclear species timescales into a human-readable string.
Definition logging.cpp:13

Definition at line 13 of file logging.cpp.