3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | List of all members
Dumux::StaggeredLocalResidual< TypeTag > Class Template Reference

Calculates the element-wise residual for the staggered FV scheme. More...

#include <dumux/assembly/staggeredlocalresidual.hh>

Inheritance diagram for Dumux::StaggeredLocalResidual< TypeTag >:
Inheritance graph

Description

template<class TypeTag>
class Dumux::StaggeredLocalResidual< TypeTag >

Calculates the element-wise residual for the staggered FV scheme.

Public Types

using CellCenterResidualValue = GetPropType< TypeTag, Properties::CellCenterPrimaryVariables >
 
using FaceResidualValue = GetPropType< TypeTag, Properties::FacePrimaryVariables >
 
using ElementResidualVector = CellCenterResidualValue
 

Public Member Functions

 StaggeredLocalResidual (const Problem *problem, const TimeLoop *timeLoop=nullptr)
 the constructor More...
 
CellCenterResidualValue evalFluxAndSourceForCellCenter (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementBoundaryTypes &bcTypes, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Convenience function to evaluate the flux and source terms for the cell center residual. More...
 
void evalFluxForCellCenter (CellCenterResidualValue &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Evaluate the flux terms for a cell center residual. More...
 
void evalSourceForCellCenter (CellCenterResidualValue &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFaceVariables &curElemFaceVars, const SubControlVolume &scv) const
 Evaluate the source terms for a cell center residual. More...
 
CellCenterResidualValue evalStorageForCellCenter (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars) const
 Evaluate the storage terms for a cell center residual. More...
 
void evalStorageForCellCenter (CellCenterResidualValue &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const
 Evaluate the storage terms for a cell center residual. More...
 
template<class... Args>
CellCenterResidualValue evalFluxAndSource (Args &&... args) const
 for compatibility with FVLocalAssemblerBase More...
 
template<class... Args>
CellCenterResidualValue evalStorage (Args &&... args) const
 for compatibility with FVLocalAssemblerBase More...
 

User interface

Note
The following methods are usually expensive to evaluate They are useful for outputting residual information.
FaceResidualValue evalFluxAndSourceForFace (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementBoundaryTypes &bcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Convenience function to evaluate the flux and source terms for the face residual. More...
 
void evalFluxForFace (FaceResidualValue &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Evaluate the flux terms for a face residual. More...
 
void evalSourceForFace (FaceResidualValue &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Evaluate the source terms for a face residual. More...
 
FaceResidualValue evalStorageForFace (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const ElementFaceVariables &prevElemFaceVars, const ElementFaceVariables &curElemFaceVars, const SubControlVolumeFace &scvf) const
 Evaluate the storage terms for a face residual. More...
 
void evalStorageForFace (FaceResidualValue &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const ElementFaceVariables &prevElemFaceVars, const ElementFaceVariables &curElemFaceVars, const SubControlVolumeFace &scvf) const
 Evaluate the storage terms for a face residual. More...
 
bool isStationary () const
 If no solution has been set, we treat the problem as stationary. More...
 
const Problem & problem () const
 the problem More...
 
Implementation & asImp_ ()
 
const Implementation & asImp_ () const
 
TimeLooptimeLoop ()
 
const TimeLooptimeLoop () const
 
Implementation & asImp ()
 
const Implementation & asImp () const
 

Member Typedef Documentation

◆ CellCenterResidualValue

template<class TypeTag >
using Dumux::StaggeredLocalResidual< TypeTag >::CellCenterResidualValue = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>

◆ ElementResidualVector

template<class TypeTag >
using Dumux::StaggeredLocalResidual< TypeTag >::ElementResidualVector = CellCenterResidualValue

◆ FaceResidualValue

template<class TypeTag >
using Dumux::StaggeredLocalResidual< TypeTag >::FaceResidualValue = GetPropType<TypeTag, Properties::FacePrimaryVariables>

Constructor & Destructor Documentation

◆ StaggeredLocalResidual()

template<class TypeTag >
Dumux::StaggeredLocalResidual< TypeTag >::StaggeredLocalResidual ( const Problem *  problem,
const TimeLoop timeLoop = nullptr 
)
inline

the constructor

Member Function Documentation

◆ asImp() [1/2]

template<class TypeTag >
Implementation & Dumux::StaggeredLocalResidual< TypeTag >::asImp ( )
inlineprotected

◆ asImp() [2/2]

template<class TypeTag >
const Implementation & Dumux::StaggeredLocalResidual< TypeTag >::asImp ( ) const
inlineprotected

◆ asImp_() [1/2]

template<class TypeTag >
Implementation & Dumux::StaggeredLocalResidual< TypeTag >::asImp_ ( )
inlineprotected

◆ asImp_() [2/2]

template<class TypeTag >
const Implementation & Dumux::StaggeredLocalResidual< TypeTag >::asImp_ ( ) const
inlineprotected

◆ evalFluxAndSource()

template<class TypeTag >
template<class... Args>
CellCenterResidualValue Dumux::StaggeredLocalResidual< TypeTag >::evalFluxAndSource ( Args &&...  args) const
inline

for compatibility with FVLocalAssemblerBase

◆ evalFluxAndSourceForCellCenter()

template<class TypeTag >
CellCenterResidualValue Dumux::StaggeredLocalResidual< TypeTag >::evalFluxAndSourceForCellCenter ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementBoundaryTypes &  bcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache 
) const
inline

Convenience function to evaluate the flux and source terms for the cell center residual.

◆ evalFluxAndSourceForFace()

template<class TypeTag >
FaceResidualValue Dumux::StaggeredLocalResidual< TypeTag >::evalFluxAndSourceForFace ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementBoundaryTypes &  bcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inline

Convenience function to evaluate the flux and source terms for the face residual.

◆ evalFluxForCellCenter()

template<class TypeTag >
void Dumux::StaggeredLocalResidual< TypeTag >::evalFluxForCellCenter ( CellCenterResidualValue residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inline

Evaluate the flux terms for a cell center residual.

◆ evalFluxForFace()

template<class TypeTag >
void Dumux::StaggeredLocalResidual< TypeTag >::evalFluxForFace ( FaceResidualValue residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inline

Evaluate the flux terms for a face residual.

◆ evalSourceForCellCenter()

template<class TypeTag >
void Dumux::StaggeredLocalResidual< TypeTag >::evalSourceForCellCenter ( CellCenterResidualValue residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  curElemVolVars,
const ElementFaceVariables &  curElemFaceVars,
const SubControlVolume &  scv 
) const
inline

Evaluate the source terms for a cell center residual.

◆ evalSourceForFace()

template<class TypeTag >
void Dumux::StaggeredLocalResidual< TypeTag >::evalSourceForFace ( FaceResidualValue residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Evaluate the source terms for a face residual.

◆ evalStorage()

template<class TypeTag >
template<class... Args>
CellCenterResidualValue Dumux::StaggeredLocalResidual< TypeTag >::evalStorage ( Args &&...  args) const
inline

for compatibility with FVLocalAssemblerBase

◆ evalStorageForCellCenter() [1/2]

template<class TypeTag >
void Dumux::StaggeredLocalResidual< TypeTag >::evalStorageForCellCenter ( CellCenterResidualValue residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars,
const SubControlVolume &  scv 
) const
inline

Evaluate the storage terms for a cell center residual.

◆ evalStorageForCellCenter() [2/2]

template<class TypeTag >
CellCenterResidualValue Dumux::StaggeredLocalResidual< TypeTag >::evalStorageForCellCenter ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars 
) const
inline

Evaluate the storage terms for a cell center residual.

◆ evalStorageForFace() [1/2]

template<class TypeTag >
FaceResidualValue Dumux::StaggeredLocalResidual< TypeTag >::evalStorageForFace ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars,
const ElementFaceVariables &  prevElemFaceVars,
const ElementFaceVariables &  curElemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Evaluate the storage terms for a face residual.

◆ evalStorageForFace() [2/2]

template<class TypeTag >
void Dumux::StaggeredLocalResidual< TypeTag >::evalStorageForFace ( FaceResidualValue residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars,
const ElementFaceVariables &  prevElemFaceVars,
const ElementFaceVariables &  curElemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Evaluate the storage terms for a face residual.

◆ isStationary()

template<class TypeTag >
bool Dumux::StaggeredLocalResidual< TypeTag >::isStationary ( ) const
inline

If no solution has been set, we treat the problem as stationary.

◆ problem()

template<class TypeTag >
const Problem & Dumux::StaggeredLocalResidual< TypeTag >::problem ( ) const
inline

the problem

◆ timeLoop() [1/2]

template<class TypeTag >
TimeLoop & Dumux::StaggeredLocalResidual< TypeTag >::timeLoop ( )
inlineprotected

◆ timeLoop() [2/2]

template<class TypeTag >
const TimeLoop & Dumux::StaggeredLocalResidual< TypeTag >::timeLoop ( ) const
inlineprotected

The documentation for this class was generated from the following file: