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
Update ExpRK documentation #144
Conversation
docs/src/solvers/ode_solve.md
Outdated
- `ETDRK4` - 4th order exponential-RK scheme. Fixed timestepping only. | ||
- `HochOst4` - 4th order exponential-RK scheme with stiff order 4. Fixed | ||
timestepping only. | ||
- `Exprb32` - 3rd order adaptive Exponential-Rosenbrock scheme. | ||
- `Exprb43` - 4th order adaptive Exponential-Rosenbrock scheme. | ||
- `Exprb32` - 3rd order adaptive Exponential-Rosenbrock scheme (broken at the moment). |
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.
Label it `"In development"
docs/src/solvers/ode_solve.md
Outdated
@@ -95,6 +95,22 @@ parabolic PDEs, and thus it's suggested you replace it with `Rodas4P` in those | |||
situations which is 3rd order. `ROS3P` is only third order and achieves 3rd order | |||
on such problems and can thus be more efficient in this case. | |||
|
|||
#### Exponential Integrators for Stiff Problems | |||
|
|||
If explicit methods are preferred, then the exponential integrators provide an alternative |
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.
This section doesn't seem to be a high level description of the cases where it's useful and benchmarks well vs the other algorithms
docs/src/solvers/split_ode_solve.md
Outdated
methods can allow for lazy calculation of `expm(dt*A)*v` and similar entities, and thus improve | ||
performance. To tell a solver to use Krylov methods, pass `krylov=true` to its constructor. You | ||
methods can allow for lazy calculation of `exp(dt*A)*v` and similar entities, and thus improve | ||
performance. The algorithms that support this are: `LawsonEuler`, `NorsettEuler`, `ETDRK2`, |
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.
just keep one list and mark them appropriately
For the high level description section: I think you're correct in that we shouldn't give suggestion to users when no benchmarking is done. I'll remove this temporarily and add back after benchmarking is done (this will be my main focus for my follow-up work after GSoC btw). Also in addition to Exprb, I tagged ETD2 as "in development" because it's multistep and hasn't been updated for a while. The multistep ETD methods require some structural planning and could be a good project for future contributors/GSoC students. |
orthogonalization procedure (IOP) [^1]. Note that if the linear operator/jacobian is hermitian, | ||
then the Lanczos algorithm will always be used and the IOP setting is ignored. | ||
|
||
You're required to provide the jacobian associated with the problem for the methods to work. |
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.
I thought it could use the autodiff or finite diff Jacobian like any of the other Jacobian-based methods?
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.
Ah not at the moment, but I can definitely mimic the implicit solvers and add support for autodiff/finite diff (adding uf
to the cache, etc).
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.
yes, I think it's a good idea to do it, and it shouldn't be difficult since a system for handling it is already in place.
Adds missing integrators and describes in detail the options for the ExpRK methods.