3.5-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::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit > Class Template Reference

A base class for all local cell-centered assemblers. More...

#include <dumux/assembly/fclocalassembler.hh>

Inheritance diagram for Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >:

Description

template<class TypeTag, class Assembler, class Implementation, bool implicit>
class Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >

A base class for all local cell-centered assemblers.

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

Public Types

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

Public Member Functions

void bindLocalViews ()
 
template<class PartialReassembler = DefaultPartialReassembler, class CouplingFunction = Detail::NoOpFunctor>
void assembleJacobianAndResidual (JacobianMatrix &jac, SolutionVector &res, GridVariables &gridVariables, const PartialReassembler *partialReassembler, const CouplingFunction &maybeAssembleCouplingBlocks=CouplingFunction{})
 Computes the derivatives with respect to the given element and adds them to the global matrix. The element residual is written into the right hand side. More...
 
void assembleJacobian (JacobianMatrix &jac, GridVariables &gridVariables)
 Computes the derivatives with respect to the given element and adds them to the global matrix. More...
 
void assembleResidual (SolutionVector &res)
 Assemble the residual only. More...
 
template<typename ApplyFunction >
void enforceDirichletConstraints (const ApplyFunction &applyDirichlet)
 Enforce Dirichlet constraints. More...
 
template<typename ApplyDirichletFunctionType >
void evalDirichletBoundaries (ApplyDirichletFunctionType applyDirichlet)
 Evaluates Dirichlet boundaries. More...
 
template<class... Args>
void maybeUpdateCouplingContext (Args &&...)
 Update the coupling context for coupled models. More...
 
template<class... Args>
void maybeEvalAdditionalDomainDerivatives (Args &&...)
 Update the additional domain derivatives for coupled models. 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 enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet)
 Enforces Dirichlet constraints if enabled in the problem. More...
 
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...
 
const FVElementGeometry & fvGeometry () const
 The finite volume geometry. More...
 
ElementVolumeVariables & curElemVolVars ()
 The current element volume variables. More...
 
const ElementVolumeVariables & curElemVolVars () const
 The current element volume variables. More...
 
ElementVolumeVariables & prevElemVolVars ()
 The element volume variables of the provious time step. More...
 
const ElementVolumeVariables & prevElemVolVars () const
 The element volume variables of the provious time step. More...
 
ElementFluxVariablesCache & elemFluxVarsCache ()
 The element flux variables cache. More...
 
const ElementFluxVariablesCache & elemFluxVarsCache () const
 The element flux variables cache. More...
 
LocalResiduallocalResidual ()
 The local residual for the current element. More...
 
const LocalResiduallocalResidual () const
 The local residual for the current element. More...
 
ElementBoundaryTypes & elemBcTypes ()
 The element's boundary types. More...
 
const ElementBoundaryTypes & elemBcTypes () const
 The element's boundary types. 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
 
VolumeVariables & getVolVarAccess (GridVolumeVariables &gridVolVars, ElementVolumeVariables &elemVolVars, const SubControlVolume &scv)
 
VolumeVariables & getVolVarAccess (GridVolumeVariables &gridVolVars, ElementVolumeVariables &elemVolVars, const SubControlVolume &scv)
 

Member Typedef Documentation

◆ ElementResidualVector

using Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::ElementResidualVector = typename LocalResidual::ElementResidualVector
inherited

◆ LocalResidual

using Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::LocalResidual = GetPropType<TypeTag, Properties::LocalResidual>
inherited

Member Function Documentation

◆ asImp_() [1/2]

Implementation & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::asImp_ ( )
inlineprotectedinherited

◆ asImp_() [2/2]

const Implementation & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::asImp_ ( ) const
inlineprotectedinherited

◆ assembleJacobian()

template<class TypeTag , class Assembler , class Implementation , bool implicit>
void Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >::assembleJacobian ( JacobianMatrix &  jac,
GridVariables &  gridVariables 
)
inline

Computes the derivatives with respect to the given element and adds them to the global matrix.

◆ assembleJacobianAndResidual()

template<class TypeTag , class Assembler , class Implementation , bool implicit>
template<class PartialReassembler = DefaultPartialReassembler, class CouplingFunction = Detail::NoOpFunctor>
void Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >::assembleJacobianAndResidual ( JacobianMatrix &  jac,
SolutionVector &  res,
GridVariables &  gridVariables,
const PartialReassembler partialReassembler,
const CouplingFunction &  maybeAssembleCouplingBlocks = CouplingFunction{} 
)
inline

Computes the derivatives with respect to the given element and adds them to the global matrix. The element residual is written into the right hand side.

◆ assembler()

const Assembler & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::assembler ( ) const
inlineinherited

The assembler.

◆ assembleResidual()

template<class TypeTag , class Assembler , class Implementation , bool implicit>
void Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >::assembleResidual ( SolutionVector &  res)
inline

Assemble the residual only.

◆ bindLocalViews()

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

◆ curElemVolVars() [1/2]

ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::curElemVolVars ( )
inlineinherited

The current element volume variables.

◆ curElemVolVars() [2/2]

const ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::curElemVolVars ( ) const
inlineinherited

The current element volume variables.

◆ curSol()

const SolutionVector & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::curSol ( ) const
inlineinherited

The current solution.

◆ elemBcTypes() [1/2]

ElementBoundaryTypes & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemBcTypes ( )
inlineinherited

The element's boundary types.

◆ elemBcTypes() [2/2]

const ElementBoundaryTypes & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemBcTypes ( ) const
inlineinherited

The element's boundary types.

◆ element()

const Element & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::element ( ) const
inlineinherited

The current element.

◆ elementIsGhost()

bool Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elementIsGhost ( ) const
inlineinherited

Returns if element is a ghost entity.

◆ elemFluxVarsCache() [1/2]

ElementFluxVariablesCache & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemFluxVarsCache ( )
inlineinherited

The element flux variables cache.

◆ elemFluxVarsCache() [2/2]

const ElementFluxVariablesCache & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::elemFluxVarsCache ( ) const
inlineinherited

The element flux variables cache.

◆ enforceDirichletConstraints()

template<class TypeTag , class Assembler , class Implementation , bool implicit>
template<typename ApplyFunction >
void Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >::enforceDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inline

Enforce Dirichlet constraints.

◆ enforceInternalDirichletConstraints() [1/2]

void Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::enforceInternalDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inlineinherited

Enforces Dirichlet constraints if enabled in the problem.

◆ enforceInternalDirichletConstraints() [2/2]

void Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::enforceInternalDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inlineinherited

◆ evalDirichletBoundaries()

template<class TypeTag , class Assembler , class Implementation , bool implicit>
template<typename ApplyDirichletFunctionType >
void Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >::evalDirichletBoundaries ( ApplyDirichletFunctionType  applyDirichlet)
inline

Evaluates Dirichlet boundaries.

◆ evalLocalFluxAndSourceResidual() [1/2]

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalFluxAndSourceResidual ( ) const
inlineinherited

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]

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalFluxAndSourceResidual ( const ElementVolumeVariables &  elemVolVars) const
inlineinherited

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]

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalResidual ( ) const
inlineinherited

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

◆ evalLocalResidual() [2/2]

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalResidual ( const ElementVolumeVariables &  elemVolVars) const
inlineinherited

Evaluates the complete local residual for the current element.

Parameters
elemVolVarsThe element volume variables

◆ evalLocalStorageResidual()

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalStorageResidual ( ) const
inlineinherited

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]

FVElementGeometry & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::fvGeometry ( )
inlineinherited

The global finite volume geometry.

◆ fvGeometry() [2/2]

const FVElementGeometry & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::fvGeometry ( ) const
inlineinherited

The finite volume geometry.

◆ getVolVarAccess() [1/2]

VolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::getVolVarAccess ( GridVolumeVariables &  gridVolVars,
ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
)
inlineprotectedinherited

◆ getVolVarAccess() [2/2]

VolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::getVolVarAccess ( GridVolumeVariables &  gridVolVars,
ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
)
inlineprotectedinherited

◆ isImplicit()

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

Returns true if the assembler considers implicit assembly.

◆ localResidual() [1/2]

LocalResidual & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::localResidual ( )
inlineinherited

The local residual for the current element.

◆ localResidual() [2/2]

const LocalResidual & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::localResidual ( ) const
inlineinherited

The local residual for the current element.

◆ maybeEvalAdditionalDomainDerivatives()

template<class TypeTag , class Assembler , class Implementation , bool implicit>
template<class... Args>
void Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >::maybeEvalAdditionalDomainDerivatives ( Args &&  ...)
inline

Update the additional domain derivatives for coupled models.

Note
This does nothing per default (not a coupled model).

◆ maybeUpdateCouplingContext()

template<class TypeTag , class Assembler , class Implementation , bool implicit>
template<class... Args>
void Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >::maybeUpdateCouplingContext ( Args &&  ...)
inline

Update the coupling context for coupled models.

Note
This does nothing per default (not a coupled model).

◆ prevElemVolVars() [1/2]

ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::prevElemVolVars ( )
inlineinherited

The element volume variables of the provious time step.

◆ prevElemVolVars() [2/2]

const ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::prevElemVolVars ( ) const
inlineinherited

The element volume variables of the provious time step.

◆ problem()

const Problem & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::problem ( ) const
inlineinherited

The problem.


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