Variable Step Size Integration Algorithms Output
Dymosim provides a number of variable step size integration algorithms. The most important characteristics of these algorithms are given in the following table:
Algorithm |
Order |
Stiff |
A-stable |
Dense Output |
Root Finder |
Method |
LSODAR |
1-12, 1-5 |
Both |
No |
Yes |
Yes |
Multiple step / Adams methods |
DASSL |
1-5 |
Yes |
No |
Yes |
Yes |
Multiple step / BDF |
Radau Ila |
5 |
Yes |
Yes |
Yes |
Yes |
Single step / Runge Kutta |
Esdirk23a |
3 |
Yes |
Yes |
Yes |
Yes |
Single step / Runge Kutta |
Esdirk34a |
4 |
Yes |
Yes |
Yes |
Yes |
Single step / Runge Kutta |
Esdirk45a |
5 |
Yes |
Yes |
Yes |
Yes |
Single step / Runge Kutta |
Dopri45 |
5 |
No |
N/A |
Yes |
Yes |
Single step / Runge Kutta |
Dopri853 |
8 |
No |
N/A |
Yes |
Yes |
Single step / Runge Kutta |
Sdirk34hw |
4 |
Yes |
Yes |
Yes |
Yes |
Single step / Runge Kutta |
Cerk23 |
3 |
No |
N/A |
Yes |
Yes |
Single step / Runge Kutta |
Cerk34 |
4 |
No |
N/A |
Yes |
Yes |
Single step / Runge Kutta |
Cerk45 |
5 |
No |
N/A |
Yes |
Yes |
Single step / Runge Kutta |
Fixed Step Size Integration Algorithms Output
There are also four different fixed step size integration algorithms, intended for real-time simulations:
Algorithm |
Order |
Stiff |
Dense Output |
Root Finder |
Method |
Euler |
1 |
No |
No |
Yes |
Euler |
Rkfix2 |
2 |
No |
No |
No |
Single step / Runge Kutta |
Rkfix3 |
3 |
No |
No |
No |
Single step / Runge Kutta |
Rkfix4 |
4 |
No |
No |
No |
Single step / Runge Kutta |
Advanced Algorithm
A number of algorithms are available for an advanced use.
If the model does not contain many events:
- and is stiff: use LSODAR.
- and is non-stiff: use DASSL.
If the model contains many events:
- and is stiff: use Radau Il or Esdirk (use higher order if stricter tolerance is wanted).
- and is non-stiff: use Cerk or Dopri can (use higher order if stricter tolerance is wanted).
Inline Integration Algorithm
Inline integration is provided to increase the
simulation speed, in particular for real-time simulation.
Inline integration is a combined symbolic and numeric
approach to solving differential-algebraic
equations systems. Discretization expressions
representing the numerical integration
algorithm are symbolically inserted into the differential
algebraic equation model. The equations are then transformed into a
representation that is efficient for numeric simulation.
The following inline integration algorithms are provided:
- Inline Explicit Euler
- Inline Implicit Euler
- Inline Trapezoidal Method
- Inline Mixed Implicit/Explicit Euler
- Inline Explicit Runge Kutta
- Inline Implicit Runge Kutta