Loading...
Searching...
No Matches
gridfire::solver::DirectNetworkSolver::RHSManager Struct Reference

Functor for calculating the right-hand side of the ODEs. More...

## Public Member Functions

| RHSManager (DynamicEngine &engine, const double T9, const double rho, TimestepCallback &callback, const std::vector< fourdst::atomic::Species > &networkSpecies)
| Constructor for the RHSFunctor.
void | operator() (const boost::numeric::ublas::vector< double > &Y, boost::numeric::ublas::vector< double > &dYdt, double t) const
| Calculates the time derivatives of the species abundances.
void | observe (const boost::numeric::ublas::vector< double > &state, double t) const
void | compute_and_cache (const boost::numeric::ublas::vector< double > &state, double t) const

## Public Attributes

DynamicEngine & | m_engine
| The engine used to evaluate the network.
const double | m_T9
| Temperature in units of 10^9 K.
const double | m_rho
| Density in g/cm^3.
double | m_cached_time
std::optional< StepDerivatives< double > > | m_cached_result
double | m_last_observed_time = 0.0
| Last time the state was observed.
quill::Logger * | m_logger = LogManager::getInstance().newFileLogger("integration.log", "GridFire")
| Logger instance.
int | m_num_steps = 0
double | m_last_step_time = 1e-20
TimestepCallback & | m_callback
const std::vector< fourdst::atomic::Species > & | m_networkSpecies

## Detailed Description

Functor for calculating the right-hand side of the ODEs.

This functor is used by the ODE solver to calculate the time derivatives of the species abundances. It takes the current abundances as input and returns the time derivatives.

## Constructor & Destructor Documentation

## RHSManager()

gridfire::solver::DirectNetworkSolver::RHSManager::RHSManager | ( | DynamicEngine & | engine,
|  | const double | T9,
|  | const double | rho,
|  | TimestepCallback & | callback,
|  | const std::vector< fourdst::atomic::Species > & | networkSpecies )

inline

Constructor for the RHSFunctor.

Parameters

  engine | The engine used to evaluate the network.
  T9 | Temperature in units of 10^9 K.
  rho | Density in g/cm^3.
  callback | callback function to be called at the end of each timestep.
  networkSpecies | vector of species in the network in the correct order.

## Member Function Documentation

## compute_and_cache()

void gridfire::solver::DirectNetworkSolver::RHSManager::compute_and_cache | ( | const boost::numeric::ublas::vector< double > & | state,
|  | double | t ) const

## observe()

void gridfire::solver::DirectNetworkSolver::RHSManager::observe | ( | const boost::numeric::ublas::vector< double > & | state,
|  | double | t ) const

## operator()()

void gridfire::solver::DirectNetworkSolver::RHSManager::operator() | ( | const boost::numeric::ublas::vector< double > & | Y,
|  | boost::numeric::ublas::vector< double > & | dYdt,
|  | double | t ) const

Calculates the time derivatives of the species abundances.

Parameters

  Y | Vector of current abundances.
  dYdt | Vector to store the time derivatives.
  t | Current time.

## Member Data Documentation

## m_cached_result

std::optional<StepDerivatives<double> > gridfire::solver::DirectNetworkSolver::RHSManager::m_cached_result

mutable

## m_cached_time

double gridfire::solver::DirectNetworkSolver::RHSManager::m_cached_time

mutable

## m_callback

TimestepCallback& gridfire::solver::DirectNetworkSolver::RHSManager::m_callback

## m_engine

DynamicEngine& gridfire::solver::DirectNetworkSolver::RHSManager::m_engine

The engine used to evaluate the network.

## m_last_observed_time

double gridfire::solver::DirectNetworkSolver::RHSManager::m_last_observed_time = 0.0

mutable

Last time the state was observed.

## m_last_step_time

double gridfire::solver::DirectNetworkSolver::RHSManager::m_last_step_time = 1e-20

mutable

## m_logger

quill::Logger* gridfire::solver::DirectNetworkSolver::RHSManager::m_logger = LogManager::getInstance().newFileLogger("integration.log", "GridFire")

Logger instance.

## m_networkSpecies

const std::vector<fourdst::atomic::Species>& gridfire::solver::DirectNetworkSolver::RHSManager::m_networkSpecies

## m_num_steps

int gridfire::solver::DirectNetworkSolver::RHSManager::m_num_steps = 0

mutable

## m_rho

const double gridfire::solver::DirectNetworkSolver::RHSManager::m_rho

Density in g/cm^3.

## m_T9

const double gridfire::solver::DirectNetworkSolver::RHSManager::m_T9

Temperature in units of 10^9 K.

The documentation for this struct was generated from the following files:

- src/include/gridfire/solver/solver.h
- src/lib/solver/solver.cpp