version 3.9-dev
Dumux::Experimental::CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation > Class Template Reference

Control volume finite element local assembler using numeric differentiation.

#include <dumux/experimental/assembly/cvfelocalassembler.hh>

Inheritance diagram for Dumux::Experimental::CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >:

Public Types

using LocalResidual = typename ParentType::LocalResidual
 
using ElementResidualVector = typename LocalResidual::ElementResidualVector
 

Public Member Functions

template<class PartialReassembler = DefaultPartialReassembler>
void assembleJacobian (JacobianMatrix &A, GridVariables &gridVariables, const ElementResidualVector &origResiduals, const PartialReassembler *partialReassembler=nullptr)
 
void bindLocalViews ()
 
void assembleJacobianAndResidual (JacobianMatrix &jac, ResidualVector &res, GridVariables &gridVariables, const StageParams &stageParams, ResidualVector &temporal, ResidualVector &spatial, ResidualVector &constrainedDofs, const PartialReassembler *partialReassembler=nullptr, const CouplingFunction &maybeAssembleCouplingBlocks=noop)
 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 (ResidualVector &res)
 Assemble the residual only. More...
 
void assembleCurrentResidual (ResidualVector &spatialRes, ResidualVector &temporalRes)
 Assemble the residual only. More...
 
void enforceDirichletConstraints (const ApplyFunction &applyDirichlet)
 Enforce Dirichlet constraints. More...
 
void evalDirichletBoundaries (ApplyDirichletFunctionType applyDirichlet)
 Evaluates Dirichlet boundaries. More...
 
void maybeUpdateCouplingContext (Args &&...)
 Update the coupling context for coupled models. More...
 
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 evalStorage () 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...
 
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...
 
bool isImplicit () const
 If the time stepping scheme is implicit. More...
 

Protected Member Functions

NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > & asImp_ ()
 
const NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, 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

template<class TypeTag , class Assembler , class Implementation >
using Dumux::Experimental::CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >::ElementResidualVector = typename LocalResidual::ElementResidualVector

◆ LocalResidual

template<class TypeTag , class Assembler , class Implementation >
using Dumux::Experimental::CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >::LocalResidual = typename ParentType::LocalResidual

Member Function Documentation

◆ asImp_() [1/2]

NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::asImp_ ( )
inlineprotectedinherited

◆ asImp_() [2/2]

const NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::asImp_ ( ) const
inlineprotectedinherited

◆ assembleCurrentResidual()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::assembleCurrentResidual ( ResidualVector &  spatialRes,
ResidualVector &  temporalRes 
)
inlineinherited

◆ assembleJacobian() [1/2]

template<class TypeTag , class Assembler , class Implementation >
template<class PartialReassembler = DefaultPartialReassembler>
void Dumux::Experimental::CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >::assembleJacobian ( JacobianMatrix &  A,
GridVariables &  gridVariables,
const ElementResidualVector origResiduals,
const PartialReassembler partialReassembler = nullptr 
)
inline

◆ assembleJacobian() [2/2]

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::assembleJacobian ( JacobianMatrix &  jac,
GridVariables &  gridVariables 
)
inlineinherited

◆ assembleJacobianAndResidual()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::assembleJacobianAndResidual ( JacobianMatrix &  jac,
ResidualVector &  res,
GridVariables &  gridVariables,
const StageParams &  stageParams,
ResidualVector &  temporal,
ResidualVector &  spatial,
ResidualVector &  constrainedDofs,
const PartialReassembler partialReassembler = nullptr,
const CouplingFunction &  maybeAssembleCouplingBlocks = noop 
)
inlineinherited

◆ assembler()

const Assembler & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::assembler ( ) const
inlineinherited

◆ assembleResidual()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::assembleResidual ( ResidualVector &  res)
inlineinherited

◆ bindLocalViews()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::bindLocalViews ( )
inlineinherited

◆ curElemVolVars() [1/2]

ElementVolumeVariables & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::curElemVolVars ( )
inlineinherited

◆ curElemVolVars() [2/2]

const ElementVolumeVariables & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::curElemVolVars ( ) const
inlineinherited

◆ curSol()

const SolutionVector & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::curSol ( ) const
inlineinherited

◆ elemBcTypes() [1/2]

ElementBoundaryTypes & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::elemBcTypes ( )
inlineinherited

◆ elemBcTypes() [2/2]

const ElementBoundaryTypes & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::elemBcTypes ( ) const
inlineinherited

◆ element()

const Element & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::element ( ) const
inlineinherited

◆ elementIsGhost()

bool Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::elementIsGhost ( ) const
inlineinherited

◆ elemFluxVarsCache() [1/2]

ElementFluxVariablesCache & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::elemFluxVarsCache ( )
inlineinherited

◆ elemFluxVarsCache() [2/2]

const ElementFluxVariablesCache & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::elemFluxVarsCache ( ) const
inlineinherited

◆ enforceDirichletConstraints()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::enforceDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inlineinherited

◆ enforceInternalDirichletConstraints() [1/2]

void Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::enforceInternalDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inlineinherited

◆ enforceInternalDirichletConstraints() [2/2]

void Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::enforceInternalDirichletConstraints ( const ApplyFunction &  applyDirichlet)
inlineinherited

◆ evalDirichletBoundaries()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::evalDirichletBoundaries ( ApplyDirichletFunctionType  applyDirichlet)
inlineinherited

◆ evalLocalFluxAndSourceResidual() [1/2]

ElementResidualVector Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::evalLocalFluxAndSourceResidual ( ) const
inlineinherited

◆ evalLocalFluxAndSourceResidual() [2/2]

ElementResidualVector Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::evalLocalFluxAndSourceResidual ( const ElementVolumeVariables &  elemVolVars) const
inlineinherited
Parameters
elemVolVarsThe element volume variables

◆ evalLocalResidual() [1/2]

ElementResidualVector Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::evalLocalResidual ( ) const
inlineinherited

◆ evalLocalResidual() [2/2]

ElementResidualVector Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::evalLocalResidual ( const ElementVolumeVariables &  elemVolVars) const
inlineinherited
Parameters
elemVolVarsThe element volume variables

◆ evalStorage()

ElementResidualVector Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::evalStorage ( ) const
inlineinherited

◆ fvGeometry() [1/2]

FVElementGeometry & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::fvGeometry ( )
inlineinherited

◆ fvGeometry() [2/2]

const FVElementGeometry & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::fvGeometry ( ) const
inlineinherited

◆ getVolVarAccess() [1/2]

VolumeVariables & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::getVolVarAccess ( GridVolumeVariables &  gridVolVars,
ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
)
inlineprotectedinherited

◆ getVolVarAccess() [2/2]

VolumeVariables & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::getVolVarAccess ( GridVolumeVariables &  gridVolVars,
ElementVolumeVariables &  elemVolVars,
const SubControlVolume &  scv 
)
inlineprotectedinherited

◆ isImplicit()

bool Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::isImplicit ( ) const
inlineinherited

◆ localResidual() [1/2]

LocalResidual & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::localResidual ( )
inlineinherited

◆ localResidual() [2/2]

const LocalResidual & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::localResidual ( ) const
inlineinherited

◆ maybeEvalAdditionalDomainDerivatives()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::maybeEvalAdditionalDomainDerivatives ( Args &&  ...)
inlineinherited
Note
This does nothing per default (not a coupled model).

◆ maybeUpdateCouplingContext()

void Dumux::Experimental::CVFELocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::maybeUpdateCouplingContext ( Args &&  ...)
inlineinherited
Note
This does nothing per default (not a coupled model).

◆ problem()

const Problem & Dumux::Experimental::FVLocalAssemblerBase< TypeTag, Assembler, NonVoidOr< CVFELocalAssembler< TypeTag, Assembler, DiffMethod::numeric, Implementation >, Implementation > >::problem ( ) const
inlineinherited

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