Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dumux-repositories
dumux
Commits
332171ba
Commit
332171ba
authored
Dec 19, 2017
by
Melanie Lipp
Browse files
[docu] Changes in the documentation of richards, richardsnc and tracer.
parent
4340e80c
Changes
8
Hide whitespace changes
Inline
Side-by-side
dumux/porousmediumflow/richards/indices.hh
View file @
332171ba
...
...
@@ -52,13 +52,13 @@ struct RichardsIndices
//////////
// phase indices
//////////
static
constexpr
int
wPhaseIdx
=
0
;
//! Index of the wetting phase;
static
constexpr
int
nPhaseIdx
=
1
;
//! Index of the non-wetting phase;
static
constexpr
int
wPhaseIdx
=
0
;
//!
<
Index of the wetting phase;
static
constexpr
int
nPhaseIdx
=
1
;
//!
<
Index of the non-wetting phase;
// present phases (-> 'pseudo' primary variable)
static
constexpr
int
wPhaseOnly
=
1
;
//! Only the non-wetting phase is present
static
constexpr
int
nPhaseOnly
=
2
;
//! Only the wetting phase is present
static
constexpr
int
bothPhases
=
3
;
//! Both phases are present
static
constexpr
int
wPhaseOnly
=
1
;
//!
<
Only the non-wetting phase is present
static
constexpr
int
nPhaseOnly
=
2
;
//!
<
Only the wetting phase is present
static
constexpr
int
bothPhases
=
3
;
//!
<
Both phases are present
};
// \}
...
...
dumux/porousmediumflow/richards/volumevariables.hh
View file @
332171ba
...
...
@@ -413,6 +413,9 @@ public:
/*!
* \brief Returns the binary diffusion coefficients for a phase in \f$[m^2/s]\f$.
*
* \param phaseIdx TODO docme!
* \param compIdx TODO docme!
*/
Scalar
diffusionCoefficient
(
int
phaseIdx
,
int
compIdx
)
const
{
...
...
dumux/porousmediumflow/richardsnc/indices.hh
View file @
332171ba
...
...
@@ -38,21 +38,21 @@ template <class TypeTag, int PVOffset = 0>
struct
RichardsNCIndices
{
//!
<
Set the index of the phases for accessing the volvars
//! Set the index of the phases for accessing the volvars
static
const
int
wPhaseIdx
=
0
;
static
const
int
nPhaseIdx
=
1
;
//!
<
Component indices
static
const
int
compMainIdx
=
PVOffset
+
0
;
//! main component index
//! Component indices
static
const
int
compMainIdx
=
PVOffset
+
0
;
//!
<
main component index
//!
<
primary variable indices
static
const
int
pressureIdx
=
PVOffset
+
0
;
//! pressure
//! primary variable indices
static
const
int
pressureIdx
=
PVOffset
+
0
;
//!
<
pressure
//! \note These indices make sense if the first balance is replaced by the
//! total mass balance.
//!
<
Equation indices
static
const
int
conti0EqIdx
=
PVOffset
+
0
;
//! continuity equation index
//! Equation indices
static
const
int
conti0EqIdx
=
PVOffset
+
0
;
//!
<
continuity equation index
};
// \}
...
...
dumux/porousmediumflow/richardsnc/model.hh
View file @
332171ba
...
...
@@ -21,6 +21,47 @@
* \ingroup RichardsNCModel
* \brief Base class for all models which use the Richards,
* n-component fully implicit model.
*
* In the unsaturated zone, Richards' equation
*\f{eqnarray}
&& \frac{\partial (\sum_w \varrho_w X_w^\kappa \phi S_w )}
{\partial t}
- \sum_w \text{div} \left\{ \varrho_w X_w^\kappa
\frac{k_{rw}}{\mu_w} \mbox{\bf K}
(\text{grad}\, p_w - \varrho_{w} \mbox{\bf g}) \right\}
\nonumber \\ \nonumber \\
&-& \sum_w \text{div} \left\{{\bf D_{w, pm}^\kappa} \varrho_{w} \text{grad}\, X^\kappa_{w} \right\}
- \sum_w q_w^\kappa = 0 \qquad \kappa \in \{w, a,\cdots \} \, ,
w \in \{w, g\}
\f}
* is frequently used to
* approximate the water distribution above the groundwater level.
*
* In contrast to the full two-phase model, the Richards model assumes
* gas as the non-wetting fluid and that it exhibits a much lower
* viscosity than the (liquid) wetting phase. (For example at
* atmospheric pressure and at room temperature, the viscosity of air
* is only about \f$1\%\f$ of the viscosity of liquid water.) As a
* consequence, the \f$\frac{k_{r\alpha}}{\mu_\alpha}\f$ term
* typically is much larger for the gas phase than for the wetting
* phase. For this reason, the Richards model assumes that
* \f$\frac{k_{rn}}{\mu_n}\f$ is infinitly large. This implies that
* the pressure of the gas phase is equivalent to the static pressure
* distribution and that therefore, mass conservation only needs to be
* considered for the wetting phase.
*
* The model thus choses the absolute pressure of the wetting phase
* \f$p_w\f$ as its only primary variable. The wetting phase
* saturation is calculated using the inverse of the capillary
* pressure, i.e.
\f[
S_w = p_c^{-1}(p_n - p_w)
\f]
* holds, where \f$p_n\f$ is a given reference pressure. Nota bene,
* that the last step is assumes that the capillary
* pressure-saturation curve can be uniquely inverted, so it is not
* possible to set the capillary pressure to zero when using the
* Richards model!
*/
#ifndef DUMUX_RICHARDSNC_MODEL_HH
...
...
dumux/porousmediumflow/tracer/indices.hh
View file @
332171ba
...
...
@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Defines the primary variable and equation indices used by tracer model
* \ingroup TracerModel
* \brief Defines the primary variable and equation indices used by the isothermal tracer model.
*/
#ifndef DUMUX_TRACER_INDICES_HH
...
...
@@ -30,15 +31,16 @@ namespace Dumux
/*!
* \ingroup TracerModel
* \ingroup ImplicitIndices
* \brief The indices for the isothermal tracer model.
* \brief Defines the primary variable and equation indices used by the isothermal tracer model.
*/
template
<
class
TypeTag
,
int
PVOffset
=
0
>
struct
TracerIndices
{
//! Component indices are just numbered by component index
//! primary variable indices are just numbered by component index
//! Equation indices
/*!
* Component indices are just numbered by component index
* primary variable indices are just numbered by component index
* Equation indices
*/
static
const
int
transportEqIdx
=
PVOffset
+
0
;
//!< transport equation index
};
...
...
dumux/porousmediumflow/tracer/localresidual.hh
View file @
332171ba
...
...
@@ -18,7 +18,7 @@
*****************************************************************************/
/*!
* \file
*
*
\ingroup TracerModel
* \brief Element-wise calculation of the local residual for problems
* using fully implicit tracer model.
*/
...
...
@@ -31,8 +31,7 @@ namespace Dumux
{
/*!
* \ingroup Implicit
* \ingroup TracerLocalResidual
* \ingroup TracerModel
* \brief Element-wise calculation of the local residual for problems
* using fully implicit tracer model.
*
...
...
@@ -72,9 +71,9 @@ public:
* The result should be averaged over the volume (e.g. phase mass
* inside a sub control volume divided by the volume)
*
*
\param
scv The sub control volu
me
*
\param
volVars The primary and secondary varaibles on the scv
*
\param
useMoles If mole or mass fractions are used
* \param
problem TODO doc
me
!
* \param
scv The sub control volume
* \param
volVars The primary and secondary varaibles on the scv
*/
PrimaryVariables
computeStorage
(
const
Problem
&
problem
,
const
SubControlVolume
&
scv
,
...
...
@@ -106,12 +105,12 @@ public:
* \brief Evaluates the total flux of all conservation quantities
* over a face of a sub-control volume.
*
* \param problem TODO docme!
* \param element The element
* \param fvGeometry The finite volume geometry context
* \param elemVolVars The volume variables for all flux stencil elements
* \param scvf The sub control volume face
* \param elemFluxVarsCache The cache related to flux compuation
* \param useMoles If mole or mass fractions are used
*/
PrimaryVariables
computeFlux
(
const
Problem
&
problem
,
const
Element
&
element
,
...
...
@@ -160,6 +159,16 @@ public:
return
flux
;
}
/*!
* \brief TODO docme!
*
* \param partialDerivatives TODO docme!
* \param problem TODO docme!
* \param element The element
* \param fvGeometry The finite volume geometry context
* \param curVolVars TODO docme!
* \param scv The sub control volume.
*/
template
<
class
PartialDerivativeMatrix
>
void
addStorageDerivatives
(
PartialDerivativeMatrix
&
partialDerivatives
,
const
Problem
&
problem
,
...
...
@@ -176,6 +185,16 @@ public:
partialDerivatives
[
compIdx
][
compIdx
]
+=
d_storage
;
}
/*!
* \brief TODO docme!
*
* \param partialDerivatives TODO docme!
* \param problem TODO docme!
* \param element The element
* \param fvGeometry The finite volume geometry context
* \param curVolVars TODO docme!
* \param scv The sub control volume.
*/
template
<
class
PartialDerivativeMatrix
>
void
addSourceDerivatives
(
PartialDerivativeMatrix
&
partialDerivatives
,
const
Problem
&
problem
,
...
...
dumux/porousmediumflow/tracer/volumevariables.hh
View file @
332171ba
...
...
@@ -18,6 +18,7 @@
*****************************************************************************/
/*!
* \file
* \ingroup TracerModel
* \brief Quantities required by the tracer model in a control volume
*/
#ifndef DUMUX_TRACER_VOLUME_VARIABLES_HH
...
...
@@ -61,7 +62,13 @@ class TracerVolumeVariables : public PorousMediumFlowVolumeVariables<TypeTag>
public:
/*!
* \copydoc ImplicitVolumeVariables::update
* \brief Update all quantities for a given control volume
*
* \param elemSol A vector containing all primary variables connected to the element
* \param problem The object specifying the problem which ought to
* be simulated
* \param element An element which contains part of the control volume
* \param scv The sub-control volume
*/
void
update
(
const
ElementSolutionVector
&
elemSol
,
const
Problem
&
problem
,
...
...
@@ -89,6 +96,8 @@ public:
* \brief Return density \f$\mathrm{[kg/m^3]}\f$ the of the fluid phase.
*
* We always forward to the fluid state with the phaseIdx property (see class description).
*
* \param pIdx TODO docme!
*/
Scalar
density
(
int
pIdx
=
0
)
const
{
return
fluidDensity_
;
}
...
...
@@ -98,6 +107,8 @@ public:
*
* This method is here for compatibility reasons with other models. The saturation
* is always 1.0 in a one-phasic context.
*
* \param pIdx TODO docme!
*/
Scalar
saturation
(
int
pIdx
=
0
)
const
{
return
1.0
;
}
...
...
@@ -107,18 +118,24 @@ public:
*
* This method is here for compatibility reasons with other models. The mobility is always 1
* for one-phasic models where the velocity field is given
*
* \param pIdx TODO docme!
*/
Scalar
mobility
(
int
pIdx
=
0
)
const
{
return
1.0
;
}
/*!
* \brief Return molar density \f$\mathrm{[mol/m^3]}\f$ the of the fluid phase.
*
* \param pIdx TODO docme!
*/
Scalar
molarDensity
(
int
pIdx
=
0
)
const
{
return
fluidDensity_
/
fluidMolarMass_
;
}
/*!
* \brief Return mole fraction \f$\mathrm{[mol/mol]}\f$ of a component in the phase.
*
* \param pIdx TODO docme!
* \param compIdx The index of the component
*/
Scalar
moleFraction
(
int
pIdx
,
int
compIdx
)
const
...
...
@@ -126,6 +143,8 @@ public:
/*!
* \brief Return mass fraction \f$\mathrm{[kg/kg]}\f$ of a component in the phase.
*
* \param pIdx TODO docme!
* \param compIdx The index of the component
*/
Scalar
massFraction
(
int
pIdx
,
int
compIdx
)
const
...
...
@@ -133,6 +152,8 @@ public:
/*!
* \brief Return concentration \f$\mathrm{[mol/m^3]}\f$ of a component in the phase.
*
* \param pIdx TODO docme!
* \param compIdx The index of the component
*/
Scalar
molarity
(
int
pIdx
,
int
compIdx
)
const
...
...
@@ -140,6 +161,9 @@ public:
/*!
* \brief Return the binary diffusion coefficient \f$\mathrm{[m^2/s]}\f$ in the fluid.
*
* \param pIdx TODO docme!
* \param compIdx The index of the component
*/
Scalar
diffusionCoefficient
(
int
pIdx
,
int
compIdx
)
const
{
return
diffCoeff_
[
compIdx
];
}
...
...
@@ -157,7 +181,7 @@ public:
{
return
porosity_
;
}
protected:
Scalar
porosity_
;
//
!<
Effective porosity within the control volume
Scalar
porosity_
;
// Effective porosity within the control volume
Scalar
fluidDensity_
,
fluidMolarMass_
;
GlobalPosition
dispersivity_
;
std
::
array
<
Scalar
,
numComponents
>
diffCoeff_
;
...
...
dumux/porousmediumflow/tracer/vtkoutputfields.hh
View file @
332171ba
...
...
@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Adds vtk output fields specific to the onep model
* \ingroup TracerModel
* \brief Adds vtk output fields specific to the tracer model
*/
#ifndef DUMUX_TRACER_VTK_OUTPUT_FIELDS_HH
#define DUMUX_TRACER_VTK_OUTPUT_FIELDS_HH
...
...
@@ -29,8 +30,8 @@ namespace Dumux
{
/*!
* \ingroup Tracer
, InputOutput
* \brief Adds vtk output fields specific to the
onep
model
* \ingroup Tracer
Model
* \brief Adds vtk output fields specific to the
tracer
model
*/
template
<
class
TypeTag
>
class
TracerVtkOutputFields
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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