### time discretization

parent 9a28187b
 ... ... @@ -201,10 +201,49 @@ in the Doxygen documentation at \url{http://www.dumux.org/doxygen-stable/html-\DumuxVersion/modules.php}. The documentation includes a detailed description for every model. \subsubsection{Temporal discretization} We discretize time with an explicit or implicit Euler method. % TODO: make section with more details on temporal discretization \subsubsection{Time discretization} Our systems of partial differential equations are discretized in space and in time. Let us consider the general case of a balance equation of the following form \begin{equation}\label{eq:generalbalance} \frac{\partial m(u)}{\partial t} + \nabla\cdot\mathbf{f}(u, \nabla u) + q(u) = 0, \end{equation} seeking an unknown quantity $u$ in terms of storage $m$, flux $\mathbf{f}$ and source $q$. All available Dumux models can be written mathematically in form of \eqref{eq:generalbalance} with possibly vector-valued quantities $u$, $m$, $q$ and a tensor-valued flux $\mathbf{f}$. For the sake of simplicity, we assume scalar quantities $u$, $m$, $q$ and a vector-valued flux $\mathbf{f}$ in the notation below. For discretizing \eqref{eq:generalbalance} we need to choose an approximation for the temporal derivative $\partial m(u)/\partial t$. While many elaborate methods for this approximation exist, we focus on the simplest one of a first order difference quotient \begin{equation}\label{eq:euler} \frac{\partial m(u_{k/k+1})}{\partial t} \approx \frac{m(u_{k+1}) - m(u_k)}{\Delta t_{k+1}} \end{equation} for approximating the solution $u$ at time $t_k$ (forward) or $t_{k+1}$ (backward). The question of whether to choose the forward or the backward quotient leads to the explicit and implicit Euler method, respectively. In case of the former, inserting \eqref{eq:euler} in \eqref{eq:generalbalance} at time $t_k$ leads to \begin{equation}\label{eq:expliciteuler} \frac{m(u_{k+1}) - m(u_k)}{\Delta t_{k+1}} + \nabla\cdot\mathbf{f}(u_k, \nabla u_k) + q(u_k) = 0, \end{equation} whereas the implicit Euler method is described as \begin{equation}\label{eq:impliciteuler} \frac{m(u_{k+1}) - m(u_k)}{\Delta t_{k+1}} + \nabla\cdot\mathbf{f}(u_{k+1}, \nabla u_{k+1}) + q(u_{k+1}) = 0. \end{equation} Once the solution $u_k$ at time $t_k$ is known, it is straightforward to determine $m(u_{k+1})$ from \eqref{eq:expliciteuler}, while attempting to do the same based on \eqref{eq:impliciteuler} involves the solution of a nonlinear system. On the other hand, the explicit method \eqref{eq:expliciteuler} is stable only if the time step size $\Delta t_{k+1}$ is below a certain limit that depends on the specific balance equation, whereas the implicit method \eqref{eq:impliciteuler} is unconditionally stable. \subsubsection{Algorithms to solve equations} The governing equations of each model can be solved monolithically or sequentially. ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!