TOL_T
(control of time step size) error tolerance for computing the temperature using SDIRK2 method in EULERIMPL setting
Default:
TOL_T = 3.0e-4
The
EULERIMPL scheme is a fully implicit method, which does not need to fulfill the CFL condition. Therefore the
time step size is computed dependent on a given tolerance
\begin{align}
\textnormal{TOL} := \textnormal{RTOL} \, \| \mathbf{U}^k \| + \textnormal{ATOL},
\end{align}
whereby in this case \( \textnormal{RTOL} = \textnormal{ATOL} =\)
TOL_T is determined by the user.
With the help of a proportional-integral (PI) controller the time step size is computed by
\begin{align}
\Delta t_{k+1} &= \begin{cases} \Delta t_{k} \left( \dfrac{\theta \, \textnormal{TOL}}{\| \mathbf{\hat{e}}_{k+1} \|} \right)^{\beta_{I}/(\hat{p}+1)} \left( \dfrac{\| \mathbf{\hat{e}}_{k} \|}{\| \mathbf{\hat{e}}_{k+1} \|} \right)^{\beta_{P}/(\hat{p}+1)}, & \dfrac{\| \mathbf{\hat{e}}_{k+1} \|}{\textnormal{TOL}} \leq 1.2 \\[18pt] \Delta t_{k} \left( \dfrac{\theta \, \textnormal{TOL}}{\| \mathbf{\hat{e}}_{k+1} \|} \right)^{1/(\hat{p}+1)}, & \dfrac{\| \mathbf{\hat{e}}_{k+1} \|}{\textnormal{TOL}} > 1.2\end{cases}.
\end{align}
The local error estimator \( \| \mathbf{\hat{e}}_{k+1} \| = \| \mathbf{U}^{k+1} - \mathbf{\hat{U}}^{k+1} \|\) is computed by using an embedded Runge-Kutta method where two results of different order
are compared. Due to the use of the
SDIRK2 method (2nd order) the result \( \mathbf{\hat{U}}^{k+1}\) is based on a method of order \( \hat{p} = 1\).
The other parameters are
\begin{align}
\theta = 0.8, \qquad \beta_{I} = 0.3, \qquad \beta_{P} = 0.4.
\end{align}
Remark: For solving the
ODE \( \mathbf{\dot{U}} = \mathbf{F}(t, \mathbf{U})\), the Singly Diagonally Implicit Runge Kutta (
SDIRK2) method
\begin{align}
\boldsymbol{\eta}_1 &= \mathbf{U}^k + \Delta t \, \alpha \, \mathbf{F}\big(t^k + \alpha \, \Delta t, \, \boldsymbol{\eta}_1\big), \\[10pt] \mathbf{U}^{k+1} &= \mathbf{U}^k + \Delta t \, \Big((1-\alpha) \, \mathbf{F}\big(t^k + \alpha \, \Delta t, \, \boldsymbol{\eta}_1\big) + \alpha \, \mathbf{F}\big(t^k + \Delta t, \, \mathbf{U}^{k+1} \big) \Big),
\end{align}
\begin{align}
\alpha = 1 - \frac{\sqrt{2}}{2}
\end{align}
is used, which is of second order accuracy. That is why it is abbreviated as
SDIRK2.
See
time_integration_impl,
TOL_v and
TOL_keps.