Combines multiple PartitionFunction instances into a single composite strategy.
More...
#include <partition_composite.h>
|
quill::Logger * | m_logger = fourdst::logging::LogManager::getInstance().getLogger("log") |
|
std::vector< std::unique_ptr< PartitionFunction > > | m_partitionFunctions |
| Set of partition functions to use in the composite partition function.
|
|
Combines multiple PartitionFunction instances into a single composite strategy.
Maintains an ordered list of sub-functions and delegates evaluation and derivative calls to the first function that supports the requested isotope.
See partition_composite.cpp for details on sub-function selection and error logging.
- Exceptions
-
std::runtime_error | If no sub-function supports a given (z,a,T9) in evaluate or evaluateDerivative. |
◆ CompositePartitionFunction() [1/2]
gridfire::partition::CompositePartitionFunction::CompositePartitionFunction |
( |
const std::vector< BasePartitionType > & | partitionFunctions | ) |
|
|
explicit |
@brief Construct a composite function from specified types.
Instantiates sub-functions according to the order of types provided.
@param partitionFunctions List of BasePartitionType identifiers for sub-functions.
@pre partitionFunctions must not be empty.
@post m_partitionFunctions contains instances matching each type.
◆ CompositePartitionFunction() [2/2]
@brief Copy constructor.
Creates deep clones of the sub-functions in another composite.
@param other Existing composite to copy from.
@post m_partitionFunctions contains clones of other's sub-functions.
◆ clone()
std::unique_ptr< PartitionFunction > gridfire::partition::CompositePartitionFunction::clone |
( |
| ) |
const |
|
inlinenodiscardoverridevirtual |
◆ evaluate()
double gridfire::partition::CompositePartitionFunction::evaluate |
( |
int | z, |
|
|
int | a, |
|
|
double | T9 ) const |
|
nodiscardoverridevirtual |
@brief Evaluate the composite partition function.
Calls evaluate on the first sub-function supporting the isotope.
@param z Atomic number (>=1).
@param a Mass number (>=z).
@param T9 Temperature in 10^9 K.
@return Partition function value from supporting sub-function.
@throws std::runtime_error If no sub-function supports (z,a,T9).
Implements gridfire::partition::PartitionFunction.
◆ evaluateDerivative()
double gridfire::partition::CompositePartitionFunction::evaluateDerivative |
( |
int | z, |
|
|
int | a, |
|
|
double | T9 ) const |
|
nodiscardoverridevirtual |
@brief Evaluate temperature derivative of the composite function.
Delegates to the first supporting sub-function's derivative.
@param z Atomic number.
@param a Mass number.
@param T9 Temperature in 10^9 K.
@return d/dT9 of the partition function.
@throws std::runtime_error If no sub-function supports (z,a,T9).
Implements gridfire::partition::PartitionFunction.
◆ selectPartitionFunction()
@brief Instantiate a sub-function by its type.
@param type Enumeration value selecting the desired function implementation.
@return Unique pointer to a new PartitionFunction instance of the given type.
@throws std::runtime_error If the given type is not recognized.
◆ supports()
bool gridfire::partition::CompositePartitionFunction::supports |
( |
int | z, |
|
|
int | a ) const |
|
nodiscardoverridevirtual |
@brief Check support across all sub-functions.
@param z Atomic number.
@param a Mass number.
@return true if any sub-function supports (z,a); false otherwise.
Implements gridfire::partition::PartitionFunction.
◆ type()
std::string gridfire::partition::CompositePartitionFunction::type |
( |
| ) |
const |
|
nodiscardoverridevirtual |
@brief Get composite type identifier.
Concatenates the type() strings of all sub-functions.
@return A string like "CompositePartitionFunction(func1, func2, ...)".
Implements gridfire::partition::PartitionFunction.
◆ m_logger
quill::Logger* gridfire::partition::CompositePartitionFunction::m_logger = fourdst::logging::LogManager::getInstance().getLogger("log") |
|
private |
◆ m_partitionFunctions
std::vector<std::unique_ptr<PartitionFunction> > gridfire::partition::CompositePartitionFunction::m_partitionFunctions |
|
private |
Set of partition functions to use in the composite partition function.
The documentation for this class was generated from the following files: