3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false > Class Template Reference

Box scheme multi domain local assembler using numeric differentiation and explicit time discretization. More...

#include <dumux/multidomain/subdomainboxlocalassembler.hh>

Inheritance diagram for Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >:
Inheritance graph

Description

template<std::size_t id, class TypeTag, class Assembler>
class Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >

Box scheme multi domain local assembler using numeric differentiation and explicit time discretization.

Public Types

using LocalResidual

Public Member Functions

template<class JacobianMatrixDiagBlock, class GridVariables>
ElementResidualVector assembleJacobianAndResidualImpl (JacobianMatrixDiagBlock &A, GridVariables &gridVariables)
 Computes the derivatives with respect to the given element and adds them to the global matrix.
template<std::size_t otherId, class JacobianBlock, class GridVariables>
void assembleJacobianCoupling (Dune::index_constant< otherId > domainJ, JacobianBlock &A, const ElementResidualVector &res, GridVariables &gridVariables)
 Computes the coupling derivatives with respect to the given element and adds them to the global matrix.
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.
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.
void assembleResidual (SubSolutionVector &res)
 Assemble the residual vector entries only.
ElementResidualVector evalLocalSourceResidual (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Evaluates the local source term for an element and given element volume variables.
void enforceDirichletConstraints (const ApplyFunction &applyDirichlet)
 Enforce Dirichlet constraints.
void evalDirichletBoundaries (ApplyDirichletFunctionType applyDirichlet)
 Incorporate Dirichlet boundary conditions.
void bindLocalViews ()
 Prepares all local views necessary for local assembly.
const Problem & problem () const
 return reference to the underlying problem
CouplingManager & couplingManager ()
 return reference to the coupling manager
ElementResidualVector evalLocalResidual () const
 Convenience function to evaluate the complete local residual for the current element. Automatically chooses the the appropriate element volume variables.
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.
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.
void enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet)
 Enforces Dirichlet constraints if enabled in the problem.
const Assembler & assembler () const
 The assembler.
const Element & element () const
 The current element.
bool elementIsGhost () const
 Returns if element is a ghost entity.
const SolutionVector & curSol () const
 The current solution.
FVElementGeometry & fvGeometry ()
 The global finite volume geometry.
ElementVolumeVariables & curElemVolVars ()
 The current element volume variables.
ElementVolumeVariables & prevElemVolVars ()
 The element volume variables of the provious time step.
ElementFluxVariablesCache & elemFluxVarsCache ()
 The element flux variables cache.
LocalResiduallocalResidual ()
 The local residual for the current element.
ElementBoundaryTypes & elemBcTypes ()
 The element's boundary types.

Static Public Member Functions

static constexpr bool isImplicit ()
 Returns true if the assembler considers implicit assembly.

Static Public Attributes

static constexpr auto domainId
 export the domain id of this sub-domain

Protected Member Functions

SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false > & asImp_ ()
VolumeVariables & getVolVarAccess (GridVolumeVariables &gridVolVars, ElementVolumeVariables &elemVolVars, const SubControlVolume &scv)

Member Typedef Documentation

◆ LocalResidual

using Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::LocalResidual
inherited

Member Function Documentation

◆ asImp_()

SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false > & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::asImp_ ( )
inlineprotectedinherited

◆ assembleJacobianAndResidual()

void Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::assembleJacobianAndResidual ( JacobianMatrixRow & jacRow,
SubSolutionVector & res,
GridVariablesTuple & gridVariables )
inlineinherited

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.

◆ assembleJacobianAndResidualImpl()

template<std::size_t id, class TypeTag, class Assembler>
template<class JacobianMatrixDiagBlock, class GridVariables>
ElementResidualVector Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >::assembleJacobianAndResidualImpl ( JacobianMatrixDiagBlock & A,
GridVariables & gridVariables )
inline

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

Returns
The element residual at the current solution.

◆ assembleJacobianCoupling() [1/2]

template<std::size_t id, class TypeTag, class Assembler>
template<std::size_t otherId, class JacobianBlock, class GridVariables>
void Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >::assembleJacobianCoupling ( Dune::index_constant< otherId > domainJ,
JacobianBlock & A,
const ElementResidualVector & res,
GridVariables & gridVariables )
inline

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

Note
Since the coupling can only enter sources or fluxes and these are evaluated on the old time level (explicit scheme), the coupling blocks are empty.

◆ assembleJacobianCoupling() [2/2]

void Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::assembleJacobianCoupling ( Dune::index_constant< otherId > domainJ,
JacRow & jacRow,
const ElementResidualVector & res,
GridVariables & gridVariables )
inlineinherited

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

◆ assembler()

const Assembler & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::assembler ( ) const
inlineinherited

The assembler.

◆ assembleResidual()

void Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::assembleResidual ( SubSolutionVector & res)
inlineinherited

Assemble the residual vector entries only.

◆ bindLocalViews()

void Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::bindLocalViews ( )
inlineinherited

Prepares all local views necessary for local assembly.

◆ couplingManager()

CouplingManager & Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::couplingManager ( )
inlineinherited

return reference to the coupling manager

◆ curElemVolVars()

ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::curElemVolVars ( )
inlineinherited

The current element volume variables.

◆ curSol()

const SolutionVector & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::curSol ( ) const
inlineinherited

The current solution.

◆ elemBcTypes()

ElementBoundaryTypes & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::elemBcTypes ( )
inlineinherited

The element's boundary types.

◆ element()

const Element & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::element ( ) const
inlineinherited

The current element.

◆ elementIsGhost()

bool Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::elementIsGhost ( ) const
inlineinherited

Returns if element is a ghost entity.

◆ elemFluxVarsCache()

ElementFluxVariablesCache & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::elemFluxVarsCache ( )
inlineinherited

The element flux variables cache.

◆ enforceDirichletConstraints()

void Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::enforceDirichletConstraints ( const ApplyFunction & applyDirichlet)
inlineinherited

Enforce Dirichlet constraints.

◆ enforceInternalDirichletConstraints()

void Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::enforceInternalDirichletConstraints ( const ApplyFunction & applyDirichlet)
inlineinherited

Enforces Dirichlet constraints if enabled in the problem.

◆ evalDirichletBoundaries()

void Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::evalDirichletBoundaries ( ApplyDirichletFunctionType applyDirichlet)
inlineinherited

Incorporate Dirichlet boundary conditions.

Parameters
applyDirichletLambda function for the BC incorporation on an scv

◆ evalLocalFluxAndSourceResidual()

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, 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.

◆ evalLocalResidual()

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::evalLocalResidual ( ) const
inlineinherited

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

◆ evalLocalSourceResidual()

ElementResidualVector Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::evalLocalSourceResidual ( const Element & element,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

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

◆ evalLocalStorageResidual()

ElementResidualVector Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, 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()

FVElementGeometry & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::fvGeometry ( )
inlineinherited

The global finite volume geometry.

◆ getVolVarAccess()

VolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::getVolVarAccess ( GridVolumeVariables & gridVolVars,
ElementVolumeVariables & elemVolVars,
const SubControlVolume & scv )
inlineprotectedinherited

◆ isImplicit()

constexpr bool Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::isImplicit ( )
inlinestaticconstexprinherited

Returns true if the assembler considers implicit assembly.

◆ localResidual()

LocalResidual & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::localResidual ( )
inlineinherited

The local residual for the current element.

◆ prevElemVolVars()

ElementVolumeVariables & Dumux::FVLocalAssemblerBase< TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, useImplicitAssembly >::prevElemVolVars ( )
inlineinherited

The element volume variables of the provious time step.

◆ problem()

const Problem & Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::problem ( ) const
inlineinherited

return reference to the underlying problem

Member Data Documentation

◆ domainId

auto Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >, implicit >::domainId
staticconstexprinherited

export the domain id of this sub-domain


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