|
GridFire v0.7.1_rc2
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::ReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< double > &Y, double T9, double rho) const override |
| Calculates weak screening factors for a set of reactions. | |
| std::vector< CppAD::AD< double > > | calculateScreeningFactors (const reaction::ReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< CppAD::AD< double > > &Y, CppAD::AD< double > T9, CppAD::AD< double > rho) const override |
| Calculates weak screening factors using CppAD types. | |
Public Member Functions inherited from gridfire::screening::ScreeningModel | |
| virtual | ~ScreeningModel ()=default |
| Virtual destructor. | |
Private Member Functions | |
| template<IsArithmeticOrAD T> | |
| std::vector< T > | calculateFactors_impl (const reaction::ReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< T > &Y, T T9, 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 | |
Public Types inherited from gridfire::screening::ScreeningModel | |
| 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.
|
private |
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 | The composition object with current 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 composition object providing current molar abundances. |
| 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).
|
overridevirtual |
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 | The composition object giving the current molar abundances. |
| T9 | The temperature as an AD type. |
| rho | The plasma density as an AD type. |
Implements gridfire::screening::ScreeningModel.
|
overridevirtual |
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 | The composition object giving the current molar abundances. |
| T9 | The temperature in units of 10^9 K. |
| rho | The plasma density in g/cm^3. |
Usage
Implements gridfire::screening::ScreeningModel.
|
private |
Logger instance for recording trace and debug information.