3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
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.
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.
CellCenterPrimaryVariables computeStorageForCellCenter (const Problem &problem, const SubControlVolume &scv, const VolumeVariables &volVars) const
 Evaluate the storage term for the cell center control volume.
FacePrimaryVariables computeStorageForFace (const Problem &problem, const SubControlVolumeFace &scvf, const VolumeVariables &volVars, const ElementFaceVariables &elemFaceVars) const
 Evaluate the storage term for the face control volume.
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.
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.
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.
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.
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.
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.
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.
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.
CellCenterResidualValue evalStorageForCellCenter (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars) const
 Evaluate the storage terms for a cell center residual.
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.
template<class... Args>
CellCenterResidualValue evalFluxAndSource (Args &&... args) const
 for compatibility with FVLocalAssemblerBase
template<class... Args>
CellCenterResidualValue evalStorage (Args &&... args) const
 for compatibility with FVLocalAssemblerBase

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.
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.
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.
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.
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.
bool isStationary () const
 If no solution has been set, we treat the problem as stationary.
const Problem & problem () const
 the problem
TimeLoop & timeLoop ()
const TimeLoop & timeLoop () 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>
auto Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod::staggered >::cellCenterOffset = ModelTraits::numEq() - CellCenterPrimaryVariables::dimension
staticconstexpr

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