version 3.9-dev
Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit > Class Template Reference

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

#include <dumux/multidomain/subdomaincclocalassembler.hh>

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

Description

template<std::size_t id, class TypeTag, class Assembler, class Implementation, bool implicit>
class Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >
Template Parameters
idthe id of the sub domain
TypeTagthe TypeTag
Assemblerthe assembler type
Implementationthe actual assembler implementation
implicitSpecifies whether the time discretization is implicit or not not (i.e. explicit)

Public Types

using LocalResidual = typename ParentType::LocalResidual
 the local residual type of this domain More...
 

Public Member Functions

 SubDomainCCLocalAssemblerBase (const Assembler &assembler, const Element &element, const SolutionVector &curSol, CouplingManager &couplingManager)
 the constructor More...
 
template<class JacobianMatrixRow , class SubResidualVector , class GridVariablesTuple >
void assembleJacobianAndResidual (JacobianMatrixRow &jacRow, SubResidualVector &res, GridVariablesTuple &gridVariables)
 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...
 
template<std::size_t otherId, class JacRow , class GridVariables , typename std::enable_if_t<(otherId==id), int > = 0>
void assembleJacobianCoupling (Dune::index_constant< otherId > domainJ, JacRow &jacRow, const LocalResidualValues &res, GridVariables &gridVariables)
 Assemble the entries in a coupling block of the jacobian. There is no coupling block between a domain and itself. More...
 
template<std::size_t otherId, class JacRow , class GridVariables , typename std::enable_if_t<(otherId !=id), int > = 0>
void assembleJacobianCoupling (Dune::index_constant< otherId > domainJ, JacRow &jacRow, const LocalResidualValues &res, GridVariables &gridVariables)
 Assemble the entries in a coupling block of the jacobian. More...
 
template<class SubResidualVector >
void assembleResidual (SubResidualVector &res)
 Assemble the residual only. More...
 
ElementResidualVector evalLocalSourceResidual (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Evaluates the local source term for an element and given element volume variables. More...
 
ElementResidualVector evalLocalSourceResidual (const Element &neighbor) const
 Evaluates the local source term depending on time discretization scheme. More...
 
LocalResidualValues evalLocalStorageResidual () const
 Evaluates the storage terms within the element. More...
 
LocalResidualValues evalFluxResidual (const Element &neighbor, const SubControlVolumeFace &scvf) const
 Evaluates the fluxes depending on the chose time discretization scheme. More...
 
void bindLocalViews ()
 Prepares all local views necessary for local assembly. More...
 
const Problem & problem () const
 return reference to the underlying problem More...
 
CouplingManager & couplingManager ()
 return reference to the coupling manager 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...
 
void enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet)
 Enforces Dirichlet constraints if enabled in the problem. More...
 
void enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet)
 
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...
 

Static Public Attributes

static constexpr auto domainId = typename Dune::index_constant<id>()
 export the domain id of this sub-domain 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

◆ LocalResidual

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
using Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::LocalResidual = typename ParentType::LocalResidual

Constructor & Destructor Documentation

◆ SubDomainCCLocalAssemblerBase()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::SubDomainCCLocalAssemblerBase ( const Assembler &  assembler,
const Element &  element,
const SolutionVector &  curSol,
CouplingManager &  couplingManager 
)
inlineexplicit

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

◆ assembleJacobianAndResidual()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
template<class JacobianMatrixRow , class SubResidualVector , class GridVariablesTuple >
void Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::assembleJacobianAndResidual ( JacobianMatrixRow &  jacRow,
SubResidualVector &  res,
GridVariablesTuple &  gridVariables 
)
inline

◆ assembleJacobianCoupling() [1/2]

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
template<std::size_t otherId, class JacRow , class GridVariables , typename std::enable_if_t<(otherId==id), int > = 0>
void Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::assembleJacobianCoupling ( Dune::index_constant< otherId >  domainJ,
JacRow &  jacRow,
const LocalResidualValues &  res,
GridVariables &  gridVariables 
)
inline

◆ assembleJacobianCoupling() [2/2]

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
template<std::size_t otherId, class JacRow , class GridVariables , typename std::enable_if_t<(otherId !=id), int > = 0>
void Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::assembleJacobianCoupling ( Dune::index_constant< otherId >  domainJ,
JacRow &  jacRow,
const LocalResidualValues &  res,
GridVariables &  gridVariables 
)
inline

◆ assembler()

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

◆ assembleResidual()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
template<class SubResidualVector >
void Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::assembleResidual ( SubResidualVector &  res)
inline

◆ bindLocalViews()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
void Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::bindLocalViews ( )
inline

◆ couplingManager()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
CouplingManager & Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::couplingManager ( )
inline

◆ curElemVolVars() [1/2]

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

◆ curElemVolVars() [2/2]

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

◆ curSol()

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

◆ elemBcTypes() [1/2]

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

◆ elemBcTypes() [2/2]

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

◆ element()

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

◆ elementIsGhost()

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

◆ elemFluxVarsCache() [1/2]

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

◆ elemFluxVarsCache() [2/2]

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

◆ enforceInternalDirichletConstraints() [1/2]

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

◆ enforceInternalDirichletConstraints() [2/2]

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

◆ evalFluxResidual()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
LocalResidualValues Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::evalFluxResidual ( const Element &  neighbor,
const SubControlVolumeFace &  scvf 
) const
inline

◆ evalLocalFluxAndSourceResidual() [1/2]

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

◆ evalLocalFluxAndSourceResidual() [2/2]

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalFluxAndSourceResidual ( const ElementVolumeVariables &  elemVolVars) const
inlineinherited
Parameters
elemVolVarsThe element volume variables

◆ evalLocalResidual() [1/2]

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

◆ evalLocalResidual() [2/2]

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >::evalLocalResidual ( const ElementVolumeVariables &  elemVolVars) const
inlineinherited
Parameters
elemVolVarsThe element volume variables

◆ evalLocalSourceResidual() [1/2]

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
ElementResidualVector Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::evalLocalSourceResidual ( const Element &  element,
const ElementVolumeVariables &  elemVolVars 
) const
inline

◆ evalLocalSourceResidual() [2/2]

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
ElementResidualVector Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::evalLocalSourceResidual ( const Element &  neighbor) const
inline

◆ evalLocalStorageResidual()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
LocalResidualValues Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::evalLocalStorageResidual ( ) const
inline

◆ fvGeometry() [1/2]

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

◆ fvGeometry() [2/2]

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

◆ 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

◆ localResidual() [1/2]

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

◆ localResidual() [2/2]

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

◆ prevElemVolVars() [1/2]

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

◆ prevElemVolVars() [2/2]

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

◆ problem()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
const Problem & Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::problem ( ) const
inline

Member Data Documentation

◆ domainId

template<std::size_t id, class TypeTag , class Assembler , class Implementation , bool implicit>
constexpr auto Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >::domainId = typename Dune::index_constant<id>()
staticconstexpr

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