GridFire v0.7.6rc4.0
General Purpose Nuclear Network
Loading...
Searching...
No Matches
gridfire::engine::AdaptiveEngineView Class Referencefinal

An engine view that dynamically adapts the reaction network based on runtime conditions. More...

#include <engine_adaptive.h>

Inheritance diagram for gridfire::engine::AdaptiveEngineView:
[legend]
Collaboration diagram for gridfire::engine::AdaptiveEngineView:
[legend]

Classes

struct  ReactionFlow
 A struct to hold a reaction and its flow rate. More...
 

Public Member Functions

 AdaptiveEngineView (DynamicEngine &baseEngine)
 Constructs an AdaptiveEngineView.
 
fourdst::composition::Composition project (scratch::StateBlob &ctx, const NetIn &netIn) const override
 Updates the active species and reactions based on the current conditions.
 
const std::vector< fourdst::atomic::Species > & getNetworkSpecies (scratch::StateBlob &ctx) const override
 Gets the list of active species in the network.
 
std::expected< StepDerivatives< double >, EngineStatuscalculateRHSAndEnergy (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho, bool trust) const override
 Calculates the right-hand side (dY/dt) and energy generation for the active species.
 
EnergyDerivatives calculateEpsDerivatives (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const override
 
NetworkJacobian generateJacobianMatrix (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const override
 Generates the Jacobian matrix for the active species.
 
NetworkJacobian generateJacobianMatrix (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho, const std::vector< fourdst::atomic::Species > &activeSpecies) const override
 Generates the Jacobian matrix for some set of active species such that that set is a subset of the active species in the view.
 
NetworkJacobian generateJacobianMatrix (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho, const SparsityPattern &sparsityPattern) const override
 Generates the Jacobian matrix for the active species with a given sparsity pattern.
 
double calculateMolarReactionFlow (scratch::StateBlob &ctx, const reaction::Reaction &reaction, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const override
 Calculates the molar reaction flow for a given reaction in the active network.
 
const reaction::ReactionSetgetNetworkReactions (scratch::StateBlob &ctx) const override
 Gets the set of active logical reactions in the network.
 
reaction::ReactionSet getInactiveNetworkReactions (scratch::StateBlob &ctx) const override
 Gets the set of inactive logical reactions in the network.
 
double getInactiveReactionMolarReactionFlow (scratch::StateBlob &ctx, const reaction::Reaction &reaction, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const override
 
std::expected< std::unordered_map< fourdst::atomic::Species, double >, EngineStatusgetSpeciesTimescales (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const override
 Computes timescales for all active species in the network.
 
std::expected< std::unordered_map< fourdst::atomic::Species, double >, EngineStatusgetSpeciesDestructionTimescales (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const override
 Computes destruction timescales for all active species in the network.
 
const DynamicEnginegetBaseEngine () const override
 Gets the base engine.
 
screening::ScreeningType getScreeningModel (scratch::StateBlob &ctx) const override
 Gets the screening model from the base engine.
 
size_t getSpeciesIndex (scratch::StateBlob &ctx, const fourdst::atomic::Species &species) const override
 Gets the index of a species in the active species list.
 
PrimingReport primeEngine (scratch::StateBlob &ctx, const NetIn &netIn) const override
 Primes the engine with the given network input.
 
fourdst::composition::Composition collectComposition (scratch::StateBlob &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const override
 Collect the composition of the base engine, ensure all active species are registered, and pass the composition back to the caller.
 
SpeciesStatus getSpeciesStatus (scratch::StateBlob &ctx, const fourdst::atomic::Species &species) const override
 Gets the status of a species in the network.
 
std::optional< StepDerivatives< double > > getMostRecentRHSCalculation (scratch::StateBlob &ctx) const override
 
std::unique_ptr< scratch::StateBlobconstructStateBlob (const scratch::StateBlob *blob) const override
 
- Public Member Functions inherited from gridfire::engine::Engine
virtual ~Engine ()=default
 Virtual destructor.
 
- Public Member Functions inherited from gridfire::engine::EngineView< DynamicEngine >
virtual ~EngineView ()=default
 Virtual destructor.
 

Private Types

using LogManager = fourdst::logging::LogManager
 
typedef std::pair< std::unordered_set< const reaction::Reaction * >, std::unordered_set< fourdst::atomic::Species > > RescueSet
 

Private Member Functions

std::pair< std::vector< ReactionFlow >, fourdst::composition::Composition > calculateAllReactionFlows (scratch::StateBlob &ctx, const NetIn &netIn) const
 Calculates the molar reaction flow rate for all reactions in the full network.
 
std::unordered_set< fourdst::atomic::Species > findReachableSpecies (scratch::StateBlob &ctx, const NetIn &netIn) const
 Finds all species that are reachable from the initial fuel through the reaction network.
 
std::vector< const reaction::Reaction * > cullReactionsByFlow (scratch::StateBlob &ctx, const std::vector< ReactionFlow > &allFlows, const std::unordered_set< fourdst::atomic::Species > &reachableSpecies, const fourdst::composition::Composition &comp, double maxFlow) const
 Culls reactions from the network based on their flow rates.
 
RescueSet rescueEdgeSpeciesDestructionChannel (scratch::StateBlob &ctx, const fourdst::composition::Composition &comp, double T9, double rho) const
 
void finalizeActiveSet (scratch::StateBlob &ctx, const std::vector< const reaction::Reaction * > &finalReactions) const
 Finalizes the set of active species and reactions.
 

Private Attributes

fourdst::config::Config< config::GridFireConfigm_config
 
quill::Logger * m_logger = LogManager::getInstance().getLogger("log")
 A pointer to the logger instance, used for logging messages.
 
DynamicEnginem_baseEngine
 The underlying engine to which this view delegates calculations.
 

Detailed Description

An engine view that dynamically adapts the reaction network based on runtime conditions.

This class implements an EngineView that dynamically culls species and reactions from the full reaction network based on their reaction flow rates and connectivity. This allows for efficient simulation of reaction networks by focusing computational effort on the most important species and reactions.

The AdaptiveEngineView maintains a subset of "active" species and reactions, and maps between the full network indices and the active subset indices. This allows the base engine to operate on the full network data, while the AdaptiveEngineView provides a reduced view for external clients.

The adaptation process is driven by the update() method, which performs the following steps:

  1. Reaction Flow Calculation: Calculates the molar reaction flow rate for each reaction in the full network based on the current temperature, density, and composition.
  2. Reaction Culling: Culls reactions with flow rates below a threshold, determined by a relative culling threshold multiplied by the maximum flow rate.
  3. Connectivity Analysis: Performs a connectivity analysis to identify species that are reachable from the initial fuel species through the culled reaction network.
  4. Species Culling: Culls species that are not reachable from the initial fuel.
  5. Index Map Construction: Constructs index maps to map between the full network indices and the active subset indices for species and reactions.

<DynamicEngine>

See also
engine_abstract.h
engine_view_abstract.h
AdaptiveEngineView::update()

Member Typedef Documentation

◆ LogManager

using gridfire::engine::AdaptiveEngineView::LogManager = fourdst::logging::LogManager
private

◆ RescueSet

typedef std::pair<std::unordered_set<const reaction::Reaction*>, std::unordered_set<fourdst::atomic::Species> > gridfire::engine::AdaptiveEngineView::RescueSet
private

Constructor & Destructor Documentation

◆ AdaptiveEngineView()

gridfire::engine::AdaptiveEngineView::AdaptiveEngineView ( DynamicEngine & baseEngine)
explicit

Constructs an AdaptiveEngineView.

Parameters
baseEngineThe underlying DynamicEngine to which this view delegates calculations.

Initializes the active species and reactions to the full network, and constructs the initial index maps.

Member Function Documentation

◆ calculateAllReactionFlows()

std::pair< std::vector< AdaptiveEngineView::ReactionFlow >, fourdst::composition::Composition > gridfire::engine::AdaptiveEngineView::calculateAllReactionFlows ( scratch::StateBlob & ctx,
const NetIn & netIn ) const
nodiscardprivate

Calculates the molar reaction flow rate for all reactions in the full network.

This method iterates through all reactions in the base engine's network and calculates their molar flow rates based on the provided network input conditions (temperature, density, and composition). It also constructs a vector of molar abundances for all species in the full network.

Parameters
ctxThe scratchpad context for storing thread-local data.
netInThe current network input, containing temperature, density, and composition.
Returns
A pair with the first element a vector of ReactionFlow structs, each containing a pointer to a reaction and its calculated flow rate and the second being a composition object where species which were not present in netIn but are present in the definition of the base engine are registered but have 0 mass fraction.
Algorithm:
  1. Iterates through all species in the base engine's network.
  2. For each species, it retrieves the molar abundance from netIn.composition. If the species is not found, its abundance is set to 0.0.
  3. Converts the temperature from Kelvin to T9.
  4. Iterates through all reactions in the base engine's network.
  5. For each reaction, it calls the base engine's calculateMolarReactionFlow to get the flow rate.
  6. Stores the reaction pointer and its flow rate in a ReactionFlow struct and adds it to the returned vector.

◆ calculateEpsDerivatives()

EnergyDerivatives gridfire::engine::AdaptiveEngineView::calculateEpsDerivatives ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho ) const
nodiscardoverridevirtual
Parameters
ctxThe scratchpad context for storing thread-local data.
compThe current composition of the system.
T9The temperature in units of 10^9 K.
rhoThe density in g/cm^3.
Returns
A struct containing the derivatives of the energy generation rate with respect to temperature and density.

Implements gridfire::engine::DynamicEngine.

◆ calculateMolarReactionFlow()

double gridfire::engine::AdaptiveEngineView::calculateMolarReactionFlow ( scratch::StateBlob & ctx,
const reaction::Reaction & reaction,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho ) const
nodiscardoverridevirtual

Calculates the molar reaction flow for a given reaction in the active network.

Parameters
ctxThe scratchpad context for storing thread-local data.
reactionThe reaction for which to calculate the flow.
compComposition object containing current abundances.
T9Temperature in units of 10^9 K.
rhoDensity in g/cm^3.
Returns
Molar flow rate for the reaction (e.g., mol/g/s).

This method maps the culled abundances to the full network abundances and calls the base engine to calculate the molar reaction flow.

Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).
std::runtime_errorIf the reaction is not part of the active reactions in the adaptive engine view.

Implements gridfire::engine::DynamicEngine.

◆ calculateRHSAndEnergy()

std::expected< StepDerivatives< double >, EngineStatus > gridfire::engine::AdaptiveEngineView::calculateRHSAndEnergy ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho,
bool trust ) const
nodiscardoverridevirtual

Calculates the right-hand side (dY/dt) and energy generation for the active species.

Parameters
ctxThe scratchpad context for storing thread-local data.
compThe current composition of the system.
T9The temperature in units of 10^9 K.
rhoThe density in g/cm^3.
trust
Returns
A StepDerivatives struct containing the derivatives of the active species and the nuclear energy generation rate.

This method maps the culled abundances to the full network abundances, calls the base engine to calculate the RHS and energy generation, and then maps the full network derivatives back to the culled derivatives.

Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).
See also
AdaptiveEngineView::update()

Implements gridfire::engine::Engine.

◆ collectComposition()

fourdst::composition::Composition gridfire::engine::AdaptiveEngineView::collectComposition ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho ) const
nodiscardoverridevirtual

Collect the composition of the base engine, ensure all active species are registered, and pass the composition back to the caller.

Parameters
ctxThe scratchpad context for storing thread-local data.
compThe current composition of the system.
T9The temperature in units of 10^9 K.
rhoThe density in g/cm^3.
Note
This function ensures that the state of both the base engine and the adaptive view are synchronized in the result back to the caller

Implements gridfire::engine::DynamicEngine.

◆ constructStateBlob()

std::unique_ptr< scratch::StateBlob > gridfire::engine::AdaptiveEngineView::constructStateBlob ( const scratch::StateBlob * blob) const
nodiscardoverridevirtual

◆ cullReactionsByFlow()

std::vector< const reaction::Reaction * > gridfire::engine::AdaptiveEngineView::cullReactionsByFlow ( scratch::StateBlob & ctx,
const std::vector< ReactionFlow > & allFlows,
const std::unordered_set< fourdst::atomic::Species > & reachableSpecies,
const fourdst::composition::Composition & comp,
double maxFlow ) const
nodiscardprivate

Culls reactions from the network based on their flow rates.

This method filters the list of all reactions, keeping only those with a flow rate above an absolute culling threshold. The threshold is calculated by multiplying the maximum flow rate by a relative culling threshold read from the configuration.

Parameters
ctxThe scratchpad context for storing thread-local data.
allFlowsA vector of all reactions and their flow rates.
reachableSpeciesA set of all species reachable from the initial fuel.
compThe current composition of the system.
maxFlowThe maximum reaction flow rate in the network.
Returns
A vector of pointers to the reactions that have been kept after culling.
Algorithm:
  1. Retrieves the RelativeCullingThreshold from the configuration.
  2. Calculates the absoluteCullingThreshold by multiplying maxFlow with the relative threshold.
  3. Iterates through allFlows.
  4. A reaction is kept if its flowRate is greater than the absoluteCullingThreshold.
  5. The pointers to the kept reactions are stored in a vector and returned.

◆ finalizeActiveSet()

void gridfire::engine::AdaptiveEngineView::finalizeActiveSet ( scratch::StateBlob & ctx,
const std::vector< const reaction::Reaction * > & finalReactions ) const
private

Finalizes the set of active species and reactions.

This method takes the final list of culled reactions and populates the m_activeReactions and m_activeSpecies members. The active species are determined by collecting all reactants and products from the final reactions. The active species list is then sorted by mass.

Parameters
ctxThe scratchpad context for storing thread-local data.
finalReactionsA vector of pointers to the reactions to be included in the active set.
Postcondition
  • m_activeReactions is cleared and populated with the reactions from finalReactions.
  • m_activeSpecies is cleared and populated with all unique species present in finalReactions.
  • m_activeSpecies is sorted by atomic mass.

◆ findReachableSpecies()

std::unordered_set< Species > gridfire::engine::AdaptiveEngineView::findReachableSpecies ( scratch::StateBlob & ctx,
const NetIn & netIn ) const
nodiscardprivate

Finds all species that are reachable from the initial fuel through the reaction network.

This method performs a connectivity analysis to identify all species that can be produced starting from the initial fuel species. A species is considered part of the initial fuel if its mass fraction is above a certain threshold (ABUNDANCE_FLOOR).

Parameters
ctxThe scratchpad context for storing thread-local data.
netInThe current network input, containing the initial composition.
Returns
An unordered set of all reachable species.
Algorithm:
  1. Initializes a set reachable and a queue to_visit with the initial fuel species.
  2. Iteratively processes the reaction network until no new species can be reached.
  3. In each pass, it iterates through all reactions in the base engine's network.
  4. If all reactants of a reaction are in the reachable set, all products of that reaction are added to the reachable set.
  5. The process continues until a full pass over all reactions does not add any new species to the reachable set.

◆ generateJacobianMatrix() [1/3]

NetworkJacobian gridfire::engine::AdaptiveEngineView::generateJacobianMatrix ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho ) const
nodiscardoverridevirtual

Generates the Jacobian matrix for the active species.

Parameters
ctxThe scratchpad context for storing thread-local data.
compThe current composition of the system.
T9The temperature in units of 10^9 K.
rhoThe density in g/cm^3.

This method maps the culled abundances to the full network abundances and calls the base engine to generate the Jacobian matrix.

Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).
See also
AdaptiveEngineView::update()

Implements gridfire::engine::DynamicEngine.

◆ generateJacobianMatrix() [2/3]

NetworkJacobian gridfire::engine::AdaptiveEngineView::generateJacobianMatrix ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho,
const SparsityPattern & sparsityPattern ) const
nodiscardoverridevirtual

Generates the Jacobian matrix for the active species with a given sparsity pattern.

Parameters
ctxThe scratchpad context for storing thread-local data.
compThe current composition of the system.
T9The temperature in units of 10^9 K.
rhoThe density in g/cm^3.
sparsityPatternThe sparsity pattern to use for the Jacobian matrix.

This method maps the culled abundances to the full network abundances and calls the base engine to generate the Jacobian matrix.

Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).
See also
AdaptiveEngineView::update()

Implements gridfire::engine::DynamicEngine.

◆ generateJacobianMatrix() [3/3]

NetworkJacobian gridfire::engine::AdaptiveEngineView::generateJacobianMatrix ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho,
const std::vector< fourdst::atomic::Species > & activeSpecies ) const
nodiscardoverridevirtual

Generates the Jacobian matrix for some set of active species such that that set is a subset of the active species in the view.

Parameters
ctxThe scratchpad context for storing thread-local data.
compThe current composition of the system.
T9The temperature in units of 10^9 K.
rhoThe density in g/cm^3.
activeSpeciesThe list of active species for which to generate the Jacobian.

This method maps the culled abundances to the full network abundances and calls the base engine to generate the Jacobian matrix.

Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).
See also
AdaptiveEngineView::update()

Implements gridfire::engine::DynamicEngine.

◆ getBaseEngine()

const DynamicEngine & gridfire::engine::AdaptiveEngineView::getBaseEngine ( ) const
inlinenodiscardoverridevirtual

Gets the base engine.

Returns
A const reference to the base engine.

Implements gridfire::engine::EngineView< DynamicEngine >.

◆ getInactiveNetworkReactions()

reaction::ReactionSet gridfire::engine::AdaptiveEngineView::getInactiveNetworkReactions ( scratch::StateBlob & ctx) const
nodiscardoverridevirtual

Gets the set of inactive logical reactions in the network.

Returns
ReactionSet containing all inactive reactions.

This method returns the set of reactions that have been culled from the active network based on the adaptation criteria.

Reimplemented from gridfire::engine::DynamicEngine.

◆ getInactiveReactionMolarReactionFlow()

double gridfire::engine::AdaptiveEngineView::getInactiveReactionMolarReactionFlow ( scratch::StateBlob & ctx,
const reaction::Reaction & reaction,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho ) const
nodiscardoverridevirtual

Reimplemented from gridfire::engine::DynamicEngine.

◆ getMostRecentRHSCalculation()

std::optional< StepDerivatives< double > > gridfire::engine::AdaptiveEngineView::getMostRecentRHSCalculation ( scratch::StateBlob & ctx) const
nodiscardoverridevirtual

◆ getNetworkReactions()

const reaction::ReactionSet & gridfire::engine::AdaptiveEngineView::getNetworkReactions ( scratch::StateBlob & ctx) const
nodiscardoverridevirtual

Gets the set of active logical reactions in the network.

Returns
Reference to the LogicalReactionSet containing all active reactions.

Implements gridfire::engine::DynamicEngine.

◆ getNetworkSpecies()

const std::vector< Species > & gridfire::engine::AdaptiveEngineView::getNetworkSpecies ( scratch::StateBlob & ctx) const
nodiscardoverridevirtual

Gets the list of active species in the network.

Returns
A const reference to the vector of active species.

Implements gridfire::engine::Engine.

◆ getScreeningModel()

screening::ScreeningType gridfire::engine::AdaptiveEngineView::getScreeningModel ( scratch::StateBlob & ctx) const
nodiscardoverridevirtual

Gets the screening model from the base engine.

This method delegates the call to the base engine to get the screening model.

Returns
The current screening model type.
Usage Example:
AdaptiveEngineView engineView(...);
screening::ScreeningType model = engineView.getScreeningModel();
AdaptiveEngineView(DynamicEngine &baseEngine)
Constructs an AdaptiveEngineView.
Definition engine_adaptive.cpp:21
ScreeningType
Enumerates the available plasma screening models.
Definition screening_types.h:15

Implements gridfire::engine::DynamicEngine.

◆ getSpeciesDestructionTimescales()

std::expected< std::unordered_map< Species, double >, EngineStatus > gridfire::engine::AdaptiveEngineView::getSpeciesDestructionTimescales ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho ) const
nodiscardoverridevirtual

Computes destruction timescales for all active species in the network.

Parameters
ctxThe scratchpad context for storing thread-local data.
compComposition object containing current abundances.
T9Temperature in units of 10^9 K.
rhoDensity in g/cm^3.
Returns
Map from Species to their destruction timescales (s).

This method maps the culled abundances to the full network abundances and calls the base engine to compute the species destruction timescales.

Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).

Implements gridfire::engine::DynamicEngine.

◆ getSpeciesIndex()

size_t gridfire::engine::AdaptiveEngineView::getSpeciesIndex ( scratch::StateBlob & ctx,
const fourdst::atomic::Species & species ) const
nodiscardoverridevirtual

Gets the index of a species in the active species list.

Parameters
ctxThe scratchpad context for storing thread-local data.
speciesThe species for which to get the index.
Returns
The index of the species in the active species list.
Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).
std::out_of_rangeIf the species is not part of the active species in the adaptive engine view.

Implements gridfire::engine::DynamicEngine.

◆ getSpeciesStatus()

SpeciesStatus gridfire::engine::AdaptiveEngineView::getSpeciesStatus ( scratch::StateBlob & ctx,
const fourdst::atomic::Species & species ) const
nodiscardoverridevirtual

Gets the status of a species in the network.

Parameters
ctxThe scratchpad context for storing thread-local data.
speciesThe species for which to get the status.
Returns
The SpeciesStatus indicating the status of the species.

This method delegates the call to the base engine to get the species status. If the base engine says that the species is active, but it is not in the active species list of this view, the status is returned as INACTIVE_FLOW.

Implements gridfire::engine::DynamicEngine.

◆ getSpeciesTimescales()

std::expected< std::unordered_map< Species, double >, EngineStatus > gridfire::engine::AdaptiveEngineView::getSpeciesTimescales ( scratch::StateBlob & ctx,
const fourdst::composition::CompositionAbstract & comp,
double T9,
double rho ) const
nodiscardoverridevirtual

Computes timescales for all active species in the network.

Parameters
ctxThe scratchpad context for storing thread-local data.
compComposition object containing current abundances.
T9Temperature in units of 10^9 K.
rhoDensity in g/cm^3.
Returns
Map from Species to their characteristic timescales (s).

This method maps the culled abundances to the full network abundances and calls the base engine to compute the species timescales.

Exceptions
std::runtime_errorIf the AdaptiveEngineView is stale (i.e., update() has not been called).

Implements gridfire::engine::DynamicEngine.

◆ primeEngine()

PrimingReport gridfire::engine::AdaptiveEngineView::primeEngine ( scratch::StateBlob & ctx,
const NetIn & netIn ) const
nodiscardoverridevirtual

Primes the engine with the given network input.

Parameters
ctxThe scratchpad context for storing thread-local data.
netInThe current network input, containing temperature, density, and composition.
Returns
A PrimingReport indicating the result of the priming operation.

This method delegates the priming operation to the base engine.

Implements gridfire::engine::DynamicEngine.

◆ project()

fourdst::composition::Composition gridfire::engine::AdaptiveEngineView::project ( scratch::StateBlob & ctx,
const NetIn & netIn ) const
overridevirtual

Updates the active species and reactions based on the current conditions.

Parameters
ctxThe scratchpad context for storing thread-local data.
netInThe current network input, containing temperature, density, and composition.

This method performs the reaction flow calculation, reaction culling, connectivity analysis, and index map construction steps described above.

The culling thresholds are read from the configuration using the following keys:

  • gridfire:AdaptiveEngineView:RelativeCullingThreshold (default: 1e-75)
Exceptions
std::runtime_errorIf there is a mismatch between the active reactions and the base engine.
Postcondition
The active species and reactions are updated, and the index maps are reconstructed.
See also
AdaptiveEngineView
AdaptiveEngineView::constructSpeciesIndexMap()
AdaptiveEngineView::constructReactionIndexMap()

Implements gridfire::engine::DynamicEngine.

◆ rescueEdgeSpeciesDestructionChannel()

AdaptiveEngineView::RescueSet gridfire::engine::AdaptiveEngineView::rescueEdgeSpeciesDestructionChannel ( scratch::StateBlob & ctx,
const fourdst::composition::Composition & comp,
double T9,
double rho ) const
nodiscardprivate

Member Data Documentation

◆ m_baseEngine

DynamicEngine& gridfire::engine::AdaptiveEngineView::m_baseEngine
private

The underlying engine to which this view delegates calculations.

◆ m_config

fourdst::config::Config<config::GridFireConfig> gridfire::engine::AdaptiveEngineView::m_config
private

◆ m_logger

quill::Logger* gridfire::engine::AdaptiveEngineView::m_logger = LogManager::getInstance().getLogger("log")
private

A pointer to the logger instance, used for logging messages.


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