handbook: sime proof reading of the fluid framework chapter, fixes to minor LaTeX issues

there are some dangling references in the decoupled tutorial, but
AFAIK this will receive some love by Benjamin before the release.
This commit is contained in:
Andreas Lauser 2012-02-07 17:53:55 +00:00 committed by Andreas Lauser
parent b2a873fc10
commit e15802f2f7
6 changed files with 86 additions and 54 deletions

View File

@ -610,6 +610,17 @@
number = {12}
}
@ARTICLE{LHHW2011,
author = {A. Lauser and C. Hager and R. Helmig and B. Wohlmuth},
title = {A new approach for phase transitions in miscible multi-phase flow in porous media},
journal = {Advances in Water Resources},
year = {2011},
pages = {957--966},
volume = {34},
number = {8}
}
@BOOK{A3:leveque:1998,
title = {Numerical Methods for Conservation Laws},
publisher = {Birkh\"auser Verlag, Basel Boston, Berlin},
@ -777,7 +788,7 @@
year = {1997}
}
@BOOK{A3:reid:1987,
@BOOK{reid1987,
title = {The Properties of Gases and Liquids},
publisher = {McGraw-Hill Inc.},
year = {1987},
@ -817,6 +828,14 @@
key = {Spa69}
}
@ARTICLE{SPE5,
author = {J. E. Killough and C. A. Kossack},
title = {Fifth Comparative Solution Project: Evaluation of Miscible Flood Simulators},
journal = {Society of Petroleum Engineers},
year = {1987},
volume = {SPE 16000}
}
@BOOK{A3:Stauffer:1984,
title = {Introduction to Percolation Theory},
publisher = {Taylor \& Francis},

View File

@ -1,4 +1,4 @@
\documentclass[11pt,a4paper,headinclude,footinclude,DIV16,normalheadings]{scrreprt}
\documentclass[11pt,a4paper,headinclude,footinclude,DIV16]{scrreprt}
\usepackage[automark]{scrpage2}
\usepackage[ansinew]{inputenc}
\usepackage{amsmath}
@ -161,3 +161,8 @@ Universit\"at Stuttgart, Paffenwaldring 61, D-70569 Stuttgart, Germany}\\
\bibliography{dumux-handbook}
\printindex
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "dumux-handbook"
%%% End:

View File

@ -1,61 +1,63 @@
\chapter{The \Dumux Fluid Framework}
\label{sec:fluidframework}
This chapter discusses to the \Dumux fluid framework. \Dumux users who
This chapter discusses the \Dumux fluid framework. \Dumux users who
do not want to write new models and who do not need new fluid
configurations may skip this chapter.
In the chapter, a high level overview over the the principle ideas of
the concepts is given, then a few implementation details follow.
In the chapter, a high level overview over the the principle concepts
is provided first, then some implementation details follow.
\section{Overview of the Fluid Framework}
The \Dumux fluid framework currently featurs the following concepts
The \Dumux fluid framework currently features the following concepts
(listed roughly in their order of importance):
\begin{description}
\item[Fluid state:] Fluid states are responsible for representing the
complete thermodynamic configuration of a system. A fluid state
always provides access methods to {\bf all} thermodynamic
quantities, but the concept of a does not mandate what assumptions
are made to store these thermodynamic quantities. What fluid states
do {\bf not} do is to make sure that the thermodynamic state which
they represent is physically possible.
complete thermodynamic configuration of a system at a given spatial
an temporal position. A fluid state always provides access methods
to {\bf all} thermodynamic quantities, but the concept of a does not
mandate what assumptions are made to store these thermodynamic
quantities. What fluid states also do {\bf not} do is to make sure
that the thermodynamic state which they represent is physically
possible.
\item[Fluid system:] Fluid systems express the thermodynamic {\bf
relations}\footnote{Strictly speaking, these relations are
functions, mathematically.} between quantities. Since functions do
not exhibit any internal state, all fluid systems are state-less
classes, i.e. all member functions are \texttt{static}. The
thermodynamic state is captured by a fluid state!
\item[Parameter cache:] Since fluid systems sometimes require
computationally expensive parameters for multiple relations, these
not exhibit any internal state, fluid systems are stateless classes,
i.e. all member functions are \texttt{static}. This is a conscious
decision since the thermodynamic state of the system is expressed by
a fluid state!
\item[Parameter cache:] Fluid systems sometimes require
computationally expensive parameters for multiple relations. Such
parameters can be cached using a so-called parameter
cache. Parameter cache objects are specfic for each fluid system but
they must provide a common interface to specify which quantities
changed since the last invocation.
cache. Parameter cache objects are specific for each fluid system
but they must provide a common interface to update the internal
parameters depending on the quantities which changed since the last
update.
\item[Constraint solver:] Constraint solvers are auxiliary tools to
make sure that a fluid state adheres to some thermodynamic
constraints. All constraint solvers specify a well defined set of
input variables make sure that the resulting fluid state is
consistent with a set of well-defined thermodynamic equations. See
section \ref{sec:constraint_solvers} for a detailed description of
the constraint solvers which are currently available in \Dumux.
consistent with a given set of thermodynamic equations. See section
\ref{sec:constraint_solvers} for a detailed description of the
constraint solvers which are currently available in \Dumux.
\item[Equation of state:] Equations of state (EOS) are auxiliary
classes which provide relations between a fluid phase's temperature,
pressure and density. Since these classes are only used internally
in the fluid systems, the classes for a EOS are ad-hoc and there is
currently no common interface for them.
in fluid systems, their programming intereface is currently ad-hoc.
\item[Component:] Components are fluid systems which provide the
thermodynamic relations for the liquid and gas phase of a single
chemical species or a fixed mixture of species. Their main purpose
is to provide a convenient way to access these quantities from
full-fledged fluid systems, but they are not supposed to be used by
models directly.
full-fledged fluid systems. Components are not supposed to be used
by models directly.
\item[Binary coefficient:] Binary coefficients express the relations
of a mixture of two components. Typical binary coefficients are
\textsc{Henry} coefficients or binary molecular diffusion
coefficients. So far, the programming interface for accessing binary
coefficients has not been standardized.
coefficients has not been standardized in \Dumux.
\end{description}
\section{Fluid States}
@ -99,7 +101,7 @@ Also, {\bf all} fluid states {\bf must} provide the following methods:
$\overline M_\alpha$ is the mean molar mass of a molecule of phase
$\alpha$.
\item[averageMolarMass():] Returns $\overline M_\alpha$, the
mean molar mass of a molecule of phase $\alpha$. For a mixure of $N
mean molar mass of a molecule of phase $\alpha$. For a mixture of $N
> 0$ components, $\overline M_\alpha$ is defined as
\[
\overline M_\alpha = \sum_{\kappa=1}^{N} x^\kappa_\alpha M^\kappa
@ -124,11 +126,11 @@ Also, {\bf all} fluid states {\bf must} provide the following methods:
\[
f_\alpha^\kappa := \Phi^\kappa_\alpha x^\kappa_\alpha p_\alpha \;,
\]
where $\Phi^\kappa_\alpha$ is the {\em fugacity coefficient}. The
physical meaning of fugacity becomes clear from the equation
where $\Phi^\kappa_\alpha$ is the {\em fugacity
coefficient}~\cite{reid1987}. The physical meaning of
fugacity becomes clear from the equation
\[
f_\alpha^\kappa = p_\alpha \exp\left\{\frac{\zeta^\kappa_\alpha}{R T_\alpha} \right\} \;,
% TODO: cite
\]
where $\zeta^\kappa_\alpha$ represents the $\kappa$'s chemical
potential in phase $\alpha$, $R$ stands for the
@ -161,8 +163,8 @@ Currently, the following fluid states are available in \Dumux:
fugacity coefficients, as well as all phase temperatures, pressures,
saturations and enthalpies.
\item[CompositionalFluidState:] The
\texttt{NonEquilibriumFluidState} with the difference
\texttt{CompositionalFluidState} is similar to the difference that
\texttt{Non\-Equilibrium\-Fluid\-State} with the difference
\texttt{Compositional\-Fluid\-State} is similar to the difference that
is assumes thermodynamic equilibrium. In the context of multi-phase
flow in porous media, this means that only a single temperature
needs to be stored.
@ -208,7 +210,7 @@ state, though. Parameter cache objects must at least provide the
following update methods
\begin{description}
\item[updateAll(fluidState, except):] Update all cached quantities in
all phases. The \texttt{except} argument contains a bitfield of the
all phases. The \texttt{except} argument contains a bit field of the
quantities which have not changed since the last call to a
\texttt{update()} method.
\item[updateAllPresures(fluidState):]
@ -219,7 +221,7 @@ following update methods
all phases.
\item[updatePhase(fluidState, phaseIdx, except):] Update all cached
quantities for a given phase. The quantities specified by the
\texttt{except} bitfield have not been modified since the last
\texttt{except} bit field have not been modified since the last
call to an \texttt{update()} method.
\item[updateTemperature(fluidState, phaseIdx):] Update all cached
quantities which depend on the temperature of a given phase.
@ -254,7 +256,7 @@ methods:
\item[numPhases:] The number of considered fluid phases.
\item[numComponents:] The number of considered chemical (pseudo-) species.
\item[init():] Initialize the fluid system. This is usually
used tabulated to tabulate some quantites
used tabulated to tabulate some quantities
\item[phaseName():] Given the index of a fluid phase, return a
human-readable string as its name.
\item[componentName():] Given the index of a component,
@ -349,21 +351,21 @@ Currently, the following fluid states are available in \Dumux:
\item[Dumux::FluidSystems::TwoPImmiscible:] A two-phase fluid
system featuring which assumes immiscibility of the fluid
phases. The fluid phases are thus specified by means of their
constituting components. This fluid system is intented to be used
constituting components. This fluid system is intended to be used
with models that assume immiscibility.
\item[Dumux::FluidSystems::H2ON2:] A two-phase fluid system
featuring the gas and liquid phases and destilled water ($H_2O$) and
featuring the gas and liquid phases and distilled water ($H_2O$) and
pure molecular Nitrogen ($N_2$) as components.
\item[Dumux::FluidSystems::H2OAir:] A two-phase fluid system
featuring the gas and liquid phases and destilled water ($H_2O$) and
featuring the gas and liquid phases and distilled water ($H_2O$) and
air (Pseudo component composed of $79\%\;N_2$, $20\%\;O_2$ and
$1\%\;Ar$) as components.
\item[Dumux::FluidSystems::H2OAirMesitylene:] A three-phase fluid
system featuring the gas, NAPL and water phases and destilled water
system featuring the gas, NAPL and water phases and distilled water
($H_2O$) and air and Mesitylene ($C_6H_3(CH_3)_3$) as components. This fluid
system assumes all phases to be ideal mixtures.
\item[Dumux::FluidSystems::H2OAirXylene:] A three-phase fluid
system featuring the gas, NAPL and water phases and destilled water
system featuring the gas, NAPL and water phases and distilled water
($H_2O$) and air and Xylene ($C_8H_{10}$) as components. This fluid
system assumes all phases to be ideal mixtures.
\item[Dumux::FluidSystems::Spe5:] A three-phase fluid system
@ -375,7 +377,7 @@ Currently, the following fluid states are available in \Dumux:
phases a \textsc{Peng}-\textsc{Robinson} equation of state with
slightly modified parameters is used. This fluid system is highly
non-linear, and the gas and oil phases can also not be considered as
ideal mixtures. % TODO: citation
ideal mixtures\cite{SPE5}.
\end{description}
\section{Constraint Solvers}
@ -397,7 +399,7 @@ sharing this code between models makes a lot of sense. Currently,
\]
where ${f^\kappa}$, $T_\alpha$ and $p_\alpha$ are fixed values.
\item[ComputeFromReferencePhase:] This solver brings all
fluid phases into thermodynmic equilibrium with a reference phase
fluid phases into thermodynamic equilibrium with a reference phase
$\beta$, assuming that all phase temperatures and saturations have
already been set. The constraints used by this solver are thus
\begin{eqnarray*}
@ -440,9 +442,10 @@ sharing this code between models makes a lot of sense. Currently,
\[
c^\kappa_{tot} = sum_{\alpha=1}^M \rho_{mol,\alpha} x_\alpha^\kappa = const
\]
\item And finally $M$ model constraints. This solver uses NCP constraints: % as suggested in \cite{TODO}
\item And finally $M$ model constraints. This solver uses NCP
constraints as proposed in~\cite{LHHW2011}:
\[
0 = \mathrm{min}\{\saturation_\alpha, 1 - \sum_{\kappa=1}^N x_\alpha^\kappa}
0 = \mathrm{min}\{\saturation_\alpha, 1 - \sum_{\kappa=1}^N x_\alpha^\kappa\}
\]
\end{itemize}

View File

@ -10,7 +10,7 @@ The process of solving a problem using \Dumux can be roughly divided into four p
The problem being solved in this tutorial is illustrated in Figure \ref{tutorial-coupled:problemfigure}. A rectangular domain with no flow boundaries on the top and on the bottom, which is initially saturated with oil, is considered. Water infiltrates from the left side into the domain. Gravity effects are neglected.
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{x}{x}
\psfrag{y}{y}
\psfrag{no flow}{no flow}
@ -350,7 +350,7 @@ of the linear law and the respective \texttt{set}-functions can be found
Set up a model domain with the soil properties given in Figure
\ref{tutorial-coupled:exercise1_d}. Adjust the boundary conditions
so that water is again flowing from the left to the right of the
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{K1 =}{K $= 10^{-8}\text{ m}^2$}
\psfrag{phi1 =}{$\phi = 0.15$}
\psfrag{K2 =}{\textcolor{white}{K $= 10^{-9}\text{ m}^2$}}
@ -399,7 +399,7 @@ Now include your new problem file in the main file and replace the
compile the program.
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{K1}{K $= 10^{-7}\text{ m}^2$}
\psfrag{phi1}{$\phi = 0.2$}
\psfrag{Lin}{Brooks-Corey Law}
@ -419,7 +419,7 @@ compile the program.
\caption{Set-up of the model domain and the soil parameters}\label{tutorial-coupled:ex2_Domain}
\end{figure}
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{pw}{$p_w = 5 \times 10^5$ [\text{Pa}]}
\psfrag{S}{$S_n = 1.0$}
\psfrag{qw}{$q_w = 2 \times 10^{-4}$ [kg/$\text{m}^2$s]}

View File

@ -22,7 +22,7 @@ boundaries on the top and at the bottom, which is initially saturated with oil,
is considered. Water infiltrates from the left side into the domain. Gravity
effects are neglected.
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{x}{x}
\psfrag{y}{y}
\psfrag{no flow}{no flow}
@ -226,7 +226,7 @@ Please reverse the changes of this example, as we still use bulk phases and henc
\item \textbf{Heterogeneities} \\
Set up a model domain with the soil properties given in Figure \ref{tutorial-deoucpled:exercise1_d}. Adjust the boundary conditions so that water is again flowing from left to right.
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{K1 =}{K $= 10^{-8}\text{ m}^2$}
\psfrag{phi1 =}{$\phi = 0.15$}
\psfrag{K2 =}{\textcolor{white}{K $= 10^{-9}\text{ m}^2$}}
@ -274,7 +274,7 @@ Now include your new problem file in the main file and replace the
compile the program.
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{K1}{K $= 10^{-7}\text{ m}^2$}
\psfrag{phi1}{$\phi = 0.2$}
\psfrag{Lin}{Brooks Corey Law}
@ -294,7 +294,7 @@ compile the program.
\caption{Set-up of the model domain and the soil parameters}\label{tutorial-decoupled:ex2_Domain}
\end{figure}
\begin{figure}[h]
\begin{figure}[ht]
\psfrag{pw}{$p_w = 2 \times 10^5$ [\text{Pa}]}
\psfrag{S}{$S_w = 0.0$}
\psfrag{qw}{$q_w = 3 \times 10^{-4}$ [kg/$\text{m}^2$s]}

View File

@ -8,3 +8,8 @@ In section \ref{box} a short introduction about the box method is given. The box
\input{tutorial-coupled}
\input{tutorial-decoupled}
%\input{tutorial-newmodel}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "dumux-handbook"
%%% End: