fix(MultiscalePartitioningEngineView): began work to call the QSE solver every timestep
one major issue was that QSE solving was only running at each partition. This was creating effectivley infinite sources of partitioned species. Now we partition when engine updates are triggered, however, solveQSEAbundance is called every timestep. This has major performance implications and so has required a lot of optimization to make it even somewhat viable. For now construction is much slower. Time per iteration is still slower than it was before; however, it is tractable. There is also currently too much stiffness in the network. This is likeley a bug that was introduced in this refactoring which will be addressed soon.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
#include "gridfire/engine/engine.h"
|
||||
#include "gridfire/expectations/expected_engine.h"
|
||||
|
||||
#include "fourdst/composition/atomicSpecies.h"
|
||||
#include "fourdst/atomic/atomicSpecies.h"
|
||||
|
||||
#include <vector>
|
||||
#include <expected>
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
#include "bindings.h"
|
||||
|
||||
#include "gridfire/utils/general_composition.h"
|
||||
#include "gridfire/utils/hashing.h"
|
||||
|
||||
namespace py = pybind11;
|
||||
@@ -20,30 +19,6 @@ void register_utils_bindings(py::module &m) {
|
||||
"Format a string for logging nuclear timescales based on temperature, density, and energy generation rate."
|
||||
);
|
||||
|
||||
m.def(
|
||||
"massFractionFromMolarAbundanceAndComposition",
|
||||
&gridfire::utils::massFractionFromMolarAbundanceAndComposition,
|
||||
py::arg("composition"),
|
||||
py::arg("species"),
|
||||
py::arg("Yi"),
|
||||
"Convert a specific species molar abundance into its mass fraction if it were present in a given composition."
|
||||
);
|
||||
|
||||
m.def(
|
||||
"massFractionFromMolarAbundanceAndMolarMass",
|
||||
&gridfire::utils::massFractionFromMolarAbundanceAndMolarMass,
|
||||
py::arg("molarAbundances"),
|
||||
py::arg("molarMasses"),
|
||||
"Convert a vector of molar abundances and a parallel vector of molar masses into a vector of mass fractions"
|
||||
);
|
||||
|
||||
m.def(
|
||||
"molarMassVectorFromComposition",
|
||||
&gridfire::utils::molarMassVectorFromComposition,
|
||||
py::arg("composition"),
|
||||
"Extract vector of molar masses from a composition object, this will be sorted by species mass so that the lightest species are at the front of the list."
|
||||
);
|
||||
|
||||
m.def(
|
||||
"hash_atomic",
|
||||
&gridfire::utils::hash_atomic,
|
||||
|
||||
Reference in New Issue
Block a user