Commit Graph

155 Commits

Author SHA1 Message Date
61cd7359d4 build(python): gridfire uses fourdst wheel in python mode 2026-06-12 14:30:59 -04:00
69b07db4fb fix(gcc): added missing headers for gcc builds 2026-06-10 15:49:02 -04:00
d6fff3cdbe build(meson): much more robust build system 2026-06-10 14:28:55 -04:00
3a22792fd1 fix(GridFire): changes based on ref report 2026-04-20 12:37:53 -04:00
f4d988fa25 feat(benchmarks): added memory and timing benchmarks 2026-04-15 08:23:34 -04:00
84ff182717 feat(GridFire): Added a number of python hooks
python hooks to make getting base composition more reliable; further, a number of small changes made to aid in my analysis in response to ref report 1
2026-04-13 07:17:14 -04:00
65297852e5 feat(GF-Version): added auto version header
when building the version number is automatically injected into a header now. This allows for more certainty as to what GF version is being used. Note that this is disabled when building the python wheel as there is no clear way to map this dynamically generated header into the wheel structure. This is however not an issue as the python module has a seperate __version__ variable.
2026-04-09 07:45:00 -04:00
45af511db2 fix(Config-Py-Bindings): CVODESolver->PointSolver in python bindings
CVODESolver was renamed to PointSolver in the C++ source; however, the python source had not been updated. This has not been made consistent

BREAKING CHANGE:
2026-04-09 07:42:28 -04:00
7ab0d21ba1 fix(cpp_args): properly propegate args
previously Cpp args were set with add_project_argument, which does not work from subprojects. Changed this so args can be set from calling projects
2026-02-03 11:20:21 -05:00
1cdd2d92e0 fix(degfined_engine_view): removed broken logs
some old log statements reference a member no longer present, removed these
2026-02-03 08:02:09 -05:00
4423d7594c fix(build-check): only add global arguments when not a subproject
This is needd to let gridfire work as a subproject
2026-02-03 07:52:24 -05:00
5c1714410a fix(engine_defined): fixed gcc build warnings 2025-12-22 08:17:23 -05:00
11a596b75b feat(python): Python Bindings
Python Bindings are working again
2025-12-20 16:02:52 -05:00
d65c237b26 feat(fortran): Fortran interface can now use multi-zone
Fortran interface uses the new C api ability to call the naieve
multi-zone solver. This allows fortran calling code to make use of in
build parellaism for solving multiple zones
2025-12-19 09:58:47 -05:00
2a9649a72e feat(C-API): C API now can use multi-zone solver
C api has been brought back up to support and can use paraellization along with multi zone solver
2025-12-18 15:14:47 -05:00
cd5e42b69a feat(omp): useful omp macros
A few macros which make turning on and off omp features cleaner without
#defines everywherer
2025-12-18 12:48:10 -05:00
dcfd7b60aa perf(multi): Simple parallel multi zone solver
Added a simple parallel multi-zone solver
2025-12-18 12:47:39 -05:00
4e1edfc142 feat(Spectral): Working on Spectral Solver 2025-12-15 12:14:00 -05:00
0b09ed1cb3 feat(SpectralSolver): Spectral Solver now works in a limited fashion
Major work on spectral solver, can now evolve up to about a year. At
that point we likely need to impliment repartitioning logic to stabalize
the network or some other scheme based on the jacobian structure
2025-12-12 17:24:53 -05:00
e114c0e240 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
2025-12-12 12:08:47 -05:00
97a7fd05d2 feat(SpectralSolver): Began work on multizone spectral solver
The single zone solver we have is too slow for a true high resolution
multi-zone enviroment. Began work on a spectral element method
multi-zone solver
2025-12-10 12:50:35 -05:00
d990089207 build(cppAD): switched to meson wrap for CppAD
We now pull in CppAD with the standard wrap system
2025-12-10 12:47:16 -05:00
8cfa067ad0 perf(GridFire)
More preformance improvmnets

1. Switch to mimalloc which gave a roughly 10% improvment accross the
board
2. Use much faster compososition caching
3. Reusing work vector
2025-12-07 12:34:12 -05:00
e48b62f231 perf(GraphEngine): more caching
Added more agressive caching, regained about another 50% performance gain. Solar model over 10Gyr now takes roughly 400ms (as opposed to 1 second before)
2025-12-06 16:35:35 -05:00
67dde830af perf(openMP): added openMP support
Note that currently this actually slows the code down. Spinning up the threads and tearing them down is expensive
2025-12-06 13:48:12 -05:00
4e2b3cb11f perf(GraphEngine): using caching clawed back ~10% performance 2025-12-06 12:10:43 -05:00
b6f452e74c feat(libconfig): new version of libconfig 2025-12-06 11:41:57 -05:00
7242c765f3 build(wasm): major progress on gridfire compiling to wasm 2025-12-03 11:38:08 -05:00
d852ee43fe perf(precomputation): cleaned up allocations
recovered about 5% execution time
2025-12-02 13:09:19 -05:00
Emily Boudreaux
e0a05bbd1a build(cross): macOS cross compilation
macos cross compilation now works. macos binaries can be compiled on
linux with osxcross installed and built
2025-12-01 13:28:25 -05:00
a0dcfe4332 build(python): added fvisibility=hidden for python builds
In order to avoid massive binaries uploaded to pypi we have worked to reduce the number of symbols included in binaries
2025-11-29 07:15:06 -05:00
75a88b9720 fix(unity): GridFire supports unity builds
GridFire can now support unity builds. This is useful for python
bindings. The main limitation is that openssl (a dependency of
libplugin) does not support unity builds. Therefore when building in a
unity build libplugin must be disabled. This is done with the
-Dunity-safe=ture flag at setup time
2025-11-28 11:56:41 -05:00
bb558811c6 docs(version): v0.7.2_rc2 -> v0.7.3_rc2 2025-11-28 11:30:14 -05:00
7c33b89c77 build(options): Options propegate much more reliably
Build options such as build-python and build-fortran have much more
predicatable and sensible behavior
2025-11-28 11:28:49 -05:00
7a4ccff021 fix(clang): fixed a few compiler warnings in clang 2025-11-28 09:53:54 -05:00
21cabfdb66 docs(version): version bump v0.7.0_rc2 -> v0.7.1_rc2
This version brings repairs to gcc builds
2025-11-28 09:46:31 -05:00
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
39a689ee5d feat(neutrino): Updated neutrino output
GridFire now reports neutrino loss for reaclib reactions. Note this
currently is only computed if precomputation is enabled.
2025-11-27 15:00:51 -05:00
05175ae87c feat(neutrino): Started framework for neutrino loss
Neutrino loss is essential for neutrino cooling. Started adding
framework to track this. Reaclib reactions use a simple heuristic where
electron capture reactions loss 100% of their energy to neutrinos
whereas beta decay reactions loose 50% of their energy to neutrinos
2025-11-27 14:34:20 -05:00
6ad6406324 feat(fortran): Added fortran bindings
Building of the C API GridFire can now be used from fotran using the
gridfire_mod fortran module. This exposes the same, limited, set of
funcitonality that the C API does.
2025-11-27 11:20:53 -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
0508df881b docs(version): v0.7.0_alpha_2025_10_25 -> v0.7.0_rc1 2025-11-25 14:11:15 -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
b335bf7100 fix(LogicalReaclibReaction): Properly class reverse reactions
Previously there was a bug where some reverse reactions were being
classed as forward reactions. This results in a failure of many
timesteps due to the reverse reactions very high molar flows
2025-11-24 14:57:14 -05:00
9fab4fbfae docs(ridfire)
Added more documentation, also moved all engine code into
gridfire::engine namespace to be more in line with other parts of teh
code base
2025-11-24 09:07:49 -05:00
15ed7f70b1 feat(json): added nlohmann JSON
Added header only json library for better logging
2025-11-24 09:06:34 -05:00
9f56ba0083 fix(error_solver): inherit the public GridFireError interface
added public so that public members and methods of GridFireError can be
used by all SolverError exceptions
2025-11-21 14:30:53 -05:00
3fa23778e8 refactor(exceptions): made header names consistent
All header names in the exceptions module now follow the same naming
scheme.
2025-11-21 14:28:45 -05:00
acc71ba12e refactor(exceptions): All exceptions are derived from GridFireError
Now all GridFire exceptions are derived from the base GridFireError,
this allows for more clean handling of various exception cases
2025-11-21 14:26:24 -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