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

Update ExpRK documentation #144

Merged
merged 6 commits into from Aug 21, 2018
Merged

Update ExpRK documentation #144

merged 6 commits into from Aug 21, 2018

Conversation

MSeeker1340
Copy link
Contributor

Adds missing integrators and describes in detail the options for the ExpRK methods.

- `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).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Label it `"In development"

@@ -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
Copy link
Member

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

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`,
Copy link
Member

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

@MSeeker1340
Copy link
Contributor Author

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.
Copy link
Member

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?

Copy link
Contributor Author

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).

Copy link
Member

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.

@ChrisRackauckas ChrisRackauckas merged commit 08d2456 into SciML:master Aug 21, 2018
@MSeeker1340 MSeeker1340 deleted the ExpRK branch October 26, 2018 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants