Commit Graph

36 Commits

Author SHA1 Message Date
033c5a083d fix(gcc): Fixed Gridfire on gcc
GridFire failed to compile on gcc and gnu stdlibc++ this has been
resolved. Further, the boost dependency has been removed since we no
longer use boost at all. This should dramatically simplify installation.
Finally we have added some build system checks to ensure that the
correct version of a C++ and fortran compiler are present on the system
2025-11-28 09:42:54 -05:00
b7f8724e13 feat(C): Added C bindings
There is now a limited set of C bindings which will also be used to bind
to fotran
2025-11-27 10:04:59 -05:00
a46bd846a5 fix(subprojects): removed illformed wrap file 2025-11-25 14:43:45 -05:00
bb1d6bbb24 feat(python): Repaired python bindings
Python bindings have now been brought back up to feature pairity with
C++. Further, stubs have been added for all python features so that code
completion will work
2025-11-25 14:08:58 -05:00
1e23c89f8e feat(CLI11): Added command line parsing library
Added a library for command line option parsing, CLI11.
2025-11-24 14:54:41 -05:00
442d4ed86c feat(KINSOL): Switch from Eigen to KINSOL
Previously QSE solving was done using Eigen. While this worked we were
limited in the ability to use previous iterations to speed up later
steps. We have switched to KINSOL, from SUNDIALS, for linear solving.
This has drastically speed up the process of solving for QSE abundances,
primarily because the jacobian matrix does not need to be generated
every single time time a QSE abundance is requested.
2025-11-19 12:06:21 -05:00
81cca35130 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.
2025-11-12 16:54:12 -05:00
a7a4a30028 feat(Comoposition-Tracking): updated GridFire to use new, molar-abundance based, version of libcomposition (v2.0.6)
This entailed a major rewrite of the composition handling from each engine and engine view along with the solver and primer. The intent here is to let Compositions be constructed from the same extensive property which the solver tracks internally. This addressed C0 discontinuity issues in the tracked molar abundances of species which were introduced by repeadidly swaping from molar abundance space to mass fraction space and back. This also allowed for a simplification of the primeNetwork method. Specifically the mass borrowing system was dramatically simplified as molar abundances are extensive.
2025-11-10 10:40:03 -05:00
3c80ccc77f fix(python): added temporary patch to let python bindings work on mac
Mirroring what was done in fourdst (see fourdst/tree/v0.8.5) we have added a temporary patch to let python bindings work on mac while the meson-python folks resolve the duplicate rpath issue in the shared object file
2025-11-03 15:10:03 -05: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
408f6d83a2 build(fourdst): version bump v0.8.2 -> v0.8.3
This fourdst version bump brings the libcomposition v1.9.0 which brings the abstract base class CompositionAbstract. This will allow us to impliment overrides which return specific molarAbundances skirting around Composition internal checks. This is for the purpose of allowing unrestricted molar flow when ccalculating the destruction rate constant for particular species.
2025-10-12 10:29:41 -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
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
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
2c6a8d18a7 build(fourdst/libconfig): version bump to yaml-cpp with cstdint applied 2025-07-29 08:50:28 -04:00
9ae9236a80 build(pybind11): added wrap file 2025-07-29 08:31:50 -04:00
90826e5053 build(subprojects): removed recursive wrap files 2025-07-29 08:28:42 -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
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
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
96bae90524 build(libcomposition): version bump 2025-06-29 14:53:57 -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
970ea299fe fix(gtest.wrap): made gtest.wrap a true wrap file 2025-06-21 13:39:29 -04:00
7484197a6b fix(subprojects): removed bad build artifacts that should not have been commited 2025-06-21 13:36:22 -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
c167357a3b feat(pybind11): added infra to compile with pybind11 2025-04-30 11:39:36 -04:00
2d27b119bd build(quill): added quill as a subproject
quill provides a robust and very efficient asyncronous and thread safe logging module. I have brought this in to handle logging
2025-02-23 11:25:11 -05:00