Commit fce9d56a authored by Kilian Weishaupt's avatar Kilian Weishaupt

[staggered] Fix docu

parent 1de4edc9
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief The face variables class for free flow staggered grid models * \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredElementFaceVariables
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENTFACEVARIABLES_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENTFACEVARIABLES_HH
#define DUMUX_DISCRETIZATION_STAGGERED_ELEMENTFACEVARIABLES_HH #define DUMUX_DISCRETIZATION_STAGGERED_ELEMENTFACEVARIABLES_HH
...@@ -29,14 +30,17 @@ namespace Dumux ...@@ -29,14 +30,17 @@ namespace Dumux
{ {
/*! /*!
* \ingroup ImplicitModel * \ingroup StaggeredDiscretization
* \brief Base class for the face variables vector * \brief Base class for the face variables vector
*/ */
template<class TypeTag, bool enableGridFaceVariablesCache> template<class TypeTag, bool enableGridFaceVariablesCache>
class StaggeredElementFaceVariables class StaggeredElementFaceVariables
{}; {};
/*!
* \ingroup StaggeredDiscretization
* \brief Class for the face variables vector. Specialization for the case of storing the face variables globally.
*/
template<class TypeTag> template<class TypeTag>
class StaggeredElementFaceVariables<TypeTag, /*enableGridFaceVariablesCache*/true> class StaggeredElementFaceVariables<TypeTag, /*enableGridFaceVariablesCache*/true>
{ {
...@@ -53,11 +57,12 @@ public: ...@@ -53,11 +57,12 @@ public:
StaggeredElementFaceVariables(const GridFaceVariables& gridFaceVariables) : gridFaceVariablesPtr_(&gridFaceVariables) {} StaggeredElementFaceVariables(const GridFaceVariables& gridFaceVariables) : gridFaceVariablesPtr_(&gridFaceVariables) {}
//! operator for the access with an scvf
const FaceVariables& operator [](const SubControlVolumeFace& scvf) const const FaceVariables& operator [](const SubControlVolumeFace& scvf) const
{ return gridFaceVariables().faceVars(scvf.index()); } { return gridFaceVariables().faceVars(scvf.index()); }
// operator for the access with an index //! operator for the access with an index
// needed for cc methods for the access to the boundary volume variables //! needed for cc methods for the access to the boundary volume variables
const FaceVariables& operator [](const IndexType scvfIdx) const const FaceVariables& operator [](const IndexType scvfIdx) const
{ return gridFaceVariables().faceVars(scvfIdx); } { return gridFaceVariables().faceVars(scvfIdx); }
...@@ -69,8 +74,8 @@ public: ...@@ -69,8 +74,8 @@ public:
const SolutionVector& sol) const SolutionVector& sol)
{} {}
// Binding of an element, prepares only the face variables of the element //! Binding of an element, prepares only the face variables of the element
// specialization for Staggered models //! specialization for Staggered models
void bindElement(const Element& element, void bindElement(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const SolutionVector& sol) const SolutionVector& sol)
...@@ -86,6 +91,10 @@ private: ...@@ -86,6 +91,10 @@ private:
const GridFaceVariables* gridFaceVariablesPtr_; 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> template<class TypeTag>
class StaggeredElementFaceVariables<TypeTag, /*enableGridFaceVariablesCache*/false> class StaggeredElementFaceVariables<TypeTag, /*enableGridFaceVariablesCache*/false>
{ {
...@@ -106,13 +115,15 @@ public: ...@@ -106,13 +115,15 @@ public:
StaggeredElementFaceVariables(const GridFaceVariables& globalFacesVars) : gridFaceVariablesPtr_(&globalFacesVars) {} StaggeredElementFaceVariables(const GridFaceVariables& globalFacesVars) : gridFaceVariablesPtr_(&globalFacesVars) {}
//! const operator for the access with an scvf
const FaceVariables& operator [](const SubControlVolumeFace& scvf) const const FaceVariables& operator [](const SubControlVolumeFace& scvf) const
{ return faceVariables_[scvf.localFaceIdx()]; } { 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 const FaceVariables& operator [](const IndexType scvfIdx) const
{ return faceVariables_[getLocalIdx_(scvfIdx)]; } { return faceVariables_[getLocalIdx_(scvfIdx)]; }
//! operator for the access with an scvf
FaceVariables& operator [](const SubControlVolumeFace& scvf) FaceVariables& operator [](const SubControlVolumeFace& scvf)
{ return faceVariables_[scvf.localFaceIdx()]; } { return faceVariables_[scvf.localFaceIdx()]; }
...@@ -136,8 +147,8 @@ public: ...@@ -136,8 +147,8 @@ public:
} }
} }
// Binding of an element, prepares only the face variables of the element //! Binding of an element, prepares only the face variables of the element
// specialization for Staggered models //! specialization for Staggered models
void bindElement(const Element& element, void bindElement(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const SolutionVector& sol) const SolutionVector& sol)
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief The global object of flux var caches * \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredElementFluxVariablesCache
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_FLUXVARSCACHE_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_FLUXVARSCACHE_HH
#define DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_FLUXVARSCACHE_HH #define DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_FLUXVARSCACHE_HH
...@@ -29,15 +30,16 @@ namespace Dumux ...@@ -29,15 +30,16 @@ namespace Dumux
{ {
/*! /*!
* \ingroup ImplicitModel * \ingroup StaggeredDiscretization
* \brief Base class for the stencil local flux variables cache * \brief Base class for the stencil local flux variables cache for the staggered model
*/ */
template<class TypeTag, bool EnableGridFluxVariablesCache> template<class TypeTag, bool EnableGridFluxVariablesCache>
class StaggeredElementFluxVariablesCache; class StaggeredElementFluxVariablesCache;
/*! /*!
* \ingroup ImplicitModel * \ingroup StaggeredDiscretization
* \brief Spezialization when caching globally * \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> template<class TypeTag>
class StaggeredElementFluxVariablesCache<TypeTag, true> class StaggeredElementFluxVariablesCache<TypeTag, true>
...@@ -56,23 +58,23 @@ public: ...@@ -56,23 +58,23 @@ public:
StaggeredElementFluxVariablesCache(const GridFluxVariablesCache& global) StaggeredElementFluxVariablesCache(const GridFluxVariablesCache& global)
: gridFluxVarsCachePtr_(&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, void bindElement(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars) {} 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, void bind(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars) {} 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, void bindScvf(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars, const ElementVolumeVariables& elemVolVars,
const SubControlVolumeFace& scvf) {} const SubControlVolumeFace& scvf) {}
// aStaggeredess operators in the case of caching //! operators in the case of caching
const FluxVariablesCache& operator [](const SubControlVolumeFace& scvf) const const FluxVariablesCache& operator [](const SubControlVolumeFace& scvf) const
{ return (*gridFluxVarsCachePtr_)[scvf.index()]; } { return (*gridFluxVarsCachePtr_)[scvf.index()]; }
...@@ -85,8 +87,9 @@ private: ...@@ -85,8 +87,9 @@ private:
}; };
/*! /*!
* \ingroup ImplicitModel * \ingroup StaggeredDiscretization
* \brief Spezialization when not using global caching * \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> template<class TypeTag>
class StaggeredElementFluxVariablesCache<TypeTag, false> class StaggeredElementFluxVariablesCache<TypeTag, false>
...@@ -105,8 +108,8 @@ public: ...@@ -105,8 +108,8 @@ public:
StaggeredElementFluxVariablesCache(const GridFluxVariablesCache& global) StaggeredElementFluxVariablesCache(const GridFluxVariablesCache& global)
: gridFluxVarsCachePtr_(&global) {} : gridFluxVarsCachePtr_(&global) {}
// This function has to be called prior to flux calculations on the element. //! 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. //! Prepares the transmissibilities of the scv faces in an element. The FvGeometry is assumed to be bound.
void bindElement(const Element& element, void bindElement(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars) const ElementVolumeVariables& elemVolVars)
...@@ -126,8 +129,8 @@ public: ...@@ -126,8 +129,8 @@ public:
} }
} }
// This function is called by the StaggeredLocalResidual before flux calculations during assembly. //! 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. //! Prepares the transmissibilities of the scv faces in the stencil. The FvGeometries are assumed to be bound.
void bind(const Element& element, void bind(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const ElementVolumeVariables& elemVolVars) const ElementVolumeVariables& elemVolVars)
...@@ -183,7 +186,7 @@ public: ...@@ -183,7 +186,7 @@ public:
globalScvfIndices_[0] = scvf.index(); 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 const FluxVariablesCache& operator [](const SubControlVolumeFace& scvf) const
{ return fluxVarsCache_[getLocalScvfIdx_(scvf.index())]; } { return fluxVarsCache_[getLocalScvfIdx_(scvf.index())]; }
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief The local (stencil) volume variables class for cell centered models * \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredElementVolumeVariables
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_VOLUMEVARIABLES_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_VOLUMEVARIABLES_HH
#define DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_VOLUMEVARIABLES_HH #define DUMUX_DISCRETIZATION_STAGGERED_ELEMENT_VOLUMEVARIABLES_HH
...@@ -30,14 +31,18 @@ namespace Dumux ...@@ -30,14 +31,18 @@ namespace Dumux
{ {
/*! /*!
* \ingroup ImplicitModel * \ingroup StaggeredDiscretization
* \brief Base class for the volume variables vector * \brief Base class for the element volume variables vector for the staggered model
*/ */
template<class TypeTag, bool enableGridVolVarsCache> template<class TypeTag, bool enableGridVolVarsCache>
class StaggeredElementVolumeVariables 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> template<class TypeTag>
class StaggeredElementVolumeVariables<TypeTag, /*enableGridVolVarsCache*/true> class StaggeredElementVolumeVariables<TypeTag, /*enableGridVolVarsCache*/true>
{ {
...@@ -58,22 +63,23 @@ public: ...@@ -58,22 +63,23 @@ public:
StaggeredElementVolumeVariables(const GridVolumeVariables& gridVolVars) StaggeredElementVolumeVariables(const GridVolumeVariables& gridVolVars)
: gridVolVarsPtr_(&gridVolVars) {} : gridVolVarsPtr_(&gridVolVars) {}
//! operator for the access with an scv
const VolumeVariables& operator [](const SubControlVolume& scv) const const VolumeVariables& operator [](const SubControlVolume& scv) const
{ return gridVolVars().volVars(scv.dofIndex()); } { return gridVolVars().volVars(scv.dofIndex()); }
// operator for the access with an index //! operator for the access with an index
// needed for Staggered methods for the access to the boundary volume variables //! needed for Staggered methods for the access to the boundary volume variables
const VolumeVariables& operator [](const IndexType scvIdx) const const VolumeVariables& operator [](const IndexType scvIdx) const
{ return gridVolVars().volVars(scvIdx); } { return gridVolVars().volVars(scvIdx); }
// For compatibility reasons with the case of not storing the vol vars. //! 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 //! function to be called before assembling an element, preparing the vol vars within the stencil
void bind(const Element& element, void bind(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const SolutionVector& sol) 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, void bindElement(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const SolutionVector& sol) const SolutionVector& sol)
...@@ -88,7 +94,11 @@ private: ...@@ -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> template<class TypeTag>
class StaggeredElementVolumeVariables<TypeTag, /*enableGridVolVarsCache*/false> class StaggeredElementVolumeVariables<TypeTag, /*enableGridVolVarsCache*/false>
{ {
...@@ -119,8 +129,8 @@ public: ...@@ -119,8 +129,8 @@ public:
StaggeredElementVolumeVariables(const GridVolumeVariables& gridVolVars) StaggeredElementVolumeVariables(const GridVolumeVariables& gridVolVars)
: gridVolVarsPtr_(&gridVolVars) {} : gridVolVarsPtr_(&gridVolVars) {}
// Binding of an element, prepares the volume variables within the element stencil //! Binding of an element, prepares the volume variables within the element stencil
// called by the local jacobian to prepare element assembly //! called by the local jacobian to prepare element assembly
void bind(const Element& element, void bind(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const SolutionVector& sol) const SolutionVector& sol)
...@@ -194,8 +204,8 @@ public: ...@@ -194,8 +204,8 @@ public:
} }
} }
// Binding of an element, prepares only the volume variables of the element //! Binding of an element, prepares only the volume variables of the element.
// specialization for Staggered models //! Specialization for Staggered models
void bindElement(const Element& element, void bindElement(const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
const SolutionVector& sol) const SolutionVector& sol)
...@@ -218,15 +228,19 @@ public: ...@@ -218,15 +228,19 @@ public:
volVarIndices_[0] = scv.dofIndex(); volVarIndices_[0] = scv.dofIndex();
} }
//! const operator for the access with an scv
const VolumeVariables& operator [](const SubControlVolume& scv) const const VolumeVariables& operator [](const SubControlVolume& scv) const
{ return volumeVariables_[getLocalIdx_(scv.dofIndex())]; } { return volumeVariables_[getLocalIdx_(scv.dofIndex())]; }
//! operator for the access with an scv
VolumeVariables& operator [](const SubControlVolume& scv) VolumeVariables& operator [](const SubControlVolume& scv)
{ return volumeVariables_[getLocalIdx_(scv.dofIndex())]; } { return volumeVariables_[getLocalIdx_(scv.dofIndex())]; }
//! const operator for the access with an index
const VolumeVariables& operator [](IndexType scvIdx) const const VolumeVariables& operator [](IndexType scvIdx) const
{ return volumeVariables_[getLocalIdx_(scvIdx)]; } { return volumeVariables_[getLocalIdx_(scvIdx)]; }
//! operator for the access with an index
VolumeVariables& operator [](IndexType scvIdx) VolumeVariables& operator [](IndexType scvIdx)
{ return volumeVariables_[getLocalIdx_(scvIdx)]; } { return volumeVariables_[getLocalIdx_(scvIdx)]; }
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief The global volume variables class for cell centered models * \ingroup StaggeredDiscretization
* \copydoc Dumux::StaggeredFaceSolution
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FACE_SOLUTION_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_FACE_SOLUTION_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FACE_SOLUTION_HH #define DUMUX_DISCRETIZATION_STAGGERED_FACE_SOLUTION_HH
...@@ -31,6 +32,10 @@ ...@@ -31,6 +32,10 @@
namespace Dumux namespace Dumux
{ {
/*!
* \ingroup StaggeredDiscretization
* \brief The global face variables class for staggered models
*/
template<class TypeTag> template<class TypeTag>
class StaggeredFaceSolution class StaggeredFaceSolution
{ {
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \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 #ifndef STAGGERED_FREEFLOW_BOUNDARY_TYPES_HH
#define STAGGERED_FREEFLOW_BOUNDARY_TYPES_HH #define STAGGERED_FREEFLOW_BOUNDARY_TYPES_HH
...@@ -30,7 +31,7 @@ namespace Dumux ...@@ -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. * \brief Class to specify the type of a boundary for the staggered Navier-Stokes model.
*/ */
template <int numEq> template <int numEq>
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief The face variables class for free flow staggered grid models. * \ingroup StaggeredDiscretization
* Contains all relevant velocities for the assembly of the momentum balance. * \copydoc Dumux::StaggeredFaceVariables
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FREEFLOW_FACEVARIABLES_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_FREEFLOW_FACEVARIABLES_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FREEFLOW_FACEVARIABLES_HH #define DUMUX_DISCRETIZATION_STAGGERED_FREEFLOW_FACEVARIABLES_HH
...@@ -30,6 +30,11 @@ ...@@ -30,6 +30,11 @@
namespace Dumux 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> template<class TypeTag>
class StaggeredFaceVariables class StaggeredFaceVariables
{ {
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief This file contains the data which is required to calculate * \ingroup StaggeredDiscretization
* diffusive mass fluxes due to molecular diffusion with Fourier's law. * \brief Specialization of Fourier's Law for the staggered free flow method.
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_FOURIERS_LAW_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_FOURIERS_LAW_HH
#define DUMUX_DISCRETIZATION_STAGGERED_FOURIERS_LAW_HH #define DUMUX_DISCRETIZATION_STAGGERED_FOURIERS_LAW_HH
...@@ -37,7 +37,7 @@ template<class TypeTag, DiscretizationMethods discMethod> ...@@ -37,7 +37,7 @@ template<class TypeTag, DiscretizationMethods discMethod>
class FouriersLawImplementation; class FouriersLawImplementation;
/*! /*!
* \ingroup StaggeredFouriersLaw * \ingroup StaggeredDiscretization
* \brief Specialization of Fourier's Law for the staggered free flow method. * \brief Specialization of Fourier's Law for the staggered free flow method.
*/ */
template <class TypeTag> template <class TypeTag>
...@@ -63,6 +63,7 @@ public: ...@@ -63,6 +63,7 @@ public:
//! We don't cache anything for this law //! We don't cache anything for this law
using Cache = FluxVariablesCaching::EmptyDiffusionCache<TypeTag>; using Cache = FluxVariablesCaching::EmptyDiffusionCache<TypeTag>;
//! calculate the molecular diffusive fluxes
static Scalar diffusiveFluxForCellCenter(const Problem& problem, static Scalar diffusiveFluxForCellCenter(const Problem& problem,
const Element& element, const Element& element,
const FVElementGeometry& fvGeometry, const FVElementGeometry& fvGeometry,
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief This file contains the data which is required to calculate * \ingroup StaggeredDiscretization
* diffusive mass fluxes due to molecular diffusion with Fick's law. * \brief Specialization of Maxwell Stefan's Law for the Staggered method.
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_MAXWELL_STEFAN_LAW_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_MAXWELL_STEFAN_LAW_HH
#define DUMUX_DISCRETIZATION_STAGGERED_MAXWELL_STEFAN_LAW_HH #define DUMUX_DISCRETIZATION_STAGGERED_MAXWELL_STEFAN_LAW_HH
...@@ -39,7 +39,7 @@ template <class TypeTag, DiscretizationMethods DM> ...@@ -39,7 +39,7 @@ template <class TypeTag, DiscretizationMethods DM>
class MaxwellStefansLawImplementation; class MaxwellStefansLawImplementation;
/*! /*!
* \ingroup StaggeredMaxwellStefansLaw * \ingroup StaggeredDiscretization
* \brief Specialization of Maxwell Stefan's Law for the Staggered method. * \brief Specialization of Maxwell Stefan's Law for the Staggered method.
*/ */
template <class TypeTag> template <class TypeTag>
......
...@@ -17,10 +17,12 @@ ...@@ -17,10 +17,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * * along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \ingroup Properties * \ingroup StaggeredDiscretization
* \file * \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 #ifndef DUMUX_STAGGERD_FREE_FLOW_PROPERTIES_HH
...@@ -109,6 +111,7 @@ public: ...@@ -109,6 +111,7 @@ public:
using type = StaggeredFreeFlowBoundaryTypes<size>; using type = StaggeredFreeFlowBoundaryTypes<size>;
}; };
//! The velocity output
SET_TYPE_PROP(StaggeredFreeFlowModel, VelocityOutput, StaggeredFreeFlowVelocityOutput<TypeTag>); SET_TYPE_PROP(StaggeredFreeFlowModel, VelocityOutput, StaggeredFreeFlowVelocityOutput<TypeTag>);
SET_TYPE_PROP(StaggeredFreeFlowModel, AssemblyMap, StaggeredFreeFlowConnectivityMap<TypeTag>); SET_TYPE_PROP(StaggeredFreeFlowModel, AssemblyMap, StaggeredFreeFlowConnectivityMap<TypeTag>);
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
*****************************************************************************/ *****************************************************************************/
/*! /*!
* \file * \file
* \brief Helper class constructing the dual grid finite volume geometries * \ingroup StaggeredDiscretization
* for the staggered discretization method * \copydoc Dumux::FreeFlowStaggeredGeometryHelper
*/ */
#ifndef DUMUX_DISCRETIZATION_STAGGERED_GEOMETRY_HELPER_HH #ifndef DUMUX_DISCRETIZATION_STAGGERED_GEOMETRY_HELPER_HH
#define DUMUX_DISCRETIZATION_STAGGERED_GEOMETRY_HELPER_HH #define DUMUX_DISCRETIZATION_STAGGERED_GEOMETRY_HELPER_HH
...@@ -35,6 +35,10 @@ ...@@ -35,6 +35,10 @@
namespace Dumux namespace Dumux
{ {
/*!
* \ingroup StaggeredDiscretization
* \brief Data stored per sub face
*/
template<class Scalar, class GlobalPosition> template<class Scalar, class GlobalPosition>
struct PairData struct PairData
{ {
...@@ -48,8 +52,8 @@ struct PairData ...@@ -48,8 +52,8 @@ struct PairData
GlobalPosition virtualOuterParallelFaceDofPos; GlobalPosition virtualOuterParallelFaceDofPos;
}; };
/*! /*!
* \ingroup StaggeredDiscretization
* \brief Returns the dirction index of the facet (0 = x, 1 = y, 2 = z) * \brief Returns the dirction index of the facet (0 = x, 1 = y, 2 = z)
*/ */
template<class Vector> template<class Vector>
...@@ -60,7 +64,11 @@ inline static int directionIndex(Vector&& vector) ...@@ -60,7 +64,11 @@ inline static int directionIndex(Vector&& vector)
return idx; 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> template<class GridView>
class FreeFlowStaggeredGeometryHelper class FreeFlowStaggeredGeometryHelper
{ {
...@@ -89,6 +97,7 @@ public: ...@@ -89,6 +97,7 @@ public:
FreeFlowStaggeredGeometryHelper(const Element& element, const GridView& gridView) : element_(element), elementGeometry_(element.geometry()), gridView_(gridView) FreeFlowStaggeredGeometryHelper(const Element& element, const GridView& gridView) : element_(element), elementGeometry_(element.geometry()), gridView_(gridView)
{ } { }
//! update the local face
template<class IntersectionMapper> template<class IntersectionMapper>
void updateLocalFace(const IntersectionMapper& intersectionMapper_, const Intersection& intersection) void updateLocalFace(const IntersectionMapper& intersectionMapper_, const Intersection& intersection)