3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
Dumux::FacetCouplingMapper< BulkFVG, LowDimFVG, bulkId, lowDimId, DiscretizationMethod::box > 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). This specialization is for the bulk domain using the box scheme. More...

#include <dumux/multidomain/facet/box/couplingmapper.hh>

Inheritance diagram for Dumux::FacetCouplingMapper< BulkFVG, LowDimFVG, bulkId, lowDimId, DiscretizationMethod::box >:
Inheritance graph

Description

template<class BulkFVG, class LowDimFVG, std::size_t bulkId, std::size_t lowDimId>
class Dumux::FacetCouplingMapper< BulkFVG, LowDimFVG, bulkId, lowDimId, DiscretizationMethod::box >

Base class for the coupling mapper that sets up and stores the coupling maps between two domains of dimension d and (d-1). This specialization is for the bulk domain using the box scheme.

Template Parameters
BulkFVGThe d-dimensional finite-volume grid geometry
LowDimFVGThe (d-1)-dimensional finite-volume grid geometry
bulkIdThe domain id of the bulk problem
lowDimIdThe domain id of the lower-dimensional problem

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 required by any mapper implementation. More...
 
template<class Embeddings , class CodimOneGridAdapter >
void update (const BulkFVG &bulkFvGridGeometry, const LowDimFVG &lowDimFvGridGeometry, std::shared_ptr< const Embeddings > embeddings, const CodimOneGridAdapter &codimOneGridAdapter)
 Update coupling maps with a given grid adapter. 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
 export domain ids More...
 
static constexpr auto facetGridId
 

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
inherited

Export the coupling map 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
inherited

Export the stencil type for the provided grid index.

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
inlineinherited

returns coupling data for bulk -> lowDim

◆ 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
inlineinherited

returns coupling data for lowDim -> bulk

◆ 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 >   
)
inlineprotectedinherited

returns non-const coupling data for bulk -> lowDim

◆ 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 >   
)
inlineprotectedinherited

returns non-const coupling data for lowDim -> bulk

◆ 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 
)
inlineprotectedinherited

Creates a container with the nodal dofs within an element.

◆ 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 ( )
inlinestaticconstexprinherited

Allow retrievment of grid id for a given grid dimension.

◆ update() [1/2]

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

Update coupling maps. This is the standard interface required by any mapper implementation.

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 among the grids and entity insertion indices

◆ update() [2/2]

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

Update coupling maps with a given grid adapter.

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 among the grids and entity insertion indices
codimOneGridAdapterAllows direct access to data on the bulk grid for lowdim grid entities

◆ 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 
)
inlineprotectedinherited

Update coupling maps.

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
staticconstexpr

export domain ids

◆ facetGridId

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

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