GridFire 0.0.1a
General Purpose Nuclear Network
|
An abstract base class for plasma screening models. More...
#include <screening_abstract.h>
Public Types | |
using | ADDouble = CppAD::AD<double> |
Alias for CppAD Automatic Differentiation type for double precision. | |
Public Member Functions | |
virtual | ~ScreeningModel ()=default |
Virtual destructor. | |
virtual std::vector< double > | calculateScreeningFactors (const reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< double > &Y, const double T9, const double rho) const =0 |
Calculates screening factors for a set of reactions. | |
virtual std::vector< ADDouble > | calculateScreeningFactors (const reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< ADDouble > &Y, const ADDouble T9, const ADDouble rho) const =0 |
Calculates screening factors using CppAD types for automatic differentiation. | |
An abstract base class for plasma screening models.
This class defines the interface for models that calculate the enhancement factor for nuclear reaction rates due to the electrostatic screening of interacting nuclei by the surrounding plasma. Concrete implementations of this class will provide specific screening prescriptions (e.g., WEAK, BARE, STRONG, etc.).
The interface provides methods for calculating screening factors for both standard double-precision inputs and for CppAD's automatic differentiation types, allowing the screening contributions to be included in Jacobian calculations.
Definition at line 27 of file screening_abstract.h.
using gridfire::screening::ScreeningModel::ADDouble = CppAD::AD<double> |
Alias for CppAD Automatic Differentiation type for double precision.
Definition at line 30 of file screening_abstract.h.
|
virtualdefault |
Virtual destructor.
Ensures that derived class destructors are called correctly.
|
pure virtual |
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.
reactions | The set of logical reactions in the network. |
species | A vector of all atomic species involved in the network. |
Y | A vector of the molar abundances (mol/g) for each species, as AD types. |
T9 | The temperature in units of 10^9 K, as an AD type. |
rho | The plasma density in g/cm^3, as an AD type. |
Note This method is essential for including the effects of screening in the Jacobian matrix of the reaction network.
Implemented in gridfire::screening::BareScreeningModel, and gridfire::screening::WeakScreeningModel.
|
pure virtual |
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.
reactions | The set of logical reactions in the network. |
species | A vector of all atomic species involved in the network. |
Y | A vector of the molar abundances (mol/g) for each species. |
T9 | The temperature in units of 10^9 K. |
rho | The plasma density in g/cm^3. |
reactions
set, in the same order.Pre-conditions
Y
vector must match the size of the species
vector.T9
and rho
must be positive.Post-conditions
reactions
set.Usage
Implemented in gridfire::screening::BareScreeningModel, and gridfire::screening::WeakScreeningModel.