feat(solver): added CVODE solver from SUNDIALS

This commit is contained in:
2025-08-15 12:11:32 -04:00
parent 0b77f2e269
commit ed1c5a1ac7
16 changed files with 588 additions and 62 deletions

View File

@@ -13,6 +13,7 @@ gridfire_sources = files(
'lib/reaction/reaclib.cpp',
'lib/io/network_file.cpp',
'lib/solver/solver.cpp',
'lib/solver/strategies/CVODE_solver_strategy.cpp',
'lib/screening/screening_types.cpp',
'lib/screening/screening_weak.cpp',
'lib/screening/screening_bare.cpp',
@@ -33,6 +34,7 @@ gridfire_build_dependencies = [
xxhash_dep,
eigen_dep,
plugin_dep,
sundials_dep,
]
# Define the libnetwork library so it can be linked against by other parts of the build system
@@ -49,39 +51,6 @@ gridfire_dep = declare_dependency(
dependencies: gridfire_build_dependencies,
)
# Make headers accessible
gridfire_headers = files(
'include/gridfire/network.h',
'include/gridfire/engine/engine_abstract.h',
'include/gridfire/engine/views/engine_view_abstract.h',
'include/gridfire/engine/engine_approx8.h',
'include/gridfire/engine/engine_graph.h',
'include/gridfire/engine/views/engine_adaptive.h',
'include/gridfire/engine/views/engine_defined.h',
'include/gridfire/engine/views/engine_multiscale.h',
'include/gridfire/engine/views/engine_priming.h',
'include/gridfire/engine/procedures/priming.h',
'include/gridfire/engine/procedures/construction.h',
'include/gridfire/reaction/reaction.h',
'include/gridfire/reaction/reaclib.h',
'include/gridfire/io/network_file.h',
'include/gridfire/solver/solver.h',
'include/gridfire/screening/screening_abstract.h',
'include/gridfire/screening/screening_bare.h',
'include/gridfire/screening/screening_weak.h',
'include/gridfire/screening/screening_types.h',
'include/gridfire/partition/partition_abstract.h',
'include/gridfire/partition/partition_rauscher_thielemann.h',
'include/gridfire/partition/partition_ground.h',
'include/gridfire/partition/composite/partition_composite.h',
'include/gridfire/utils/logging.h',
)
install_headers(gridfire_headers, subdir : 'gridfire')
solver_interface_headers = files(
'include/gridfire/interfaces/solver/solver_interfaces.h',
)
install_headers(solver_interface_headers, subdir : 'gridfire/interfaces/solver')
install_subdir('include/gridfire', install_dir: get_option('includedir'))
subdir('python')