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

Element-wise calculation of the Navier-Stokes residual for models using the staggered discretization. More...

#include <dumux/freeflow/navierstokes/staggered/localresidual.hh>

Inheritance diagram for Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >:
Inheritance graph

Description

template<class TypeTag>
class Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >

Element-wise calculation of the Navier-Stokes residual for models using the staggered discretization.

Public Types

using EnergyLocalResidual = FreeFlowEnergyLocalResidual< GridGeometry, FluxVariables, ModelTraits::enableEnergyBalance(),(ModelTraits::numFluidComponents() > 1)>
 
using CellCenterResidualValue = GetPropType< TypeTag, Properties::CellCenterPrimaryVariables >
 
using FaceResidualValue = GetPropType< TypeTag, Properties::FacePrimaryVariables >
 
using ElementResidualVector = CellCenterResidualValue
 

Public Member Functions

CellCenterPrimaryVariables computeFluxForCellCenter (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Evaluate fluxes entering or leaving the cell center control volume. More...
 
CellCenterPrimaryVariables computeSourceForCellCenter (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolume &scv) const
 Evaluate the source term for the cell center control volume. More...
 
CellCenterPrimaryVariables computeStorageForCellCenter (const Problem &problem, const SubControlVolume &scv, const VolumeVariables &volVars) const
 Evaluate the storage term for the cell center control volume. More...
 
FacePrimaryVariables computeStorageForFace (const Problem &problem, const SubControlVolumeFace &scvf, const VolumeVariables &volVars, const ElementFaceVariables &elemFaceVars) const
 Evaluate the storage term for the face control volume. More...
 
FacePrimaryVariables computeSourceForFace (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars) const
 Evaluate the source term for the face control volume. More...
 
FacePrimaryVariables computeFluxForFace (const Problem &problem, const Element &element, const SubControlVolumeFace &scvf, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Evaluate the momentum flux for the face control volume. More...
 
CellCenterResidual computeBoundaryFluxForCellCenter (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Evaluate boundary conditions for a cell center dof. More...
 
void evalDirichletBoundariesForFace (FaceResidual &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Evaluate Dirichlet (fixed value) boundary conditions for a face dof. More...
 
FaceResidual computeBoundaryFluxForFace (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Evaluate boundary boundary fluxes for a face dof. 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...
 

Static Public Attributes

static constexpr auto cellCenterOffset = ModelTraits::numEq() - CellCenterPrimaryVariables::dimension
 

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...
 
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>
inherited

◆ ElementResidualVector

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

◆ EnergyLocalResidual

template<class TypeTag >
using Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::EnergyLocalResidual = FreeFlowEnergyLocalResidual<GridGeometry, FluxVariables, ModelTraits::enableEnergyBalance(), (ModelTraits::numFluidComponents() > 1)>

◆ FaceResidualValue

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

Member Function Documentation

◆ asImp() [1/2]

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

◆ asImp() [2/2]

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

◆ computeBoundaryFluxForCellCenter()

template<class TypeTag >
CellCenterResidual Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeBoundaryFluxForCellCenter ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const SubControlVolumeFace &  scvf,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache 
) const
inline

Evaluate boundary conditions for a cell center dof.

◆ computeBoundaryFluxForFace()

template<class TypeTag >
FaceResidual Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeBoundaryFluxForFace ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const SubControlVolumeFace &  scvf,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache 
) const
inline

Evaluate boundary boundary fluxes for a face dof.

◆ computeFluxForCellCenter()

template<class TypeTag >
CellCenterPrimaryVariables Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeFluxForCellCenter ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf,
const ElementFluxVariablesCache &  elemFluxVarsCache 
) const
inline

Evaluate fluxes entering or leaving the cell center control volume.

◆ computeFluxForFace()

template<class TypeTag >
FacePrimaryVariables Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeFluxForFace ( const Problem &  problem,
const Element &  element,
const SubControlVolumeFace &  scvf,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementFluxVariablesCache &  elemFluxVarsCache 
) const
inline

Evaluate the momentum flux for the face control volume.

◆ computeSourceForCellCenter()

template<class TypeTag >
CellCenterPrimaryVariables Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeSourceForCellCenter ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolume &  scv 
) const
inline

Evaluate the source term for the cell center control volume.

◆ computeSourceForFace()

template<class TypeTag >
FacePrimaryVariables Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeSourceForFace ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const SubControlVolumeFace &  scvf,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars 
) const
inline

Evaluate the source term for the face control volume.

◆ computeStorageForCellCenter()

template<class TypeTag >
CellCenterPrimaryVariables Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeStorageForCellCenter ( const Problem &  problem,
const SubControlVolume &  scv,
const VolumeVariables &  volVars 
) const
inline

Evaluate the storage term for the cell center control volume.

◆ computeStorageForFace()

template<class TypeTag >
FacePrimaryVariables Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::computeStorageForFace ( const Problem &  problem,
const SubControlVolumeFace &  scvf,
const VolumeVariables &  volVars,
const ElementFaceVariables &  elemFaceVars 
) const
inline

Evaluate the storage term for the face control volume.

◆ evalDirichletBoundariesForFace()

template<class TypeTag >
void Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::evalDirichletBoundariesForFace ( FaceResidual &  residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const SubControlVolumeFace &  scvf,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache 
) const
inline

Evaluate Dirichlet (fixed value) boundary conditions for a face dof.

◆ evalFluxAndSource()

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

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

Evaluate the source terms for a face residual.

◆ evalStorage()

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

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

Evaluate the storage terms for a face residual.

◆ isStationary()

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

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

◆ problem()

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

the problem

◆ timeLoop() [1/2]

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

◆ timeLoop() [2/2]

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

Member Data Documentation

◆ cellCenterOffset

template<class TypeTag >
constexpr auto Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::cellCenterOffset = ModelTraits::numEq() - CellCenterPrimaryVariables::dimension
staticconstexpr

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