Commit Graph

15 Commits

Author SHA1 Message Date
3fac6390e6 perf(graph_engine): refactored recordEpsTape to reduce repeated work
previously recordADTape was duplicating a lot of work which recordEpsTape also needed to do. Now all derivs are being recorded into m_rhsADFun so that only one tape recording phase is needed per network build stage.
2025-10-24 14:47:21 -04:00
98db2b1d43 perf(graph_engine): finished sparsity system for jacobian, major preformance win, roughly 20x faster
essentially all callers can now inform the graph engine about which species they hold active and graph engine then uses those to define a sparsity pattern and only calculate the jacobian along that sparsity pattern
2025-10-24 11:17:22 -04:00
0581f69c48 perf(engine_multiscale): performance enhancments due to improved hashing, locality, and data structure optimization
This particular commit speeds up QSE solving for systems where reverse reactions and engine caching is disabled by about 24%
2025-10-22 15:08:49 -04:00
ced29d2f63 fix(engine_multiscale): resolved bug which prevented proper equilibrium abundances from being found
this was done by adjusting the scaling of the QSE operator() residuals from r = dy/dt to r=(dy/dt)/y
2025-10-22 09:54:10 -04:00
3b8a0a1f33 fix(engine_multiscale): resolved a major species index ordering bug
All jacobian calculations were broken because the indexing used to record the AD tape was broken (see not parallel to) the indexing used by the composition object. A fix for this was to sort the network species by mass. However, more generally we should introduce a mechanism to ensure these two indexed sets always remain parallel
2025-10-14 13:37:48 -04:00
2f1077c02d fix(weakRates): major progress in resolving bugs
bigs were introduced by the interface change from accepting raw molar abundance vectors to using the composition vector. This commit resolves many of these, including preformant ways to report that a species is not present in the composition and unified index lookups using composition object tooling.

BREAKING CHANGE:
2025-10-10 09:12:40 -04:00
13e2ea9ffa feat(weak-reactions): brought weak reaction code up to a point where it will compile (NOT YET TESTED) 2025-10-08 11:17:35 -04:00
8a0b5b2c36 feat(weak): major weak rate progress
Major weak rate progress which includes: A refactor of many of the public interfaces for GridFire Engines to use composition objects as opposed to raw abundance vectors. This helps prevent index mismatch errors. Further, the weak reaction class has been expanded with the majority of an implimentation, including an atomic_base derived class to allow for proper auto diff tracking of the interpolated table results. Some additional changes are that the version of fourdst and libcomposition have been bumped to versions with smarter caching of intermediate vectors and a few bug fixes.
2025-10-07 15:16:03 -04:00
813e62bdd6 feat(dynamic-engine): added derivitves for energy generation rate. dε/dT and dε/dρ have been added to NetOut and computed with auto diff 2025-09-19 15:14:46 -04:00
0b77f2e269 refactor(reaction): refactored to an abstract reaction class in prep for weak reactions 2025-08-14 13:33:46 -04:00
2d9216600f feat(reverse-rates): fixed unit error in reverse rate calculation 2025-07-29 07:49:01 -04:00
ba9b3e2392 docs(docs): asdded and cleaned up docs 2025-07-24 11:10:45 -04:00
cc3708fda5 build(GridFire): building on gcc and clang
resolved some issues preventing GridFire from building on both gcc and clang. Also resolved all warnings on both compilers.
2025-07-24 10:20:44 -04:00
c3bc75a7f4 docs(GridFire): added loads of docs and supressed yaml-cpp shadow warnings 2025-07-24 08:37:52 -04:00
f20bffc411 feat(python): added robust python bindings covering the entire codebase 2025-07-23 16:26:30 -04:00