Introduction¶
The current set of implemented and planned time integration methods in each language:
Rust¶
Exponential integrators:
☒ EPI2
☒ EPI3
☐ EPIRK4
☒ EXPRB2
☒ EXPRB3
☐ PEXPRB4 (parallel exponential rosenbrock order 4)
Classic integrators:
☒ RK1,RK2,RK3,RK4
☒ Backward Euler
☒ BDF2
☒ Crank-Nicolson
☐ DIRK
☐ SDIRK
Python¶
Exponential integrators:
Jacobian based:
☒ EPI2
☒ EPI3
☐ EPIRK4
☒ EXPRB2
☒ EXPRB3
☒ PEXPRB4
Splitting linear operator based:
☒ EXP1
☒ EXP2
☒ EXP3
☐ EXP4
Classic integrators:
☒ all explicit and implicit integrators supported by diffrax (through interface with diffrax)
Methods Reference¶
The following integrators are available through the common high level
integrate_wrapper.integrate interface. Different integrators can be
specified through the method keyword argument.
method |
order |
Impl Notes |
kwargs |
description |
Reference |
|---|---|---|---|---|---|
|
2 |
JAX/python |
max_krylov_dim; iom |
Exponential Rosenbrock order 2 |
|
|
3 |
JAX/python |
max_krylov_dim; iom |
Exponential Rosenbrock order 3 |
|
|
4 |
JAX/python |
max_krylov_dim; iom |
Parallel Exponential Rosenbrock order 4 |
|
|
3 |
JAX/python |
max_krylov_dim; iom |
Exponential Propagation Iterative order 3 |
|
|
4 |
JAX/python |
Explicit RK4 |
||
|
1 |
JAX/diffrax |
Backward Euler |
||
|
3 |
JAX/diffrax |
explicit singly diagonal implicit order 3 |
||
|
5 |
JAX/diffrax |
Explicit Dormand-Prince order 5 |
||
|
2 |
Rust |
max_krylov_dim; iom |
Exponential Rosenbrock order 2 |
|
|
3 |
Rust |
max_krylov_dim; iom |
Exponential Rosenbrock order 3 |
|
|
3 |
Rust |
max_krylov_dim; iom |
Exponential Propagation Iterative order 3 |
|
|
1 |
Rust |
Backward Euler |
||
|
2 |
Rust |
Backward difference formula 2 |
||
|
2 |
Rust |
Crank-Nicolson |
||
|
1 |
Rust |
Forward Euler |
||
|
4 |
Rust |
Explicit RK4 |
The Rust-based integrators can be accessed through the common python integrate_wrapper.integrate interface after the Rust-Python bindings are built and installed. Alternatively, the Rust integrator implementations can be used directly from a Rust-based program.