36 [[nodiscard]]
virtual double evaluate(
int z,
int a,
double T9)
const = 0;
60 [[nodiscard]]
virtual bool supports(
int z,
int a)
const = 0;
68 [[nodiscard]]
virtual std::string
type()
const = 0;
76 [[nodiscard]]
virtual std::unique_ptr<PartitionFunction>
clone()
const = 0;
Abstract interface for evaluating nuclear partition functions.
virtual double evaluate(int z, int a, double T9) const =0
Evaluate the partition function for a given isotope.
virtual double evaluateDerivative(int z, int a, double T9) const =0
Evaluate the temperature derivative of the partition function.
virtual ~PartitionFunction()=default
Virtual destructor.
virtual std::unique_ptr< PartitionFunction > clone() const =0
Create a deep copy of this PartitionFunction.
virtual bool supports(int z, int a) const =0
Check if this partition function supports an isotope.
virtual std::string type() const =0
Get the human-readable type of this partition function.