version 3.10-dev
Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId > Class Template Reference

Base class for the coupling mapper that sets up and stores the coupling maps between two domains of dimension d and (d-1). More...

#include <dumux/multidomain/facet/couplingmapperbase.hh>

Inheritance diagram for Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >:

Description

template<class BulkFVG, class LowDimFVG, std::size_t bulkId, std::size_t lowDimId>
class Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >
Template Parameters
BulkFVGthe d-dimensional finite-volume grid geometry
LowDimFVGthe (d-1)-dimensional finite-volume grid geometry
bulkIdThe index of the bulk grid within the hierarchy of grids
lowDimIdThe index of the facet grid within the hierarchy of grids

Public Types

template<std::size_t id>
using Stencil = typename std::conditional< id==bulkId, BulkStencil, LowDimStencil >::type
 Export the stencil type for the provided grid index. More...
 
template<std::size_t i, std::size_t j>
using CouplingMap = typename std::conditional< i==bulkId, BulkCouplingMap, LowDimCouplingMap >::type
 Export the coupling map type. More...
 

Public Member Functions

template<class Embeddings >
void update (const BulkFVG &bulkFvGridGeometry, const LowDimFVG &lowDimFvGridGeometry, std::shared_ptr< const Embeddings > embeddings)
 Update coupling maps. This is the standard interface and has to be overloaded by the implementation. More...
 
const BulkCouplingMap & couplingMap (GridIdType< bulkId >, GridIdType< lowDimId >) const
 returns coupling data for bulk -> lowDim More...
 
const LowDimCouplingMap & couplingMap (GridIdType< lowDimId >, GridIdType< bulkId >) const
 returns coupling data for lowDim -> bulk More...
 

Static Public Member Functions

template<int dim>
static constexpr GridIdType<(dim==bulkDim ? bulkId :lowDimId) > gridId ()
 Allow retrievment of grid id for a given grid dimension. More...
 

Static Public Attributes

static constexpr auto bulkGridId = GridIdType<bulkId>()
 Export grid ids. More...
 
static constexpr auto facetGridId = GridIdType<lowDimId>()
 

Protected Member Functions

template<class Embeddings , typename AddCouplingEntryPolicy >
void update_ (const BulkFVG &bulkFvGridGeometry, const LowDimFVG &lowDimFvGridGeometry, std::shared_ptr< const Embeddings > embeddings, AddCouplingEntryPolicy &&addCouplingEntryPolicy)
 Update coupling maps. More...
 
template<class GridGeometry >
std::vector< typename IndexTraits< typename GridGeometry::GridView >::GridIndex > extractNodalDofs_ (const typename GridGeometry::GridView::template Codim< 0 >::Entity &element, const GridGeometry &gridGeometry)
 Creates a container with the nodal dofs within an element. More...
 
BulkCouplingMap & couplingMap_ (GridIdType< bulkId >, GridIdType< lowDimId >)
 returns non-const coupling data for bulk -> lowDim More...
 
LowDimCouplingMap & couplingMap_ (GridIdType< lowDimId >, GridIdType< bulkId >)
 returns non-const coupling data for lowDim -> bulk More...
 

Member Typedef Documentation

◆ CouplingMap

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
template<std::size_t i, std::size_t j>
using Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::CouplingMap = typename std::conditional<i == bulkId, BulkCouplingMap, LowDimCouplingMap>::type

◆ Stencil

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
template<std::size_t id>
using Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::Stencil = typename std::conditional<id == bulkId, BulkStencil, LowDimStencil>::type

Member Function Documentation

◆ couplingMap() [1/2]

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
const BulkCouplingMap & Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::couplingMap ( GridIdType< bulkId >  ,
GridIdType< lowDimId >   
) const
inline

◆ couplingMap() [2/2]

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
const LowDimCouplingMap & Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::couplingMap ( GridIdType< lowDimId >  ,
GridIdType< bulkId >   
) const
inline

◆ couplingMap_() [1/2]

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
BulkCouplingMap & Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::couplingMap_ ( GridIdType< bulkId >  ,
GridIdType< lowDimId >   
)
inlineprotected

◆ couplingMap_() [2/2]

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
LowDimCouplingMap & Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::couplingMap_ ( GridIdType< lowDimId >  ,
GridIdType< bulkId >   
)
inlineprotected

◆ extractNodalDofs_()

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
template<class GridGeometry >
std::vector< typename IndexTraits< typename GridGeometry::GridView >::GridIndex > Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::extractNodalDofs_ ( const typename GridGeometry::GridView::template Codim< 0 >::Entity &  element,
const GridGeometry &  gridGeometry 
)
inlineprotected

◆ gridId()

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
template<int dim>
static constexpr GridIdType<(dim==bulkDim ? bulkId :lowDimId) > Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::gridId ( )
inlinestaticconstexpr

◆ update()

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
template<class Embeddings >
void Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::update ( const BulkFVG &  bulkFvGridGeometry,
const LowDimFVG &  lowDimFvGridGeometry,
std::shared_ptr< const Embeddings >  embeddings 
)
inline

◆ update_()

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
template<class Embeddings , typename AddCouplingEntryPolicy >
void Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::update_ ( const BulkFVG &  bulkFvGridGeometry,
const LowDimFVG &  lowDimFvGridGeometry,
std::shared_ptr< const Embeddings >  embeddings,
AddCouplingEntryPolicy &&  addCouplingEntryPolicy 
)
inlineprotected
Parameters
bulkFvGridGeometryThe finite-volume grid geometry of the bulk grid
lowDimFvGridGeometryThe finite-volume grid geometry of the lower-dimensional grid
embeddingsClass that contains the embedments and allows obtaining entity insertion indices
addCouplingEntryPolicyPolicy for adding coupling entries starting from a lower-dimensional element and corresponding adjoined higher-dimensional entity indices

Member Data Documentation

◆ bulkGridId

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
constexpr auto Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::bulkGridId = GridIdType<bulkId>()
staticconstexpr

◆ facetGridId

template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
constexpr auto Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >::facetGridId = GridIdType<lowDimId>()
staticconstexpr

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