-
-
Notifications
You must be signed in to change notification settings - Fork 563
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
I2217 idaklu #2444
Conversation
…linear solvers in sundials
What does this mean? How will we interface to the C++ code? |
Sorry, this statement wasn't very clear. We have two C++ solvers, one which is used for |
Codecov ReportBase: 99.72% // Head: 99.72% // Increases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## develop #2444 +/- ##
========================================
Coverage 99.72% 99.72%
========================================
Files 258 258
Lines 19184 19200 +16
========================================
+ Hits 19131 19147 +16
Misses 53 53
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks @martinjrobins looks good! should we do some checking of the options since it seems sundials doesn't raise and error if you pass a bad option for the jacobian or lin solver?
Running the failed benchmark (time to setup DFN for ORegan2022 param) on my machine shows no difference between |
Description
Work related to #2217. Added an
options
argument to the idaklu solver:The iterative solvers only seem to work well for SPM and SPMe models, my best guess atm is that the preconditioner I'm using is not suitable for DFN. Sundials unfortunately only has a single preconditioner (BBDP), but we could manually implement a preconditioner if anyone knows a good one for DFN
I've also built in support for sundials v5 and v6, as the api changed in v6
I've also generally restructured the idaklu C++ code (the casadi stuff, we are going to drop the python idaklu solver...) to be a bit nicer
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.
Key checklist:
$ flake8
$ python run-tests.py --unit
$ cd docs
and then$ make clean; make html
You can run all three at once, using
$ python run-tests.py --quick
.Further checks: