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

A base class for all local assemblers. More...

#include <dumux/assembly/fvlocalassemblerbase.hh>

Inheritance diagram for Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >:
Inheritance graph

Description

template<class TypeTag, class Assembler, class Implementation, bool useImplicitAssembly>
class Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >

A base class for all local assemblers.

Template Parameters
TypeTagThe TypeTag
AssemblerThe assembler type
ImplementationThe assembler implementation
useImplicitAssemblySpecifies whether the time discretization is implicit or not not (i.e. explicit)

Public Types

using LocalResidual = GetPropType< TypeTag, Properties::LocalResidual >
 
using ElementResidualVector = typename LocalResidual::ElementResidualVector
 

Public Member Functions

 FVLocalAssemblerBase (const Assembler &assembler, const Element &element, const SolutionVector &curSol)
 The constructor. Delegates to the general constructor. More...
 
 FVLocalAssemblerBase (const Assembler &assembler, const Element &element, const SolutionVector &curSol, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementVolumeVariables &prevElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const LocalResidual &localResidual, const bool elementIsGhost)
 The constructor. General version explicitly expecting each argument. More...
 
ElementResidualVector evalLocalResidual () const
 Convenience function to evaluate the complete local residual for the current element. Automatically chooses the the appropriate element volume variables. More...
 
ElementResidualVector evalLocalResidual (const ElementVolumeVariables &elemVolVars) const
 Evaluates the complete local residual for the current element. More...
 
ElementResidualVector evalLocalFluxAndSourceResidual () const
 Convenience function to evaluate the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume variables. More...
 
ElementResidualVector evalLocalFluxAndSourceResidual (const ElementVolumeVariables &elemVolVars) const
 Evaluates the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. More...
 
ElementResidualVector evalLocalStorageResidual () const
 Convenience function to evaluate storage term (i.e, the term with a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume variables. More...
 
void bindLocalViews ()
 Convenience function bind and prepare all relevant variables required for the evaluation of the local residual. More...
 
template<typename ApplyFunction , class P = Problem, typename std::enable_if_t< P::enableInternalDirichletConstraints(), int > = 0>
void enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet)
 Enforces Dirichlet constraints if enabled in the problem. More...
 
template<typename ApplyFunction , class P = Problem, typename std::enable_if_t<!P::enableInternalDirichletConstraints(), int > = 0>
void enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet)
 
const Problem & problem () const
 The problem. More...
 
const Assembler & assembler () const
 The assembler. More...
 
const Element & element () const
 The current element. More...
 
bool elementIsGhost () const
 Returns if element is a ghost entity. More...
 
const SolutionVector & curSol () const
 The current solution. More...
 
FVElementGeometry & fvGeometry ()
 The global finite volume geometry. More...
 
ElementVolumeVariables & curElemVolVars ()
 The current element volume variables. More...
 
ElementVolumeVariables & prevElemVolVars ()
 The element volume variables of the provious time step. More...
 
ElementFluxVariablesCache & elemFluxVarsCache ()
 The element flux variables cache. More...
 
LocalResiduallocalResidual ()
 The local residual for the current element. More...
 
ElementBoundaryTypes & elemBcTypes ()
 The element's boundary types. More...
 
const FVElementGeometry & fvGeometry () const
 The finite volume geometry. More...
 
const ElementVolumeVariables & curElemVolVars () const
 The current element volume variables. More...
 
const ElementVolumeVariables & prevElemVolVars () const
 The element volume variables of the provious time step. More...
 
const ElementFluxVariablesCache & elemFluxVarsCache () const
 The element flux variables cache. More...
 
const ElementBoundaryTypes & elemBcTypes () const
 The element's boundary types. More...
 
const LocalResiduallocalResidual () const
 The local residual for the current element. More...
 

Static Public Member Functions

static constexpr bool isImplicit ()
 Returns true if the assembler considers implicit assembly. More...
 

Protected Member Functions

Implementation & asImp_ ()
 
const Implementation & asImp_ () const
 
template<class T = TypeTag, typename std::enable_if_t<!getPropValue< T, Properties::EnableGridVolumeVariablesCache >(), int > = 0>
VolumeVariables & getVolVarAccess (GridVolumeVariables &gridVolVars, ElementVolumeVariables &elemVolVars, const SubControlVolume &scv)
 
template<class T = TypeTag, typename std::enable_if_t< getPropValue< T, Properties::EnableGridVolumeVariablesCache >(), int > = 0>
VolumeVariables & getVolVarAccess (GridVolumeVariables &gridVolVars, ElementVolumeVariables &elemVolVars, const SubControlVolume &scv)
 

Member Typedef Documentation

◆ ElementResidualVector

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
using Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::ElementResidualVector = typename LocalResidual::ElementResidualVector

◆ LocalResidual

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
using Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::LocalResidual = GetPropType<TypeTag, Properties::LocalResidual>

Constructor & Destructor Documentation

◆ FVLocalAssemblerBase() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::FVLocalAssemblerBase ( const Assembler &  assembler,
const Element &  element,
const SolutionVector &  curSol 
)
inlineexplicit

The constructor. Delegates to the general constructor.

◆ FVLocalAssemblerBase() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::FVLocalAssemblerBase ( const Assembler &  assembler,
const Element &  element,
const SolutionVector &  curSol,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  curElemVolVars,
const ElementVolumeVariables &  prevElemVolVars,
const ElementFluxVariablesCache &  elemFluxVarsCache,
const LocalResidual localResidual,
const bool  elementIsGhost 
)
inlineexplicit

The constructor. General version explicitly expecting each argument.

Member Function Documentation

◆ asImp_() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
Implementation & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::asImp_ ( )
inlineprotected

◆ asImp_() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const Implementation & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::asImp_ ( ) const
inlineprotected

◆ assembler()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const Assembler & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::assembler ( ) const
inline

The assembler.

◆ bindLocalViews()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
void Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::bindLocalViews ( )
inline

Convenience function bind and prepare all relevant variables required for the evaluation of the local residual.

◆ curElemVolVars() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::curElemVolVars ( )
inline

The current element volume variables.

◆ curElemVolVars() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::curElemVolVars ( ) const
inline

The current element volume variables.

◆ curSol()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const SolutionVector & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::curSol ( ) const
inline

The current solution.

◆ elemBcTypes() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementBoundaryTypes & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemBcTypes ( )
inline

The element's boundary types.

◆ elemBcTypes() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const ElementBoundaryTypes & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemBcTypes ( ) const
inline

The element's boundary types.

◆ element()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const Element & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::element ( ) const
inline

The current element.

◆ elementIsGhost()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
bool Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elementIsGhost ( ) const
inline

Returns if element is a ghost entity.

◆ elemFluxVarsCache() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementFluxVariablesCache & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemFluxVarsCache ( )
inline

The element flux variables cache.

◆ elemFluxVarsCache() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const ElementFluxVariablesCache & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemFluxVarsCache ( ) const
inline

The element flux variables cache.

◆ enforceInternalDirichletConstraints() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
template<typename ApplyFunction , class P = Problem, typename std::enable_if_t< P::enableInternalDirichletConstraints(), int > = 0>
void Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::enforceInternalDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inline

Enforces Dirichlet constraints if enabled in the problem.

◆ enforceInternalDirichletConstraints() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
template<typename ApplyFunction , class P = Problem, typename std::enable_if_t<!P::enableInternalDirichletConstraints(), int > = 0>
void Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::enforceInternalDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inline

◆ evalLocalFluxAndSourceResidual() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalFluxAndSourceResidual ( ) const
inline

Convenience function to evaluate the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume variables.

◆ evalLocalFluxAndSourceResidual() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalFluxAndSourceResidual ( const ElementVolumeVariables &  elemVolVars) const
inline

Evaluates the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element.

Parameters
elemVolVarsThe element volume variables

◆ evalLocalResidual() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalResidual ( ) const
inline

Convenience function to evaluate the complete local residual for the current element. Automatically chooses the the appropriate element volume variables.

◆ evalLocalResidual() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalResidual ( const ElementVolumeVariables &  elemVolVars) const
inline

Evaluates the complete local residual for the current element.

Parameters
elemVolVarsThe element volume variables

◆ evalLocalStorageResidual()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalStorageResidual ( ) const
inline

Convenience function to evaluate storage term (i.e, the term with a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume variables.

◆ fvGeometry() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
FVElementGeometry & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::fvGeometry ( )
inline

The global finite volume geometry.

◆ fvGeometry() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const FVElementGeometry & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::fvGeometry ( ) const
inline

The finite volume geometry.

◆ getVolVarAccess() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
template<class T = TypeTag, typename std::enable_if_t<!getPropValue< T, Properties::EnableGridVolumeVariablesCache >(), int > = 0>
VolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::getVolVarAccess ( GridVolumeVariables &  gridVolVars,
ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
)
inlineprotected

◆ getVolVarAccess() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
template<class T = TypeTag, typename std::enable_if_t< getPropValue< T, Properties::EnableGridVolumeVariablesCache >(), int > = 0>
VolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::getVolVarAccess ( GridVolumeVariables &  gridVolVars,
ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
)
inlineprotected

◆ isImplicit()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
static constexpr bool Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::isImplicit ( )
inlinestaticconstexpr

Returns true if the assembler considers implicit assembly.

◆ localResidual() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
LocalResidual & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::localResidual ( )
inline

The local residual for the current element.

◆ localResidual() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const LocalResidual & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::localResidual ( ) const
inline

The local residual for the current element.

◆ prevElemVolVars() [1/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::prevElemVolVars ( )
inline

The element volume variables of the provious time step.

◆ prevElemVolVars() [2/2]

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::prevElemVolVars ( ) const
inline

The element volume variables of the provious time step.

◆ problem()

template<class TypeTag , class Assembler , class Implementation , bool useImplicitAssembly>
const Problem & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::problem ( ) const
inline

The problem.


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