GridFire 0.0.1a General Purpose Nuclear Network

Loading...
Searching...
No Matches
partition_abstract.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <memory>
5
6 namespace gridfire::partition {
7
17 class PartitionFunction {
18 public:
24 virtual ~PartitionFunction() = default;
25
36 [[nodiscard]] virtual double evaluate(int z, int a, double T9) const = 0;
37
50 [[nodiscard]] virtual double evaluateDerivative(int z, int a, double T9) const = 0;
51
60 [[nodiscard]] virtual bool supports(int z, int a) const = 0;
61
68 [[nodiscard]] virtual std::string type() const = 0;
69
76 [[nodiscard]] virtual std::unique_ptr<PartitionFunction> clone() const = 0;
77 };
78}
gridfire::partition::PartitionFunction
Abstract interface for evaluating nuclear partition functions.
Definition partition_abstract.h:17
gridfire::partition::PartitionFunction::evaluate
virtual double evaluate(int z, int a, double T9) const =0
Evaluate the partition function for a given isotope.
gridfire::partition::PartitionFunction::evaluateDerivative
virtual double evaluateDerivative(int z, int a, double T9) const =0
Evaluate the temperature derivative of the partition function.
gridfire::partition::PartitionFunction::~PartitionFunction
virtual ~PartitionFunction()=default
Virtual destructor.
gridfire::partition::PartitionFunction::clone
virtual std::unique_ptr< PartitionFunction > clone() const =0
Create a deep copy of this PartitionFunction.
gridfire::partition::PartitionFunction::supports
virtual bool supports(int z, int a) const =0
Check if this partition function supports an isotope.
gridfire::partition::PartitionFunction::type
virtual std::string type() const =0
Get the human-readable type of this partition function.
gridfire::partition
Definition partition_composite.h:15