3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager > Class Template Reference

the default mapper for conforming equal dimension boundary coupling between two domains (box or cc) More...

#include <dumux/multidomain/boundary/freeflowporousmedium/ffmomentumpm/couplingmapper.hh>

Inheritance diagram for Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >:

Description

template<class MDTraits, class CouplingManager>
class Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >

the default mapper for conforming equal dimension boundary coupling between two domains (box or cc)

Todo
how to extend to arbitrary number of domains?

Public Member Functions

void update (const CouplingManager &couplingManager)
 Main update routine.
const std::vector< std::size_t > & couplingStencil (Dune::index_constant< CouplingManager::porousMediumIndex > domainI, const std::size_t eIdxI, Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainJ) const
 returns an iteratable container of all indices of degrees of freedom of domain j that couple with / influence the element residual of the given element of domain i
const std::vector< std::size_t > & couplingStencil (Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI, const Element< CouplingManager::freeFlowMomentumIndex > &elementI, const SubControlVolume< CouplingManager::freeFlowMomentumIndex > &scvI, Dune::index_constant< CouplingManager::porousMediumIndex > domainJ) const
 returns an iteratable container of all indices of degrees of freedom of domain j that couple with / influence the element residual of the given element of domain i
template<std::size_t i>
bool isCoupledElement (Dune::index_constant< i >, std::size_t eIdx) const
 Return if an element residual with index eIdx of domain i is coupled to domain j.
template<std::size_t i>
bool isCoupled (Dune::index_constant< i > domainI, const SubControlVolumeFace< i > &scvf) const
 If the boundary entity is on a coupling boundary.
bool isCoupledLateralScvf (Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI, const SubControlVolumeFace< CouplingManager::freeFlowMomentumIndex > &scvf) const
 If the boundary entity is on a coupling boundary.
bool isCoupled (Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI, const SubControlVolume< CouplingManager::freeFlowMomentumIndex > &scv) const
 If the boundary entity is on a coupling boundary.
template<std::size_t i>
std::size_t flipScvfIndex (Dune::index_constant< i > domainI, const SubControlVolumeFace< i > &scvf) const
 Return the scvf index of the flipped scvf in the other domain.
template<std::size_t i>
std::size_t outsideElementIndex (Dune::index_constant< i > domainI, const SubControlVolumeFace< i > &scvf) const
 Return the outside element index (the element index of the other domain).
template<std::size_t i>
std::size_t outsideDofIndex (Dune::index_constant< i > domainI, const SubControlVolumeFace< i > &scvf) const
 Return the outside element index (the element index of the other domain).

Member Function Documentation

◆ couplingStencil() [1/2]

template<class MDTraits, class CouplingManager>
const std::vector< std::size_t > & Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::couplingStencil ( Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI,
const Element< CouplingManager::freeFlowMomentumIndex > & elementI,
const SubControlVolume< CouplingManager::freeFlowMomentumIndex > & scvI,
Dune::index_constant< CouplingManager::porousMediumIndex > domainJ ) const
inline

returns an iteratable container of all indices of degrees of freedom of domain j that couple with / influence the element residual of the given element of domain i

Parameters
domainIthe domain index of domain i
elementIthe coupled element of domain i
scvIthe coupled sub control volume of domain i
domainJthe domain index of domain j
Note
The element residual definition depends on the discretization scheme of domain i box: a container of the residuals of all sub control volumes cc : the residual of the (sub) control volume fem: the residual of the element
This function has to be implemented by all coupling managers for all combinations of i and j

◆ couplingStencil() [2/2]

template<class MDTraits, class CouplingManager>
const std::vector< std::size_t > & Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::couplingStencil ( Dune::index_constant< CouplingManager::porousMediumIndex > domainI,
const std::size_t eIdxI,
Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainJ ) const
inline

returns an iteratable container of all indices of degrees of freedom of domain j that couple with / influence the element residual of the given element of domain i

Parameters
domainIthe domain index of domain i
eIdxIthe index of the coupled element of domain í
domainJthe domain index of domain j
Note
The element residual definition depends on the discretization scheme of domain i box: a container of the residuals of all sub control volumes cc : the residual of the (sub) control volume fem: the residual of the element
This function has to be implemented by all coupling managers for all combinations of i and j

◆ flipScvfIndex()

template<class MDTraits, class CouplingManager>
template<std::size_t i>
std::size_t Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::flipScvfIndex ( Dune::index_constant< i > domainI,
const SubControlVolumeFace< i > & scvf ) const
inline

Return the scvf index of the flipped scvf in the other domain.

Parameters
domainIthe domain index for which to compute the flux
scvfthe sub control volume face

◆ isCoupled() [1/2]

template<class MDTraits, class CouplingManager>
bool Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::isCoupled ( Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI,
const SubControlVolume< CouplingManager::freeFlowMomentumIndex > & scv ) const
inline

If the boundary entity is on a coupling boundary.

Parameters
domainIthe domain index for which to compute the flux
scvthe sub control volume

◆ isCoupled() [2/2]

template<class MDTraits, class CouplingManager>
template<std::size_t i>
bool Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::isCoupled ( Dune::index_constant< i > domainI,
const SubControlVolumeFace< i > & scvf ) const
inline

If the boundary entity is on a coupling boundary.

Parameters
domainIthe domain index for which to compute the flux
scvfthe sub control volume face

◆ isCoupledElement()

template<class MDTraits, class CouplingManager>
template<std::size_t i>
bool Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::isCoupledElement ( Dune::index_constant< i > ,
std::size_t eIdx ) const
inline

Return if an element residual with index eIdx of domain i is coupled to domain j.

◆ isCoupledLateralScvf()

template<class MDTraits, class CouplingManager>
bool Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::isCoupledLateralScvf ( Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI,
const SubControlVolumeFace< CouplingManager::freeFlowMomentumIndex > & scvf ) const
inline

If the boundary entity is on a coupling boundary.

Parameters
domainIthe domain index for which to compute the flux
scvfthe sub control volume face

◆ outsideDofIndex()

template<class MDTraits, class CouplingManager>
template<std::size_t i>
std::size_t Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::outsideDofIndex ( Dune::index_constant< i > domainI,
const SubControlVolumeFace< i > & scvf ) const
inline

Return the outside element index (the element index of the other domain).

Parameters
domainIthe domain index for which to compute the flux
scvfthe sub control volume face

◆ outsideElementIndex()

template<class MDTraits, class CouplingManager>
template<std::size_t i>
std::size_t Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::outsideElementIndex ( Dune::index_constant< i > domainI,
const SubControlVolumeFace< i > & scvf ) const
inline

Return the outside element index (the element index of the other domain).

Parameters
domainIthe domain index for which to compute the flux
scvfthe sub control volume face

◆ update()

template<class MDTraits, class CouplingManager>
void Dumux::FreeFlowMomentumPorousMediumCouplingMapper< MDTraits, CouplingManager >::update ( const CouplingManager & couplingManager)
inline

Main update routine.


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