Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I2217 idaklu #2444

Merged
merged 26 commits into from
Nov 21, 2022
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
424eece
#2217 restructure idaklu cpp code
martinjrobins Aug 10, 2022
a726a70
#2217 restructured idaklu solver ready for testing
martinjrobins Aug 12, 2022
84c0535
#2217 support sundials version 6 and <6
martinjrobins Aug 12, 2022
560c7a5
#2217 fixing memory bugs
martinjrobins Aug 16, 2022
65422c6
#2217 idaklu tests work again
martinjrobins Aug 16, 2022
b103846
#2217 add print_stats option
martinjrobins Aug 26, 2022
61541da
#2217 add use_jacobian to options
martinjrobins Aug 26, 2022
738497c
#2217 allow option to specify dense jacobian
martinjrobins Sep 8, 2022
69a5199
#2217 use dae model for options test
martinjrobins Sep 8, 2022
2967829
#2217 allow user to choose between all dense or sparse non-iterative …
martinjrobins Sep 8, 2022
b3b0e9c
#2217 start incorporating iterative solvers
martinjrobins Sep 8, 2022
1924851
#2217 matrix-free not working unless numit is vry high, perhaps precon?
martinjrobins Sep 8, 2022
7134ecb
#2217 all combination of options/solvers/jacobian now seems to work
martinjrobins Sep 12, 2022
2c1163b
#2217 add rest of iterative solvers
martinjrobins Sep 12, 2022
faa1e05
#2217 merge develop
martinjrobins Nov 9, 2022
09b08dd
#2217 precon params were not being set
martinjrobins Nov 9, 2022
06460fc
style: pre-commit fixes
pre-commit-ci[bot] Nov 9, 2022
ea839be
#2217 add changelog, remove use_jacobian from docstring
martinjrobins Nov 9, 2022
dbc8318
#2217 make sure we build in release by default
martinjrobins Nov 9, 2022
b9061b1
#2217 reapply fix to sensitivities
martinjrobins Nov 9, 2022
1fa57f2
#2217 fix docstring for idaklu solver
martinjrobins Nov 9, 2022
eed75ab
#2217 fix codacy errors
martinjrobins Nov 9, 2022
a975b42
#2217 remove multiple casadi references
martinjrobins Nov 16, 2022
d7b203e
#2217 raise error on bad options to idaklu solver
martinjrobins Nov 17, 2022
ec5d05f
#2217 fix test to detect exceptions
martinjrobins Nov 17, 2022
2b80d6b
style: pre-commit fixes
pre-commit-ci[bot] Nov 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Features

- SEI reactions can now be asymmetric ([#2425](https://github.com/pybamm-team/PyBaMM/pull/2425))
- New Idaklu solver options for jacobian type and linear solver, support Sundials v6 ([#2444](https://github.com/pybamm-team/PyBaMM/pull/2444))

## Optimizations

Expand Down
3 changes: 3 additions & 0 deletions CMakeBuild.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,10 @@ def run(self):
use_python_casadi = False
else:
use_python_casadi = True

build_type = os.getenv("PYBAMM_CPP_BUILD_TYPE", "Release")
cmake_args = [
"-DCMAKE_BUILD_TYPE={}".format(build_type),
"-DPYTHON_EXECUTABLE={}".format(sys.executable),
"-DUSE_PYTHON_CASADI={}".format("TRUE" if use_python_casadi else "FALSE"),
]
Expand Down
20 changes: 13 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,20 @@ endif()

add_subdirectory(${PYBIND11_DIR})
pybind11_add_module(idaklu
pybamm/solvers/c_solvers/idaklu_python.cpp
pybamm/solvers/c_solvers/idaklu_python.hpp
pybamm/solvers/c_solvers/idaklu/casadi_functions.cpp
pybamm/solvers/c_solvers/idaklu/casadi_functions.hpp
pybamm/solvers/c_solvers/idaklu/casadi_solver.cpp
pybamm/solvers/c_solvers/idaklu/casadi_solver.hpp
pybamm/solvers/c_solvers/idaklu/casadi_sundials_functions.hpp
pybamm/solvers/c_solvers/idaklu/casadi_sundials_functions.cpp
pybamm/solvers/c_solvers/idaklu/common.hpp
pybamm/solvers/c_solvers/idaklu/python.hpp
pybamm/solvers/c_solvers/idaklu/python.cpp
pybamm/solvers/c_solvers/idaklu/solution.cpp
pybamm/solvers/c_solvers/idaklu/solution.hpp
pybamm/solvers/c_solvers/idaklu/options.hpp
pybamm/solvers/c_solvers/idaklu/options.cpp
pybamm/solvers/c_solvers/idaklu.cpp
pybamm/solvers/c_solvers/idaklu.hpp
pybamm/solvers/c_solvers/idaklu_casadi.cpp
pybamm/solvers/c_solvers/idaklu_casadi.hpp
pybamm/solvers/c_solvers/solution.cpp
pybamm/solvers/c_solvers/solution.hpp
)

if (NOT DEFINED USE_PYTHON_CASADI)
Expand Down
8 changes: 8 additions & 0 deletions FindSUNDIALS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
#
# * sundials_ida
# * sundials_sunlinsolklu
# * sundials_sunlinsoldense
# * sundials_sunlinsollapackdense
# * sundials_sunmatrix_sparse
# * sundials_nvecserial
#
Expand All @@ -31,6 +33,9 @@ find_path(SUNDIALS_INCLUDE_DIR
sundials/sundials_math.h
sundials/sundials_types.h
sunlinsol/sunlinsol_klu.h
sunlinsol/sunlinsol_dense.h
sunlinsol/sunlinsol_spbcgs.h
sunlinsol/sunlinsol_lapackdense.h
sunmatrix/sunmatrix_sparse.h
PATH_SUFFIXES
include
Expand All @@ -41,6 +46,9 @@ find_path(SUNDIALS_INCLUDE_DIR
set(SUNDIALS_WANT_COMPONENTS
sundials_idas
sundials_sunlinsolklu
sundials_sunlinsoldense
sundials_sunlinsolspbcgs
sundials_sunlinsollapackdense
sundials_sunmatrixsparse
sundials_nvecserial
)
Expand Down
Loading