mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-23 07:53:29 -06:00
62 lines
3.4 KiB
TeX
62 lines
3.4 KiB
TeX
\chapter{Introduction}
|
|
|
|
Since creating, refining and managing grids in general is a very
|
|
complex topic which has severe effects on computational efficiency and
|
|
for which no generic and efficient approach exists, our simulation
|
|
framework is build on top of DUNE, the \textbf{D}istributed and \textbf{U}nified
|
|
\textbf{N}umerics \textbf{E}nvironment~\cite{DUNE-HP}. DUNE provides a generic interface to many
|
|
grid management libraries such as UG~\cite{UG-HP}, ALBERTA~\cite{ALBERTA-HP},
|
|
ALU-Grid~\cite{ALUGRID-HP} and a few more. DUNE extensively uses templates in
|
|
order to achieve maximum efficiency to access the actual grid
|
|
libraries\footnote{In fact, the performance penalty resulting from the
|
|
use of DUNE's grid interface is usually negligible~\cite{BURRI2006}.}.
|
|
\begin{figure}[hbt]
|
|
\centering
|
|
\includegraphics[width=.5\linewidth, keepaspectratio]{EPS/dunedesign}
|
|
\caption{
|
|
\label{fig:dune-design}
|
|
A high-level overview on DUNE's design as available on the project's
|
|
web site~\cite{DUNE-HP}.
|
|
}
|
|
\end{figure}
|
|
|
|
DUNE's grid interface is independent of the spatial dimension of the
|
|
underlying grid. For this purpose, it uses the concept of
|
|
co-dimensional entities. Roughly speaking, an entity of co-dimension
|
|
$0$ constitutes a cell, co-dimension $1$ entities are faces between
|
|
cells, co-dimension $1$ are edges, and so on until co-dimension $n$
|
|
which are the cell's vertices. The DUNE grid interface generally
|
|
assumes, that all entities are convex polytopes, which means that it
|
|
must be possible to express each entity as the convex hull of a set of
|
|
vertices. For efficiency, all entities are further expressed in terms
|
|
of so-called reference elements which are transformed to the actual
|
|
spatial incarnation within the grid by a so-called geometry
|
|
function\footnote{The same approach is also used by \texttt{dune-disc} for
|
|
finite element shape functions.}. Here, a reference element for an
|
|
entity can be thought of as a prototype for the actual grid
|
|
entity. For example, if we used at a grid that used hexahedrons as cells,
|
|
the reference element for each cell would be the unit cube $[0, 1]^3$
|
|
and the geometry function would scale and translate the cube so that
|
|
it matches the grid's cell. For a more thorough description of DUNE's
|
|
grid definition, see~\cite{BASTIAN2008}.
|
|
|
|
In addition to the grid interface, DUNE also provides quite a few additional
|
|
modules, of which the \texttt{dune-disc} and \texttt{dune-istl} modules are the most
|
|
relevant in the context of this handbook. \texttt{dune-disc} provides a toolbox for
|
|
discretization and includes a set of generic finite element shape
|
|
functions, matrix assemblers for translating local stiffness matrices
|
|
into global linear systems of equations and much more. \texttt{dune-istl} is the
|
|
\textbf{I}terative \textbf{S}olver \textbf{T}emplate \textbf{L}ibrary
|
|
and provides generic, highly optimized linear algebra routines for solving
|
|
the generated systems.
|
|
|
|
DuMu$^\text{x}$ comes in form of an additional module \texttt{dune-mux}.
|
|
It inherits functionality from all available DUNE modules.
|
|
Its main intention is to provide a framework for easy and efficient
|
|
implementation of models from porous media flow problems,
|
|
ranging from problem formulation, the selection of
|
|
spatial and temporal discretization schemes, as well as nonlinear solvers,
|
|
up to general concepts for model coupling.
|
|
Moreover, DuMu$^\text{x}$ includes ready to use numerical models and example applications.
|
|
|