Partition function using Rauscher-Thielemann tabulated normalized G-values.
More...
#include <partition_rauscher_thielemann.h>
|
| RauscherThielemannPartitionFunction () |
| Construct and populate partition data.
|
|
double | evaluate (int z, int a, double T9) const override |
| Evaluate partition function for isotope at temperature.
|
|
double | evaluateDerivative (int z, int a, double T9) const override |
| Evaluate temperature derivative of partition function.
|
|
bool | supports (int z, int a) const override |
| Check if partition data exists for given isotope.
|
|
std::string | type () const override |
| Get type identifier for this partition function.
|
|
std::unique_ptr< PartitionFunction > | clone () const override |
| Clone this partition function instance.
|
|
virtual | ~PartitionFunction ()=default |
| Virtual destructor.
|
|
|
IdentifiedIsotope | find (int z, int a, double T9) const |
| Identify isotope entry and grid indices for given T9.
|
|
|
static InterpolationPoints | get_interpolation_points (const size_t upper_index, const size_t lower_index, const std::array< double, 24 > &normalized_g_values) |
| Get interpolation points from normalized G array.
|
|
static constexpr int | make_key (int z, int a) |
| Generate integer key for isotope (z,a).
|
|
|
quill::Logger * | m_logger = fourdst::logging::LogManager::getInstance().getLogger("log") |
|
std::unordered_map< int, IsotopeData > | m_partitionData |
| Map of isotope key to data.
|
|
Partition function using Rauscher-Thielemann tabulated normalized G-values.
Loads isotope partition data from embedded records and computes values by selecting boundary data or interpolating between grid points on a fixed T9 grid. Implementation in partition_rauscher_thielemann.cpp.
- Exceptions
-
std::out_of_range | If requested isotope data is missing. |
◆ Bounds
Indicator for temperature grid bound position.
Enumerator |
---|
FRONT | Below first grid point.
|
BACK | Above last grid point.
|
MIDDLE | Between grid points.
|
◆ RauscherThielemannPartitionFunction()
gridfire::partition::RauscherThielemannPartitionFunction::RauscherThielemannPartitionFunction |
( |
| ) |
|
Construct and populate partition data.
Reads embedded RT partition data records and fills m_partitionData.
- Precondition
- Embedded data arrays are available and non-empty.
- Postcondition
- m_partitionData contains entries for all isotopes in data.
◆ clone()
std::unique_ptr< PartitionFunction > gridfire::partition::RauscherThielemannPartitionFunction::clone |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ evaluate()
double gridfire::partition::RauscherThielemannPartitionFunction::evaluate |
( |
int | z, |
|
|
int | a, |
|
|
double | T9 ) const |
|
overridevirtual |
Evaluate partition function for isotope at temperature.
Retrieves boundary or interpolated normalized G-value and scales by (2J+1).
- Parameters
-
z | Atomic number of the isotope (>=1). |
a | Mass number of the isotope (>=z). |
T9 | Temperature in units of 10^9 K. |
- Returns
- Dimensionless partition function.
- Precondition
- supports(z,a) returns true.
- Postcondition
- No side effects.
- Exceptions
-
std::out_of_range | If isotope key not found in m_partitionData. |
Implements gridfire::partition::PartitionFunction.
◆ evaluateDerivative()
double gridfire::partition::RauscherThielemannPartitionFunction::evaluateDerivative |
( |
int | z, |
|
|
int | a, |
|
|
double | T9 ) const |
|
overridevirtual |
Evaluate temperature derivative of partition function.
Zero at grid extremes; otherwise derivative of linear interpolation.
- Parameters
-
z | Atomic number (>=1). |
a | Mass number (>=z). |
T9 | Temperature in 10^9 K. |
- Returns
- d(PartitionFunction)/dT9.
- Precondition
- supports(z,a) returns true.
- Postcondition
- No side effects.
- Exceptions
-
std::out_of_range | If isotope data is missing. |
Implements gridfire::partition::PartitionFunction.
◆ find()
Identify isotope entry and grid indices for given T9.
- Parameters
-
z | Atomic number of isotope. |
a | Mass number of isotope. |
T9 | Temperature in 10^9 K. |
- Returns
- IdentifiedIsotope with data reference and indices.
- Exceptions
-
std::out_of_range | If isotope not found in m_partitionData. |
◆ get_interpolation_points()
Get interpolation points from normalized G array.
- Parameters
-
upper_index | Index of upper grid point. |
lower_index | Index of lower grid point. |
normalized_g_values | Array of normalized G values. |
- Returns
- InterpolationPoints containing bounds and G values.
◆ make_key()
int gridfire::partition::RauscherThielemannPartitionFunction::make_key |
( |
int | z, |
|
|
int | a ) |
|
staticconstexprprivate |
Generate integer key for isotope (z,a).
- Parameters
-
z | Atomic number. |
a | Mass number (<1000). |
- Returns
- Key computed as z*1000 + a.
◆ supports()
bool gridfire::partition::RauscherThielemannPartitionFunction::supports |
( |
int | z, |
|
|
int | a ) const |
|
overridevirtual |
Check if partition data exists for given isotope.
- Parameters
-
z | Atomic number. |
a | Mass number. |
- Returns
- true if data available; false otherwise.
- Postcondition
- No side effects.
Implements gridfire::partition::PartitionFunction.
◆ type()
std::string gridfire::partition::RauscherThielemannPartitionFunction::type |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ m_logger
quill::Logger* gridfire::partition::RauscherThielemannPartitionFunction::m_logger = fourdst::logging::LogManager::getInstance().getLogger("log") |
|
private |
◆ m_partitionData
std::unordered_map<int, IsotopeData> gridfire::partition::RauscherThielemannPartitionFunction::m_partitionData |
|
private |
Map of isotope key to data.
The documentation for this class was generated from the following files: