GridFire 0.6.0
General Purpose Nuclear Network
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

DynamicEnginem_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
 
TimestepCallbackm_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
engineThe engine used to evaluate the network.
T9Temperature in units of 10^9 K.
rhoDensity in g/cm^3.
callbackcallback function to be called at the end of each timestep.
networkSpeciesvector 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
YVector of current abundances.
dYdtVector to store the time derivatives.
tCurrent 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: