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} 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, @BOOK{A3:leveque:1998,
title = {Numerical Methods for Conservation Laws}, title = {Numerical Methods for Conservation Laws},
publisher = {Birkh\"auser Verlag, Basel Boston, Berlin}, publisher = {Birkh\"auser Verlag, Basel Boston, Berlin},
@ -777,7 +788,7 @@
year = {1997} year = {1997}
} }
@BOOK{A3:reid:1987, @BOOK{reid1987,
title = {The Properties of Gases and Liquids}, title = {The Properties of Gases and Liquids},
publisher = {McGraw-Hill Inc.}, publisher = {McGraw-Hill Inc.},
year = {1987}, year = {1987},
@ -817,6 +828,14 @@
key = {Spa69} 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, @BOOK{A3:Stauffer:1984,
title = {Introduction to Percolation Theory}, title = {Introduction to Percolation Theory},
publisher = {Taylor \& Francis}, 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[automark]{scrpage2}
\usepackage[ansinew]{inputenc} \usepackage[ansinew]{inputenc}
\usepackage{amsmath} \usepackage{amsmath}
@ -161,3 +161,8 @@ Universit\"at Stuttgart, Paffenwaldring 61, D-70569 Stuttgart, Germany}\\
\bibliography{dumux-handbook} \bibliography{dumux-handbook}
\printindex \printindex
\end{document} \end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "dumux-handbook"
%%% End:

View File

@ -1,61 +1,63 @@
\chapter{The \Dumux Fluid Framework} \chapter{The \Dumux Fluid Framework}
\label{sec:fluidframework} \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 do not want to write new models and who do not need new fluid
configurations may skip this chapter. configurations may skip this chapter.
In the chapter, a high level overview over the the principle ideas of In the chapter, a high level overview over the the principle concepts
the concepts is given, then a few implementation details follow. is provided first, then some implementation details follow.
\section{Overview of the Fluid Framework} \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): (listed roughly in their order of importance):
\begin{description} \begin{description}
\item[Fluid state:] Fluid states are responsible for representing the \item[Fluid state:] Fluid states are responsible for representing the
complete thermodynamic configuration of a system. A fluid state complete thermodynamic configuration of a system at a given spatial
always provides access methods to {\bf all} thermodynamic an temporal position. A fluid state always provides access methods
quantities, but the concept of a does not mandate what assumptions to {\bf all} thermodynamic quantities, but the concept of a does not
are made to store these thermodynamic quantities. What fluid states mandate what assumptions are made to store these thermodynamic
do {\bf not} do is to make sure that the thermodynamic state which quantities. What fluid states also do {\bf not} do is to make sure
they represent is physically possible. that the thermodynamic state which they represent is physically
possible.
\item[Fluid system:] Fluid systems express the thermodynamic {\bf \item[Fluid system:] Fluid systems express the thermodynamic {\bf
relations}\footnote{Strictly speaking, these relations are relations}\footnote{Strictly speaking, these relations are
functions, mathematically.} between quantities. Since functions do functions, mathematically.} between quantities. Since functions do
not exhibit any internal state, all fluid systems are state-less not exhibit any internal state, fluid systems are stateless classes,
classes, i.e. all member functions are \texttt{static}. The i.e. all member functions are \texttt{static}. This is a conscious
thermodynamic state is captured by a fluid state! decision since the thermodynamic state of the system is expressed by
\item[Parameter cache:] Since fluid systems sometimes require a fluid state!
computationally expensive parameters for multiple relations, these \item[Parameter cache:] Fluid systems sometimes require
computationally expensive parameters for multiple relations. Such
parameters can be cached using a so-called parameter parameters can be cached using a so-called parameter
cache. Parameter cache objects are specfic for each fluid system but cache. Parameter cache objects are specific for each fluid system
they must provide a common interface to specify which quantities but they must provide a common interface to update the internal
changed since the last invocation. parameters depending on the quantities which changed since the last
update.
\item[Constraint solver:] Constraint solvers are auxiliary tools to \item[Constraint solver:] Constraint solvers are auxiliary tools to
make sure that a fluid state adheres to some thermodynamic make sure that a fluid state adheres to some thermodynamic
constraints. All constraint solvers specify a well defined set of constraints. All constraint solvers specify a well defined set of
input variables make sure that the resulting fluid state is input variables make sure that the resulting fluid state is
consistent with a set of well-defined thermodynamic equations. See consistent with a given set of thermodynamic equations. See section
section \ref{sec:constraint_solvers} for a detailed description of \ref{sec:constraint_solvers} for a detailed description of the
the constraint solvers which are currently available in \Dumux. constraint solvers which are currently available in \Dumux.
\item[Equation of state:] Equations of state (EOS) are auxiliary \item[Equation of state:] Equations of state (EOS) are auxiliary
classes which provide relations between a fluid phase's temperature, classes which provide relations between a fluid phase's temperature,
pressure and density. Since these classes are only used internally 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 in fluid systems, their programming intereface is currently ad-hoc.
currently no common interface for them.
\item[Component:] Components are fluid systems which provide the \item[Component:] Components are fluid systems which provide the
thermodynamic relations for the liquid and gas phase of a single thermodynamic relations for the liquid and gas phase of a single
chemical species or a fixed mixture of species. Their main purpose chemical species or a fixed mixture of species. Their main purpose
is to provide a convenient way to access these quantities from is to provide a convenient way to access these quantities from
full-fledged fluid systems, but they are not supposed to be used by full-fledged fluid systems. Components are not supposed to be used
models directly. by models directly.
\item[Binary coefficient:] Binary coefficients express the relations \item[Binary coefficient:] Binary coefficients express the relations
of a mixture of two components. Typical binary coefficients are of a mixture of two components. Typical binary coefficients are
\textsc{Henry} coefficients or binary molecular diffusion \textsc{Henry} coefficients or binary molecular diffusion
coefficients. So far, the programming interface for accessing binary coefficients. So far, the programming interface for accessing binary
coefficients has not been standardized. coefficients has not been standardized in \Dumux.
\end{description} \end{description}
\section{Fluid States} \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 $\overline M_\alpha$ is the mean molar mass of a molecule of phase
$\alpha$. $\alpha$.
\item[averageMolarMass():] Returns $\overline M_\alpha$, the \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 > 0$ components, $\overline M_\alpha$ is defined as
\[ \[
\overline M_\alpha = \sum_{\kappa=1}^{N} x^\kappa_\alpha M^\kappa \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 \;, f_\alpha^\kappa := \Phi^\kappa_\alpha x^\kappa_\alpha p_\alpha \;,
\] \]
where $\Phi^\kappa_\alpha$ is the {\em fugacity coefficient}. The where $\Phi^\kappa_\alpha$ is the {\em fugacity
physical meaning of fugacity becomes clear from the equation 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\} \;, 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 where $\zeta^\kappa_\alpha$ represents the $\kappa$'s chemical
potential in phase $\alpha$, $R$ stands for the 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, fugacity coefficients, as well as all phase temperatures, pressures,
saturations and enthalpies. saturations and enthalpies.
\item[CompositionalFluidState:] The \item[CompositionalFluidState:] The
\texttt{NonEquilibriumFluidState} with the difference \texttt{Non\-Equilibrium\-Fluid\-State} with the difference
\texttt{CompositionalFluidState} is similar to the difference that \texttt{Compositional\-Fluid\-State} is similar to the difference that
is assumes thermodynamic equilibrium. In the context of multi-phase is assumes thermodynamic equilibrium. In the context of multi-phase
flow in porous media, this means that only a single temperature flow in porous media, this means that only a single temperature
needs to be stored. needs to be stored.
@ -254,7 +256,7 @@ methods:
\item[numPhases:] The number of considered fluid phases. \item[numPhases:] The number of considered fluid phases.
\item[numComponents:] The number of considered chemical (pseudo-) species. \item[numComponents:] The number of considered chemical (pseudo-) species.
\item[init():] Initialize the fluid system. This is usually \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 \item[phaseName():] Given the index of a fluid phase, return a
human-readable string as its name. human-readable string as its name.
\item[componentName():] Given the index of a component, \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 \item[Dumux::FluidSystems::TwoPImmiscible:] A two-phase fluid
system featuring which assumes immiscibility of the fluid system featuring which assumes immiscibility of the fluid
phases. The fluid phases are thus specified by means of their 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. with models that assume immiscibility.
\item[Dumux::FluidSystems::H2ON2:] A two-phase fluid system \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. pure molecular Nitrogen ($N_2$) as components.
\item[Dumux::FluidSystems::H2OAir:] A two-phase fluid system \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 air (Pseudo component composed of $79\%\;N_2$, $20\%\;O_2$ and
$1\%\;Ar$) as components. $1\%\;Ar$) as components.
\item[Dumux::FluidSystems::H2OAirMesitylene:] A three-phase fluid \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 ($H_2O$) and air and Mesitylene ($C_6H_3(CH_3)_3$) as components. This fluid
system assumes all phases to be ideal mixtures. system assumes all phases to be ideal mixtures.
\item[Dumux::FluidSystems::H2OAirXylene:] A three-phase fluid \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 ($H_2O$) and air and Xylene ($C_8H_{10}$) as components. This fluid
system assumes all phases to be ideal mixtures. system assumes all phases to be ideal mixtures.
\item[Dumux::FluidSystems::Spe5:] A three-phase fluid system \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 phases a \textsc{Peng}-\textsc{Robinson} equation of state with
slightly modified parameters is used. This fluid system is highly slightly modified parameters is used. This fluid system is highly
non-linear, and the gas and oil phases can also not be considered as non-linear, and the gas and oil phases can also not be considered as
ideal mixtures. % TODO: citation ideal mixtures\cite{SPE5}.
\end{description} \end{description}
\section{Constraint Solvers} \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. where ${f^\kappa}$, $T_\alpha$ and $p_\alpha$ are fixed values.
\item[ComputeFromReferencePhase:] This solver brings all \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 $\beta$, assuming that all phase temperatures and saturations have
already been set. The constraints used by this solver are thus already been set. The constraints used by this solver are thus
\begin{eqnarray*} \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 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} \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. 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{x}{x}
\psfrag{y}{y} \psfrag{y}{y}
\psfrag{no flow}{no flow} \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 Set up a model domain with the soil properties given in Figure
\ref{tutorial-coupled:exercise1_d}. Adjust the boundary conditions \ref{tutorial-coupled:exercise1_d}. Adjust the boundary conditions
so that water is again flowing from the left to the right of the 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{K1 =}{K $= 10^{-8}\text{ m}^2$}
\psfrag{phi1 =}{$\phi = 0.15$} \psfrag{phi1 =}{$\phi = 0.15$}
\psfrag{K2 =}{\textcolor{white}{K $= 10^{-9}\text{ m}^2$}} \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. compile the program.
\begin{figure}[h] \begin{figure}[ht]
\psfrag{K1}{K $= 10^{-7}\text{ m}^2$} \psfrag{K1}{K $= 10^{-7}\text{ m}^2$}
\psfrag{phi1}{$\phi = 0.2$} \psfrag{phi1}{$\phi = 0.2$}
\psfrag{Lin}{Brooks-Corey Law} \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} \caption{Set-up of the model domain and the soil parameters}\label{tutorial-coupled:ex2_Domain}
\end{figure} \end{figure}
\begin{figure}[h] \begin{figure}[ht]
\psfrag{pw}{$p_w = 5 \times 10^5$ [\text{Pa}]} \psfrag{pw}{$p_w = 5 \times 10^5$ [\text{Pa}]}
\psfrag{S}{$S_n = 1.0$} \psfrag{S}{$S_n = 1.0$}
\psfrag{qw}{$q_w = 2 \times 10^{-4}$ [kg/$\text{m}^2$s]} \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 is considered. Water infiltrates from the left side into the domain. Gravity
effects are neglected. effects are neglected.
\begin{figure}[h] \begin{figure}[ht]
\psfrag{x}{x} \psfrag{x}{x}
\psfrag{y}{y} \psfrag{y}{y}
\psfrag{no flow}{no flow} \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} \\ \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. 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{K1 =}{K $= 10^{-8}\text{ m}^2$}
\psfrag{phi1 =}{$\phi = 0.15$} \psfrag{phi1 =}{$\phi = 0.15$}
\psfrag{K2 =}{\textcolor{white}{K $= 10^{-9}\text{ m}^2$}} \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. compile the program.
\begin{figure}[h] \begin{figure}[ht]
\psfrag{K1}{K $= 10^{-7}\text{ m}^2$} \psfrag{K1}{K $= 10^{-7}\text{ m}^2$}
\psfrag{phi1}{$\phi = 0.2$} \psfrag{phi1}{$\phi = 0.2$}
\psfrag{Lin}{Brooks Corey Law} \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} \caption{Set-up of the model domain and the soil parameters}\label{tutorial-decoupled:ex2_Domain}
\end{figure} \end{figure}
\begin{figure}[h] \begin{figure}[ht]
\psfrag{pw}{$p_w = 2 \times 10^5$ [\text{Pa}]} \psfrag{pw}{$p_w = 2 \times 10^5$ [\text{Pa}]}
\psfrag{S}{$S_w = 0.0$} \psfrag{S}{$S_w = 0.0$}
\psfrag{qw}{$q_w = 3 \times 10^{-4}$ [kg/$\text{m}^2$s]} \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-coupled}
\input{tutorial-decoupled} \input{tutorial-decoupled}
%\input{tutorial-newmodel} %\input{tutorial-newmodel}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "dumux-handbook"
%%% End: