feat(Comoposition-Tracking): updated GridFire to use new, molar-abundance based, version of libcomposition (v2.0.6)
This entailed a major rewrite of the composition handling from each engine and engine view along with the solver and primer. The intent here is to let Compositions be constructed from the same extensive property which the solver tracks internally. This addressed C0 discontinuity issues in the tracked molar abundances of species which were introduced by repeadidly swaping from molar abundance space to mass fraction space and back. This also allowed for a simplification of the primeNetwork method. Specifically the mass borrowing system was dramatically simplified as molar abundances are extensive.
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "fourdst/composition/atomicSpecies.h"
|
||||
#include "fourdst/atomic/atomicSpecies.h"
|
||||
#include "gridfire/reaction/reaction.h"
|
||||
#include "gridfire/engine/engine_abstract.h"
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace gridfire::policy {
|
||||
auto end() { return m_chain_policies.end(); }
|
||||
[[nodiscard]] auto end() const { return m_chain_policies.cend(); }
|
||||
protected:
|
||||
std::vector<std::unique_ptr<ReactionChainPolicy>> m_chain_policies;
|
||||
std::vector<std::unique_ptr<ReactionChainPolicy>> m_chain_policies{};
|
||||
reaction::ReactionSet m_reactions;
|
||||
};
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
#include "fourdst/composition/composition.h"
|
||||
#include "fourdst/composition/atomicSpecies.h"
|
||||
#include "fourdst/atomic/atomicSpecies.h"
|
||||
#include "gridfire/partition/composite/partition_composite.h"
|
||||
|
||||
#include "gridfire/policy/chains.h"
|
||||
@@ -91,7 +91,7 @@ namespace gridfire::policy {
|
||||
* LowMassMainSequencePolicy policy(species, mass_fractions);
|
||||
* @endcode
|
||||
*/
|
||||
explicit MainSequencePolicy(std::vector<fourdst::atomic::Species> seed_species, std::vector<double> mass_fractions);
|
||||
explicit MainSequencePolicy(std::vector<fourdst::atomic::Species> seed_species, const std::vector<double> &mass_fractions);
|
||||
|
||||
/**
|
||||
* @brief Returns the name of the policy.
|
||||
@@ -143,16 +143,7 @@ namespace gridfire::policy {
|
||||
*/
|
||||
[[nodiscard]] NetworkPolicyStatus getStatus() const override;
|
||||
private:
|
||||
std::set<fourdst::atomic::Species> m_seed_species = {
|
||||
fourdst::atomic::H_1,
|
||||
fourdst::atomic::He_3,
|
||||
fourdst::atomic::He_4,
|
||||
fourdst::atomic::C_12,
|
||||
fourdst::atomic::N_14,
|
||||
fourdst::atomic::O_16,
|
||||
fourdst::atomic::Ne_20,
|
||||
fourdst::atomic::Mg_24
|
||||
};
|
||||
std::set<fourdst::atomic::Species> m_seed_species;
|
||||
|
||||
std::unique_ptr<ReactionChainPolicy> m_reaction_policy = std::make_unique<MainSequenceReactionChainPolicy>();
|
||||
fourdst::composition::Composition m_initializing_composition;
|
||||
@@ -162,7 +153,7 @@ namespace gridfire::policy {
|
||||
NetworkPolicyStatus m_status = NetworkPolicyStatus::UNINITIALIZED;
|
||||
private:
|
||||
static std::unique_ptr<partition::PartitionFunction> build_partition_function();
|
||||
NetworkPolicyStatus check_status() const;
|
||||
[[nodiscard]] NetworkPolicyStatus check_status() const;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user