3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Static Public Attributes | List of all members
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 >

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

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 GridVariablesTuple >
void assembleJacobianAndResidual (JacobianMatrixRow &jacRow, SubSolutionVector &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

export element residual vector type

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 GridVariablesTuple >
void Dumux::SubDomainFaceCenteredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit >::assembleJacobianAndResidual ( JacobianMatrixRow &  jacRow,
SubSolutionVector &  res,
GridVariablesTuple &  gridVariables 
)
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.

◆ 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

Assemble the entries in a coupling block of the jacobian. There is no coupling block between a domain and itself.

◆ 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

Assemble the entries in a coupling block of the jacobian.

◆ 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

Prepares all local views necessary for local assembly.

◆ 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

return reference to the coupling manager

◆ 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

return reference to the underlying problem

◆ 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

Evaluates the local source term for an element and given element volume variables.

◆ 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

Evaluates the local source term depending on time discretization scheme.

◆ 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

return reference to the underlying problem

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

export the domain id of this sub-domain


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