3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Public Member Functions | List of all members
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. More...
 
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 iterable 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 More...
 
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 iterable 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 More...
 
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. More...
 
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. More...
 
bool isCoupledLateralScvf (Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI, const SubControlVolumeFace< CouplingManager::freeFlowMomentumIndex > &scvf) const
 If the boundary entity is on a coupling boundary. More...
 
bool isCoupled (Dune::index_constant< CouplingManager::freeFlowMomentumIndex > domainI, const SubControlVolume< CouplingManager::freeFlowMomentumIndex > &scv) const
 If the boundary entity is on a coupling boundary. More...
 
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. More...
 
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) More...
 
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) More...
 

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 iterable 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 iterable 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: