Commit 332171ba authored by Melanie Lipp's avatar Melanie Lipp
Browse files

[docu] Changes in the documentation of richards, richardsnc and tracer.

parent 4340e80c
......@@ -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
};
// \}
......
......@@ -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
{
......
......@@ -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
};
// \}
......
......@@ -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
......
......@@ -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
};
......
......@@ -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 volume
* \param volVars The primary and secondary varaibles on the scv
* \param useMoles If mole or mass fractions are used
* \param problem TODO docme!
* \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,
......
......@@ -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_;
......
......@@ -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 TracerModel
* \brief Adds vtk output fields specific to the tracer model
*/
template<class TypeTag>
class TracerVtkOutputFields
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment