Commit 303bac48 authored by Sina Ackermann's avatar Sina Ackermann Committed by Simon Scholz

[doxygen] Adapt documentation for richards tests

parent 88c1b546
...@@ -18,9 +18,10 @@ ...@@ -18,9 +18,10 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* * \ingroup RichardsTests
* \brief Test for the Richards CC model. * \brief Test for the Richards CC model.
*/ */
#include <config.h> #include <config.h>
#include "problem.hh" #include "problem.hh"
......
...@@ -19,12 +19,13 @@ ...@@ -19,12 +19,13 @@
/*! /*!
* \file * \file
* \ingroup RichardsTests * \ingroup RichardsTests
* \brief A one-dimensional infiltration problem with a smoth, given solution. * \brief A one-dimensional infiltration problem with a smooth, given solution.
* *
* The source term is calculated analytically. Thus, this example can be used * 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 calculate the L2 error and to show convergence for grid and time-step
* refinement. * refinement.
*/ */
#ifndef DUMUX_RICHARDS_ANALYTICALPROBLEM_HH #ifndef DUMUX_RICHARDS_ANALYTICALPROBLEM_HH
#define DUMUX_RICHARDS_ANALYTICALPROBLEM_HH #define DUMUX_RICHARDS_ANALYTICALPROBLEM_HH
...@@ -46,10 +47,10 @@ namespace Dumux { ...@@ -46,10 +47,10 @@ namespace Dumux {
/*! /*!
* \ingroup RichardsTests * \ingroup RichardsTests
* \brief A one-dimensional infiltration problem with a smoth, given solution. * \brief A one-dimensional infiltration problem with a smooth, given solution.
* *
* The source term is calculated analytically. Thus, this example can be used * 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 calculate the L2 error and to show convergence for grid and time-step
* refinement. * refinement.
*/ */
template <class TypeTag> template <class TypeTag>
...@@ -124,11 +125,6 @@ class RichardsAnalyticalProblem : public PorousMediumFlowProblem<TypeTag> ...@@ -124,11 +125,6 @@ class RichardsAnalyticalProblem : public PorousMediumFlowProblem<TypeTag>
using Geometry = typename GridView::template Codim<0>::Entity::Geometry; using Geometry = typename GridView::template Codim<0>::Entity::Geometry;
public: public:
/*!
* \brief Constructor
*
* \param fvGridGeometry The finite volume grid geometry
*/
RichardsAnalyticalProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) RichardsAnalyticalProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
: ParentType(fvGridGeometry) : ParentType(fvGridGeometry)
{ {
...@@ -171,12 +167,12 @@ public: ...@@ -171,12 +167,12 @@ public:
{ return pnRef_; } { return pnRef_; }
/*! /*!
* \brief Evaluate the source values for a control volume. * \brief Evaluates the source values for a control volume.
* *
* For this method, the \a values parameter stores primary * For this method, the \a values parameter stores primary
* variables. For this test case, the analytical solution is * variables. For this test case, the analytical solution is
* used to calculate the source term. See the Matlab script * 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 calculate
* the source term. * the source term.
* *
* \param globalPos The position for which the source term is set * \param globalPos The position for which the source term is set
...@@ -189,7 +185,7 @@ public: ...@@ -189,7 +185,7 @@ public:
const Scalar pwBottom = 95641.1; const Scalar pwBottom = 95641.1;
// linear model with complex solution // linear model with complex solution
// calcluated with Matlab script "Richards.m" // calculated with Matlab script "Richards.m"
using std::pow; using std::pow;
using std::tanh; using std::tanh;
...@@ -231,8 +227,7 @@ public: ...@@ -231,8 +227,7 @@ public:
} }
/*! /*!
* \brief Evaluate the boundary conditions for a dirichlet * \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
* boundary segment.
* *
* \param globalPos The position for which the Dirichlet value is set * \param globalPos The position for which the Dirichlet value is set
* *
...@@ -254,8 +249,7 @@ public: ...@@ -254,8 +249,7 @@ public:
} }
/*! /*!
* \brief Evaluate the boundary conditions for a neumann * \brief Evaluates the boundary conditions for a Neumann boundary segment.
* boundary segment.
* *
* For this method, the \a values parameter stores the mass flux * For this method, the \a values parameter stores the mass flux
* in normal direction of each phase. Negative values mean influx. * in normal direction of each phase. Negative values mean influx.
...@@ -274,7 +268,7 @@ public: ...@@ -274,7 +268,7 @@ public:
// \{ // \{
/*! /*!
* \brief Evaluate the initial values for a control volume. * \brief Evaluates the initial values for a control volume.
* *
* For this method, the \a values parameter stores primary * For this method, the \a values parameter stores primary
* variables. * variables.
...@@ -292,9 +286,9 @@ public: ...@@ -292,9 +286,9 @@ public:
// \} // \}
/*! /*!
* \brief Evaluate the analytical solution. * \brief Evaluates the analytical solution.
* *
* \param values The dirichlet values for the primary variables * \param values The Dirichlet values for the primary variables
* \param time The time at which the solution should be evaluated * \param time The time at which the solution should be evaluated
* \param globalPos The position for which the Dirichlet value is set * \param globalPos The position for which the Dirichlet value is set
* *
...@@ -322,7 +316,7 @@ public: ...@@ -322,7 +316,7 @@ public:
* \note Works for cell-centered FV only because the numerical * \note Works for cell-centered FV only because the numerical
* approximation is only evaluated in the cell center (once). * approximation is only evaluated in the cell center (once).
* To extend this function to the box method the evaluation * 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) Scalar calculateL2Error(const SolutionVector& curSol)
{ {
...@@ -361,7 +355,7 @@ public: ...@@ -361,7 +355,7 @@ public:
} }
/*! /*!
* \brief Write the relevant secondary variables of the current * \brief Writes the relevant secondary variables of the current
* solution into an VTK output file. * solution into an VTK output file.
*/ */
void writeOutput(const SolutionVector& curSol) void writeOutput(const SolutionVector& curSol)
...@@ -381,13 +375,13 @@ public: ...@@ -381,13 +375,13 @@ public:
private: private:
// evalutates if global position is at lower boundary // evaluates if global position is at lower boundary
bool onLowerBoundary_(const GlobalPosition &globalPos) const bool onLowerBoundary_(const GlobalPosition &globalPos) const
{ {
return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_;
} }
// evalutates if global position is at upper boundary // evaluates if global position is at upper boundary
bool onUpperBoundary_(const GlobalPosition &globalPos) const bool onUpperBoundary_(const GlobalPosition &globalPos) const
{ {
return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_;
......
...@@ -19,8 +19,9 @@ ...@@ -19,8 +19,9 @@
/*! /*!
* \file * \file
* \ingroup RichardsTests * \ingroup RichardsTests
* \brief spatial parameters for the RichardsAnalyticalProblem * \brief Spatial parameters for the RichardsAnalyticalProblem.
*/ */
#ifndef DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH #ifndef DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH
#define DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH #define DUMUX_RICHARDS_ANALYTICAL_SPATIAL_PARAMETERS_HH
...@@ -38,7 +39,7 @@ namespace Dumux { ...@@ -38,7 +39,7 @@ namespace Dumux {
/*! /*!
* \ingroup RichardsModel * \ingroup RichardsModel
* \ingroup ImplicitTestProblems * \ingroup ImplicitTestProblems
* \brief The spatial parameters for the RichardsAnalyticalProblem * \brief The spatial parameters for the RichardsAnalyticalProblem.
*/ */
template<class FVGridGeometry, class Scalar> template<class FVGridGeometry, class Scalar>
class RichardsAnalyticalSpatialParams class RichardsAnalyticalSpatialParams
......
...@@ -18,9 +18,10 @@ ...@@ -18,9 +18,10 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* * \ingroup RichardsTests
* \brief Test for the Richards box model. * \brief Test for the Richards box model.
*/ */
#include <config.h> #include <config.h>
#include <ctime> #include <ctime>
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
* embedded into a high-permeability domain which uses the * embedded into a high-permeability domain which uses the
* Richards box model. * Richards box model.
*/ */
#ifndef DUMUX_RICHARDS_LENSPROBLEM_HH #ifndef DUMUX_RICHARDS_LENSPROBLEM_HH
#define DUMUX_RICHARDS_LENSPROBLEM_HH #define DUMUX_RICHARDS_LENSPROBLEM_HH
...@@ -46,12 +47,6 @@ ...@@ -46,12 +47,6 @@
namespace Dumux { 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> template <class TypeTag>
class RichardsLensProblem; class RichardsLensProblem;
...@@ -99,9 +94,9 @@ struct SpatialParams<TypeTag, TTag::RichardsLens> ...@@ -99,9 +94,9 @@ struct SpatialParams<TypeTag, TTag::RichardsLens>
* bottom boundary is closed (Neumann 0 boundary), the top boundary * bottom boundary is closed (Neumann 0 boundary), the top boundary
* (Neumann 0 boundary) is also closed except for infiltration * (Neumann 0 boundary) is also closed except for infiltration
* section, where water is infiltrating into an initially unsaturated * section, where water is infiltrating into an initially unsaturated
* porous medium. This problem is very similar the the LensProblem * porous medium. This problem is very similar to the LensProblem
* which uses the TwoPBoxModel, with the main difference being that * 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 initially fully saturated by gas instead of water and
* water instead of a %DNAPL infiltrates from the top. * water instead of a %DNAPL infiltrates from the top.
* *
* This problem uses the \ref RichardsModel * This problem uses the \ref RichardsModel
...@@ -138,11 +133,6 @@ class RichardsLensProblem : public PorousMediumFlowProblem<TypeTag> ...@@ -138,11 +133,6 @@ class RichardsLensProblem : public PorousMediumFlowProblem<TypeTag>
using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
public: public:
/*!
* \brief Constructor
*
* \param fvGridGeometry The finite volume grid geometry
*/
RichardsLensProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) RichardsLensProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
: ParentType(fvGridGeometry) : ParentType(fvGridGeometry)
{ {
...@@ -203,8 +193,7 @@ public: ...@@ -203,8 +193,7 @@ public:
} }
/*! /*!
* \brief Evaluate the boundary conditions for a dirichlet * \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
* boundary segment.
* *
* \param globalPos The position for which the Dirichlet value is set * \param globalPos The position for which the Dirichlet value is set
* *
...@@ -216,8 +205,7 @@ public: ...@@ -216,8 +205,7 @@ public:
} }
/*! /*!
* \brief Evaluate the boundary conditions for a neumann * \brief Evaluates the boundary conditions for a Neumann boundary segment.
* boundary segment.
* *
* For this method, the \a values parameter stores the mass flux * For this method, the \a values parameter stores the mass flux
* in normal direction of each phase. Negative values mean influx. * in normal direction of each phase. Negative values mean influx.
...@@ -238,7 +226,7 @@ public: ...@@ -238,7 +226,7 @@ public:
// \{ // \{
/*! /*!
* \brief Evaluate the initial values for a control volume. * \brief Evaluates the initial values for a control volume.
* *
* For this method, the \a values parameter stores primary * For this method, the \a values parameter stores primary
* variables. * variables.
......
...@@ -19,8 +19,9 @@ ...@@ -19,8 +19,9 @@
/*! /*!
* \file * \file
* \ingroup RichardsTests * \ingroup RichardsTests
* \brief spatial parameters for the RichardsLensProblem * \brief Spatial parameters for the RichardsLensProblem.
*/ */
#ifndef DUMUX_RICHARDS_LENS_SPATIAL_PARAMETERS_HH #ifndef DUMUX_RICHARDS_LENS_SPATIAL_PARAMETERS_HH
#define DUMUX_RICHARDS_LENS_SPATIAL_PARAMETERS_HH #define DUMUX_RICHARDS_LENS_SPATIAL_PARAMETERS_HH
...@@ -34,7 +35,7 @@ namespace Dumux { ...@@ -34,7 +35,7 @@ namespace Dumux {
/*! /*!
* \ingroup RichardsTests * \ingroup RichardsTests
* \brief The spatial parameters for the RichardsLensProblem * \brief The spatial parameters for the RichardsLensProblem.
*/ */
template<class FVGridGeometry, class Scalar> template<class FVGridGeometry, class Scalar>
class RichardsLensSpatialParams class RichardsLensSpatialParams
...@@ -101,7 +102,7 @@ public: ...@@ -101,7 +102,7 @@ public:
{ return 0.4; } { 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 * This method is not actually required by the Richards model, but provided
* for the convenience of the RichardsLensProblem * for the convenience of the RichardsLensProblem
...@@ -120,6 +121,14 @@ public: ...@@ -120,6 +121,14 @@ public:
return materialLawParamsAtPos(globalPos); 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 const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition& globalPos) const
{ {
if (isInLens_(globalPos)) if (isInLens_(globalPos))
......
...@@ -18,9 +18,10 @@ ...@@ -18,9 +18,10 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* * \ingroup RichardsTests
* \brief Test for the Richards box model. * \brief Test for the Richards box model.
*/ */
#include <config.h> #include <config.h>
#include "problem.hh" #include "problem.hh"
......
...@@ -20,8 +20,9 @@ ...@@ -20,8 +20,9 @@
* \file * \file
* \ingroup RichardsTests * \ingroup RichardsTests
* \brief Test for the RichardsModel in combination with the NI model for a conduction problem: * \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 #ifndef DUMUX_RICHARDS_CONDUCTION_PROBLEM_HH
#define DUMUX_RICHARDS_CONDUCTION_PROBLEM_HH #define DUMUX_RICHARDS_CONDUCTION_PROBLEM_HH
...@@ -43,7 +44,7 @@ namespace Dumux { ...@@ -43,7 +44,7 @@ namespace Dumux {
/** /**
* \ingroup RichardsTests * \ingroup RichardsTests
* \brief Test for the RichardsModel in combination with the NI model for a conduction problem: * \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> template <class TypeTag>
class RichardsNIConductionProblem; class RichardsNIConductionProblem;
...@@ -82,11 +83,12 @@ struct SpatialParams<TypeTag, TTag::RichardsNIConduction> ...@@ -82,11 +83,12 @@ struct SpatialParams<TypeTag, TTag::RichardsNIConduction>
* \ingroup RichardsTests * \ingroup RichardsTests
* *
* \brief Test for the RichardsModel in combination with the NI model for a conduction problem: * \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. * 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 * On the left hand side there is a Dirichlet boundary condition with an increased temperature
* a Dirichlet boundary with constant pressure, saturation and temperature is applied. * 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: * The results are compared to an analytical solution for a diffusion process:
\f[ \f[
...@@ -142,18 +144,13 @@ public: ...@@ -142,18 +144,13 @@ public:
temperatureExact_.resize(fvGridGeometry->numDofs()); temperatureExact_.resize(fvGridGeometry->numDofs());
} }
/*! //! Get the analytical temperature
* \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
const std::vector<Scalar>& getExactTemperature() const std::vector<Scalar>& getExactTemperature()
{ {
return temperatureExact_; return temperatureExact_;
} }
//! udpate the analytical temperature //! Udpate the analytical temperature
void updateExactTemperature(const SolutionVector& curSol, Scalar time) void updateExactTemperature(const SolutionVector& curSol, Scalar time)
{ {
const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin()); const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
...@@ -237,8 +234,7 @@ public: ...@@ -237,8 +234,7 @@ public:
} }
/*! /*!
* \brief Evaluate the boundary conditions for a dirichlet * \brief Evaluates the boundary conditions for a Dirichlet boundary segment.
* boundary segment.
* *
* \param globalPos The position for which the bc type should be evaluated * \param globalPos The position for which the bc type should be evaluated
* *
...@@ -257,8 +253,7 @@ public: ...@@ -257,8 +253,7 @@ public:
} }
/*! /*!
* \brief Evaluate the boundary conditions for a Neumann * \brief Evaluates the boundary conditions for a Neumann boundary segment.
* boundary segment.
* *
* \param globalPos The global position where we evaluate * \param globalPos The global position where we evaluate
* *
...@@ -281,7 +276,7 @@ public: ...@@ -281,7 +276,7 @@ public:
/*! /*!
* \brief Returns the reference pressure [Pa] of the non-wetting * \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. * This problem assumes a constant reference pressure of 1 bar.
*/ */
...@@ -289,7 +284,7 @@ public: ...@@ -289,7 +284,7 @@ public:
{ return 1e5; }; { return 1e5; };
/*! /*!
* \brief Evaluate the initial value for a control volume. * \brief Evaluates the initial value for a control volume.
* *
* \param globalPos The position for which the initial condition should be evaluated * \param globalPos The position for which the initial condition should be evaluated
* *
......
...@@ -18,9 +18,10 @@ ...@@ -18,9 +18,10 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* * \ingroup RichardsTests
* \brief Test for the Richards box model. * \brief Test for the Richards box model.
*/ */
#include <config.h> #include <config.h>
#include "problem.hh" #include "problem.hh"
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
* The simulation domain is a tube where water with an elevated temperature is injected * The simulation domain is a tube where water with an elevated temperature is injected
* at a constant rate on the left hand side. * at a constant rate on the left hand side.
*/ */
#ifndef DUMUX_RICHARDS_CONVECTION_PROBLEM_HH #ifndef DUMUX_RICHARDS_CONVECTION_PROBLEM_HH
#define DUMUX_RICHARDS_CONVECTION_PROBLEM_HH #define DUMUX_RICHARDS_CONVECTION_PROBLEM_HH
...@@ -141,7 +142,7 @@ public: ...@@ -141,7 +142,7 @@ public:
RichardsNIConvectionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) RichardsNIConvectionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
: ParentType(fvGridGeometry) : ParentType(fvGridGeometry)
{ {
//initialize fluid system // initialize fluid system