dune-mmesh 1.4.1-git
Loading...
Searching...
No Matches
Dune::MMesh< HostGrid, dim > Class Template Reference

The MMesh class templatized by the CGAL host grid type and the dimension. . More...

#include <dune/mmesh/grid/mmesh.hh>

Public Types

using HostGridType = HostGrid
 The hostgrid type.
 
using GridFamily = MMeshFamily< dim, HostGrid >
 The grid family type.
 
using Point = typename HostGrid::Point
 The point type.
 
using FieldType = typename Point::R::RT
 The field type.
 
using IdType = MMeshImpl::MultiId
 The type of an id.
 
using BoundarySegments = std::unordered_map< IdType, std::size_t >
 The boundary segment map.
 
using BoundaryIds = std::unordered_map< std::size_t, std::size_t >
 The boundary id map.
 
using InterfaceSegments = std::unordered_map< IdType, std::size_t >
 The interface segment set.
 
using Traits = typename GridFamily::Traits
 The Traits.
 
using GridImp = typename GridFamily::Traits::Grid
 The grid implementation.
 
using GridPtrType = std::unique_ptr< GridImp >
 The unique pointer to the grid.
 
using LeafIterator = typename Traits::template Codim< 0 >::LeafIterator
 The leaf iterator.
 
using GlobalCoordinate = Dune::FieldVector< FieldType, dimension >
 The type used for coordinates.
 
template<int cd>
using HostGridEntity = typename HostGridEntityChooser_< HostGridType, dimension, cd >::type
 The type of the underlying entities.
 
using ElementHandle = HostGridEntity< 0 >
 The type of the underlying element handle.
 
using FacetHandle = HostGridEntity< 1 >
 The type of the underlying edge handle.
 
using EdgeHandle = HostGridEntity< dimension - 1 >
 The type of the underlying edge handle.
 
using VertexHandle = HostGridEntity< dimension >
 The type of the underlying vertex handle.
 
using ElementOutput = std::list< HostGridEntity< 0 > >
 The type of the element output.
 
using BoundaryEdgesOutput = std::list< FacetHandle >
 The type of the boundary edges output.
 
using Entity = typename Traits::template Codim< 0 >::Entity
 The type of a codim 0 entity.
 
using Facet = typename Traits::template Codim< 1 >::Entity
 The type of a codim 1 entity ('facet')
 
using Edge = typename Traits::template Codim< dimension - 1 >::Entity
 The type of a codim dim-1 entity ('edge')
 
using Vertex = typename Traits::template Codim< dimension >::Entity
 The type of a codim dim entity ('vertex')
 
using CachingEntity = MMeshCachingEntity< 0, dimension, const GridImp >
 The type of a caching entity.
 
using ConnectedComponent = MMeshConnectedComponent< const GridImp >
 The type used to store connected components of entities.
 
using InterfaceElement = typename Traits::template Codim< 1 >::Entity
 The type of an interface element.
 
using Intersection = typename Traits::LeafIntersection
 The type of an intersection.
 
using InterfaceGrid = MMeshInterfaceGrid< GridImp >
 The type of the interface grid.
 
using InterfaceEntity = typename InterfaceGrid::Traits::template Codim< 0 >::Entity
 The type of an interface grid entity.
 
using InterfaceGridConnectedComponent = MMeshInterfaceConnectedComponent< const InterfaceGrid >
 The type of a connected component of interface grid entities.
 
using RefinementInsertionPoint = RefinementInsertionPointStruct< Point, Edge, IdType, VertexHandle, InterfaceGridConnectedComponent >
 The type of a refinement insertion point.
 
using RemeshingIndicator = RatioIndicator< GridImp >
 The type of the employed remeshing indicator.
 
using RefinementStrategy = LongestEdgeRefinement< GridImp >
 The type of the employed refinement strategy.
 
using InterfaceRefinementStrategy = LongestEdgeRefinement< InterfaceGrid >
 The type of the employed refinement strategy for the interface grid.
 

Public Member Functions

 MMesh (HostGrid hostgrid)
 Constructor that takes a CGAL triangulation.
 
 MMesh (HostGrid hostgrid, BoundarySegments boundarySegments, BoundarySegments interfaceBoundarySegments, BoundaryIds boundaryIds, InterfaceSegments interfaceSegments)
 Constructor that takes additional about interface and boundary.
 
const GridImpThis () const
 This pointer to derived class.
 
GridImpThis ()
 
void update ()
 update the grid indices and ids
 
int maxLevel () const
 Return maximum level defined in this grid.
 
int size (int level, int codim) const
 Number of grid entities per level and codim.
 
size_t numBoundarySegments () const
 returns the number of boundary segments within the macro grid
 
const BoundarySegmentsboundarySegments () const
 returns the boundary segment to index map
 
const BoundaryIdsboundaryIds () const
 returns the boundary segment index to boundary id map
 
const InterfaceSegmentsinterfaceSegments () const
 returns the interface segment set
 
InterfaceSegmentsinterfaceSegments ()
 returns the interface segment set
 
void addInterface (const Intersection &intersection, const std::size_t marker=1)
 Add an intersection to the interface.
 
template<class I >
void addInterface (const I &intersection, const std::size_t marker=1)
 Add wrapped intersection to the interface.
 
int size (int codim) const
 number of leaf entities per codim in this process
 
int size (int level, GeometryType type) const
 number of entities per level, codim and geometry type in this process
 
int size (GeometryType type) const
 number of leaf entities per codim and geometry type in this process
 
const Traits::GlobalIdSet & globalIdSet () const
 Access to the GlobalIdSet.
 
const Traits::LocalIdSet & localIdSet () const
 Access to the LocalIdSet.
 
const MMeshLeafIndexSet< const GridImp > & levelIndexSet (int level) const
 Access to the LevelIndexSets.
 
const MMeshLeafIndexSet< const GridImp > & leafIndexSet () const
 Access to the LeafIndexSet.
 
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity entity (const EntitySeed &seed) const
 Create Entity from EntitySeed.
 
Vertex entity (const HostGridEntity< dimension > &vertexHandle) const
 Return the entity corresponding to a vertex handle.
 
Entity entity (const HostGridEntity< 0 > &elementHandle) const
 Return the entity corresponding to a element handle.
 
InterfaceElement entity (const FacetHandle &facetHandle) const
 
template<int d = dim>
std::enable_if_t< d==3, Edgeentity (const HostGridEntity< 2 > &edgeHandle) const
 
template<int codim>
Traits::template Codim< codim >::LevelIterator lbegin (int level) const
 Iterator to first entity of given codim on level.
 
template<int codim>
Traits::template Codim< codim >::LevelIterator lend (int level) const
 one past the end on this level
 
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LevelIterator lbegin (int level) const
 Iterator to first entity of given codim on level.
 
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LevelIterator lend (int level) const
 one past the end on this level
 
template<int codim>
Traits::template Codim< codim >::LeafIterator leafbegin () const
 Iterator to first leaf entity of given codim.
 
template<int codim>
Traits::template Codim< codim >::LeafIterator leafend () const
 one past the end of the sequence of leaf entities
 
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator leafbegin () const
 Iterator to first leaf entity of given codim.
 
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator leafend () const
 one past the end of the sequence of leaf entities
 
Traits::LevelIntersectionIterator ilevelbegin (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LevelIntersectionIterator ilevelend (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LeafIntersectionIterator ileafbegin (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LeafIntersectionIterator ileafend (const typename Traits::template Codim< 0 >::Entity &entity) const
 
template<int codim>
MMeshInterfaceIterator< codim, const GridImpinterfaceBegin (bool includeBoundary=false) const
 iterator to first interface entity
 
template<int codim>
MMeshInterfaceIterator< codim, const GridImpinterfaceEnd (bool includeBoundary=false) const
 one past the end of the sequence of interface entities
 
MMeshInterfaceVertexIterator< const GridImpinterfaceVerticesBegin (bool includeBoundary=false) const
 iterator to first interface entity
 
MMeshInterfaceVertexIterator< const GridImpinterfaceVerticesEnd (bool includeBoundary=false) const
 one past the end of the sequence of interface entities
 
bool isInterface (const Vertex &vertex) const
 Return if vertex is part of the interface.
 
bool isInterface (const Intersection &intersection) const
 Return if intersection is part of the interface.
 
template<class OtherIntersection >
bool isInterface (const OtherIntersection &intersection) const
 Return if intersection is part of the interface.
 
bool isInterface (const InterfaceElement &segment) const
 Return if element is part of the interface.
 
template<int d = dim>
std::enable_if_t< d==3, boolisInterface (const Edge &edge) const
 Return if edge in 3d is part of an interface segment.
 
bool isOnInterface (const Entity &entity) const
 Return if entity shares a facet with the interface.
 
InterfaceEntity asInterfaceEntity (const InterfaceElement &segment) const
 Return a codim 1 entity as a interface grid codim 0 entity.
 
InterfaceEntity asInterfaceEntity (const Intersection &intersection) const
 Return an intersection as a interface grid codim 0 entity.
 
template<class OtherIntersection >
InterfaceEntity asInterfaceEntity (const OtherIntersection &intersection) const
 Return an intersection as a interface grid codim 0 entity.
 
Intersection asIntersection (const InterfaceEntity &interfaceEntity) const
 Return an interface entity as intersection of a MMesh entity.
 
Intersection asIntersection (const Facet &facet) const
 Return a facet as intersection.
 
Intersection asIntersection (const FacetHandle &host) const
 Return a host facet as intersection.
 
const Entity locate (const GlobalCoordinate &p, const Entity &element={}) const
 Locate an entity by coordinate using CGAL's locate.
 
void globalRefine (int steps=1)
 Global refine.
 
bool mark (int refCount, const typename Traits::template Codim< 0 >::Entity &e) const
 Mark entity for refinement.
 
bool markElements ()
 Mark elements for adaption using the default remeshing indicator.
 
int getMark (const typename Traits::template Codim< 0 >::Entity &e) const
 Return refinement mark for entity.
 
bool preAdapt ()
 returns false, if at least one entity is marked for adaption
 
void refineEdge (const Entity &entity, const std::size_t edgeIndex, const double where=0.5)
 Refine edge manually.
 
void insertVertexInCell (const GlobalCoordinate &position)
 Insert vertex in cell manually.
 
void removeVertex (const typename InterfaceGrid::Traits::template Codim< dim - 1 >::Entity &interfaceVertex)
 Remove interface vertex manually.
 
void removeVertex (const Vertex &vertex)
 Remove vertex manually.
 
bool adapt ()
 Triggers the grid adaptation process.
 
bool ensureInterfaceMovement (std::vector< GlobalCoordinate > shifts)
 Mark elements such that after movement of interface vertices no cell degenerates.
 
bool ensureVertexMovement (std::vector< GlobalCoordinate > shifts)
 Mark elements such that after movement of vertices no cell degenerates.
 
template<class GridImp , class DataHandle >
bool adapt (AdaptDataHandleInterface< GridImp, DataHandle > &handle)
 Callback for the grid adaptation process with restrict/prolong.
 
void moveInterface (const std::vector< GlobalCoordinate > &shifts)
 Move interface vertices.
 
void moveVertices (const std::vector< GlobalCoordinate > &shifts)
 Move vertices.
 
template<typename Vertex >
void addToInterface (const Vertex &vertex, const GlobalCoordinate &p)
 
void postAdapt ()
 Clean up refinement markers.
 
unsigned int overlapSize (int codim) const
 Size of the overlap on the leaf level.
 
unsigned int ghostSize (int codim) const
 Size of the ghost cell layer on the leaf level.
 
unsigned int overlapSize (int level, int codim) const
 Size of the overlap on a given level.
 
unsigned int ghostSize (int level, int codim) const
 Size of the ghost cell layer on a given level.
 
void loadBalance ()
 Distributes this grid over the available nodes in a distributed machine.
 
template<class T >
bool loadBalance (const T &t)
 Distributes this grid over the available nodes in a distributed machine.
 
void loadBalance (int strategy, int minlevel, int depth, int maxlevel, int minelement)
 
const Communication< Comm > & comm () const
 Communication.
 
template<class Data , class InterfaceType , class CommunicationDirection >
void communicate (Data &dataHandle, InterfaceType interface, CommunicationDirection direction, int level=0) const
 
const HostGrid & getHostGrid () const
 Get reference to the underlying CGAL triangulation.
 
HostGrid & getHostGrid ()
 Get non-const reference to the underlying CGAL triangulation.
 
const InterfaceGridinterfaceGrid () const
 Get reference to the interface grid.
 
InterfaceGridinterfaceGrid ()
 Get a non-const reference to the interface grid.
 
const autointerfaceGridPtr ()
 Get a pointer to the interface grid.
 
const ConnectedComponentgetConnectedComponent (const Entity &entity) const
 
const RemeshingIndicatorindicator () const
 
RemeshingIndicatorindicator ()
 
const autodistance () const
 
int sequence () const
 
const PartitionHelper< GridImp > & partitionHelper () const
 

Static Public Attributes

static constexpr int dimension = dim
 The world dimension.
 

Detailed Description

template<class HostGrid, int dim>
class Dune::MMesh< HostGrid, dim >

The MMesh class templatized by the CGAL host grid type and the dimension. .

Member Typedef Documentation

◆ BoundaryEdgesOutput

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::BoundaryEdgesOutput = std::list<FacetHandle>

The type of the boundary edges output.

◆ BoundaryIds

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::BoundaryIds = std::unordered_map<std::size_t, std::size_t>

The boundary id map.

◆ BoundarySegments

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::BoundarySegments = std::unordered_map<IdType, std::size_t>

The boundary segment map.

◆ CachingEntity

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::CachingEntity = MMeshCachingEntity<0, dimension, const GridImp>

The type of a caching entity.

◆ ConnectedComponent

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::ConnectedComponent = MMeshConnectedComponent<const GridImp>

The type used to store connected components of entities.

◆ Edge

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::Edge = typename Traits::template Codim<dimension - 1>::Entity

The type of a codim dim-1 entity ('edge')

◆ EdgeHandle

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::EdgeHandle = HostGridEntity<dimension - 1>

The type of the underlying edge handle.

◆ ElementHandle

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::ElementHandle = HostGridEntity<0>

The type of the underlying element handle.

◆ ElementOutput

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::ElementOutput = std::list<HostGridEntity<0> >

The type of the element output.

◆ Entity

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::Entity = typename Traits::template Codim<0>::Entity

The type of a codim 0 entity.

◆ Facet

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::Facet = typename Traits::template Codim<1>::Entity

The type of a codim 1 entity ('facet')

◆ FacetHandle

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::FacetHandle = HostGridEntity<1>

The type of the underlying edge handle.

◆ FieldType

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::FieldType = typename Point::R::RT

The field type.

◆ GlobalCoordinate

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::GlobalCoordinate = Dune::FieldVector<FieldType, dimension>

The type used for coordinates.

◆ GridFamily

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::GridFamily = MMeshFamily<dim, HostGrid>

The grid family type.

◆ GridImp

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::GridImp = typename GridFamily::Traits::Grid

The grid implementation.

◆ GridPtrType

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::GridPtrType = std::unique_ptr<GridImp>

The unique pointer to the grid.

◆ HostGridEntity

template<class HostGrid , int dim>
template<int cd>
using Dune::MMesh< HostGrid, dim >::HostGridEntity = typename HostGridEntityChooser_<HostGridType, dimension, cd>::type

The type of the underlying entities.

◆ HostGridType

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::HostGridType = HostGrid

The hostgrid type.

◆ IdType

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::IdType = MMeshImpl::MultiId

The type of an id.

◆ InterfaceElement

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::InterfaceElement = typename Traits::template Codim<1>::Entity

The type of an interface element.

◆ InterfaceEntity

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::InterfaceEntity = typename InterfaceGrid::Traits::template Codim<0>::Entity

The type of an interface grid entity.

◆ InterfaceGrid

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::InterfaceGrid = MMeshInterfaceGrid<GridImp>

The type of the interface grid.

◆ InterfaceGridConnectedComponent

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::InterfaceGridConnectedComponent = MMeshInterfaceConnectedComponent<const InterfaceGrid>

The type of a connected component of interface grid entities.

◆ InterfaceRefinementStrategy

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::InterfaceRefinementStrategy = LongestEdgeRefinement<InterfaceGrid>

The type of the employed refinement strategy for the interface grid.

◆ InterfaceSegments

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::InterfaceSegments = std::unordered_map<IdType, std::size_t>

The interface segment set.

◆ Intersection

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::Intersection = typename Traits::LeafIntersection

The type of an intersection.

◆ LeafIterator

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::LeafIterator = typename Traits::template Codim<0>::LeafIterator

The leaf iterator.

◆ Point

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::Point = typename HostGrid::Point

The point type.

◆ RefinementInsertionPoint

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::RefinementInsertionPoint = RefinementInsertionPointStruct<Point, Edge, IdType, VertexHandle, InterfaceGridConnectedComponent>

The type of a refinement insertion point.

◆ RefinementStrategy

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::RefinementStrategy = LongestEdgeRefinement<GridImp>

The type of the employed refinement strategy.

◆ RemeshingIndicator

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::RemeshingIndicator = RatioIndicator<GridImp>

The type of the employed remeshing indicator.

◆ Traits

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::Traits = typename GridFamily::Traits

The Traits.

◆ Vertex

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::Vertex = typename Traits::template Codim<dimension>::Entity

The type of a codim dim entity ('vertex')

◆ VertexHandle

template<class HostGrid , int dim>
using Dune::MMesh< HostGrid, dim >::VertexHandle = HostGridEntity<dimension>

The type of the underlying vertex handle.

Constructor & Destructor Documentation

◆ MMesh() [1/2]

template<class HostGrid , int dim>
Dune::MMesh< HostGrid, dim >::MMesh ( HostGrid  hostgrid)
inlineexplicit

Constructor that takes a CGAL triangulation.

◆ MMesh() [2/2]

template<class HostGrid , int dim>
Dune::MMesh< HostGrid, dim >::MMesh ( HostGrid  hostgrid,
BoundarySegments  boundarySegments,
BoundarySegments  interfaceBoundarySegments,
BoundaryIds  boundaryIds,
InterfaceSegments  interfaceSegments 
)
inlineexplicit

Constructor that takes additional about interface and boundary.

Member Function Documentation

◆ adapt() [1/2]

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::adapt ( )
inline

Triggers the grid adaptation process.

Returns
if triangulation has changed

◆ adapt() [2/2]

template<class HostGrid , int dim>
template<class GridImp , class DataHandle >
bool Dune::MMesh< HostGrid, dim >::adapt ( AdaptDataHandleInterface< GridImp, DataHandle > &  handle)
inline

Callback for the grid adaptation process with restrict/prolong.

◆ addInterface() [1/2]

template<class HostGrid , int dim>
template<class I >
void Dune::MMesh< HostGrid, dim >::addInterface ( const I &  intersection,
const std::size_t  marker = 1 
)
inline

Add wrapped intersection to the interface.

◆ addInterface() [2/2]

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::addInterface ( const Intersection intersection,
const std::size_t  marker = 1 
)
inline

Add an intersection to the interface.

◆ addToInterface()

template<class HostGrid , int dim>
template<typename Vertex >
void Dune::MMesh< HostGrid, dim >::addToInterface ( const Vertex vertex,
const GlobalCoordinate p 
)
inline

Insert p into the triangulation and add a new interface segment between p and vertex

◆ asInterfaceEntity() [1/3]

template<class HostGrid , int dim>
InterfaceEntity Dune::MMesh< HostGrid, dim >::asInterfaceEntity ( const InterfaceElement segment) const
inline

Return a codim 1 entity as a interface grid codim 0 entity.

◆ asInterfaceEntity() [2/3]

template<class HostGrid , int dim>
InterfaceEntity Dune::MMesh< HostGrid, dim >::asInterfaceEntity ( const Intersection intersection) const
inline

Return an intersection as a interface grid codim 0 entity.

◆ asInterfaceEntity() [3/3]

template<class HostGrid , int dim>
InterfaceEntity Dune::MMesh< HostGrid, dim >::asInterfaceEntity ( const OtherIntersection intersection) const
inline

Return an intersection as a interface grid codim 0 entity.

◆ asIntersection() [1/3]

template<class HostGrid , int dim>
Intersection Dune::MMesh< HostGrid, dim >::asIntersection ( const Facet facet) const
inline

Return a facet as intersection.

◆ asIntersection() [2/3]

template<class HostGrid , int dim>
Intersection Dune::MMesh< HostGrid, dim >::asIntersection ( const FacetHandle host) const
inline

Return a host facet as intersection.

◆ asIntersection() [3/3]

template<class HostGrid , int dim>
Intersection Dune::MMesh< HostGrid, dim >::asIntersection ( const InterfaceEntity interfaceEntity) const
inline

Return an interface entity as intersection of a MMesh entity.

◆ boundaryIds()

template<class HostGrid , int dim>
const BoundaryIds & Dune::MMesh< HostGrid, dim >::boundaryIds ( ) const
inline

returns the boundary segment index to boundary id map

◆ boundarySegments()

template<class HostGrid , int dim>
const BoundarySegments & Dune::MMesh< HostGrid, dim >::boundarySegments ( ) const
inline

returns the boundary segment to index map

◆ comm()

template<class HostGrid , int dim>
const Communication< Comm > & Dune::MMesh< HostGrid, dim >::comm ( ) const
inline

◆ communicate()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::communicate ( Data &  dataHandle,
InterfaceType  interface,
CommunicationDirection  direction,
int  level = 0 
) const
inline

◆ distance()

template<class HostGrid , int dim>
const auto & Dune::MMesh< HostGrid, dim >::distance ( ) const
inline

◆ ensureInterfaceMovement()

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::ensureInterfaceMovement ( std::vector< GlobalCoordinate shifts)
inline

Mark elements such that after movement of interface vertices no cell degenerates.

Parameters
shiftsVector that maps interface vertex index to global coordinate
Returns
If elements have been marked.

◆ ensureVertexMovement()

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::ensureVertexMovement ( std::vector< GlobalCoordinate shifts)
inline

Mark elements such that after movement of vertices no cell degenerates.

Parameters
shiftsVector that maps vertex index to GlobalCoordinate
Returns
If elements have been marked.

◆ entity() [1/5]

template<class HostGrid , int dim>
template<class EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity Dune::MMesh< HostGrid, dim >::entity ( const EntitySeed seed) const
inline

Create Entity from EntitySeed.

◆ entity() [2/5]

template<class HostGrid , int dim>
InterfaceElement Dune::MMesh< HostGrid, dim >::entity ( const FacetHandle facetHandle) const
inline

◆ entity() [3/5]

template<class HostGrid , int dim>
Entity Dune::MMesh< HostGrid, dim >::entity ( const HostGridEntity< 0 > &  elementHandle) const
inline

Return the entity corresponding to a element handle.

◆ entity() [4/5]

template<class HostGrid , int dim>
template<int d = dim>
std::enable_if_t< d==3, Edge > Dune::MMesh< HostGrid, dim >::entity ( const HostGridEntity< 2 > &  edgeHandle) const
inline

◆ entity() [5/5]

template<class HostGrid , int dim>
Vertex Dune::MMesh< HostGrid, dim >::entity ( const HostGridEntity< dimension > &  vertexHandle) const
inline

Return the entity corresponding to a vertex handle.

◆ getConnectedComponent()

template<class HostGrid , int dim>
const ConnectedComponent & Dune::MMesh< HostGrid, dim >::getConnectedComponent ( const Entity entity) const
inline

◆ getHostGrid() [1/2]

template<class HostGrid , int dim>
HostGrid & Dune::MMesh< HostGrid, dim >::getHostGrid ( )
inline

Get non-const reference to the underlying CGAL triangulation.

◆ getHostGrid() [2/2]

template<class HostGrid , int dim>
const HostGrid & Dune::MMesh< HostGrid, dim >::getHostGrid ( ) const
inline

Get reference to the underlying CGAL triangulation.

◆ getMark()

template<class HostGrid , int dim>
int Dune::MMesh< HostGrid, dim >::getMark ( const typename Traits::template Codim< 0 >::Entity e) const
inline

Return refinement mark for entity.

Returns
refinement mark

◆ ghostSize() [1/2]

template<class HostGrid , int dim>
unsigned int Dune::MMesh< HostGrid, dim >::ghostSize ( int  codim) const
inline

Size of the ghost cell layer on the leaf level.

◆ ghostSize() [2/2]

template<class HostGrid , int dim>
unsigned int Dune::MMesh< HostGrid, dim >::ghostSize ( int  level,
int  codim 
) const
inline

Size of the ghost cell layer on a given level.

◆ globalIdSet()

template<class HostGrid , int dim>
const Traits::GlobalIdSet & Dune::MMesh< HostGrid, dim >::globalIdSet ( ) const
inline

Access to the GlobalIdSet.

◆ globalRefine()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::globalRefine ( int  steps = 1)
inline

Global refine.

Marks all elements for refinement and adapts the grid

◆ ileafbegin()

template<class HostGrid , int dim>
Traits::LeafIntersectionIterator Dune::MMesh< HostGrid, dim >::ileafbegin ( const typename Traits::template Codim< 0 >::Entity entity) const
inline

◆ ileafend()

template<class HostGrid , int dim>
Traits::LeafIntersectionIterator Dune::MMesh< HostGrid, dim >::ileafend ( const typename Traits::template Codim< 0 >::Entity entity) const
inline

◆ ilevelbegin()

template<class HostGrid , int dim>
Traits::LevelIntersectionIterator Dune::MMesh< HostGrid, dim >::ilevelbegin ( const typename Traits::template Codim< 0 >::Entity entity) const
inline

◆ ilevelend()

template<class HostGrid , int dim>
Traits::LevelIntersectionIterator Dune::MMesh< HostGrid, dim >::ilevelend ( const typename Traits::template Codim< 0 >::Entity entity) const
inline

◆ indicator() [1/2]

template<class HostGrid , int dim>
RemeshingIndicator & Dune::MMesh< HostGrid, dim >::indicator ( )
inline

◆ indicator() [2/2]

template<class HostGrid , int dim>
const RemeshingIndicator & Dune::MMesh< HostGrid, dim >::indicator ( ) const
inline

◆ insertVertexInCell()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::insertVertexInCell ( const GlobalCoordinate position)
inline

Insert vertex in cell manually.

◆ interfaceBegin()

template<class HostGrid , int dim>
template<int codim>
MMeshInterfaceIterator< codim, const GridImp > Dune::MMesh< HostGrid, dim >::interfaceBegin ( bool  includeBoundary = false) const
inline

iterator to first interface entity

◆ interfaceEnd()

template<class HostGrid , int dim>
template<int codim>
MMeshInterfaceIterator< codim, const GridImp > Dune::MMesh< HostGrid, dim >::interfaceEnd ( bool  includeBoundary = false) const
inline

one past the end of the sequence of interface entities

◆ interfaceGrid() [1/2]

template<class HostGrid , int dim>
InterfaceGrid & Dune::MMesh< HostGrid, dim >::interfaceGrid ( )
inline

Get a non-const reference to the interface grid.

◆ interfaceGrid() [2/2]

template<class HostGrid , int dim>
const InterfaceGrid & Dune::MMesh< HostGrid, dim >::interfaceGrid ( ) const
inline

Get reference to the interface grid.

◆ interfaceGridPtr()

template<class HostGrid , int dim>
const auto & Dune::MMesh< HostGrid, dim >::interfaceGridPtr ( )
inline

Get a pointer to the interface grid.

◆ interfaceSegments() [1/2]

template<class HostGrid , int dim>
InterfaceSegments & Dune::MMesh< HostGrid, dim >::interfaceSegments ( )
inline

returns the interface segment set

◆ interfaceSegments() [2/2]

template<class HostGrid , int dim>
const InterfaceSegments & Dune::MMesh< HostGrid, dim >::interfaceSegments ( ) const
inline

returns the interface segment set

◆ interfaceVerticesBegin()

template<class HostGrid , int dim>
MMeshInterfaceVertexIterator< const GridImp > Dune::MMesh< HostGrid, dim >::interfaceVerticesBegin ( bool  includeBoundary = false) const
inline

iterator to first interface entity

◆ interfaceVerticesEnd()

template<class HostGrid , int dim>
MMeshInterfaceVertexIterator< const GridImp > Dune::MMesh< HostGrid, dim >::interfaceVerticesEnd ( bool  includeBoundary = false) const
inline

one past the end of the sequence of interface entities

◆ isInterface() [1/5]

template<class HostGrid , int dim>
template<int d = dim>
std::enable_if_t< d==3, bool > Dune::MMesh< HostGrid, dim >::isInterface ( const Edge edge) const
inline

Return if edge in 3d is part of an interface segment.

◆ isInterface() [2/5]

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::isInterface ( const InterfaceElement segment) const
inline

Return if element is part of the interface.

◆ isInterface() [3/5]

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::isInterface ( const Intersection intersection) const
inline

Return if intersection is part of the interface.

◆ isInterface() [4/5]

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::isInterface ( const OtherIntersection intersection) const
inline

Return if intersection is part of the interface.

◆ isInterface() [5/5]

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::isInterface ( const Vertex vertex) const
inline

Return if vertex is part of the interface.

◆ isOnInterface()

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::isOnInterface ( const Entity entity) const
inline

Return if entity shares a facet with the interface.

◆ lbegin() [1/2]

template<class HostGrid , int dim>
template<int codim>
Traits::template Codim< codim >::LevelIterator Dune::MMesh< HostGrid, dim >::lbegin ( int  level) const
inline

Iterator to first entity of given codim on level.

◆ lbegin() [2/2]

template<class HostGrid , int dim>
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LevelIterator Dune::MMesh< HostGrid, dim >::lbegin ( int  level) const
inline

Iterator to first entity of given codim on level.

◆ leafbegin() [1/2]

template<class HostGrid , int dim>
template<int codim>
Traits::template Codim< codim >::LeafIterator Dune::MMesh< HostGrid, dim >::leafbegin ( ) const
inline

Iterator to first leaf entity of given codim.

◆ leafbegin() [2/2]

template<class HostGrid , int dim>
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator Dune::MMesh< HostGrid, dim >::leafbegin ( ) const
inline

Iterator to first leaf entity of given codim.

◆ leafend() [1/2]

template<class HostGrid , int dim>
template<int codim>
Traits::template Codim< codim >::LeafIterator Dune::MMesh< HostGrid, dim >::leafend ( ) const
inline

one past the end of the sequence of leaf entities

◆ leafend() [2/2]

template<class HostGrid , int dim>
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator Dune::MMesh< HostGrid, dim >::leafend ( ) const
inline

one past the end of the sequence of leaf entities

◆ leafIndexSet()

template<class HostGrid , int dim>
const MMeshLeafIndexSet< const GridImp > & Dune::MMesh< HostGrid, dim >::leafIndexSet ( ) const
inline

Access to the LeafIndexSet.

◆ lend() [1/2]

template<class HostGrid , int dim>
template<int codim>
Traits::template Codim< codim >::LevelIterator Dune::MMesh< HostGrid, dim >::lend ( int  level) const
inline

one past the end on this level

◆ lend() [2/2]

template<class HostGrid , int dim>
template<int codim, PartitionIteratorType PiType>
Traits::template Codim< codim >::template Partition< PiType >::LevelIterator Dune::MMesh< HostGrid, dim >::lend ( int  level) const
inline

one past the end on this level

◆ levelIndexSet()

template<class HostGrid , int dim>
const MMeshLeafIndexSet< const GridImp > & Dune::MMesh< HostGrid, dim >::levelIndexSet ( int  level) const
inline

Access to the LevelIndexSets.

◆ loadBalance() [1/3]

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::loadBalance ( )
inline

Distributes this grid over the available nodes in a distributed machine.

◆ loadBalance() [2/3]

template<class HostGrid , int dim>
template<class T >
bool Dune::MMesh< HostGrid, dim >::loadBalance ( const T &  t)
inline

Distributes this grid over the available nodes in a distributed machine.

Parameters
minlevelThe coarsest grid level that gets distributed
maxleveldoes currently get ignored

◆ loadBalance() [3/3]

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::loadBalance ( int  strategy,
int  minlevel,
int  depth,
int  maxlevel,
int  minelement 
)
inline

◆ localIdSet()

template<class HostGrid , int dim>
const Traits::LocalIdSet & Dune::MMesh< HostGrid, dim >::localIdSet ( ) const
inline

Access to the LocalIdSet.

◆ locate()

template<class HostGrid , int dim>
const Entity Dune::MMesh< HostGrid, dim >::locate ( const GlobalCoordinate p,
const Entity element = {} 
) const
inline

Locate an entity by coordinate using CGAL's locate.

◆ mark()

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::mark ( int  refCount,
const typename Traits::template Codim< 0 >::Entity e 
) const
inline

Mark entity for refinement.

This only works for entities of codim 0.

◆ markElements()

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::markElements ( )
inline

Mark elements for adaption using the default remeshing indicator.

Returns
if elements have been marked.

◆ maxLevel()

template<class HostGrid , int dim>
int Dune::MMesh< HostGrid, dim >::maxLevel ( ) const
inline

Return maximum level defined in this grid.

Levels are numbered 0 ... maxlevel with 0 the coarsest level.

◆ moveInterface()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::moveInterface ( const std::vector< GlobalCoordinate > &  shifts)
inline

Move interface vertices.

Parameters
shiftsVector that maps interface vertex indices to GlobalCoordinate

◆ moveVertices()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::moveVertices ( const std::vector< GlobalCoordinate > &  shifts)
inline

Move vertices.

Parameters
shiftsVector that maps interface vertex indices to GlobalCoordinate

◆ numBoundarySegments()

template<class HostGrid , int dim>
size_t Dune::MMesh< HostGrid, dim >::numBoundarySegments ( ) const
inline

returns the number of boundary segments within the macro grid

◆ overlapSize() [1/2]

template<class HostGrid , int dim>
unsigned int Dune::MMesh< HostGrid, dim >::overlapSize ( int  codim) const
inline

Size of the overlap on the leaf level.

◆ overlapSize() [2/2]

template<class HostGrid , int dim>
unsigned int Dune::MMesh< HostGrid, dim >::overlapSize ( int  level,
int  codim 
) const
inline

Size of the overlap on a given level.

◆ partitionHelper()

template<class HostGrid , int dim>
const PartitionHelper< GridImp > & Dune::MMesh< HostGrid, dim >::partitionHelper ( ) const
inline

◆ postAdapt()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::postAdapt ( )
inline

Clean up refinement markers.

◆ preAdapt()

template<class HostGrid , int dim>
bool Dune::MMesh< HostGrid, dim >::preAdapt ( )
inline

returns false, if at least one entity is marked for adaption

◆ refineEdge()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::refineEdge ( const Entity entity,
const std::size_t  edgeIndex,
const double  where = 0.5 
)
inline

Refine edge manually.

◆ removeVertex() [1/2]

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::removeVertex ( const typename InterfaceGrid::Traits::template Codim< dim - 1 >::Entity interfaceVertex)
inline

Remove interface vertex manually.

◆ removeVertex() [2/2]

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::removeVertex ( const Vertex vertex)
inline

Remove vertex manually.

◆ sequence()

template<class HostGrid , int dim>
int Dune::MMesh< HostGrid, dim >::sequence ( ) const
inline

◆ size() [1/4]

template<class HostGrid , int dim>
int Dune::MMesh< HostGrid, dim >::size ( GeometryType  type) const
inline

number of leaf entities per codim and geometry type in this process

◆ size() [2/4]

template<class HostGrid , int dim>
int Dune::MMesh< HostGrid, dim >::size ( int  codim) const
inline

number of leaf entities per codim in this process

◆ size() [3/4]

template<class HostGrid , int dim>
int Dune::MMesh< HostGrid, dim >::size ( int  level,
GeometryType  type 
) const
inline

number of entities per level, codim and geometry type in this process

◆ size() [4/4]

template<class HostGrid , int dim>
int Dune::MMesh< HostGrid, dim >::size ( int  level,
int  codim 
) const
inline

Number of grid entities per level and codim.

◆ This() [1/2]

template<class HostGrid , int dim>
GridImp * Dune::MMesh< HostGrid, dim >::This ( )
inline

◆ This() [2/2]

template<class HostGrid , int dim>
const GridImp * Dune::MMesh< HostGrid, dim >::This ( ) const
inline

This pointer to derived class.

◆ update()

template<class HostGrid , int dim>
void Dune::MMesh< HostGrid, dim >::update ( )
inline

update the grid indices and ids

Member Data Documentation

◆ dimension

template<class HostGrid , int dim>
constexpr int Dune::MMesh< HostGrid, dim >::dimension = dim
staticconstexpr

The world dimension.


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