Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
dumux
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
77
Issues
77
List
Boards
Labels
Milestones
Merge Requests
43
Merge Requests
43
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dumux-repositories
dumux
Commits
30ead698
Commit
30ead698
authored
Nov 26, 2018
by
Holger Class
Committed by
Martin Schneider
Dec 18, 2018
2
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
time discretization
parent
9a28187b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
4 deletions
+43
-4
5_models.tex
doc/handbook/5_models.tex
+43
-4
No files found.
doc/handbook/5_models.tex
View file @
30ead698
...
...
@@ -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.
...
...
Timo Koch
@timok
mentioned in commit
a47c325a
·
Dec 18, 2018
mentioned in commit
a47c325a
mentioned in commit a47c325a10eca6ea83d1b420584b0925f9a4de2f
Toggle commit list
Timo Koch
@timok
mentioned in merge request
!1428 (merged)
·
Dec 18, 2018
mentioned in merge request
!1428 (merged)
mentioned in merge request !1428
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment