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
b20d3467fa
build(libcomposition): version bump for fourdst to bring in libcomposition v1.9.1 whith major preformance enhancments
...
fourdst version v0.8.4
2025-10-22 15:06:11 -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
25393f2470
refactor(engine_multiscale): removed debug output
2025-10-12 07:58:12 -04:00
bc666ff783
docs(engine_multiscale): improved error message when Eigen failes to converge to a solution for QSE solver
2025-10-12 07:52:30 -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
4f1c260444
feat(trigger): added working robust repartitioning trigger system
...
more work is needed to identify the most robust set of criteria to trigger on but the system is now very easy to exend, probe, and use.
2025-09-29 13:35:48 -04:00
4c91f8c525
feat(CVODE_Solver_Strategy): added non negative constraint to CVODE based abundance solver
...
this prevents abundance values from going negative which is non physical
2025-09-22 11:15:14 -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
ed1c5a1ac7
feat(solver): added CVODE solver from SUNDIALS
2025-08-15 12:11:32 -04:00
0b77f2e269
refactor(reaction): refactored to an abstract reaction class in prep for weak reactions
2025-08-14 13:33:46 -04:00
24049b2658
feat(solver): added callback functions to solver in C++ and python
2025-07-31 15:04:57 -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
6a22cb65b8
feat(GridFire): stabalized network, increased performance, evolving over 10Gyr timescales now with ~correct results
2025-07-22 12:48:24 -04:00
712efc03fc
feat(AdaptiveEngine): system much more stable
...
dramatically increased stability of jacobian. System is burning again with much more robust physics
2025-07-18 15:23:43 -04:00
1f7e765671
fix(MultiscalePartitioningEngineView): made qse partitioning much more robust
2025-07-16 12:14:02 -04:00
69bd2cd466
feat(GridFire): Much more robust starting network
...
GraphEngine now can initialize with a much more robust set of reactions (including the entire reaction set). The jacobian can still be efficiently evaluated using CppAD's sparse jacobian feature. Further, the primeing network has been signifiganty enhanced to handle much hotter termperatures
2025-07-14 14:50:49 -04:00
ddfa66d86f
build(libcomposition): updated libcomposition version pin to 1.4.0 to get more convient getters
2025-07-14 14:48:57 -04:00
7012eb819a
feat(MultiscalePartitioningEngineView): added *much* more robust qse group identifiction and solving
2025-07-10 09:36:05 -04:00
1ac6b451b8
feat(reverse-reactions): major work towrds detailed balance calculations
2025-07-03 09:55:10 -04:00
e5ad284778
feat(partition-functions): added framework and some concrete partition functions
...
GroundState partition function, Rauscher&Thielemann partition function, and composite partition function added
2025-07-02 11:32:45 -04:00
131f61c9e7
docs(docs): added extensive docs
2025-07-01 15:06:22 -04:00
5b4db3ea43
feat(precomputation): added precomputation
...
preformance speed up by a factor of ~5
2025-07-01 14:30:45 -04:00
0c16e81e98
feat(GridFire): added weak electron screening
2025-07-01 11:40:03 -04:00
40b28477ed
docs(docs): added doxygen html directory
2025-07-01 07:24:18 -04:00
29af4c3bab
feat(network): added half lifes, spin flip parity, better reaction acritecture
2025-06-29 14:53:39 -04:00
2a410dc3fd
feat(reaclib): reworked how I store reactions to avoid stack overflows
2025-06-29 14:53:09 -04:00
3c38187d3f
docs(docs): added robust docs
2025-06-29 14:52:16 -04:00
cd191cff23
feat(GridFire): major design changes
...
Switching to an Engine + solver design. Also brought xxHash and Eigen in. Working on QSE and Culling.
2025-06-26 15:13:46 -04:00
dd03873bc9
fix(GraphNetwork): working on loads of small bugs
...
Fized stoichiometry matrix initialization, added penames to reablib reactions, began work on LogicalReaction to sum the contributions of different fitting functions provided by reaclib
2025-06-23 15:18:56 -04:00
a5639cca58
docs(readme): major readme update
2025-06-21 16:54:23 -04:00
8bc48b8d19
feat(GridFire): brought gridfire up to where network module in SERiF was before splitting it off
2025-06-21 13:18:38 -04:00
a6bab8f037
refactor(GridFire): started bringing in libconstants
2025-06-21 06:36:08 -04:00
1cd0176b01
docs(GraphNetwork): added and rebuilt docs
2025-06-21 05:04:14 -04:00
fe73a021bf
feat(reaclib): working AD system and nearly working network
...
a few issues remain with letting the composition evolve as new species come online
2025-06-20 13:52:09 -04:00
e0704dcafe
feat(GraphNetwork): started templating for auto diff
2025-06-19 15:20:37 -04:00
cd5a6b200b
fix(SERiF): added cppad_dep to methods which need it (anything that brings in reaclib.h)
2025-06-19 15:07:06 -04:00
c3ff2420e9
fix(atomicSpecies.h-->-species.h): added species.h includes for spesific species where needed
2025-06-19 14:51:42 -04:00
76662db03e
feat(network): major progress on network finalization and matrix creation
2025-06-19 13:23:31 -04:00
415a75fd31
feat(network): started adding GraphNetwork
...
GraphNetwork is intended to be a more general, reaclib based, network when compared to approx8 (which is also approx8 based but limited to a specific composition)
2025-06-19 09:42:20 -04:00
3901fc0eaf
feat(utils/atomic-changed-auto-generated-header-to-only-have-static-defs): the actual datatypes are now defined in a new header
2025-06-19 09:40:45 -04:00
d00e5646e7
feat(network): added ReaclibNetwork and functions to build network
2025-06-18 15:22:58 -04:00