perf(thread saftey): All Engines are now thread safe

Previously engines were not thread safe, a seperate engine would be
needed for every thread. This is no longer the case. This allows for
much more efficient parallel execution
This commit is contained in:
2025-12-12 12:08:47 -05:00
parent c7574a2f3d
commit e114c0e240
46 changed files with 3685 additions and 1604 deletions

View File

@@ -6,6 +6,8 @@
#include "fourdst/atomic/atomicSpecies.h"
#include "gridfire/engine/scratchpads/blob.h"
namespace gridfire::engine {
@@ -18,6 +20,7 @@ namespace gridfire::engine {
*
* Refer to priming.cpp for implementation details on logging, algorithmic steps, and error handling.
*
* @param ctx
* @param netIn Input network data containing initial composition, temperature, and density.
* @param engine DynamicEngine used to build and evaluate the reaction network.
* @param ignoredReactionTypes Types of reactions to ignore during priming (e.g., weak reactions).
@@ -27,8 +30,8 @@ namespace gridfire::engine {
* @return PrimingReport encapsulating the results of the priming operation.
*/
PrimingReport primeNetwork(
scratch::StateBlob &ctx,
const NetIn& netIn,
GraphEngine& engine,
const std::optional<std::vector<reaction::ReactionType>>& ignoredReactionTypes
const GraphEngine& engine, const std::optional<std::vector<reaction::ReactionType>>& ignoredReactionTypes
);
}