|
GridFire 0.0.1a
General Purpose Nuclear Network
|
Partition function using Rauscher-Thielemann tabulated normalized G-values. More...
#include <partition_rauscher_thielemann.h>
Classes | |
| struct | IdentifiedIsotope |
| struct | InterpolationPoints |
| struct | IsotopeData |
Public Member Functions | |
| 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. | |
Public Member Functions inherited from gridfire::partition::PartitionFunction | |
| virtual | ~PartitionFunction ()=default |
| Virtual destructor. | |
Private Types | |
| enum | Bounds { FRONT , BACK , MIDDLE } |
| Indicator for temperature grid bound position. More... | |
Private Member Functions | |
| IdentifiedIsotope | find (int z, int a, double T9) const |
| Identify isotope entry and grid indices for given T9. | |
Static Private Member Functions | |
| 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). | |
Private Attributes | |
| 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.
| std::out_of_range | If requested isotope data is missing. |
Definition at line 26 of file partition_rauscher_thielemann.h.
Indicator for temperature grid bound position.
| Enumerator | |
|---|---|
| FRONT | Below first grid point. |
| BACK | Above last grid point. |
| MIDDLE | Between grid points. |
Definition at line 89 of file partition_rauscher_thielemann.h.
| gridfire::partition::RauscherThielemannPartitionFunction::RauscherThielemannPartitionFunction | ( | ) |
Construct and populate partition data.
Reads embedded RT partition data records and fills m_partitionData.
Definition at line 20 of file partition_rauscher_thielemann.cpp.
|
inlineoverridevirtual |
Clone this partition function instance.
Implements gridfire::partition::PartitionFunction.
Definition at line 81 of file partition_rauscher_thielemann.h.
|
overridevirtual |
Evaluate partition function for isotope at temperature.
Retrieves boundary or interpolated normalized G-value and scales by (2J+1).
| z | Atomic number of the isotope (>=1). |
| a | Mass number of the isotope (>=z). |
| T9 | Temperature in units of 10^9 K. |
| std::out_of_range | If isotope key not found in m_partitionData. |
Implements gridfire::partition::PartitionFunction.
Definition at line 43 of file partition_rauscher_thielemann.cpp.
|
overridevirtual |
Evaluate temperature derivative of partition function.
Zero at grid extremes; otherwise derivative of linear interpolation.
| z | Atomic number (>=1). |
| a | Mass number (>=z). |
| T9 | Temperature in 10^9 K. |
| std::out_of_range | If isotope data is missing. |
Implements gridfire::partition::PartitionFunction.
Definition at line 78 of file partition_rauscher_thielemann.cpp.
|
private |
Identify isotope entry and grid indices for given T9.
| z | Atomic number of isotope. |
| a | Mass number of isotope. |
| T9 | Temperature in 10^9 K. |
| std::out_of_range | If isotope not found in m_partitionData. |
Definition at line 117 of file partition_rauscher_thielemann.cpp.
|
staticprivate |
Get interpolation points from normalized G array.
| upper_index | Index of upper grid point. |
| lower_index | Index of lower grid point. |
| normalized_g_values | Array of normalized G values. |
Definition at line 105 of file partition_rauscher_thielemann.cpp.
|
staticconstexprprivate |
Generate integer key for isotope (z,a).
| z | Atomic number. |
| a | Mass number (<1000). |
Definition at line 145 of file partition_rauscher_thielemann.cpp.
|
overridevirtual |
Check if partition data exists for given isotope.
| z | Atomic number. |
| a | Mass number. |
Implements gridfire::partition::PartitionFunction.
Definition at line 98 of file partition_rauscher_thielemann.cpp.
|
inlineoverridevirtual |
Get type identifier for this partition function.
Implements gridfire::partition::PartitionFunction.
Definition at line 75 of file partition_rauscher_thielemann.h.
|
private |
Definition at line 112 of file partition_rauscher_thielemann.h.
|
private |
Map of isotope key to data.
Definition at line 113 of file partition_rauscher_thielemann.h.