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>
template<class BulkFVG, class LowDimFVG, std::size_t bulkId, std::size_t lowDimId>
class Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >
- Template Parameters
-
BulkFVG | the d-dimensional finite-volume grid geometry |
LowDimFVG | the (d-1)-dimensional finite-volume grid geometry |
bulkId | The index of the bulk grid within the hierarchy of grids |
lowDimId | The index of the facet grid within the hierarchy of grids |
|
template<std::size_t id> |
using | Stencil = typename std::conditional<id == bulkId, BulkStencil, LowDimStencil>::type |
| Export the stencil type for the provided grid index.
|
|
template<std::size_t i, std::size_t j> |
using | CouplingMap = typename std::conditional<i == bulkId, BulkCouplingMap, LowDimCouplingMap>::type |
| Export the coupling map type.
|
|
|
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.
|
|
const BulkCouplingMap & | couplingMap (GridIdType< bulkId >, GridIdType< lowDimId >) const |
| returns coupling data for bulk -> lowDim
|
|
const LowDimCouplingMap & | couplingMap (GridIdType< lowDimId >, GridIdType< bulkId >) const |
| returns coupling data for lowDim -> bulk
|
|
|
template<int dim> |
static constexpr GridIdType<(dim==bulkDim ? bulkId :lowDimId) > | gridId () |
| Allow retrievment of grid id for a given grid dimension.
|
|
|
static constexpr auto | bulkGridId = GridIdType<bulkId>() |
| Export grid ids.
|
|
static constexpr auto | facetGridId = GridIdType<lowDimId>() |
|
|
template<class Embeddings , typename AddCouplingEntryPolicy > |
void | update_ (const BulkFVG &bulkFvGridGeometry, const LowDimFVG &lowDimFvGridGeometry, std::shared_ptr< const Embeddings > embeddings, AddCouplingEntryPolicy &&addCouplingEntryPolicy) |
| Update coupling maps.
|
|
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.
|
|
BulkCouplingMap & | couplingMap_ (GridIdType< bulkId >, GridIdType< lowDimId >) |
| returns non-const coupling data for bulk -> lowDim
|
|
LowDimCouplingMap & | couplingMap_ (GridIdType< lowDimId >, GridIdType< bulkId >) |
| returns non-const coupling data for lowDim -> bulk
|
|
◆ 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 |
◆ 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>
◆ 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
-
bulkFvGridGeometry | The finite-volume grid geometry of the bulk grid |
lowDimFvGridGeometry | The finite-volume grid geometry of the lower-dimensional grid |
embeddings | Class that contains the embedments and allows obtaining entity insertion indices |
addCouplingEntryPolicy | Policy for adding coupling entries starting from a lower-dimensional element and corresponding adjoined higher-dimensional entity indices |
◆ bulkGridId
template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
◆ facetGridId
template<class BulkFVG , class LowDimFVG , std::size_t bulkId, std::size_t lowDimId>
The documentation for this class was generated from the following file: