GridFire 0.6.0
General Purpose Nuclear Network
Loading...
Searching...
No Matches
PyScreening Class Referencefinal

#include <py_screening.h>

Inheritance diagram for PyScreening:
gridfire::screening::ScreeningModel

Private Member Functions

std::vector< double > calculateScreeningFactors (const gridfire::reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< double > &Y, const double T9, const double rho) const override
 Calculates screening factors for a set of reactions.
 
std::vector< ADDoublecalculateScreeningFactors (const gridfire::reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< ADDouble > &Y, const ADDouble T9, const ADDouble rho) const override
 Calculates screening factors using CppAD types for automatic differentiation.
 

Additional Inherited Members

- Public Types inherited from gridfire::screening::ScreeningModel
using ADDouble = CppAD::AD<double>
 Alias for CppAD Automatic Differentiation type for double precision.
 
- Public Member Functions inherited from gridfire::screening::ScreeningModel
virtual ~ScreeningModel ()=default
 Virtual destructor.
 

Member Function Documentation

◆ calculateScreeningFactors() [1/2]

std::vector< ADDouble > PyScreening::calculateScreeningFactors ( const gridfire::reaction::LogicalReactionSet & reactions,
const std::vector< fourdst::atomic::Species > & species,
const std::vector< ADDouble > & Y,
const ADDouble T9,
const ADDouble rho ) const
overrideprivatevirtual

Calculates screening factors using CppAD types for automatic differentiation.

This is a pure virtual function that provides an overload of calculateScreeningFactors for use with CppAD. It allows the derivatives of the screening factors with respect to abundances, temperature, and density to be computed automatically.

Parameters
reactionsThe set of logical reactions in the network.
speciesA vector of all atomic species involved in the network.
YA vector of the molar abundances (mol/g) for each species, as AD types.
T9The temperature in units of 10^9 K, as an AD type.
rhoThe plasma density in g/cm^3, as an AD type.
Returns
A vector of screening factors (dimensionless), as AD types.

Note This method is essential for including the effects of screening in the Jacobian matrix of the reaction network.

Implements gridfire::screening::ScreeningModel.

◆ calculateScreeningFactors() [2/2]

std::vector< double > PyScreening::calculateScreeningFactors ( const gridfire::reaction::LogicalReactionSet & reactions,
const std::vector< fourdst::atomic::Species > & species,
const std::vector< double > & Y,
const double T9,
const double rho ) const
overrideprivatevirtual

Calculates screening factors for a set of reactions.

This is a pure virtual function that must be implemented by derived classes. It computes the screening enhancement factor for each reaction in the provided set based on the given plasma conditions.

Parameters
reactionsThe set of logical reactions in the network.
speciesA vector of all atomic species involved in the network.
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 vector of screening factors (dimensionless), one for each reaction in the reactions set, in the same order.

Pre-conditions

  • The size of the Y vector must match the size of the species vector.
  • T9 and rho must be positive.

Post-conditions

  • The returned vector will have the same size as the reactions set.
  • Each element in the returned vector will be >= 1.0.

Usage

// Assume 'model' is a std::unique_ptr<ScreeningModel> to a concrete implementation
// and other parameters (reactions, species, Y, T9, rho) are initialized.
std::vector<double> screening_factors = model->calculateScreeningFactors(
reactions, species, Y, T9, rho
);
for (size_t i = 0; i < reactions.size(); ++i) {
// ... use screening_factors[i] ...
}

Implements gridfire::screening::ScreeningModel.


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