5#include "fourdst/logging/logging.h"
9#include <unordered_map>
48 double evaluate(
int z,
int a,
double T9)
const override;
69 bool supports(
int z,
int a)
const override;
75 std::string
type()
const override {
return "RauscherThielemann"; }
81 std::unique_ptr<PartitionFunction>
clone()
const override {
82 return std::make_unique<RauscherThielemannPartitionFunction>(*
this);
112 quill::Logger*
m_logger = fourdst::logging::LogManager::getInstance().getLogger(
"log");
123 const size_t upper_index,
124 const size_t lower_index,
125 const std::array<double, 24>& normalized_g_values
142 static constexpr int make_key(
int z,
int a);
Abstract interface for evaluating nuclear partition functions.
IdentifiedIsotope find(int z, int a, double T9) const
Identify isotope entry and grid indices for given T9.
std::string type() const override
Get type identifier for this partition function.
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.
std::unordered_map< int, IsotopeData > m_partitionData
Map of isotope key to data.
bool supports(int z, int a) const override
Check if partition data exists for given isotope.
Bounds
Indicator for temperature grid bound position.
@ FRONT
Below first grid point.
@ MIDDLE
Between grid points.
@ BACK
Above last grid point.
double evaluateDerivative(int z, int a, double T9) const override
Evaluate temperature derivative of partition function.
static constexpr int make_key(int z, int a)
Generate integer key for isotope (z,a).
std::unique_ptr< PartitionFunction > clone() const override
Clone this partition function instance.
RauscherThielemannPartitionFunction()
Construct and populate partition data.
double evaluate(int z, int a, double T9) const override
Evaluate partition function for isotope at temperature.
double G_norm_high
Normalized G at upper bound.
double T9_low
Lower temperature bound.
double T9_high
Upper temperature bound.
double G_norm_low
Normalized G at lower bound.
std::array< double, 24 > normalized_g_values
Normalized G values on RT grid.
double ground_state_spin
Spin of the isotope ground state.