version 3.10.0
Loading...
Searching...
No Matches
Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa > Class Template Reference

Manages the coupling between bulk elements and lower dimensional elements where the coupling occurs across the facets of the bulk grid. This implementation is to be used in conjunction with models using the cell-centered mpfa scheme. More...

#include <dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh>

Inheritance diagram for Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >:

Description

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
class Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >
Template Parameters
MDTraitsThe multidomain traits containing the types on all sub-domains
CouplingMapperClass containing maps on the coupling between dofs of different grids
bulkDomainIdThe domain id of the bulk problem
lowDimDomainIdThe domain id of the lower-dimensional problem

Public Types

using SolutionVector = typename MDTraits::SolutionVector
 the type of the solution vector
 

Public Member Functions

void init (std::shared_ptr< Problem< bulkId > > bulkProblem, std::shared_ptr< Problem< lowDimId > > lowDimProblem, std::shared_ptr< CouplingMapper > couplingMapper, const SolutionVector &curSol)
 Initialize the coupling manager.
 
bool isOnInteriorBoundary (const Element< bulkId > &element, const SubControlVolumeFace< bulkId > &scvf) const
 returns true if a bulk scvf coincides with a facet element.
 
template<class LowDimLocalAssembler>
LocalResidual< lowDimId >::ElementResidualVector evalCouplingResidual (LowDimIdType, const LowDimLocalAssembler &lowDimLocalAssembler, BulkIdType, GridIndexType< bulkId > dofIdxGlobalJ)
 Evaluates the coupling element residual of a lower-dimensional domain element with respect to a dof in the bulk domain (dofIdxGlobalJ). This is essentially the fluxes across the facets of the neighboring bulk elements.
 
template<class LowDimLocalAssembler>
LocalResidual< lowDimId >::ElementResidualVector evalCouplingResidual (LowDimIdType, const LowDimLocalAssembler &lowDimLocalAssembler, BulkIdType)
 Evaluates the coupling element residual of a lower-dimensional domain element with respect to a dof in the bulk domain (dofIdxGlobalJ). This is essentially the fluxes across the facets of the neighboring bulk elements.
 
NumEqVector< lowDimId > evalSourcesFromBulk (const Element< lowDimId > &element, const FVElementGeometry< lowDimId > &fvGeometry, const ElementVolumeVariables< lowDimId > &elemVolVars, const SubControlVolume< lowDimId > &scv) const
 Computes the sources in a lower-dimensional sub-control volume stemming from the bulk domain.
 
template<class JacobianPattern>
void extendJacobianPattern (LowDimIdType, JacobianPattern &pattern) const
 Extend the jacobian pattern of the diagonal block of the lowdim domain by the elements that are in the coupling stencil of the neighboring bulk elements.
 
template<class JacobianPattern>
void extendJacobianPattern (BulkIdType, JacobianPattern &pattern) const
 The bulk domain has no extended jacobian pattern.
 
template<class LowDimLocalAssembler, class JacobianMatrixDiagBlock, class GridVariables>
void evalAdditionalDomainDerivatives (LowDimIdType, const LowDimLocalAssembler &lowDimLocalAssembler, const typename LowDimLocalAssembler::LocalResidual::ElementResidualVector &, JacobianMatrixDiagBlock &A, GridVariables &gridVariables)
 evaluate additional derivatives of the element residual of the low-dim domain with respect to dofs in the same domain that are not in the regular stencil (see extendJacobianPattern)
 
template<class LocalAssemblerI, class JacobianMatrixDiagBlock, class GridVariables>
void evalAdditionalDomainDerivatives (BulkIdType, const LocalAssemblerI &localAssemblerI, const typename LocalAssemblerI::LocalResidual::ElementResidualVector &origResiduals, JacobianMatrixDiagBlock &A, GridVariables &gridVariables)
 The bulk domain has no additional derivatives.
 

Member Typedef Documentation

◆ SolutionVector

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
using Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::SolutionVector = typename MDTraits::SolutionVector

Member Function Documentation

◆ evalAdditionalDomainDerivatives() [1/2]

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
template<class LocalAssemblerI, class JacobianMatrixDiagBlock, class GridVariables>
void Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::evalAdditionalDomainDerivatives ( BulkIdType ,
const LocalAssemblerI & localAssemblerI,
const typename LocalAssemblerI::LocalResidual::ElementResidualVector & origResiduals,
JacobianMatrixDiagBlock & A,
GridVariables & gridVariables )
inline

◆ evalAdditionalDomainDerivatives() [2/2]

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
template<class LowDimLocalAssembler, class JacobianMatrixDiagBlock, class GridVariables>
void Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::evalAdditionalDomainDerivatives ( LowDimIdType ,
const LowDimLocalAssembler & lowDimLocalAssembler,
const typename LowDimLocalAssembler::LocalResidual::ElementResidualVector & ,
JacobianMatrixDiagBlock & A,
GridVariables & gridVariables )
inline
Note
Here, this is the change of the source term with respect to changes in the variables of the other elements in the coupling stencil of the neighboring bulk elements.

◆ evalCouplingResidual() [1/2]

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
template<class LowDimLocalAssembler>
LocalResidual< lowDimId >::ElementResidualVector Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::evalCouplingResidual ( LowDimIdType ,
const LowDimLocalAssembler & lowDimLocalAssembler,
BulkIdType  )
inline

◆ evalCouplingResidual() [2/2]

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
template<class LowDimLocalAssembler>
LocalResidual< lowDimId >::ElementResidualVector Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::evalCouplingResidual ( LowDimIdType ,
const LowDimLocalAssembler & lowDimLocalAssembler,
BulkIdType ,
GridIndexType< bulkId > dofIdxGlobalJ )
inline
Note
The coupling residual is independent of w.r.t. which bulk dof it is computed

◆ evalSourcesFromBulk()

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
NumEqVector< lowDimId > Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::evalSourcesFromBulk ( const Element< lowDimId > & element,
const FVElementGeometry< lowDimId > & fvGeometry,
const ElementVolumeVariables< lowDimId > & elemVolVars,
const SubControlVolume< lowDimId > & scv ) const
inline

◆ extendJacobianPattern() [1/2]

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
template<class JacobianPattern>
void Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::extendJacobianPattern ( BulkIdType ,
JacobianPattern & pattern ) const
inline

◆ extendJacobianPattern() [2/2]

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
template<class JacobianPattern>
void Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::extendJacobianPattern ( LowDimIdType ,
JacobianPattern & pattern ) const
inline

◆ init()

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
void Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::init ( std::shared_ptr< Problem< bulkId > > bulkProblem,
std::shared_ptr< Problem< lowDimId > > lowDimProblem,
std::shared_ptr< CouplingMapper > couplingMapper,
const SolutionVector & curSol )
inline
Parameters
bulkProblemThe problem to be solved on the bulk domain
lowDimProblemThe problem to be solved on the lower-dimensional domain
couplingMapperThe mapper object containing the connectivity between the domains
curSolThe current solution

◆ isOnInteriorBoundary()

template<class MDTraits, class CouplingMapper, std::size_t bulkDomainId, std::size_t lowDimDomainId>
bool Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >::isOnInteriorBoundary ( const Element< bulkId > & element,
const SubControlVolumeFace< bulkId > & scvf ) const
inline

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