GridFire 0.0.1a
General Purpose Nuclear Network
Loading...
Searching...
No Matches
partition_composite.h
Go to the documentation of this file.
1#pragma once
2
5
6#include "fourdst/logging/logging.h"
7
8#include <string>
9#include <unordered_map>
10#include <vector>
11
12#include <memory>
13
14
28 public:
37 explicit CompositePartitionFunction(const std::vector<BasePartitionType>& partitionFunctions);
56 [[nodiscard]] double evaluate(int z, int a, double T9) const override;
67 [[nodiscard]] double evaluateDerivative(int z, int a, double T9) const override;
75 [[nodiscard]] bool supports(int z, int a) const override;
82 [[nodiscard]] std::string type() const override;
88 [[nodiscard]] std::unique_ptr<PartitionFunction> clone() const override {
89 return std::make_unique<CompositePartitionFunction>(*this);
90 }
91 private:
92 quill::Logger* m_logger = fourdst::logging::LogManager::getInstance().getLogger("log");
93 std::vector<std::unique_ptr<PartitionFunction>> m_partitionFunctions;
94 private:
102 std::unique_ptr<PartitionFunction> selectPartitionFunction(const BasePartitionType type) const;
103 };
104 }
std::unique_ptr< PartitionFunction > selectPartitionFunction(const BasePartitionType type) const
std::unique_ptr< PartitionFunction > clone() const override
std::vector< std::unique_ptr< PartitionFunction > > m_partitionFunctions
Set of partition functions to use in the composite partition function.
double evaluate(int z, int a, double T9) const override
double evaluateDerivative(int z, int a, double T9) const override
CompositePartitionFunction(const std::vector< BasePartitionType > &partitionFunctions)
Abstract interface for evaluating nuclear partition functions.
BasePartitionType
Enumerates available partition function implementations.