version 3.10-dev
Dumux::SubDomainFaceCenteredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit > Class Template Reference

A base class for all face-centered staggered local assemblers. More...

#include <dumux/multidomain/subdomainfclocalassembler.hh>

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

Description

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

Public Types

using ElementResidualVector = typename ParentType::LocalResidual::ElementResidualVector
 export element residual vector type More...
 

Public Member Functions

 SubDomainFaceCenteredLocalAssemblerBase (const Assembler &assembler, const Element &element, const SolutionVector &curSol, CouplingManager &couplingManager)
 
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 ElementResidualVector &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 ElementResidualVector &res, GridVariables &gridVariables)
 Assemble the entries in a coupling block of the jacobian. 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...
 
void bindLocalViews ()
 Prepares all local views necessary for local assembly. More...
 
template<std::size_t i = domainId>
const Problem & problem (Dune::index_constant< i > dId=domainId) const
 return reference to the underlying problem More...
 
template<std::size_t i = domainId>
const auto & curSol (Dune::index_constant< i > dId=domainId) const
 return reference to the underlying problem More...
 
CouplingManager & couplingManager ()
 return reference to the coupling manager More...
 

Static Public Attributes

static constexpr auto domainId = typename Dune::index_constant<id>()
 export the domain id of this sub-domain More...
 

Member Typedef Documentation

◆ ElementResidualVector

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

Constructor & Destructor Documentation

◆ SubDomainFaceCenteredLocalAssemblerBase()

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

Member Function Documentation

◆ assembleJacobianAndResidual()

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

◆ assembleJacobianCoupling() [1/2]

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

◆ assembleJacobianCoupling() [2/2]

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

◆ bindLocalViews()

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

◆ couplingManager()

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

◆ curSol()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , DiffMethod dm, bool implicit>
template<std::size_t i = domainId>
const auto & Dumux::SubDomainFaceCenteredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit >::curSol ( Dune::index_constant< i >  dId = domainId) const
inline

◆ evalLocalSourceResidual() [1/2]

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

◆ evalLocalSourceResidual() [2/2]

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

◆ problem()

template<std::size_t id, class TypeTag , class Assembler , class Implementation , DiffMethod dm, bool implicit>
template<std::size_t i = domainId>
const Problem & Dumux::SubDomainFaceCenteredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit >::problem ( Dune::index_constant< i >  dId = domainId) const
inline

Member Data Documentation

◆ domainId

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

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