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
303bac48
Commit
303bac48
authored
Dec 14, 2018
by
Sina Ackermann
Committed by
Simon Scholz
Dec 18, 2018
Browse files
[doxygen] Adapt documentation for richards tests
parent
88c1b546
Changes
16
Hide whitespace changes
Inline
Side-by-side
test/porousmediumflow/richards/implicit/analytical/main.cc
View file @
303bac48
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
*
*
\ingroup RichardsTests
* \brief Test for the Richards CC model.
*/
#include
<config.h>
#include
"problem.hh"
...
...
test/porousmediumflow/richards/implicit/analytical/problem.hh
View file @
303bac48
...
...
@@ -19,12 +19,13 @@
/*!
* \file
* \ingroup RichardsTests
* \brief A one-dimensional infiltration problem with a smoth, given solution.
* \brief A one-dimensional infiltration problem with a smo
o
th, given solution.
*
* The source term is calculated analytically. Thus, this example can be used
* to calclate the L2 error and to show convergence for grid and time-step
* to calc
u
late the L2 error and to show convergence for grid and time-step
* refinement.
*/
#ifndef DUMUX_RICHARDS_ANALYTICALPROBLEM_HH
#define DUMUX_RICHARDS_ANALYTICALPROBLEM_HH
...
...
@@ -46,10 +47,10 @@ namespace Dumux {
/*!
* \ingroup RichardsTests
* \brief A one-dimensional infiltration problem with a smoth, given solution.
* \brief A one-dimensional infiltration problem with a smo
o
th, given solution.
*
* The source term is calculated analytically. Thus, this example can be used
* to calclate the L2 error and to show convergence for grid and time-step
* to calc
u
late the L2 error and to show convergence for grid and time-step
* refinement.
*/
template
<
class
TypeTag
>
...
...
@@ -124,11 +125,6 @@ class RichardsAnalyticalProblem : public PorousMediumFlowProblem<TypeTag>
using
Geometry
=
typename
GridView
::
template
Codim
<
0
>
::
Entity
::
Geometry
;
public:
/*!
* \brief Constructor
*
* \param fvGridGeometry The finite volume grid geometry
*/
RichardsAnalyticalProblem
(
std
::
shared_ptr
<
const
FVGridGeometry
>
fvGridGeometry
)
:
ParentType
(
fvGridGeometry
)
{
...
...
@@ -171,12 +167,12 @@ public:
{
return
pnRef_
;
}
/*!
* \brief Evaluate the source values for a control volume.
* \brief Evaluate
s
the source values for a control volume.
*
* For this method, the \a values parameter stores primary
* variables. For this test case, the analytical solution is
* used to calculate the source term. See the Matlab script
* Richards.m which uses Matlab's Symbolic Toolbox to calclate
* Richards.m which uses Matlab's Symbolic Toolbox to calc
u
late
* the source term.
*
* \param globalPos The position for which the source term is set
...
...
@@ -189,7 +185,7 @@ public:
const
Scalar
pwBottom
=
95641.1
;
// linear model with complex solution
// calc
l
uated with Matlab script "Richards.m"
// calcu
l
ated with Matlab script "Richards.m"
using
std
::
pow
;
using
std
::
tanh
;
...
...
@@ -231,8 +227,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a dirichlet
* boundary segment.
* \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
*
* \param globalPos The position for which the Dirichlet value is set
*
...
...
@@ -254,8 +249,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a neumann
* boundary segment.
* \brief Evaluates the boundary conditions for a Neumann boundary segment.
*
* For this method, the \a values parameter stores the mass flux
* in normal direction of each phase. Negative values mean influx.
...
...
@@ -274,7 +268,7 @@ public:
// \{
/*!
* \brief Evaluate the initial values for a control volume.
* \brief Evaluate
s
the initial values for a control volume.
*
* For this method, the \a values parameter stores primary
* variables.
...
...
@@ -292,9 +286,9 @@ public:
// \}
/*!
* \brief Evaluate the analytical solution.
* \brief Evaluate
s
the analytical solution.
*
* \param values The
d
irichlet values for the primary variables
* \param values The
D
irichlet values for the primary variables
* \param time The time at which the solution should be evaluated
* \param globalPos The position for which the Dirichlet value is set
*
...
...
@@ -322,7 +316,7 @@ public:
* \note Works for cell-centered FV only because the numerical
* approximation is only evaluated in the cell center (once).
* To extend this function to the box method the evaluation
* has to be extended to box' subvolumes.
* has to be extended to box' sub
-
volumes.
*/
Scalar
calculateL2Error
(
const
SolutionVector
&
curSol
)
{
...
...
@@ -361,7 +355,7 @@ public:
}
/*!
* \brief Write the relevant secondary variables of the current
* \brief Write
s
the relevant secondary variables of the current
* solution into an VTK output file.
*/
void
writeOutput
(
const
SolutionVector
&
curSol
)
...
...
@@ -381,13 +375,13 @@ public:
private:
// evalu
t
ates if global position is at lower boundary
// evaluates if global position is at lower boundary
bool
onLowerBoundary_
(
const
GlobalPosition
&
globalPos
)
const
{
return
globalPos
[
1
]
<
this
->
fvGridGeometry
().
bBoxMin
()[
1
]
+
eps_
;
}
// evalu
t
ates if global position is at upper boundary
// evaluates if global position is at upper boundary
bool
onUpperBoundary_
(
const
GlobalPosition
&
globalPos
)
const
{
return
globalPos
[
1
]
>
this
->
fvGridGeometry
().
bBoxMax
()[
1
]
-
eps_
;
...
...
test/porousmediumflow/richards/implicit/analytical/spatialparams.hh
View file @
303bac48
...
...
@@ -19,8 +19,9 @@
/*!
* \file
* \ingroup RichardsTests
* \brief
s
patial parameters for the RichardsAnalyticalProblem
* \brief
S
patial parameters for the RichardsAnalyticalProblem
.
*/
#ifndef DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH
#define DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH
...
...
@@ -38,7 +39,7 @@ namespace Dumux {
/*!
* \ingroup RichardsModel
* \ingroup ImplicitTestProblems
* \brief The spatial parameters for the RichardsAnalyticalProblem
* \brief The spatial parameters for the RichardsAnalyticalProblem
.
*/
template
<
class
FVGridGeometry
,
class
Scalar
>
class
RichardsAnalyticalSpatialParams
...
...
test/porousmediumflow/richards/implicit/lens/main.cc
View file @
303bac48
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
*
*
\ingroup RichardsTests
* \brief Test for the Richards box model.
*/
#include
<config.h>
#include
<ctime>
...
...
test/porousmediumflow/richards/implicit/lens/problem.hh
View file @
303bac48
...
...
@@ -23,6 +23,7 @@
* embedded into a high-permeability domain which uses the
* Richards box model.
*/
#ifndef DUMUX_RICHARDS_LENSPROBLEM_HH
#define DUMUX_RICHARDS_LENSPROBLEM_HH
...
...
@@ -46,12 +47,6 @@
namespace
Dumux
{
/*!
* \ingroup RichardsTests
* \brief A water infiltration problem with a low-permeability lens
* embedded into a high-permeability domain which uses the
* Richards box model.
*/
template
<
class
TypeTag
>
class
RichardsLensProblem
;
...
...
@@ -99,9 +94,9 @@ struct SpatialParams<TypeTag, TTag::RichardsLens>
* bottom boundary is closed (Neumann 0 boundary), the top boundary
* (Neumann 0 boundary) is also closed except for infiltration
* section, where water is infiltrating into an initially unsaturated
* porous medium. This problem is very similar t
he
the LensProblem
* porous medium. This problem is very similar t
o
the LensProblem
* which uses the TwoPBoxModel, with the main difference being that
* the domain is initally fully saturated by gas instead of water and
* the domain is init
i
ally fully saturated by gas instead of water and
* water instead of a %DNAPL infiltrates from the top.
*
* This problem uses the \ref RichardsModel
...
...
@@ -138,11 +133,6 @@ class RichardsLensProblem : public PorousMediumFlowProblem<TypeTag>
using
GlobalPosition
=
typename
Element
::
Geometry
::
GlobalCoordinate
;
public:
/*!
* \brief Constructor
*
* \param fvGridGeometry The finite volume grid geometry
*/
RichardsLensProblem
(
std
::
shared_ptr
<
const
FVGridGeometry
>
fvGridGeometry
)
:
ParentType
(
fvGridGeometry
)
{
...
...
@@ -203,8 +193,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a dirichlet
* boundary segment.
* \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
*
* \param globalPos The position for which the Dirichlet value is set
*
...
...
@@ -216,8 +205,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a neumann
* boundary segment.
* \brief Evaluates the boundary conditions for a Neumann boundary segment.
*
* For this method, the \a values parameter stores the mass flux
* in normal direction of each phase. Negative values mean influx.
...
...
@@ -238,7 +226,7 @@ public:
// \{
/*!
* \brief Evaluate the initial values for a control volume.
* \brief Evaluate
s
the initial values for a control volume.
*
* For this method, the \a values parameter stores primary
* variables.
...
...
test/porousmediumflow/richards/implicit/lens/spatialparams.hh
View file @
303bac48
...
...
@@ -19,8 +19,9 @@
/*!
* \file
* \ingroup RichardsTests
* \brief
s
patial parameters for the RichardsLensProblem
* \brief
S
patial parameters for the RichardsLensProblem
.
*/
#ifndef DUMUX_RICHARDS_LENS_SPATIAL_PARAMETERS_HH
#define DUMUX_RICHARDS_LENS_SPATIAL_PARAMETERS_HH
...
...
@@ -34,7 +35,7 @@ namespace Dumux {
/*!
* \ingroup RichardsTests
* \brief The spatial parameters for the RichardsLensProblem
* \brief The spatial parameters for the RichardsLensProblem
.
*/
template
<
class
FVGridGeometry
,
class
Scalar
>
class
RichardsLensSpatialParams
...
...
@@ -101,7 +102,7 @@ public:
{
return
0.4
;
}
/*!
* \brief Returns the parameters for the material law
at a given location
* \brief Returns the parameters for the material law
for the sub-control volume
*
* This method is not actually required by the Richards model, but provided
* for the convenience of the RichardsLensProblem
...
...
@@ -120,6 +121,14 @@ public:
return
materialLawParamsAtPos
(
globalPos
);
}
/*!
* \brief Returns the parameters for the material law at a given location
*
* This method is not actually required by the Richards model, but provided
* for the convenience of the RichardsLensProblem
*
* \param globalPos The global coordinates for the given location
*/
const
MaterialLawParams
&
materialLawParamsAtPos
(
const
GlobalPosition
&
globalPos
)
const
{
if
(
isInLens_
(
globalPos
))
...
...
test/porousmediumflow/richards/implicit/nonisothermal/conduction/main.cc
View file @
303bac48
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
*
*
\ingroup RichardsTests
* \brief Test for the Richards box model.
*/
#include
<config.h>
#include
"problem.hh"
...
...
test/porousmediumflow/richards/implicit/nonisothermal/conduction/problem.hh
View file @
303bac48
...
...
@@ -20,8 +20,9 @@
* \file
* \ingroup RichardsTests
* \brief Test for the RichardsModel in combination with the NI model for a conduction problem:
* The simulation domain is a tube
where
with an elevated temperature on the left hand side.
* The simulation domain is a tube with an elevated temperature on the left hand side.
*/
#ifndef DUMUX_RICHARDS_CONDUCTION_PROBLEM_HH
#define DUMUX_RICHARDS_CONDUCTION_PROBLEM_HH
...
...
@@ -43,7 +44,7 @@ namespace Dumux {
/**
* \ingroup RichardsTests
* \brief Test for the RichardsModel in combination with the NI model for a conduction problem:
* The simulation domain is a tube
where
with an elevated temperature on the left hand side.
* The simulation domain is a tube with an elevated temperature on the left hand side.
*/
template
<
class
TypeTag
>
class
RichardsNIConductionProblem
;
...
...
@@ -82,11 +83,12 @@ struct SpatialParams<TypeTag, TTag::RichardsNIConduction>
* \ingroup RichardsTests
*
* \brief Test for the RichardsModel in combination with the NI model for a conduction problem:
* The simulation domain is a tube
where
with an elevated temperature on the left hand side.
* The simulation domain is a tube with an elevated temperature on the left hand side.
*
* Initially the domain is fully saturated with water at a constant temperature.
* On the left hand side there is a Dirichlet boundary condition with an increased temperature and on the right hand side
* a Dirichlet boundary with constant pressure, saturation and temperature is applied.
* On the left hand side there is a Dirichlet boundary condition with an increased temperature
* and on the right hand side a Dirichlet boundary with constant pressure, saturation
* and temperature is applied.
*
* The results are compared to an analytical solution for a diffusion process:
\f[
...
...
@@ -142,18 +144,13 @@ public:
temperatureExact_
.
resize
(
fvGridGeometry
->
numDofs
());
}
/*!
* \brief Append all quantities of interest which can be derived
* from the solution of the current time step to the VTK
* writer.
*/
//! get the analytical temperature
//! Get the analytical temperature
const
std
::
vector
<
Scalar
>&
getExactTemperature
()
{
return
temperatureExact_
;
}
//!
u
dpate the analytical temperature
//!
U
dpate the analytical temperature
void
updateExactTemperature
(
const
SolutionVector
&
curSol
,
Scalar
time
)
{
const
auto
someElement
=
*
(
elements
(
this
->
fvGridGeometry
().
gridView
()).
begin
());
...
...
@@ -237,8 +234,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a dirichlet
* boundary segment.
* \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
*
* \param globalPos The position for which the bc type should be evaluated
*
...
...
@@ -257,8 +253,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a Neumann
* boundary segment.
* \brief Evaluates the boundary conditions for a Neumann boundary segment.
*
* \param globalPos The global position where we evaluate
*
...
...
@@ -281,7 +276,7 @@ public:
/*!
* \brief Returns the reference pressure [Pa] of the non-wetting
* fluid phase within a finite volume
* fluid phase within a finite volume
.
*
* This problem assumes a constant reference pressure of 1 bar.
*/
...
...
@@ -289,7 +284,7 @@ public:
{
return
1e5
;
};
/*!
* \brief Evaluate the initial value for a control volume.
* \brief Evaluate
s
the initial value for a control volume.
*
* \param globalPos The position for which the initial condition should be evaluated
*
...
...
test/porousmediumflow/richards/implicit/nonisothermal/convection/main.cc
View file @
303bac48
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
*
*
\ingroup RichardsTests
* \brief Test for the Richards box model.
*/
#include
<config.h>
#include
"problem.hh"
...
...
test/porousmediumflow/richards/implicit/nonisothermal/convection/problem.hh
View file @
303bac48
...
...
@@ -23,6 +23,7 @@
* The simulation domain is a tube where water with an elevated temperature is injected
* at a constant rate on the left hand side.
*/
#ifndef DUMUX_RICHARDS_CONVECTION_PROBLEM_HH
#define DUMUX_RICHARDS_CONVECTION_PROBLEM_HH
...
...
@@ -141,7 +142,7 @@ public:
RichardsNIConvectionProblem
(
std
::
shared_ptr
<
const
FVGridGeometry
>
fvGridGeometry
)
:
ParentType
(
fvGridGeometry
)
{
//initialize fluid system
//
initialize fluid system
FluidSystem
::
init
();
name_
=
getParam
<
std
::
string
>
(
"Problem.Name"
);
...
...
@@ -153,19 +154,13 @@ public:
temperatureExact_
.
resize
(
fvGridGeometry
->
numDofs
());
}
/*!
* \brief Append all quantities of interest which can be derived
* from the solution of the current time step to the VTK
* writer.
*/
//! get the analytical temperature
//! Get the analytical temperature
const
std
::
vector
<
Scalar
>&
getExactTemperature
()
{
return
temperatureExact_
;
}
//!
udp
ate the analytical temperature
//!
Upd
ate the analytical temperature
void
updateExactTemperature
(
const
SolutionVector
&
curSol
,
Scalar
time
)
{
const
auto
someElement
=
*
(
elements
(
this
->
fvGridGeometry
().
gridView
()).
begin
());
...
...
@@ -250,8 +245,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a dirichlet
* boundary segment.
* \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
*
* \param globalPos The position for which the bc type should be evaluated
*
...
...
@@ -263,13 +257,12 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a neumann
* boundary segment.
* \brief Evaluates the boundary conditions for a Neumann boundary segment.
*
* \param element The finite element
* \param fvGeometry The finite-volume geometry in the box scheme
* \param elemVolVars The element volume variables
* \param scvf The subcontrolvolume face
* \param scvf The sub
-
control
volume face
* Negative values mean influx.
*/
NumEqVector
neumann
(
const
Element
&
element
,
...
...
@@ -299,7 +292,7 @@ public:
/*!
* \brief Returns the reference pressure [Pa] of the non-wetting
* fluid phase within a finite volume
* fluid phase within a finite volume
.
*
* This problem assumes a constant reference pressure of 1 bar.
*/
...
...
@@ -307,7 +300,7 @@ public:
{
return
1e5
;
};
/*!
* \brief Evaluate the initial value for a control volume.
* \brief Evaluate
s
the initial value for a control volume.
*
* \param globalPos The position for which the initial condition should be evaluated
*
...
...
@@ -341,5 +334,5 @@ private:
std
::
vector
<
Scalar
>
temperatureExact_
;
};
}
//end namespace
}
//
end namespace
#endif // DUMUX_RICHARDSNI_CONVECTION_PROBLEM_HH
test/porousmediumflow/richards/implicit/nonisothermal/evaporation/main.cc
View file @
303bac48
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
*
*
\ingroup RichardsTests
* \brief Test for the Richards box model.
*/
#include
<config.h>
#include
"problem.hh"
...
...
test/porousmediumflow/richards/implicit/nonisothermal/evaporation/problem.hh
View file @
303bac48
...
...
@@ -22,6 +22,7 @@
* \brief Test for the extended richards problem:
* The simulation domain is a tube a constant evaporation rate is set at the top and the soil gradually dries out.
*/
#ifndef DUMUX_RICHARDS_EVAPORATION_PROBLEM_HH
#define DUMUX_RICHARDS_EVAPORATION_PROBLEM_HH
...
...
@@ -42,7 +43,7 @@ namespace Dumux {
/**
* \ingroup RichardsTests
* \brief Test for the RichardsModel in combination with the NI model for
an
evaporation.
* \brief Test for the RichardsModel in combination with the NI model for evaporation.
*/
template
<
class
TypeTag
>
class
RichardsNIEvaporationProblem
;
...
...
@@ -131,7 +132,7 @@ public:
RichardsNIEvaporationProblem
(
std
::
shared_ptr
<
const
FVGridGeometry
>
fvGridGeometry
)
:
ParentType
(
fvGridGeometry
)
{
//initialize fluid system
//
initialize fluid system
FluidSystem
::
init
();
name_
=
getParam
<
std
::
string
>
(
"Problem.Name"
);
...
...
@@ -182,8 +183,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a dirichlet
* boundary segment.
* \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
*
* \param globalPos The position for which the bc type should be evaluated
*
...
...
@@ -195,8 +195,7 @@ public:
}
/*!
* \brief Evaluate the boundary conditions for a neumann
* boundary segment.
* \brief Evaluates the boundary conditions for a Neumann boundary segment.
*
* \param element The finite element
* \param fvGeometry The finite-volume geometry in the box scheme
...
...
@@ -234,7 +233,7 @@ public:
/*!
* \brief Returns the reference pressure [Pa] of the non-wetting
* fluid phase within a finite volume
* fluid phase within a finite volume
.
*
* This problem assumes a constant reference pressure of 1 bar.
*/
...
...
@@ -242,7 +241,7 @@ public:
{
return
1e5
;
};
/*!
* \brief Evaluate the initial value for a control volume.
* \brief Evaluate
s
the initial value for a control volume.
*
* \param globalPos The position for which the initial condition should be evaluated
*
...
...
test/porousmediumflow/richards/implicit/nonisothermal/spatialparams.hh
View file @
303bac48
...
...
@@ -21,6 +21,7 @@
* \ingroup RichardsTests
* \brief Definition of the spatial parameters for the non-isothermal Richards problems.
*/
#ifndef DUMUX_RICHARDSNI_SPATIAL_PARAMS_HH
#define DUMUX_RICHARDSNI_SPATIAL_PARAMS_HH
...
...
@@ -76,7 +77,7 @@ public:
}
/*!
* \brief Define the intrinsic permeability \f$\mathrm{[m^2]}\f$.
* \brief Define
s
the intrinsic permeability \f$\mathrm{[m^2]}\f$.
*
* \param globalPos The global position where we evaluate
*/
...
...
@@ -86,7 +87,7 @@ public:
}
/*!
* \brief Define the porosity \f$\mathrm{[-]}\f$.
* \brief Define
s
the porosity \f$\mathrm{[-]}\f$.
*
* \param globalPos The global position where we evaluate
*/
...
...
@@ -96,7 +97,8 @@ public:
}
/*!
* \brief return the parameter object for the Brooks-Corey material law which depends on the position
* \brief Returns the parameter object for the Brooks-Corey material law
* which depends on the position
*
* \param globalPos The global position where we evaluate
*/
...
...
test/porousmediumflow/richardsnc/implicit/main.cc
View file @
303bac48
...
...
@@ -18,9 +18,10 @@
*****************************************************************************/
/*!
* \file
*
* \brief Test for the Richards CC model.