Skip to content

Commit 2c23e69

Browse files
AnHeuermannadeas31
authored andcommitted
Add Cvode Documentation
- Also fixed wrong order in tooltip
1 parent 83ecc42 commit 2c23e69

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

OMCompiler/SimulationRuntime/c/util/simulation_options.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ const char *SOLVER_METHOD_DESC[S_MAX] = {
706706
/* S_IRKSCO */ "irksco - own developed Runge-Kutta solver - implicit, step size control, order 1-2",
707707
/* S_DASSL */ "dassl - default solver - BDF method - implicit, step size control, order 1-5",
708708
/* S_IDA */ "ida - SUNDIALS IDA solver - BDF method with sparse linear solver - implicit, step size control, order 1-5",
709-
/* S_CVODE */ "cvode - experimental implementation of SUNDIALS CVODE solver - BDF or Adams-Moulton method - step size control, order 1-5",
709+
/* S_CVODE */ "cvode - experimental implementation of SUNDIALS CVODE solver - BDF or Adams-Moulton method - step size control, order 1-12",
710710
/* S_ERKSSC */ "rungekuttaSsc - Runge-Kutta based on Novikov (2016) - explicit, step size control, order 4-5 [experimental]",
711711
/* S_SYM_SOLVER */ "symSolver - symbolic inline Solver [compiler flag +symSolver needed] - fixed step size, order 1",
712712
/* S_SYM_SOLVER_SSC */ "symSolverSsc - symbolic implicit Euler with step size control [compiler flag +symSolver needed] - step size control, order 1",

doc/UsersGuide/source/solving.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,35 @@ solver and furthermore it has the following IDA specific flags:
7373
:ref:`idaNonLinConvCoef <simflag-idaNonLinConvCoef>`,
7474
:ref:`idaMaxErrorTestFails <simflag-idaMaxErrorTestFails>`.
7575

76+
77+
.. _sundials_cvode :
78+
79+
CVODE
80+
~~~~~
81+
82+
The CVODE solver is part of sundials: SUite of Nonlinear and
83+
DIfferential/ALgebraic equation Solvers :cite:`Hindmarsh:2005`.
84+
CVODE solves initial value problems for ordinary differential equation (ODE)
85+
systems with variable-order, variable-step multistep methods.
86+
87+
In OpenModelica, CVODE uses a combination of Backward Differentiation
88+
Formulas (varying order 1 to 5) as linear multi-step method and a modified
89+
Newton iteration with fixed Jacobian as non-linear solver per default.
90+
This setting is advised for stiff problems which are very common for Modelica
91+
models.
92+
For non-stiff problems an combination of an Adams-Moulton formula (varying
93+
order 1 to 12) as linear multi-step method together with a fixed-point
94+
iteration as non-linear solver method can be choosen.
95+
96+
Both non-linear solver methods are internal functions of CVODE and use its
97+
internal direct dense linear solver CVDense.
98+
For the Jacobian of the ODE CVODE will use its internal dense difference
99+
quotient approximation.
100+
101+
CVODE has the following solver specific flags:
102+
:ref:`cvodeNonlinearSolverIteration <simflag-cvodeNonlinearSolverIteration>`,
103+
:ref:`cvodeLinearMultistepMethod <simflag-cvodeLinearMultistepMethod>`.
104+
76105
Basic Explicit Solvers
77106
~~~~~~~~~~~~~~~~~~~~~~
78107

@@ -106,6 +135,7 @@ Experimental Solvers
106135
The following solvers are marked as experimental, mostly because they
107136
are till now not tested very well.
108137

138+
- cvode - experimental implementation of SUNDIALS CVODE solver - BDF or Adams-Moulton method - step size control, order 1-12
109139
- rungekuttaSsc - Runge-Kutta based on Novikov (2016) - explicit, step-size control, order 4-5
110140
- irksco - Own developed Runge-Kutta solver - implicit, step-size control, order 1-2
111141
- symSolver - Symbolic inline solver (requires :ref:`--symSolver <omcflag-symSolver>`) - fixed step-size, order 1

0 commit comments

Comments
 (0)