Commit fce9d56a authored by Kilian Weishaupt's avatar Kilian Weishaupt

[staggered] Fix docu

parent 1de4edc9
......@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief The face variables class for free flow staggered grid models
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredElementFaceVariables
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENTFACEVARIABLES_HH
#define DUMUX_DISCRETIZATION_STAGGERED_ELEMENTFACEVARIABLES_HH
......@@ -29,14 +30,17 @@ namespace Dumux
{
/*!
* \ingroup ImplicitModel
* \ingroup StaggeredDiscretization
* \brief Base class for the face variables vector
*/
template<class TypeTag, bool enableGridFaceVariablesCache>
class StaggeredElementFaceVariables
{};
/*!
* \ingroup StaggeredDiscretization
* \brief Class for the face variables vector. Specialization for the case of storing the face variables globally.
*/
template<class TypeTag>
class StaggeredElementFaceVariables<TypeTag, /*enableGridFaceVariablesCache*/true>
{
......@@ -53,11 +57,12 @@ public:
StaggeredElementFaceVariables(const GridFaceVariables& gridFaceVariables) : gridFaceVariablesPtr_(&gridFaceVariables) {}
//! operator for the access with an scvf
const FaceVariables& operator [](const SubControlVolumeFace& scvf) const
{ return gridFaceVariables().faceVars(scvf.index()); }
// operator for the access with an index
// needed for cc methods for the access to the boundary volume variables
//! operator for the access with an index
//! needed for cc methods for the access to the boundary volume variables
const FaceVariables& operator [](const IndexType scvfIdx) const
{ return gridFaceVariables().faceVars(scvfIdx); }
......@@ -69,8 +74,8 @@ public:
const SolutionVector& sol)
{}
// Binding of an element, prepares only the face variables of the element
// specialization for Staggered models
//! Binding of an element, prepares only the face variables of the element
//! specialization for Staggered models
void bindElement(const Element& element,
const FVElementGeometry& fvGeometry,
const SolutionVector& sol)
......@@ -86,6 +91,10 @@ private:
const GridFaceVariables* gridFaceVariablesPtr_;
};
/*!
* \ingroup StaggeredDiscretization
* \brief Class for the face variables vector. Specialization for the case of not storing the face variables globally.
*/
template<class TypeTag>
class StaggeredElementFaceVariables<TypeTag, /*enableGridFaceVariablesCache*/false>
{
......@@ -106,13 +115,15 @@ public:
StaggeredElementFaceVariables(const GridFaceVariables& globalFacesVars) : gridFaceVariablesPtr_(&globalFacesVars) {}
//! const operator for the access with an scvf
const FaceVariables& operator [](const SubControlVolumeFace& scvf) const
{ return faceVariables_[scvf.localFaceIdx()]; }
// operator for the access with an index
//! const operator for the access with an index
const FaceVariables& operator [](const IndexType scvfIdx) const
{ return faceVariables_[getLocalIdx_(scvfIdx)]; }
//! operator for the access with an scvf
FaceVariables& operator [](const SubControlVolumeFace& scvf)
{ return faceVariables_[scvf.localFaceIdx()]; }
......@@ -136,8 +147,8 @@ public:
}
}
// Binding of an element, prepares only the face variables of the element
// specialization for Staggered models
//! Binding of an element, prepares only the face variables of the element
//! specialization for Staggered models
void bindElement(const Element& element,
const FVElementGeometry& fvGeometry,
const SolutionVector& sol)
......
......@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief The global object of flux var caches
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredElementFluxVariablesCache
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_FLUXVARSCACHE_HH
#define DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_FLUXVARSCACHE_HH
......@@ -29,15 +30,16 @@ namespace Dumux
{
/*!
* \ingroup ImplicitModel
* \brief Base class for the stencil local flux variables cache
* \ingroup StaggeredDiscretization
* \brief Base class for the stencil local flux variables cache for the staggered model
*/
template<class TypeTag, bool EnableGridFluxVariablesCache>
class StaggeredElementFluxVariablesCache;
/*!
* \ingroup ImplicitModel
* \brief Spezialization when caching globally
* \ingroup StaggeredDiscretization
* \brief Class for the stencil local flux variables cache for the staggered model.
Specialization for the case of storing the fluxvars cache globally.
*/
template<class TypeTag>
class StaggeredElementFluxVariablesCache<TypeTag, true>
......@@ -56,23 +58,23 @@ public:
StaggeredElementFluxVariablesCache(const GridFluxVariablesCache& global)
: gridFluxVarsCachePtr_(&global) {}
// Specialization for the global caching being enabled - do nothing here
//! Specialization for the global caching being enabled - do nothing here
void bindElement(const Element& element,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars) {}
// Specialization for the global caching being enabled - do nothing here
//! Specialization for the global caching being enabled - do nothing here
void bind(const Element& element,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars) {}
// Specialization for the global caching being enabled - do nothing here
//! Specialization for the global caching being enabled - do nothing here
void bindScvf(const Element& element,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars,
const SubControlVolumeFace& scvf) {}
// aStaggeredess operators in the case of caching
//! operators in the case of caching
const FluxVariablesCache& operator [](const SubControlVolumeFace& scvf) const
{ return (*gridFluxVarsCachePtr_)[scvf.index()]; }
......@@ -85,8 +87,9 @@ private:
};
/*!
* \ingroup ImplicitModel
* \brief Spezialization when not using global caching
* \ingroup StaggeredDiscretization
* \brief Class for the stencil local flux variables cache for the staggered model.
Specialization for the case of not storing the fluxvars cache globally.
*/
template<class TypeTag>
class StaggeredElementFluxVariablesCache<TypeTag, false>
......@@ -105,8 +108,8 @@ public:
StaggeredElementFluxVariablesCache(const GridFluxVariablesCache& global)
: gridFluxVarsCachePtr_(&global) {}
// This function has to be called prior to flux calculations on the element.
// Prepares the transmissibilities of the scv faces in an element. The FvGeometry is assumed to be bound.
//! This function has to be called prior to flux calculations on the element.
//! Prepares the transmissibilities of the scv faces in an element. The FvGeometry is assumed to be bound.
void bindElement(const Element& element,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars)
......@@ -126,8 +129,8 @@ public:
}
}
// This function is called by the StaggeredLocalResidual before flux calculations during assembly.
// Prepares the transmissibilities of the scv faces in the stencil. The FvGeometries are assumed to be bound.
//! This function is called by the StaggeredLocalResidual before flux calculations during assembly.
//! Prepares the transmissibilities of the scv faces in the stencil. The FvGeometries are assumed to be bound.
void bind(const Element& element,
const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars)
......@@ -183,7 +186,7 @@ public:
globalScvfIndices_[0] = scvf.index();
}
// access operators in the case of no caching
//! access operators in the case of no caching
const FluxVariablesCache& operator [](const SubControlVolumeFace& scvf) const
{ return fluxVarsCache_[getLocalScvfIdx_(scvf.index())]; }
......
......@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief The local (stencil) volume variables class for cell centered models
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredElementVolumeVariables
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_VOLUMEVARIABLES_HH
#define DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_VOLUMEVARIABLES_HH
......@@ -30,14 +31,18 @@ namespace Dumux
{
/*!
* \ingroup ImplicitModel
* \brief Base class for the volume variables vector
* \ingroup StaggeredDiscretization
* \brief Base class for the element volume variables vector for the staggered model
*/
template<class TypeTag, bool enableGridVolVarsCache>
class StaggeredElementVolumeVariables
{};
// specialization in case of storing the volume variables globally
/*!
* \ingroup StaggeredDiscretization
* \brief Class for the element volume variables vector for the staggered model.
Specialization in case the volume variables are stored globally.
*/
template<class TypeTag>
class StaggeredElementVolumeVariables<TypeTag, /*enableGridVolVarsCache*/true>
{
......@@ -58,22 +63,23 @@ public:
StaggeredElementVolumeVariables(const GridVolumeVariables& gridVolVars)
: gridVolVarsPtr_(&gridVolVars) {}
//! operator for the access with an scv
const VolumeVariables& operator [](const SubControlVolume& scv) const
{ return gridVolVars().volVars(scv.dofIndex()); }
// operator for the access with an index
// needed for Staggered methods for the access to the boundary volume variables
//! operator for the access with an index
//! needed for Staggered methods for the access to the boundary volume variables
const VolumeVariables& operator [](const IndexType scvIdx) const
{ return gridVolVars().volVars(scvIdx); }
// For compatibility reasons with the case of not storing the vol vars.
// function to be called before assembling an element, preparing the vol vars within the stencil
//! For compatibility reasons with the case of not storing the vol vars.
//! function to be called before assembling an element, preparing the vol vars within the stencil
void bind(const Element& element,
const FVElementGeometry& fvGeometry,
const SolutionVector& sol)
{}
// function to prepare the vol vars within the element
//! function to prepare the vol vars within the element
void bindElement(const Element& element,
const FVElementGeometry& fvGeometry,
const SolutionVector& sol)
......@@ -88,7 +94,11 @@ private:
};
// Specialization when the current volume variables are not stored
/*!
* \ingroup StaggeredDiscretization
* \brief Class for the element volume variables vector for the staggered model.
Specialization in case the volume variables are not stored globally.
*/
template<class TypeTag>
class StaggeredElementVolumeVariables<TypeTag, /*enableGridVolVarsCache*/false>
{
......@@ -119,8 +129,8 @@ public:
StaggeredElementVolumeVariables(const GridVolumeVariables& gridVolVars)
: gridVolVarsPtr_(&gridVolVars) {}
// Binding of an element, prepares the volume variables within the element stencil
// called by the local jacobian to prepare element assembly
//! Binding of an element, prepares the volume variables within the element stencil
//! called by the local jacobian to prepare element assembly
void bind(const Element& element,
const FVElementGeometry& fvGeometry,
const SolutionVector& sol)
......@@ -194,8 +204,8 @@ public:
}
}
// Binding of an element, prepares only the volume variables of the element
// specialization for Staggered models
//! Binding of an element, prepares only the volume variables of the element.
//! Specialization for Staggered models
void bindElement(const Element& element,
const FVElementGeometry& fvGeometry,
const SolutionVector& sol)
......@@ -218,15 +228,19 @@ public:
volVarIndices_[0] = scv.dofIndex();
}
//! const operator for the access with an scv
const VolumeVariables& operator [](const SubControlVolume& scv) const
{ return volumeVariables_[getLocalIdx_(scv.dofIndex())]; }
//! operator for the access with an scv
VolumeVariables& operator [](const SubControlVolume& scv)
{ return volumeVariables_[getLocalIdx_(scv.dofIndex())]; }
//! const operator for the access with an index
const VolumeVariables& operator [](IndexType scvIdx) const
{ return volumeVariables_[getLocalIdx_(scvIdx)]; }
//! operator for the access with an index
VolumeVariables& operator [](IndexType scvIdx)
{ return volumeVariables_[getLocalIdx_(scvIdx)]; }
......
......@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief The global volume variables class for cell centered models
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredFaceSolution
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FACE_SOLUTION_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FACE_SOLUTION_HH
......@@ -31,6 +32,10 @@
namespace Dumux
{
/*!
* \ingroup StaggeredDiscretization
* \brief The global face variables class for staggered models
*/
template<class TypeTag>
class StaggeredFaceSolution
{
......
......@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Class to specify the type of a boundary for the staggered Navier-Stokes model.
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredFreeFlowBoundaryTypes
*/
#ifndef STAGGERED_FREEFLOW_BOUNDARY_TYPES_HH
#define STAGGERED_FREEFLOW_BOUNDARY_TYPES_HH
......@@ -30,7 +31,7 @@ namespace Dumux
{
/*!
* \ingroup BC
* \ingroup StaggeredDiscretization
* \brief Class to specify the type of a boundary for the staggered Navier-Stokes model.
*/
template <int numEq>
......
......@@ -18,8 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief The face variables class for free flow staggered grid models.
* Contains all relevant velocities for the assembly of the momentum balance.
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredFaceVariables
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FREEFLOW_FACEVARIABLES_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FREEFLOW_FACEVARIABLES_HH
......@@ -30,6 +30,11 @@
namespace Dumux
{
/*!
* \ingroup StaggeredDiscretization
* \brief The face variables class for free flow staggered grid models.
* Contains all relevant velocities for the assembly of the momentum balance.
*/
template<class TypeTag>
class StaggeredFaceVariables
{
......
......@@ -18,8 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief This file contains the data which is required to calculate
* diffusive mass fluxes due to molecular diffusion with Fourier's law.
* \ingroup StaggeredDiscretization
* \brief Specialization of Fourier's Law for the staggered free flow method.
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FOURIERS_LAW_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FOURIERS_LAW_HH
......@@ -37,7 +37,7 @@ template<class TypeTag, DiscretizationMethods discMethod>
class FouriersLawImplementation;
/*!
* \ingroup StaggeredFouriersLaw
* \ingroup StaggeredDiscretization
* \brief Specialization of Fourier's Law for the staggered free flow method.
*/
template <class TypeTag>
......@@ -63,6 +63,7 @@ public:
//! We don't cache anything for this law
using Cache = FluxVariablesCaching::EmptyDiffusionCache<TypeTag>;
//! calculate the molecular diffusive fluxes
static Scalar diffusiveFluxForCellCenter(const Problem& problem,
const Element& element,
const FVElementGeometry& fvGeometry,
......
......@@ -18,8 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief This file contains the data which is required to calculate
* diffusive mass fluxes due to molecular diffusion with Fick's law.
* \ingroup StaggeredDiscretization
* \brief Specialization of Maxwell Stefan's Law for the Staggered method.
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_MAXWELL_STEFAN_LAW_HH
#define DUMUX_DISCRETIZATION_STAGGERED_MAXWELL_STEFAN_LAW_HH
......@@ -39,7 +39,7 @@ template <class TypeTag, DiscretizationMethods DM>
class MaxwellStefansLawImplementation;
/*!
* \ingroup StaggeredMaxwellStefansLaw
* \ingroup StaggeredDiscretization
* \brief Specialization of Maxwell Stefan's Law for the Staggered method.
*/
template <class TypeTag>
......
......@@ -17,10 +17,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
/*!
* \ingroup Properties
* \ingroup StaggeredDiscretization
* \file
*
* \brief Defines a type tag and some properties for free-flow models using the staggered scheme.
* \brief Defines a type tag and some properties for ree-flow models using the staggered scheme.
This scheme features degrees of freedom at the elements' centers and intersections (faces).
* TODO: detailed documentation and figures
*/
#ifndef DUMUX_STAGGERD_FREE_FLOW_PROPERTIES_HH
......@@ -109,6 +111,7 @@ public:
using type = StaggeredFreeFlowBoundaryTypes<size>;
};
//! The velocity output
SET_TYPE_PROP(StaggeredFreeFlowModel, VelocityOutput, StaggeredFreeFlowVelocityOutput<TypeTag>);
SET_TYPE_PROP(StaggeredFreeFlowModel, AssemblyMap, StaggeredFreeFlowConnectivityMap<TypeTag>);
......
......@@ -18,8 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Helper class constructing the dual grid finite volume geometries
* for the staggered discretization method
* \ingroup StaggeredDiscretization
* \copydoc Dumux::FreeFlowStaggeredGeometryHelper
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_GEOMETRY_HELPER_HH
#define DUMUX_DISCRETIZATION_STAGGERED_GEOMETRY_HELPER_HH
......@@ -35,6 +35,10 @@
namespace Dumux
{
/*!
* \ingroup StaggeredDiscretization
* \brief Data stored per sub face
*/
template<class Scalar, class GlobalPosition>
struct PairData
{
......@@ -48,8 +52,8 @@ struct PairData
GlobalPosition virtualOuterParallelFaceDofPos;
};
/*!
* \ingroup StaggeredDiscretization
* \brief Returns the dirction index of the facet (0 = x, 1 = y, 2 = z)
*/
template<class Vector>
......@@ -60,7 +64,11 @@ inline static int directionIndex(Vector&& vector)
return idx;
}
//! A class to create face information per intersection
/*!
* \ingroup StaggeredDiscretization
* \brief Helper class constructing the dual grid finite volume geometries
* for the free flow staggered discretization method.
*/
template<class GridView>
class FreeFlowStaggeredGeometryHelper
{
......@@ -89,6 +97,7 @@ public:
FreeFlowStaggeredGeometryHelper(const Element& element, const GridView& gridView) : element_(element), elementGeometry_(element.geometry()), gridView_(gridView)
{ }
//! update the local face
template<class IntersectionMapper>
void updateLocalFace(const IntersectionMapper& intersectionMapper_, const Intersection& intersection)
{
......@@ -97,7 +106,7 @@ public:
fillPairData_();
}
/*!
/*!
* \brief Returns the global dofIdx of the intersection itself
*/
int dofIndex() const
......@@ -107,7 +116,7 @@ public:
return gridView_.indexSet().subIndex(intersection_.inside(), inIdx, codimIntersection);
}
/*!
/*!
* \brief Returns the global dofIdx of the opposing intersection
*/
int dofIndexOpposingFace() const
......@@ -118,8 +127,8 @@ public:
}
/*!
* \brief Returns the local index of the face (i.e. the intersection)
*/
* \brief Returns the local index of the face (i.e. the intersection)
*/
int localFaceIndex() const
{
return intersection_.indexInInside();
......@@ -136,7 +145,7 @@ public:
return (self.geometry().center() - opposite.geometry().center()).two_norm();
}
/*!
/*!
* \brief Returns a copy of the pair data
*/
auto pairData() const
......
......@@ -18,7 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Specilialized sub control volume face for free-flow staggered grid models
* \ingroup StaggeredDiscretization
* \copydoc Dumux::FreeFlowStaggeredSubControlVolumeFace
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FREE_FLOW_SUBCONTROLVOLUMEFACE_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FREE_FLOW_SUBCONTROLVOLUMEFACE_HH
......@@ -37,7 +38,7 @@ namespace Dumux
{
/*!
* \ingroup Discretization
* \ingroup StaggeredDiscretization
* \brief Class for a sub control volume face in the staggered method, i.e a part of the boundary
* of a sub control volume we compute fluxes on. This is a specialization for free flow models.
*/
......@@ -57,10 +58,10 @@ class FreeFlowStaggeredSubControlVolumeFace : public SubControlVolumeFaceBase<Fr
static constexpr int numPairs = (dimworld == 2) ? 2 : 4;
public:
//! state the traits public and thus export all types
//! State the traits public and thus export all types
using Traits = ScvfGeometryTraits;
// the default constructor
// The default constructor
FreeFlowStaggeredSubControlVolumeFace() = default;
//! Constructor with intersection
......@@ -113,7 +114,7 @@ public:
return center_;
}
//! The center of the sub control volume face
//! The position of the dof living on the face
const GlobalPosition& dofPosition() const
{
return center_;
......@@ -132,18 +133,19 @@ public:
return area_;
}
//! returns bolean if the sub control volume face is on the boundary
//! Returns bolean if the sub control volume face is on the boundary
bool boundary() const
{
return boundary_;
}
//! The unit outer normal vector
const GlobalPosition& unitOuterNormal() const
{
return unitOuterNormal_;
}
//! index of the inside sub control volume for spatial param evaluation
//! Index of the inside sub control volume for spatial param evaluation
GridIndexType insideScvIdx() const
{
return scvIndices_[0];
......@@ -162,6 +164,7 @@ public:
return scvfIndex_;
}
//! The positions of the corners
const GlobalPosition& corner(unsigned int localIdx) const
{
assert(localIdx < corners_.size() && "provided index exceeds the number of corners");
......@@ -198,13 +201,13 @@ public:
return dirIdx_;
}
//! The global index of this sub control volume face
//! The distance between the position of the dof itself and the one of the oppsing dof
Scalar selfToOppositeDistance() const
{
return selfToOppositeDistance_;
}
//! The returns whether the unitNormal of the face point in positive coordinate direction
//! Returns whether the unitNormal of the face points in positive coordinate direction
bool normalInPosCoordDir() const
{
return normalInPosCoordDir_;
......@@ -216,12 +219,13 @@ public:
return outerNormalScalar_;
}
//! Returns the data for one sub face
const PairData<Scalar, GlobalPosition>& pairData(const int idx) const
{
return pairData_[idx];
}
//! Return an array of all pair data
const auto& pairData() const
{
return pairData_;
......
......@@ -18,8 +18,8 @@
*****************************************************************************/
/*!
* \file
*
* \brief Velocity output for staggered free-flow models
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredFreeFlowVelocityOutput
*/
#ifndef DUMUX_STAGGERED_FF_VELOCITYOUTPUT_HH
#define DUMUX_STAGGERED_FF_VELOCITYOUTPUT_HH
......@@ -32,6 +32,7 @@ namespace Dumux
{
/*!
* \ingroup StaggeredDiscretization
* \brief Velocity output for staggered free-flow models
*/
template<class TypeTag>
......@@ -78,9 +79,11 @@ public:
velocityOutput_ = getParamFromGroup<bool>(GET_PROP_VALUE(TypeTag, ModelParameterGroup), "Vtk.AddVelocity");
}
//! Returns whether to enable the velocity output or not
bool enableOutput()
{ return velocityOutput_; }
//! Return the problem boundary types
auto problemBoundaryTypes(const Element& element, const SubControlVolumeFace& scvf) const
{ return problem_.boundaryTypes(element, scvf); }
......
......@@ -18,9 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Base class for a local finite volume geometry for staggered models
* This builds up the sub control volumes and sub control volume faces
* for each element in the local scope we are restricting to, e.g. stencil or element.
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredFVElementGeometry
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FV_ELEMENT_GEOMETRY_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FV_ELEMENT_GEOMETRY_HH
......@@ -33,22 +32,27 @@
namespace Dumux
{
//! forward declaration of the global finite volume geometry
// forward declaration
template<class TypeTag, bool EnableFVGridGeometryCache>
class StaggeredFVGridGeometry;
/*!
* \ingroup ImplicitModel
* \ingroup StaggeredDiscretization
* \brief Base class for the finite volume geometry vector for staggered models
* This builds up the sub control volumes and sub control volume faces
* This locally builds up the sub control volumes and sub control volume faces
* for each element.
*/
template<class TypeTag, bool EnableFVGridGeometryCache>
class StaggeredFVElementGeometry
{};
//! specialization in case the FVElementGeometries are stored globally
//! In this case we just forward internally to the global object
/*!
* \ingroup StaggeredDiscretization
* \brief Class for the finite volume geometry vector for staggered models
* This locally builds up the sub control volumes and sub control volume faces
* for each element. Specialization in case the FVElementGeometries are stored globally.
In this case we just forward internally to the global object.
*/
template<class TypeTag>
class StaggeredFVElementGeometry<TypeTag, true>
{
......@@ -149,7 +153,12 @@ private:
const FVGridGeometry* fvGridGeometryPtr_;
};
//! specialization in case the FVElementGeometries are not stored
/*!
* \ingroup StaggeredDiscretization
* \brief Class for the finite volume geometry vector for staggered models
* This locally builds up the sub control volumes and sub control volume faces
* for each element. Specialization in case the FVElementGeometries are not stored globally.
*/
template<class TypeTag>
class StaggeredFVElementGeometry<TypeTag, false>
{
......
......@@ -18,9 +18,8 @@
*****************************************************************************/
/*!
* \file
* \brief Base class for the finite volume geometry vector for staggered models
* This builds up the sub control volumes and sub control volume faces
* for each element of the grid partition.
* \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredFVGridGeometry
*/
#ifndef DUMUX_DISCRETIZATION_STAGGERED_GLOBAL_FVGEOMETRY_HH
#define DUMUX_DISCRETIZATION_STAGGERED_GLOBAL_FVGEOMETRY_HH
......@@ -32,7 +31,7 @@ namespace Dumux
{