Choosing an Algorithm
CuBIE ships several integration algorithm families. This page helps you pick the right one.
Decision Guide
Problem type |
Recommended family |
Notes |
|---|---|---|
Non-stiff |
ERK |
Fast per step; Dormand–Prince 5(4) is a good default. |
Mildly stiff |
DIRK or Rosenbrock-W |
DIRK is robust; Rosenbrock-W avoids Newton iteration. |
Very stiff |
FIRK |
Radau IIA 5 handles extreme stiffness well. |
Fixed step required |
|
Forward Euler for explicit, Backward Euler for implicit. |
Available Algorithms
Explicit Runge–Kutta (ERK)
Name |
Order |
Adaptive |
Notes |
|---|---|---|---|
|
2 |
Yes |
Heun’s method. |
|
3(2) |
Yes |
Low-order, cheap. |
|
3 |
No |
Ralston’s method. |
|
5(4) |
Yes |
Industry standard; good default. |
|
5(4) |
Yes |
Often slightly more efficient than Dormand–Prince. |
|
6(5) |
Yes |
Verner’s method. |
|
7(8) |
Yes |
High order; useful for smooth, high-accuracy problems. |
Diagonally Implicit Runge–Kutta (DIRK)
Name |
Order |
Adaptive |
Notes |
|---|---|---|---|
|
2 |
No |
Symmetric, energy-preserving. |
|
2 |
No |
Trapezoidal rule. |
|
2 |
Yes |
L-stable SDIRK. |
|
3 |
Yes |
L-stable, 3 stages. |
|
4 |
Yes |
L-stable, 5 stages. |
|
4 |
Yes |
Default DIRK tableau. |
Fully Implicit Runge–Kutta (FIRK)
Name |
Order |
Adaptive |
Notes |
|---|---|---|---|
|
4 |
Yes |
2-stage Gauss–Legendre; default FIRK. |
|
5 |
Yes |
3-stage Radau IIA; excellent for stiff problems. |
Rosenbrock-W
Name |
Order |
Adaptive |
Notes |
|---|---|---|---|
|
3 |
Yes |
Default Rosenbrock; no Newton iteration. |
|
3 |
Yes |
Stiffly accurate variant. |
|
3 |
Yes |
SciML-compatible tableau. |
Simple methods
Name |
Order |
Adaptive |
Notes |
|---|---|---|---|
|
1 |
No |
Forward Euler; explicit. |
|
1 |
No |
Backward Euler; implicit, L-stable. |
|
1 |
No |
Predictor-corrector backward Euler. |
|
2 |
No |
Implicit trapezoidal rule. |
Choosing a Controller
Adaptive algorithms use an error controller to adjust the step size. CuBIE supports several controllers:
- PI controller
The most common choice. Balances responsiveness with stability.
- PID controller
Adds a derivative term for smoother step-size histories; can reduce oscillations in the step size on problems with sharp transients.
- Gustafsson controller
Predictive controller that accounts for the previous step’s error ratio. Useful when step rejections are frequent.
For most problems the default controller works well. Adjust via
step_control_settings on the Solver.
For the mathematical background behind these algorithms, see Numerical Integration.