GridFire 0.0.1a
General Purpose Nuclear Network
|
Implements the weak screening model based on the Debye-Hückel approximation. More...
#include <screening_weak.h>
Public Member Functions | |
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 override |
Calculates weak screening factors for a set of reactions. | |
std::vector< CppAD::AD< double > > | calculateScreeningFactors (const reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< CppAD::AD< double > > &Y, const CppAD::AD< double > T9, const CppAD::AD< double > rho) const override |
Calculates weak screening factors using CppAD types. | |
![]() | |
virtual | ~ScreeningModel ()=default |
Virtual destructor. | |
Private Member Functions | |
template<typename T> | |
std::vector< T > | calculateFactors_impl (const reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< T > &Y, const T T9, const T rho) const |
Template implementation for calculating weak screening factors. | |
Private Attributes | |
quill::Logger * | m_logger = fourdst::logging::LogManager::getInstance().getLogger("log") |
Logger instance for recording trace and debug information. | |
Additional Inherited Members | |
![]() | |
using | ADDouble = CppAD::AD<double> |
Alias for CppAD Automatic Differentiation type for double precision. | |
Implements the weak screening model based on the Debye-Hückel approximation.
This class provides a concrete implementation of the ScreeningModel
interface for the weak screening regime, following the formulation of Salpeter (1954). This approach applies the Debye-Hückel theory to model the electrostatic shielding of nuclei in a plasma. It is applicable to non-degenerate, non-relativistic plasmas where thermal energy dominates the electrostatic potential energy.
Definition at line 26 of file screening_weak.h.
|
nodiscardprivate |
Template implementation for calculating weak screening factors.
Core implementation of the weak screening calculation (Debye-Hückel model).
This private helper function contains the core logic for calculating weak screening factors. It is templated to handle both double
and CppAD::AD<double>
numeric types, avoiding code duplication.
T | The numeric type, either double or CppAD::AD<double> . |
reactions | The set of reactions. |
species | A vector of all species in the network. |
Y | A vector of molar abundances. |
T9 | The temperature in 10^9 K. |
rho | The density in g/cm^3. |
T
.This function calculates the screening factor exp(H_12)
for each reaction, based on the Debye-Hückel approximation as formulated by Salpeter (1954).
T | The numeric type (double or CppAD::AD<double> ). |
reactions | The set of reactions to be screened. |
species | The list of all species in the network. |
Y | The molar abundances of the species. |
T9 | The temperature in 10^9 K. |
rho | The density in g/cm^3. |
Algorithm
ζ = ∑(Z_i² + Z_i) * Y_i
, where Z_i is the charge and Y_i is the molar abundance of species i.prefactor = 0.188 * sqrt(ρ / T₇³) * sqrt(ζ)
, where T₇ is the temperature in units of 10^7 K.H_12 = prefactor * Z₁ * Z₂
.H_12 = 3 * (prefactor * Z_α * Z_α)
.exp(H_12)
. Definition at line 141 of file screening_weak.h.
|
nodiscardoverridevirtual |
Calculates weak screening factors using CppAD types.
This is the automatic differentiation-compatible version of the method. It allows the derivatives of the screening factors to be computed with respect to 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 as AD types. |
T9 | The temperature as an AD type. |
rho | The plasma density as an AD type. |
Implements gridfire::screening::ScreeningModel.
Definition at line 12 of file screening_weak.cpp.
|
nodiscardoverridevirtual |
Calculates weak screening factors for a set of reactions.
This method computes the screening enhancement factor for each reaction based on the Salpeter (1954) formula.
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. |
Usage
Implements gridfire::screening::ScreeningModel.
Definition at line 22 of file screening_weak.cpp.
|
private |
Logger instance for recording trace and debug information.
Definition at line 81 of file screening_weak.h.