Commit Graph

13 Commits

Author SHA1 Message Date
9fdbb57996 feat(policy): began addition of robust policy system
The policy system provides a way for users to ensure that they get a network with certain traits. For example being sure that the network they get has all of the proton proton reactions in its base reaction set. This is an extensible system which is intended to be used by researchers to build various determanistic network policies to make network results more reproducable
2025-11-05 12:48:08 -05:00
9bc6e9b0d4 feat(io): added ability to export the rate calculations of any engine to a python file
GridFire can now (to a very limited degree) approximate the abilities of pynucastro in so far as it can not just solve an engine but it can also export it to a python file. Currently only the rates are exported so no solver can yet be used (since things like the rest of the RHS and the jacobian are missing) but this is a step in that direction
2025-11-05 09:21:52 -05:00
70ebe151ba fix(gcc-builds): fixed signedness warnings on gcc builds 2025-11-03 08:53:56 -05:00
86d7a283a1 feat(GraphEngine): More robust reaction type selection at network construction
Added new ways to select exactly what types of reactions (strong, beta+, beta-, electron capture, positron capture, or any combination thereof) can be turned on at network construction time. There are a few quality of life masks added as well such as weak which addes all weak type reactions, and all which adds weak + strong reactions. The default is to just add strong reactions for now.
2025-11-03 08:38:21 -05:00
23df87f915 fix(graph_engine): fixed major bug with jacobian sparsity
previousl the sparsity calculations for the jacobian matrix were completly broken. The method subgraph_sparsity was returning that all derivities were only depenednt on temperature and density. It should have been reporting that they also depended on some of the abundances. This was resolved by switching to a different structural sparsity engine (for_jac_sparsity). This bug had turned the solver into a fixed point iteration solver which failed for the stiff system we have. Now that it is resolved the solver can once again evolved over Gyr timescales.
2025-10-29 14:47:11 -04:00
66b2471c13 fix(LogicalReaclibReaction): fixed bug where reaclib reverse reactions were being included in forward reaction sets erroneously
Previously, due to a indexing issue, reverse rates were sometimes included in the forward rates for strong reactions. This lead to erroneously high molar reaction flows for some reactions. This has been resolved so now each logical reaction set is guareteed to include only either forward reactions or reverse reactions (not both)
2025-10-28 07:35:38 -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
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
0b77f2e269 refactor(reaction): refactored to an abstract reaction class in prep for weak reactions 2025-08-14 13:33:46 -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
f20bffc411 feat(python): added robust python bindings covering the entire codebase 2025-07-23 16:26:30 -04:00