Commit b9b3d5c6 authored by Simon Scholz's avatar Simon Scholz
Browse files

[doxygen] Adapt documentation in 2p sequential

parent 76f567b6
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Class including data of one grid cell
*/
#ifndef DUMUX_ELEMENTDATA2P_HH
#define DUMUX_ELEMENTDATA2P_HH
......@@ -260,7 +259,8 @@ public:
// functions returning the vectors of secondary variables
//////////////////////////////////////////////////////////////
/*! \brief Returns the cell phase mobility
/*!
* \brief Returns the cell phase mobility
*
* \param phaseIdx Index of a fluid phase
*/
......@@ -269,7 +269,8 @@ public:
return mobility_[phaseIdx];
}
/*! \brief Returns the cell phase mobility
/*!
* \brief Returns the cell phase mobility
*
* \param phaseIdx Index of a fluid phase
*/
......@@ -278,7 +279,8 @@ public:
return mobility_[phaseIdx];
}
/*! \brief Sets the cell phase mobility
/*!
* \brief Sets the cell phase mobility
*
* \param phaseIdx Index of a fluid phase
* \param mobility Phase mobility with which is stored
......@@ -288,7 +290,8 @@ public:
mobility_[phaseIdx] = mobility;
}
/*! \brief Returns the cell phase fractional flow function
/*!
* \brief Returns the cell phase fractional flow function
*
* \param phaseIdx Index of a fluid phase
*/
......@@ -297,7 +300,8 @@ public:
return fracFlowFunc_[phaseIdx];
}
/*! \brief Returns the cell phase fractional flow function
/*!
* \brief Returns the cell phase fractional flow function
*
* \param phaseIdx Index of a fluid phase
*/
......@@ -306,7 +310,8 @@ public:
return fracFlowFunc_[phaseIdx];
}
/*! \brief Sets the cell phase fractional flow function
/*!
* \brief Sets the cell phase fractional flow function
*
* \param phaseIdx Index of a fluid phase
* \param fracFlowFunc Phase fractional flow function which is stored
......@@ -328,7 +333,8 @@ public:
return capillaryPressure_;
}
/*! \brief Sets the cell capillary pressure
/*!
* \brief Sets the cell capillary pressure
*
* \param pc Capillary pressure which is stored
*/
......@@ -337,7 +343,8 @@ public:
capillaryPressure_ = pc;
}
/*! \brief Store transport update
/*!
* \brief Store transport update
*
* \param update Transport update of the cell
*/
......@@ -382,11 +389,11 @@ public:
};
/*!
* \brief Class including the variables and data of discretized data of the constitutive relations for one grid cell.
* \ingroup SequentialTwoPModel
* \brief Class including the variables and data of discretized data of the constitutive relations for one grid cell.
*
* The variables of two-phase flow, which are phase pressures and saturations are stored in this class.
*Further, resulting cell values for constitutive relationships like
* Further, resulting cell values for constitutive relationships like
* mobilities, fractional flow functions and capillary pressure are stored.
* Additionally, data assigned to cell-cell interfaces, so-called flux-data are stored.
*
......@@ -716,7 +723,8 @@ public:
return fluidState_.viscosity(phaseIdx);
}
/*!\brief Sets the cell phase viscosity
/*!
* \brief Sets the cell phase viscosity
*
* \param phaseIdx Index of a fluid phase
* \param viscosity Phase viscosity which is stored
......@@ -749,5 +757,5 @@ public:
}
};
}
} // end namespace Dumux
#endif
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Class including the data of a grid cell needed if an adaptive grid is used.
*/
#ifndef DUMUX_ELEMENTDATA2P_ADAPTIVE_HH
#define DUMUX_ELEMENTDATA2P_ADAPTIVE_HH
......@@ -58,8 +57,8 @@ private:
};
public:
//! Collection of variables that have to be mapped if the grid is adapted
/**
/*!
* \brief Collection of variables that have to be mapped if the grid is adapted
* For an immiscible two-phase model, the following data has to be
* transferred to a new grid.
*/
......@@ -185,5 +184,5 @@ public:
};
}
} // end namespace Dumux
#endif
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Finite Volume discretization of a two-phase flow pressure equation.
*/
#ifndef DUMUX_FVPRESSURE2P_HH
#define DUMUX_FVPRESSURE2P_HH
......
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Finite volume discretization of a two-phase flow pressure equation.
*/
#ifndef DUMUX_FVPRESSURE2P_ADAPTIVE_HH
#define DUMUX_FVPRESSURE2P_ADAPTIVE_HH
......@@ -32,10 +31,8 @@
#include <dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh>
#include <dumux/porousmediumflow/sequential/cellcentered/velocity.hh>
namespace Dumux {
namespace Dumux
{
/*!
* \ingroup SequentialTwoPModel
* \brief Finite volume discretization of a two-phase flow pressure equation of the sequential IMPES model.
......@@ -129,10 +126,10 @@ public:
/*!
* \brief Pressure update
*
* \copydetails FVPressure::update()
* \copydetails FVPressure::update()
*
* The grid-adaptive implementation also reconstructs the velocity directly after the pressure update.
* This is necessary to make sure the hanging nodes are treated correctly!
* The grid-adaptive implementation also reconstructs the velocity directly after the pressure update.
* This is necessary to make sure the hanging nodes are treated correctly!
*/
void update()
{
......@@ -196,7 +193,6 @@ public:
* \brief Adds pressure output to the output file
*
* \copydetails FVPressure2P::addOutputVtkFields(MultiWriter&)
*
*/
template<class MultiWriter>
void addOutputVtkFields(MultiWriter &writer)
......
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines the properties required for finite volume pressure models in a two-phase sequential model.
*/
#ifndef DUMUX_FVPRESSUREPORPERTIES2P_SEQUENTIAL_HH
#define DUMUX_FVPRESSUREPORPERTIES2P_SEQUENTIAL_HH
......@@ -35,7 +34,6 @@ namespace Dumux {
// Forward declarations
////////////////////////////////
////////////////////////////////
// Properties
////////////////////////////////
......
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines the properties required for finite volume pressure models in a two-phase sequential model.
*/
#ifndef DUMUX_FVPRESSUREPORPERTIES2P_ADAPTIVE_SEQUENTIAL_HH
#define DUMUX_FVPRESSUREPORPERTIES2P_ADAPTIVE_SEQUENTIAL_HH
......@@ -34,7 +33,6 @@ namespace Dumux {
// Forward declarations
////////////////////////////////
////////////////////////////////
// Properties
////////////////////////////////
......
......@@ -21,18 +21,14 @@
* \ingroup SequentialTwoPModel
* \brief Two-phase finite volume model
*/
#ifndef DUMUX_FVPRESSUREVELOCITY2P_HH
#define DUMUX_FVPRESSUREVELOCITY2P_HH
// dumux environment
#include "pressure.hh"
#include <dumux/porousmediumflow/2p/sequential/properties.hh>
#include <dumux/porousmediumflow/sequential/cellcentered/velocity.hh>
namespace Dumux {
/*!
* \ingroup SequentialTwoPModel
......
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Velocity field from a finite volume solution of a pressure equation.
*/
#ifndef DUMUX_FVVELOCITY2P_HH
#define DUMUX_FVVELOCITY2P_HH
......
......@@ -21,18 +21,17 @@
* \ingroup SequentialTwoPModel
* \brief Velocity field from a finite volume solution of a pressure equation.
*/
#ifndef DUMUX_FVVELOCITY2P_ADAPTIVE_HH
#define DUMUX_FVVELOCITY2P_ADAPTIVE_HH
#include <dune/common/float_cmp.hh>
#include <dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh>
namespace Dumux
{
namespace Dumux {
/*!
* \brief Determines the velocity from a finite volume solution of the pressure equation of a sequential model (IMPES).
* \ingroup SequentialTwoPModel
* \brief Determines the velocity from a finite volume solution of the pressure equation of a sequential model (IMPES).
*
* Details see FVVelocity2P
*/
......@@ -157,11 +156,11 @@ private:
/*!
* \brief Calculates the velocity at a cell-cell interface.
*
* \copydetails FVVelocity2P::calculateVelocity(const Intersection&,CellData&)
*
* Implementation of calculateVelocity() function for cell-cell interfaces with hanging nodes.
*/
*
* \copydetails FVVelocity2P::calculateVelocity(const Intersection&,CellData&)
*
* Implementation of calculateVelocity() function for cell-cell interfaces with hanging nodes.
*/
template<class TypeTag>
void FVVelocity2PAdaptive<TypeTag>::calculateVelocity(const Intersection& intersection, CellData& cellData)
{
......
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines a class for Crozieux-Raviart piecewise linear finite element functions.
*/
#ifndef DUMUX_CROPERATOR2P_HH
#define DUMUX_CROPERATOR2P_HH
......@@ -46,8 +45,8 @@
#include <dumux/common/boundaryconditions.hh>
#include "localstiffness.hh"
namespace Dumux
{
namespace Dumux {
/*!
* \ingroup SequentialTwoPModel
* \brief Extends CROperatorBase by a generic methods to assemble global stiffness matrix from local stiffness matrices.
......
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Defines a class for Crozieux-Raviart piecewise linear finite element functions.
*/
#ifndef DUMUX_CROPERATOR2PADAPTIVE_HH
#define DUMUX_CROPERATOR2PADAPTIVE_HH
......@@ -48,8 +47,8 @@
#include "localstiffness.hh"
#include <dumux/common/intersectionmapper.hh>
namespace Dumux
{
namespace Dumux {
/*!
* \ingroup SequentialTwoPModel
* \brief Extends CROperatorBase by a generic methods to assemble global stiffness matrix from local stiffness matrices.
......
......@@ -21,7 +21,6 @@
* \ingroup SequentialTwoPModel
* \brief Base class for assembling local stiffness matrices.
*/
#ifndef DUMUX_LOCAL_STIFFNESS_HH
#define DUMUX_LOCAL_STIFFNESS_HH
......@@ -45,31 +44,32 @@
namespace Dumux {
/*!
*\brief Base class for local assemblers.
*
* This class serves as a base class for local assemblers. It provides space
* and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template<class TypeTag, int m>
class LocalStiffness
{
using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
/*!
* \ingroup SequentialTwoPModel
* \brief Base class for local assemblers.
*
* This class serves as a base class for local assemblers. It provides space
* and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template<class TypeTag, int m>
class LocalStiffness
{
using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
// grid types
using Entity = typename GridView::template Codim<0>::Entity;
using Entity = typename GridView::template Codim<0>::Entity;
enum {n=GridView::dimension};
public:
public:
// types for matrics, vectors and boundary conditions
using MBlockType = Dune::FieldMatrix<Scalar, m, m>; // one entry in the stiffness matrix
using VBlockType = Dune::FieldVector<Scalar, m>; // one entry in the global vectors
using BCBlockType = std::array<BoundaryConditions::Flags, m>; // componentwise boundary conditions
using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
using BCBlockType = std::array<BoundaryConditions::Flags, m>; // componentwise boundary conditions
using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
virtual ~LocalStiffness ()
{
......@@ -95,33 +95,33 @@ namespace Dumux {
* \param e a codim 0 entity reference
* \param k order of Lagrange basis (default is 1)
*/
virtual void assemble (const Entity& e, int k=1) = 0;
virtual void assemble (const Entity& e, int k=1) = 0;
/*!
* \brief assemble local stiffness matrix including boundary conditions for given element and order
*
* Unlike the method with only two arguments, this one additionally takes the local solution in order
* to allow assembly of nonlinear operators.
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either Neumann, process or Dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).
* Process boundaries are treated as homogeneous Dirichlet conditions, i.e. the corresponding value
* in the right hand side is set to 0. Finally, Dirichlet indicates that the node is at the Dirichlet
* boundary.
* - The right hand side has been assembled. It contains either the value of the essential boundary
* condition or the assembled source term and Neumann boundary condition.
* It is accessible via the rhs() method.
*
*\param e a codim 0 entity reference
* \param localSolution The current solution on the entity, which is needed by nonlinear assemblers
* \param k order of Lagrange basis (default is 1)
*/
virtual void assemble (const Entity& e, const Dune::BlockVector<VBlockType>& localSolution, int k=1) = 0;
/*!
* \brief assemble local stiffness matrix including boundary conditions for given element and order
*
* Unlike the method with only two arguments, this one additionally takes the local solution in order
* to allow assembly of nonlinear operators.
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either Neumann, process or Dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).
* Process boundaries are treated as homogeneous Dirichlet conditions, i.e. the corresponding value
* in the right hand side is set to 0. Finally, Dirichlet indicates that the node is at the Dirichlet
* boundary.
* - The right hand side has been assembled. It contains either the value of the essential boundary
* condition or the assembled source term and Neumann boundary condition.
* It is accessible via the rhs() method.
*
* \param e a codim 0 entity reference
* \param localSolution The current solution on the entity, which is needed by nonlinear assemblers
* \param k order of Lagrange basis (default is 1)
*/
virtual void assemble (const Entity& e, const Dune::BlockVector<VBlockType>& localSolution, int k=1) = 0;
/*!
* \brief assemble only boundary conditions for given element and order
......@@ -142,15 +142,15 @@ namespace Dumux {
* \param e a codim 0 entity reference
* \param k order of Lagrange basis (default is 1)
*/
virtual void assembleBoundaryCondition (const Entity& e, int k=1) = 0;
virtual void assembleBoundaryCondition (const Entity& e, int k=1) = 0;
/*!
* \brief Prints contents of local stiffness matrix
*
* \param s output stream
* \param width the width
* \param precision the precision
*/
/*!
* \brief Prints contents of local stiffness matrix
*
* \param s output stream
* \param width the width
* \param precision the precision
*/
void print (std::ostream& s, int width, int precision)
{
// set the output format
......@@ -199,7 +199,6 @@ namespace Dumux {
return A[i][j];
}
/*!
* \brief Accesses right hand side
*
......@@ -246,85 +245,84 @@ namespace Dumux {
return A.N();
}
protected:
protected:
// assembled data
Dune::Matrix<MBlockType> A;
std::vector<VBlockType> b;
std::vector<BoundaryTypes> bctype;
};
Dune::Matrix<MBlockType> A;
std::vector<VBlockType> b;
std::vector<BoundaryTypes> bctype;
};
/*!
* \brief Base class for linear local assemblers
*
* This class serves as a base class for linear local assemblers. It provides
* space and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template<class TypeTag, int m>
class LinearLocalStiffness : public LocalStiffness<TypeTag,m>
{
using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
/*!
* \ingroup SequentialTwoPModel
* \brief Base class for linear local assemblers
*
* This class serves as a base class for linear local assemblers. It provides
* space and access to the local stiffness matrix. The actual assembling is done
* in a derived class via the virtual assemble method.
*
* \tparam TypeTag The problem TypeTag
* \tparam m number of degrees of freedom per node (system size)
*/
template<class TypeTag, int m>
class LinearLocalStiffness : public LocalStiffness<TypeTag,m>
{
using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
// grid types
using Entity = typename GridView::template Codim<0>::Entity;
using Entity = typename GridView::template Codim<0>::Entity;
enum {n=GridView::dimension};
public:
public:
// types for matrics, vectors and boundary conditions
using MBlockType = Dune::FieldMatrix<Scalar, m, m>; // one entry in the stiffness matrix
using VBlockType = Dune::FieldVector<Scalar, m>; // one entry in the global vectors
using BCBlockType = std::array<BoundaryConditions::Flags, m>; // componentwise boundary conditions
using MBlockType = Dune::FieldMatrix<Scalar, m, m>; // one entry in the stiffness matrix
using VBlockType = Dune::FieldVector<Scalar, m>; // one entry in the global vectors
using BCBlockType = std::array<BoundaryConditions::Flags, m>; // componentwise boundary conditions
/*! Initialize local stiffness matrix */
LinearLocalStiffness ()
{}
LinearLocalStiffness ()
{}
virtual ~LinearLocalStiffness ()
{
}
/*!
* \brief Assembles local stiffness matrix including boundary conditions for given element and order
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either neumann, process or dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).
* Process boundaries are treated as homogeneous Dirichlet conditions, i.e. the corresponding value
* in the right hand side is set to 0. Finally, Dirichlet indicates that the node is at the Dirichlet
* boundary.
* - The right hand side has been assembled. It contains either the value of the essential boundary
* condition or the assembled source term and neumann boundary condition.
* It is accessible via the rhs() method.
*
* \param e a codim 0 entity reference
* \param k order of Lagrange basis (default is 1)
*/
virtual void assemble (const Entity& e, int k=1) = 0;
virtual ~LinearLocalStiffness ()
{
}
/*!
* \brief Assembles local stiffness matrix including boundary conditions for given element and order
*
* Since this is a base class for linear assemblers, the local solution will be ignored.
*
* \param e a codim 0 entity reference
* \param localSolution The current solution on the entity, which is needed by nonlinear assemblers
* \param k order of Lagrange basis (default is 1)
*/
virtual void assemble (const Entity& e, const Dune::BlockVector<VBlockType>& localSolution, int k=1)
{
assemble(e,k);
}
/*!
* \brief Assembles local stiffness matrix including boundary conditions for given element and order
*
* On exit the following things have been done:
* - The stiffness matrix for the given entity and polynomial degree has been assembled and is
* accessible with the mat() method.
* - The boundary conditions have been evaluated and are accessible with the bc() method.
* The boundary conditions are either neumann, process or dirichlet. Neumann indicates
* that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process
* indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh).