Commit Graph

241 Commits

Author SHA1 Message Date
Emily Boudreaux
e260c7b02c fix(build): fortran
Fortran language only added if build-fortran enabled
2025-12-01 09:59:43 -05:00
Emily Boudreaux
b06b622c06 build(cross): working on cross compilation
We want to be able to build all targets on one machine, began
implimenting cross compilation
2025-12-01 09:59:22 -05:00
dac09ae24c build(fortran): added check for fortran
fortran tests only build when fortran build option is enabled
2025-11-30 10:19:56 -05:00
4fe242a5ef build(meson): added checks for header compatibility 2025-11-30 10:16:44 -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
21829c64eb docs(.gitignore): added libplugin.wrap to gitignore 2025-11-28 11:29:23 -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
a472dc5214 docs(docs): rebuilt for version v0.7.1_rc2 2025-11-28 09:46:00 -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
08a031f30c Merge pull request #9 from tboudreaux/feature/neutrionoLoss
Neutrino Output from GridFire Solvers
2025-11-27 15:10:26 -05:00
07b2cfd055 docs(docs): rebuilt 2025-11-27 15:06:27 -05:00
30a5a4d803 docs(readme): Updated
Updated readme and docs to reflect new output (neutrino)
2025-11-27 15:06:02 -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
7b67f3064a docs(gitignore): added auto generated files
the validation suite automatically generates large pynucastro module files. These have been added to .gitignore so they are not pushed to git
2025-11-27 12:51:16 -05:00
6adff5b670 Merge pull request #8 from tboudreaux/feature/extern
Stable C API and Fortran Bindings
2025-11-27 11:33:48 -05:00
737f432b94 docs(version): Version bump v0.7.0_rc1 -> v0.7.0_rc2
Version bump
2025-11-27 11:25:12 -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
41adf1d8e0 fix(meson.build): Added C as lang
Added C and fortran as languages to the project so that meson can locate
their compilers
2025-11-27 10:06:44 -05:00
90cfe81d0b refactor(GridFireEquiv): Cleaned up
Cleaned up old validation code
2025-11-27 10:06:13 -05:00
ef53575c0d test(validation): Added validation suite
Added the framework and some basic tests for a validation suite which
automatically tests against pynucastro results
2025-11-27 10:05:51 -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
95125bdf3e Merge pull request #7 from tboudreaux/fix/python/KINSol
Vresion 0.7.0 RC1
2025-11-25 14:35:31 -05:00
2eebbf6819 docs(docs): rebuilt 2025-11-25 14:31:59 -05:00
b0c68a709f docs(mainpage): updated examples in documentation 2025-11-25 14:31:34 -05:00
cd950d1411 docs(readme): updated readme examples 2025-11-25 14:30:42 -05:00
9bdf63e2cb docs(readme): updated readme
added section on policy module
2025-11-25 14:18:23 -05:00
b8835aee7f docs(version): version bump v0.6.0 -> v0.7.0_rc1 2025-11-25 14:12:17 -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
22b52abc30 Merge pull request #6 from tboudreaux/feature/weakRates
Added Weak Rates, KINSol, CVODE, Policy, and much more
2025-11-24 15:12:05 -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
ce8717b248 feat(graphnet_sandbox): Added CLI
Added cli options for controling temperature, density, and Tmax
2025-11-24 14:55:17 -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
22c0329de0 docs(docs): rebuilt docs 2025-11-24 09:08:28 -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
f7fbc6c1da refactor(src): small changes 2025-11-19 07:42:10 -05:00
4d2f5888ec feat(DebugException): Simple exception for debug
Sometimes it is useful to pause execution with an exception while
debugging (though bad practice in production code). This is an explicit
exception type dedicated to that purpose. Further we have included some
compile time checks to ensure that these do not get used in release
builds.
2025-11-19 07:41:42 -05:00
80a4e12324 docs(.gitignore): added json 2025-11-19 07:40:55 -05:00
80dba50330 perf(EigenFunctor): Jacobian Cachine
FOr QSE solving the Jacobian does not change meaninfully between steps.
We have introduced caching so that it does not need to be reevaluated
every step
2025-11-19 07:17:57 -05:00