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

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

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

Inheritance diagram for Dumux::NavierStokesMomentumResidual< TypeTag >:

Description

template<class TypeTag>
class Dumux::NavierStokesMomentumResidual< TypeTag >

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

Public Types

using ElementResidualVector = typename ParentType::ElementResidualVector
 

Public Member Functions

NumEqVector computeStorage (const Problem &problem, const SubControlVolume &scv, const VolumeVariables &volVars, const bool isPreviousStorage=false) const
 Calculate the source term of the equation. More...
 
NumEqVector computeSource (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const
 Calculate the source term of the equation. More...
 
NumEqVector computeFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf, const ElementFluxVariablesCache &elemFluxVarsCache, const ElementBoundaryTypes &elemBcTypes) const
 Evaluates the mass flux over a face of a sub control volume. More...
 
NumEqVector maybeHandleDirichletBoundary (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 
NumEqVector maybeHandleNeumannBoundary (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 
Implementation & asImp_ ()
 Returns the implementation of the problem (i.e. static polymorphism) More...
 
const Implementation & asImp_ () const
 Returns the implementation of the problem (i.e. static polymorphism) More...
 
void evalFlux (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 evaluate flux residuals for one sub control volume face and add to residual More...
 
NumEqVector evalFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 evaluate flux residuals for one sub control volume face More...
 
void evalStorage (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const
 Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More...
 
ElementResidualVector evalStorage (const Problem &problem, const Element &element, const GridGeometry &gridGeometry, const GridVariables &gridVariables, const SolutionVector &sol) const
 Compute the storage term for the current solution. More...
 
ElementResidualVector evalStorage (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars) const
 Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More...
 
void evalStorage (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const
 Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More...
 
Discretization specific interface
Note
The following method are the discretization specific wrapper methods
void evalFlux (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Compute the flux local residual, i.e. the deviation of the flux term from zero. More...
 
NumEqVector evalFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Compute the flux local residual, i.e. the deviation of the flux term from zero. More...
 
void evalStorage (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const
 Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More...
 
void evalSource (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const
 Compute the source local residual, i.e. the deviation of the source term from zero. More...
 
Model specific interface
Note
The following method are the model specific implementations of the local residual
NumEqVector computeSource (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const
 Calculate the source term of the equation. More...
 
NumEqVector computeStorage (const Problem &problem, const SubControlVolume &scv, const VolumeVariables &volVars) const
 Calculate the source term of the equation. More...
 
NumEqVector computeFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Calculate the flux term of the equation. More...
 
Main interface
Note
Methods used by the assembler to compute derivatives and residual
ElementResidualVector evalStorage (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars) const
 Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More...
 
ElementResidualVector evalFluxAndSource (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const ElementBoundaryTypes &bcTypes) const
 
Interfaces for analytic Jacobian computation
template<class PartialDerivativeMatrix >
void addStorageDerivatives (PartialDerivativeMatrix &partialDerivatives, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const VolumeVariables &curVolVars, const SubControlVolume &scv) const
 Compute the derivative of the storage residual. More...
 
template<class PartialDerivativeMatrix >
void addSourceDerivatives (PartialDerivativeMatrix &partialDerivatives, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const VolumeVariables &curVolVars, const SubControlVolume &scv) const
 Compute the derivative of the source residual. More...
 
template<class PartialDerivativeMatrices , class T = TypeTag>
std::enable_if_t< GetPropType< T, Properties::GridGeometry >::discMethod !=DiscretizationMethods::box, void > addFluxDerivatives (PartialDerivativeMatrices &derivativeMatrices, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Compute the derivative of the flux residual. More...
 
template<class JacobianMatrix , class T = TypeTag>
std::enable_if_t< GetPropType< T, Properties::GridGeometry >::discMethod==DiscretizationMethods::box, void > addFluxDerivatives (JacobianMatrix &A, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Compute the derivative of the flux residual for the box method. More...
 
template<class PartialDerivativeMatrices >
void addCCDirichletFluxDerivatives (PartialDerivativeMatrices &derivativeMatrices, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Compute the derivative of the Dirichlet flux residual for cell-centered schemes. More...
 
template<class PartialDerivativeMatrices >
void addRobinFluxDerivatives (PartialDerivativeMatrices &derivativeMatrices, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const
 Compute the derivative of Robin type boundary conditions ("solution dependent Neumann") More...
 

Interfaces accessed by local residual implementations

const Problem & problem () const
 the problem More...
 
const TimeLooptimeLoop () const
 
bool isStationary () const
 returns true if the residual is stationary More...
 
Implementation & asImp ()
 
const Implementation & asImp () const
 

Member Typedef Documentation

◆ ElementResidualVector

template<class TypeTag >
using Dumux::FaceCenteredLocalResidual< TypeTag >::ElementResidualVector = typename ParentType::ElementResidualVector
inherited

Member Function Documentation

◆ addCCDirichletFluxDerivatives()

template<class TypeTag >
template<class PartialDerivativeMatrices >
void Dumux::FVLocalResidual< TypeTag >::addCCDirichletFluxDerivatives ( PartialDerivativeMatrices &  derivativeMatrices,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  curElemVolVars,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

Compute the derivative of the Dirichlet flux residual for cell-centered schemes.

◆ addFluxDerivatives() [1/2]

template<class TypeTag >
template<class JacobianMatrix , class T = TypeTag>
std::enable_if_t< GetPropType< T, Properties::GridGeometry >::discMethod==DiscretizationMethods::box, void > Dumux::FVLocalResidual< TypeTag >::addFluxDerivatives ( JacobianMatrix &  A,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  curElemVolVars,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

Compute the derivative of the flux residual for the box method.

◆ addFluxDerivatives() [2/2]

template<class TypeTag >
template<class PartialDerivativeMatrices , class T = TypeTag>
std::enable_if_t< GetPropType< T, Properties::GridGeometry >::discMethod !=DiscretizationMethods::box, void > Dumux::FVLocalResidual< TypeTag >::addFluxDerivatives ( PartialDerivativeMatrices &  derivativeMatrices,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  curElemVolVars,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

Compute the derivative of the flux residual.

◆ addRobinFluxDerivatives()

template<class TypeTag >
template<class PartialDerivativeMatrices >
void Dumux::FVLocalResidual< TypeTag >::addRobinFluxDerivatives ( PartialDerivativeMatrices &  derivativeMatrices,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  curElemVolVars,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

Compute the derivative of Robin type boundary conditions ("solution dependent Neumann")

◆ addSourceDerivatives()

template<class TypeTag >
template<class PartialDerivativeMatrix >
void Dumux::FVLocalResidual< TypeTag >::addSourceDerivatives ( PartialDerivativeMatrix &  partialDerivatives,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const VolumeVariables &  curVolVars,
const SubControlVolume &  scv 
) const
inlineinherited

Compute the derivative of the source residual.

◆ addStorageDerivatives()

template<class TypeTag >
template<class PartialDerivativeMatrix >
void Dumux::FVLocalResidual< TypeTag >::addStorageDerivatives ( PartialDerivativeMatrix &  partialDerivatives,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const VolumeVariables &  curVolVars,
const SubControlVolume &  scv 
) const
inlineinherited

Compute the derivative of the storage residual.

◆ asImp() [1/2]

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

◆ asImp() [2/2]

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

◆ asImp_() [1/2]

template<class TypeTag >
Implementation & Dumux::NavierStokesMomentumResidual< TypeTag >::asImp_ ( )
inline

Returns the implementation of the problem (i.e. static polymorphism)

◆ asImp_() [2/2]

template<class TypeTag >
const Implementation & Dumux::NavierStokesMomentumResidual< TypeTag >::asImp_ ( ) const
inline

Returns the implementation of the problem (i.e. static polymorphism)

◆ computeFlux() [1/2]

template<class TypeTag >
NumEqVector Dumux::FVLocalResidual< TypeTag >::computeFlux ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const SubControlVolumeFace &  scvf,
const ElementFluxVariablesCache &  elemFluxVarsCache 
) const
inlineinherited

Calculate the flux term of the equation.

Parameters
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
elemVolVarsThe volume variables associated with the element stencil
scvfThe sub-control volume over which we integrate the flux
elemFluxVarsCachethe flux variable caches for the element's flux stencils
Note
has to be implemented by the model specific residual class

◆ computeFlux() [2/2]

template<class TypeTag >
NumEqVector Dumux::NavierStokesMomentumResidual< TypeTag >::computeFlux ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const SubControlVolumeFace &  scvf,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const ElementBoundaryTypes &  elemBcTypes 
) const
inline

Evaluates the mass flux over a face of a sub control volume.

Parameters
problemThe problem
elementThe element
fvGeometryThe finite volume geometry context
elemVolVarsThe volume variables for all flux stencil elements
scvfThe sub control volume face to compute the flux on
elemFluxVarsCacheThe cache related to flux computation
elemBcTypesThe element boundary condition types

◆ computeSource() [1/2]

template<class TypeTag >
NumEqVector Dumux::FVLocalResidual< TypeTag >::computeSource ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
) const
inlineinherited

Calculate the source term of the equation.

Parameters
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
elemVolVarsThe volume variables associated with the element stencil
scvThe sub-control volume over which we integrate the source term
Note
This is the default implementation for all models as sources are computed in the user interface of the problem

◆ computeSource() [2/2]

template<class TypeTag >
NumEqVector Dumux::NavierStokesMomentumResidual< TypeTag >::computeSource ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
) const
inline

Calculate the source term of the equation.

Parameters
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
elemVolVarsThe volume variables associated with the element stencil
scvThe sub-control volume over which we integrate the source term
Note
This is the default implementation for all models as sources are computed in the user interface of the problem

◆ computeStorage() [1/2]

template<class TypeTag >
NumEqVector Dumux::FVLocalResidual< TypeTag >::computeStorage ( const Problem &  problem,
const SubControlVolume &  scv,
const VolumeVariables &  volVars 
) const
inlineinherited

Calculate the source term of the equation.

Parameters
problemThe problem to solve
scvThe sub-control volume over which we integrate the storage term
volVarsThe volume variables associated with the scv
Note
has to be implemented by the model specific residual class

◆ computeStorage() [2/2]

template<class TypeTag >
NumEqVector Dumux::NavierStokesMomentumResidual< TypeTag >::computeStorage ( const Problem &  problem,
const SubControlVolume &  scv,
const VolumeVariables &  volVars,
const bool  isPreviousStorage = false 
) const
inline

Calculate the source term of the equation.

Parameters
problemThe problem to solve
scvThe sub-control volume over which we integrate the storage term
volVarsThe volume variables associated with the scv
isPreviousStorageBool transferring the information if the storage term is computed at the current or previous time step
Note
has to be implemented by the model specific residual class

◆ evalFlux() [1/4]

template<class TypeTag >
NumEqVector Dumux::FaceCenteredLocalResidual< TypeTag >::evalFlux ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

evaluate flux residuals for one sub control volume face

◆ evalFlux() [2/4]

template<class TypeTag >
NumEqVector Dumux::FVLocalResidual< TypeTag >::evalFlux ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

Compute the flux local residual, i.e. the deviation of the flux term from zero.

Parameters
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
elemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level
elemFluxVarsCacheThe flux variable caches for the element stencil
scvfThe sub control volume face the flux term is integrated over

◆ evalFlux() [3/4]

template<class TypeTag >
void Dumux::FaceCenteredLocalResidual< TypeTag >::evalFlux ( ElementResidualVector residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

evaluate flux residuals for one sub control volume face and add to residual

◆ evalFlux() [4/4]

template<class TypeTag >
void Dumux::FVLocalResidual< TypeTag >::evalFlux ( ElementResidualVector residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

Compute the flux local residual, i.e. the deviation of the flux term from zero.

Parameters
residualThe residual vector to fill
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
elemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level
elemBcTypesthe boundary types for the boundary entities of an elements
elemFluxVarsCacheThe flux variable caches for the element stencil
scvfThe sub control volume face the flux term is integrated over

◆ evalFluxAndSource()

template<class TypeTag >
ElementResidualVector Dumux::FVLocalResidual< TypeTag >::evalFluxAndSource ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const ElementBoundaryTypes &  bcTypes 
) const
inlineinherited

◆ evalSource()

template<class TypeTag >
void Dumux::FVLocalResidual< TypeTag >::evalSource ( ElementResidualVector residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  curElemVolVars,
const SubControlVolume &  scv 
) const
inlineinherited

Compute the source local residual, i.e. the deviation of the source term from zero.

Parameters
residualThe residual vector to fill
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
curElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level
scvThe sub control volume the source term is integrated over

Compute source with the model specific storage residual

subtract source from local rate (sign convention in user interface)

◆ evalStorage() [1/6]

template<class TypeTag >
ElementResidualVector Dumux::FVLocalResidual< TypeTag >::evalStorage ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars 
) const
inlineinherited

Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.

Parameters
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
prevElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the previous time level
curElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level

◆ evalStorage() [2/6]

template<class TypeTag >
ElementResidualVector Dumux::FVLocalResidual< TypeTag >::evalStorage ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars 
) const
inlineinherited

Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.

Parameters
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
prevElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the previous time level
curElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level

◆ evalStorage() [3/6]

template<class TypeTag >
ElementResidualVector Dumux::FVLocalResidual< TypeTag >::evalStorage ( const Problem &  problem,
const Element &  element,
const GridGeometry &  gridGeometry,
const GridVariables &  gridVariables,
const SolutionVector &  sol 
) const
inlineinherited

Compute the storage term for the current solution.

This can be used to figure out how much of each conservation quantity is inside the element.

Parameters
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the storage term ought to be calculated
gridGeometryThe finite-volume grid geometry
gridVariablesThe grid variables (volume and flux variables)
solThe solution vector

◆ evalStorage() [4/6]

template<class TypeTag >
void Dumux::FVLocalResidual< TypeTag >::evalStorage ( ElementResidualVector residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars,
const SubControlVolume &  scv 
) const
inlineinherited

Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.

Parameters
residualThe residual vector to fill
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
prevElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the previous time level
curElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level
scvThe sub control volume the storage term is integrated over

Compute storage with the model specific storage residual

◆ evalStorage() [5/6]

template<class TypeTag >
void Dumux::FaceCenteredLocalResidual< TypeTag >::evalStorage ( ElementResidualVector residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars,
const SubControlVolume &  scv 
) const
inlineinherited

Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.

Parameters
residualThe residual vector to fill
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
prevElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the previous time level
curElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level
scvThe sub control volume the storage term is integrated over

Compute storage with the model specific storage residual

◆ evalStorage() [6/6]

template<class TypeTag >
void Dumux::FVLocalResidual< TypeTag >::evalStorage ( ElementResidualVector residual,
const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  prevElemVolVars,
const ElementVolumeVariables &  curElemVolVars,
const SubControlVolume &  scv 
) const
inlineinherited

Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.

Parameters
residualThe residual vector to fill
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
prevElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the previous time level
curElemVolVarsThe volume averaged variables for all sub-control volumes of the element at the current time level
scvThe sub control volume the storage term is integrated over

Compute storage with the model specific storage residual

◆ isStationary()

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

returns true if the residual is stationary

◆ maybeHandleDirichletBoundary()

template<class TypeTag >
NumEqVector Dumux::NavierStokesMomentumResidual< TypeTag >::maybeHandleDirichletBoundary ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inline

Evaluate flux residuals for one sub control volume face when the element features at least one Dirichlet boundary condition Skip the flux calculation if the DOF of the associated sub control volume features an appropriate Dirichlet condition.

◆ maybeHandleNeumannBoundary()

template<class TypeTag >
NumEqVector Dumux::NavierStokesMomentumResidual< TypeTag >::maybeHandleNeumannBoundary ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementBoundaryTypes &  elemBcTypes,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const SubControlVolumeFace &  scvf 
) const
inline

Evaluate flux residuals for one sub control volume face when the element features at least one Neumann boundary condition This requires special care.

◆ problem()

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

the problem

◆ timeLoop()

template<class TypeTag >
const TimeLoop & Dumux::FVLocalResidual< TypeTag >::timeLoop ( ) const
inlineinherited

the timeloop for instationary problems calling this for stationary leads to undefined behaviour


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