GridFire 0.0.1a General Purpose Nuclear Network

Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
gridfire::reaction::LogicalReaction Class Referencefinal

Represents a "logical" reaction that aggregates rates from multiple sources. More...

`#include <reaction.h>`

Inheritance diagram for gridfire::reaction::LogicalReaction:

## Public Member Functions
| LogicalReaction (const std::vector< Reaction > &reactions)
| Constructs a LogicalReaction from a vector of `Reaction` objects.
void | add_reaction (const Reaction &reaction)
| Adds another `Reaction` source to this logical reaction.
size_t | size () const
| Gets the number of source rates contributing to this logical reaction.
std::vector< std::string > | sources () const
| Gets the list of source labels for the aggregated rates.
double | calculate_rate (const double T9) const override
| Calculates the total reaction rate by summing all source rates.
virtual double | calculate_forward_rate_log_derivative (const double T9) const override
CppAD::AD< double > | calculate_rate (const CppAD::AD< double > T9) const override
| Calculates the total reaction rate using CppAD types.
Iterators
Provides iterators to loop over the rate coefficient sets.
auto | begin ()
auto | begin () const
auto | end ()
auto | end () const
Public Member Functions inherited from gridfire::reaction::Reaction
virtual | ~Reaction ()=default
| Virtual destructor.
| Reaction (const std::string_view id, const std::string_view peName, const int chapter, const std::vector< fourdst::atomic::Species > &reactants, const std::vector< fourdst::atomic::Species > &products, const double qValue, const std::string_view label, const RateCoefficientSet &sets, const bool reverse=false)
| Constructs a Reaction object.
virtual std::string_view | peName () const
| Gets the reaction name in (projectile, ejectile) notation.
int | chapter () const
| Gets the REACLIB chapter number.
std::string_view | sourceLabel () const
| Gets the source label for the rate data.
const RateCoefficientSet & | rateCoefficients () const
| Gets the set of rate coefficients.
bool | contains (const fourdst::atomic::Species &species) const
| Checks if the reaction involves a given species as a reactant or product.
bool | contains_reactant (const fourdst::atomic::Species &species) const
| Checks if the reaction involves a given species as a reactant.
bool | contains_product (const fourdst::atomic::Species &species) const
| Checks if the reaction involves a given species as a product.
std::unordered_set< fourdst::atomic::Species > | all_species () const
| Gets a set of all unique species involved in the reaction.
std::unordered_set< fourdst::atomic::Species > | reactant_species () const
| Gets a set of all unique reactant species.
std::unordered_set< fourdst::atomic::Species > | product_species () const
| Gets a set of all unique product species.
size_t | num_species () const
| Gets the number of unique species involved in the reaction.
int | stoichiometry (const fourdst::atomic::Species &species) const
| Calculates the stoichiometric coefficient for a given species.
std::unordered_map< fourdst::atomic::Species, int > | stoichiometry () const
| Gets a map of all species to their stoichiometric coefficients.
std::string_view | id () const
| Gets the unique identifier of the reaction.
double | qValue () const
| Gets the Q-value of the reaction.
const std::vector< fourdst::atomic::Species > & | reactants () const
| Gets the vector of reactant species.
const std::vector< fourdst::atomic::Species > & | products () const
| Gets the vector of product species.
bool | is_reverse () const
| Checks if this is a reverse reaction rate.
double | excess_energy () const
| Calculates the excess energy from the mass difference of reactants and products.
bool | operator== (const Reaction &other) const
| Compares this reaction with another for equality based on their IDs.
bool | operator!= (const Reaction &other) const
| Compares this reaction with another for inequality.
uint64_t | hash (uint64_t seed=0) const
| Computes a hash for the reaction based on its ID.

## Private Member Functions
template<typename T>
T | calculate_rate (const T T9) const
| Template implementation for calculating the total reaction rate.

## Private Attributes
std::vector< std::string > | m_sources
| List of source labels.
std::vector< RateCoefficientSet > | m_rates
| List of rate coefficient sets from each source.

## Friends
std::ostream & | operator<< (std::ostream &os, const LogicalReaction &r)

## Additional Inherited Members
Protected Attributes inherited from gridfire::reaction::Reaction
quill::Logger * | m_logger = fourdst::logging::LogManager::getInstance().getLogger("log")
std::string | m_id
| Unique identifier for the reaction (e.g., "h1+h1=>h2+e+nu").
std::string | m_peName
| Name of the reaction in (projectile, ejectile) notation (e.g. "p(p,g)d").
int | m_chapter
| Chapter number from the REACLIB database, defining the reaction structure.
double | m_qValue = 0.0
| Q-value of the reaction in MeV.
std::vector< fourdst::atomic::Species > | m_reactants
| Reactants of the reaction.
std::vector< fourdst::atomic::Species > | m_products
| Products of the reaction.
std::string | m_sourceLabel
| Source label for the rate data (e.g., "wc12w", "st08").
RateCoefficientSet | m_rateCoefficients
| The seven rate coefficients.
bool | m_reverse = false
| Flag indicating if this is a reverse reaction rate.

## Detailed Description

Represents a "logical" reaction that aggregates rates from multiple sources.

A LogicalReaction shares the same reactants and products but combines rates from different evaluations (e.g., "wc12" and "st08" for the same physical reaction). The total rate is the sum of the individual rates. It inherits from Reaction, using the properties of the first provided reaction as its base properties (reactants, products, Q-value, etc.).

Definition at line 310 of file reaction.h.

## Constructor & Destructor Documentation

## ◆ LogicalReaction()

gridfire::reaction::LogicalReaction::LogicalReaction | ( | const std::vector< Reaction > & | reactions | ) |
| explicit

Constructs a LogicalReaction from a vector of `Reaction` objects.

Parameters

  reactions | A vector of reactions that represent the same logical process.

Exceptions

  std::runtime_error | if the provided reactions have inconsistent Q-values.

Definition at line 163 of file reaction.cpp.

## Member Function Documentation

## ◆ add_reaction()

void gridfire::reaction::LogicalReaction::add_reaction | ( | const Reaction & | reaction | ) |

Adds another `Reaction` source to this logical reaction.

Parameters

  reaction | The reaction to add.

Exceptions

  std::runtime_error | if the reaction has a different `peName`, a duplicate source label, or an inconsistent Q-value.

Definition at line 192 of file reaction.cpp.

## ◆ begin() [1/2]

auto gridfire::reaction::LogicalReaction::begin | ( |  | ) |
| inline

Definition at line 359 of file reaction.h.

## ◆ begin() [2/2]

auto gridfire::reaction::LogicalReaction::begin | ( |  | ) | const
| inline nodiscard

Definition at line 360 of file reaction.h.

## ◆ calculate_forward_rate_log_derivative()

double gridfire::reaction::LogicalReaction::calculate_forward_rate_log_derivative | ( | const double | T9 | ) | const
| nodiscard override virtual

Reimplemented from gridfire::reaction::Reaction.

Definition at line 218 of file reaction.cpp.

## ◆ calculate_rate() [1/3]

CppAD::AD< double > gridfire::reaction::LogicalReaction::calculate_rate | ( | const CppAD::AD< double > | T9 | ) | const
| nodiscard override virtual

Calculates the total reaction rate using CppAD types.

Parameters

  T9 | The temperature in units of 10^9 K, as a CppAD::AD<double>.

Returns
  The total calculated reaction rate, as a CppAD::AD<double>.

Reimplemented from gridfire::reaction::Reaction.

Definition at line 269 of file reaction.cpp.

## ◆ calculate_rate() [2/3]

double gridfire::reaction::LogicalReaction::calculate_rate | ( | const double | T9 | ) | const
| nodiscard override virtual

Calculates the total reaction rate by summing all source rates.

Parameters

  T9 | The temperature in units of 10^9 K.

Returns
  The total calculated reaction rate.

Reimplemented from gridfire::reaction::Reaction.

Definition at line 214 of file reaction.cpp.

## ◆ calculate_rate() [3/3]

template<typename T>

T gridfire::reaction::LogicalReaction::calculate_rate | ( | const T | T9 | ) | const
| inline nodiscard private

Template implementation for calculating the total reaction rate.

Template Parameters

  T | The numeric type (double or CppAD::AD<double>).

Parameters

  T9 | The temperature in units of 10^9 K.

Returns
  The total calculated reaction rate.

This method iterates through all stored `RateCoefficientSet`s, calculates the rate for each, and returns their sum.

Definition at line 385 of file reaction.h.

## ◆ end() [1/2]

auto gridfire::reaction::LogicalReaction::end | ( |  | ) |
| inline

Definition at line 361 of file reaction.h.

## ◆ end() [2/2]

auto gridfire::reaction::LogicalReaction::end | ( |  | ) | const
| inline nodiscard

Definition at line 362 of file reaction.h.

## ◆ size()

size_t gridfire::reaction::LogicalReaction::size | ( |  | ) | const
| inline nodiscard

Gets the number of source rates contributing to this logical reaction.

Returns
  The number of aggregated rates.

Definition at line 331 of file reaction.h.

## ◆ sources()

std::vector< std::string > gridfire::reaction::LogicalReaction::sources | ( |  | ) | const
| inline nodiscard

Gets the list of source labels for the aggregated rates.

Returns
  A vector of source label strings.

Definition at line 337 of file reaction.h.

## Friends And Related Symbol Documentation

## ◆ operator<<

std::ostream & operator<< | ( | std::ostream & | os,
|  | const LogicalReaction & | r )
| friend

Definition at line 366 of file reaction.h.

## Member Data Documentation

## ◆ m_rates

std::vector<RateCoefficientSet> gridfire::reaction::LogicalReaction::m_rates
| private

List of rate coefficient sets from each source.

Definition at line 373 of file reaction.h.

## ◆ m_sources

std::vector<std::string> gridfire::reaction::LogicalReaction::m_sources
| private

List of source labels.

Definition at line 372 of file reaction.h.

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

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