|
dune-mmesh 1.4.1-git
|
Loading...
Searching...
No Matches
grid/mmesh.hh
Go to the documentation of this file.
The MMeshInterfaceIterator class.
Helpers for conversion from CGAL::Point_x to DUNE::FieldVector.
The CutSetTriangulation class This class computes the overlapping polytope of to intersecting triangl...
int id()
void seed(const Vertex &vertex)
int size() const
size_type dim() const
#define DUNE_THROW(E,...)
const IndexPair * pair(const std::size_t &local) const
constexpr std::integer_sequence< T, II..., T(IN)> push_back(std::integer_sequence< T, II... >, std::integral_constant< T, IN >={})
static FieldVector< typename Kernel::RT, 2 > makeFieldVector(const CGAL::Point_2< Kernel > &p)
Helper function to create DUNE::FieldVector from CGAL::Point_2.
Definition pointfieldvector.hh:20
static auto makePoint(const Dune::FieldVector< ctype, 2 > &v)
Convert FieldVector to CGAL Point 2.
Definition pointfieldvector.hh:63
auto incidentElements(const Entity &entity)
Elements incident to a given entity.
Definition rangegenerators.hh:13
MMeshLeafIteratorImp< codim, pitype, GridImp > MMeshLeafIterator
Definition grid/leafiterator.hh:24
auto incidentInterfaceElements(const Entity &entity)
Incident interface elements.
Definition rangegenerators.hh:112
CommunicationDirection
InterfaceType
InteriorEntity
GhostEntity
BackwardCommunication
ForwardCommunication
InteriorBorder_All_Interface
All_All_Interface
Implementation & impl()
Grid< dim, dimworld, ct, GridFamily >::LeafGridView leafGridView(const Grid< dim, dimworld, ct, GridFamily > &grid)
IteratorRange<... > elements(const GV &gv)
constexpr Ghost ghost
const EntityType & entity() const
virtual void initialize(LocalFunctionType *) const=0
simplex
static const bool v
static const unsigned int topologyId
static const bool v
static const bool v
static const bool v
static const bool v
static const bool v
static const bool v
Implementation & impl()
GridImp::template Codim< cd >::Entity Entity
IteratorImp Implementation
static constexpr int codimension
auto size(GeometryType type) const
IndexType index(const typename Traits::template Codim< cc >::Entity &e) const
StackAllocator< U, S > other
Definition cutsettriangulation.hh:20
Definition grid/mmesh.hh:62
GridTraits< dim, dim, MMesh< HostGrid, dim >, MMeshGeometry, MMeshEntity, MMeshLeafIterator, MMeshLeafIntersection, MMeshLeafIntersection, MMeshLeafIntersectionIterator, MMeshLeafIntersectionIterator, MMeshHierarchicIterator, MMeshLeafIterator, MMeshLeafIndexSet< const MMesh< HostGrid, dim > >, MMeshLeafIndexSet< const MMesh< HostGrid, dim > >, MMeshGlobalIdSet< const MMesh< HostGrid, dim > >, MMeshImpl::MultiId, MMeshGlobalIdSet< const MMesh< HostGrid, dim > >, MMeshImpl::MultiId, Communication< Comm >, DefaultLevelGridViewTraits, DefaultLeafGridViewTraits, MMeshEntitySeed > Traits
Definition grid/mmesh.hh:77
The MMesh class templatized by the CGAL host grid type and the dimension. .
Definition grid/mmesh.hh:158
const ConnectedComponent & getConnectedComponent(const Entity &entity) const
Definition grid/mmesh.hh:1764
Dune::FieldVector< FieldType, dimension > GlobalCoordinate
The type used for coordinates.
Definition grid/mmesh.hh:204
const MMeshLeafIndexSet< const GridImp > & leafIndexSet() const
Access to the LeafIndexSet.
Definition grid/mmesh.hh:438
std::enable_if_t< d==3, bool > isInterface(const Edge &edge) const
Return if edge in 3d is part of an interface segment.
Definition grid/mmesh.hh:625
MMeshCachingEntity< 0, dimension, const GridImp > CachingEntity
The type of a caching entity.
Definition grid/mmesh.hh:242
std::list< HostGridEntity< 0 > > ElementOutput
The type of the element output.
Definition grid/mmesh.hh:224
Intersection asIntersection(const Facet &facet) const
Return a facet as intersection.
Definition grid/mmesh.hh:681
bool isInterface(const OtherIntersection &intersection) const
Return if intersection is part of the interface.
Definition grid/mmesh.hh:602
MMeshInterfaceVertexIterator< const GridImp > interfaceVerticesBegin(bool includeBoundary=false) const
iterator to first interface entity
Definition grid/mmesh.hh:573
bool preAdapt()
returns false, if at least one entity is marked for adaption
Definition grid/mmesh.hh:762
InterfaceEntity asInterfaceEntity(const Intersection &intersection) const
Return an intersection as a interface grid codim 0 entity.
Definition grid/mmesh.hh:662
std::unordered_map< IdType, std::size_t > InterfaceSegments
The interface segment set.
Definition grid/mmesh.hh:185
HostGridEntity< 0 > ElementHandle
The type of the underlying element handle.
Definition grid/mmesh.hh:212
Traits::template Codim< codim >::LeafIterator leafend() const
one past the end of the sequence of leaf entities
Definition grid/mmesh.hh:513
const InterfaceGrid & interfaceGrid() const
Get reference to the interface grid.
Definition grid/mmesh.hh:1756
typename HostGridEntityChooser_< HostGridType, dimension, cd >::type HostGridEntity
The type of the underlying entities.
Definition grid/mmesh.hh:209
MMesh(HostGrid hostgrid)
Constructor that takes a CGAL triangulation.
Definition grid/mmesh.hh:279
void removeVertex(const Vertex &vertex)
Remove vertex manually.
Definition grid/mmesh.hh:814
int size(int level, int codim) const
Number of grid entities per level and codim.
Definition grid/mmesh.hh:348
LongestEdgeRefinement< InterfaceGrid > InterfaceRefinementStrategy
The type of the employed refinement strategy for the interface grid.
Definition grid/mmesh.hh:276
bool mark(int refCount, const typename Traits::template Codim< 0 >::Entity &e) const
Mark entity for refinement.
Definition grid/mmesh.hh:725
const HostGrid & getHostGrid() const
Get reference to the underlying CGAL triangulation.
Definition grid/mmesh.hh:1750
bool loadBalance(const T &t)
Distributes this grid over the available nodes in a distributed machine.
Definition grid/mmesh.hh:1695
Traits::template Codim< codim >::LeafIterator leafbegin() const
Iterator to first leaf entity of given codim.
Definition grid/mmesh.hh:507
bool isOnInterface(const Entity &entity) const
Return if entity shares a facet with the interface.
Definition grid/mmesh.hh:649
HostGridEntity< dimension > VertexHandle
The type of the underlying vertex handle.
Definition grid/mmesh.hh:221
const auto & interfaceGridPtr()
Get a pointer to the interface grid.
Definition grid/mmesh.hh:1762
unsigned int overlapSize(int codim) const
Size of the overlap on the leaf level.
Definition grid/mmesh.hh:1649
typename Traits::template Codim< 0 >::Entity Entity
The type of a codim 0 entity.
Definition grid/mmesh.hh:230
const MMeshLeafIndexSet< const GridImp > & levelIndexSet(int level) const
Access to the LevelIndexSets.
Definition grid/mmesh.hh:430
unsigned int ghostSize(int codim) const
Size of the ghost cell layer on the leaf level.
Definition grid/mmesh.hh:1652
const InterfaceSegments & interfaceSegments() const
returns the interface segment set
Definition grid/mmesh.hh:366
Traits::LevelIntersectionIterator ilevelbegin(const typename Traits::template Codim< 0 >::Entity &entity) const
Definition grid/mmesh.hh:533
MMeshConnectedComponent< const GridImp > ConnectedComponent
The type used to store connected components of entities.
Definition grid/mmesh.hh:245
typename InterfaceGrid::Traits::template Codim< 0 >::Entity InterfaceEntity
The type of an interface grid entity.
Definition grid/mmesh.hh:258
int size(GeometryType type) const
number of leaf entities per codim and geometry type in this process
Definition grid/mmesh.hh:417
const BoundarySegments & boundarySegments() const
returns the boundary segment to index map
Definition grid/mmesh.hh:358
MMeshInterfaceIterator< codim, const GridImp > interfaceEnd(bool includeBoundary=false) const
one past the end of the sequence of interface entities
Definition grid/mmesh.hh:564
typename GridFamily::Traits::Grid GridImp
The grid implementation.
Definition grid/mmesh.hh:195
int getMark(const typename Traits::template Codim< 0 >::Entity &e) const
Return refinement mark for entity.
Definition grid/mmesh.hh:757
typename Traits::template Codim< 1 >::Entity Facet
The type of a codim 1 entity ('facet')
Definition grid/mmesh.hh:233
Traits::LevelIntersectionIterator ilevelend(const typename Traits::template Codim< 0 >::Entity &entity) const
Definition grid/mmesh.hh:538
InterfaceElement entity(const FacetHandle &facetHandle) const
Definition grid/mmesh.hh:466
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator leafend() const
one past the end of the sequence of leaf entities
Definition grid/mmesh.hh:529
Traits::template Codim< codim >::LevelIterator lbegin(int level) const
Iterator to first entity of given codim on level.
Definition grid/mmesh.hh:478
Traits::template Codim< EntitySeed::codimension >::Entity entity(const EntitySeed &seed) const
Create Entity from EntitySeed.
Definition grid/mmesh.hh:444
InterfaceSegments & interfaceSegments()
returns the interface segment set
Definition grid/mmesh.hh:371
InterfaceGrid & interfaceGrid()
Get a non-const reference to the interface grid.
Definition grid/mmesh.hh:1759
int size(int level, GeometryType type) const
number of entities per level, codim and geometry type in this process
Definition grid/mmesh.hh:410
static constexpr int dimension
The world dimension.
Definition grid/mmesh.hh:161
bool isInterface(const Intersection &intersection) const
Return if intersection is part of the interface.
Definition grid/mmesh.hh:596
typename Traits::template Codim< 1 >::Entity InterfaceElement
The type of an interface element.
Definition grid/mmesh.hh:248
HostGrid & getHostGrid()
Get non-const reference to the underlying CGAL triangulation.
Definition grid/mmesh.hh:1753
typename Traits::template Codim< 0 >::LeafIterator LeafIterator
The leaf iterator.
Definition grid/mmesh.hh:201
void addToInterface(const Vertex &vertex, const GlobalCoordinate &p)
Definition grid/mmesh.hh:1435
const Communication< Comm > & comm() const
Communication.
Definition grid/mmesh.hh:1705
void addInterface(const Intersection &intersection, const std::size_t marker=1)
Add an intersection to the interface.
Definition grid/mmesh.hh:374
bool adapt(AdaptDataHandleInterface< GridImp, DataHandle > &handle)
Callback for the grid adaptation process with restrict/prolong.
Definition grid/mmesh.hh:1138
MMeshInterfaceConnectedComponent< const InterfaceGrid > InterfaceGridConnectedComponent
The type of a connected component of interface grid entities.
Definition grid/mmesh.hh:262
bool isInterface(const Vertex &vertex) const
Return if vertex is part of the interface.
Definition grid/mmesh.hh:591
RatioIndicator< GridImp > RemeshingIndicator
The type of the employed remeshing indicator.
Definition grid/mmesh.hh:270
bool isInterface(const InterfaceElement &segment) const
Return if element is part of the interface.
Definition grid/mmesh.hh:607
bool ensureVertexMovement(std::vector< GlobalCoordinate > shifts)
Mark elements such that after movement of vertices no cell degenerates.
Definition grid/mmesh.hh:1094
void loadBalance()
Distributes this grid over the available nodes in a distributed machine.
Definition grid/mmesh.hh:1683
Traits::template Codim< codim >::template Partition< PiType >::LevelIterator lend(int level) const
one past the end on this level
Definition grid/mmesh.hh:501
typename Traits::template Codim< dimension - 1 >::Entity Edge
The type of a codim dim-1 entity ('edge')
Definition grid/mmesh.hh:236
MMesh(HostGrid hostgrid, BoundarySegments boundarySegments, BoundarySegments interfaceBoundarySegments, BoundaryIds boundaryIds, InterfaceSegments interfaceSegments)
Constructor that takes additional about interface and boundary.
Definition grid/mmesh.hh:282
const GridImp * This() const
This pointer to derived class.
Definition grid/mmesh.hh:304
Traits::LeafIntersectionIterator ileafend(const typename Traits::template Codim< 0 >::Entity &entity) const
Definition grid/mmesh.hh:548
Traits::template Codim< codim >::template Partition< PiType >::LevelIterator lbegin(int level) const
Iterator to first entity of given codim on level.
Definition grid/mmesh.hh:493
Intersection asIntersection(const InterfaceEntity &interfaceEntity) const
Return an interface entity as intersection of a MMesh entity.
Definition grid/mmesh.hh:675
void communicate(Data &dataHandle, InterfaceType interface, CommunicationDirection direction, int level=0) const
Definition grid/mmesh.hh:1708
bool ensureInterfaceMovement(std::vector< GlobalCoordinate > shifts)
Mark elements such that after movement of interface vertices no cell degenerates.
Definition grid/mmesh.hh:920
const Traits::LocalIdSet & localIdSet() const
Access to the LocalIdSet.
Definition grid/mmesh.hh:425
void insertVertexInCell(const GlobalCoordinate &position)
Insert vertex in cell manually.
Definition grid/mmesh.hh:796
void refineEdge(const Entity &entity, const std::size_t edgeIndex, const double where=0.5)
Refine edge manually.
Definition grid/mmesh.hh:768
typename Traits::template Codim< dimension >::Entity Vertex
The type of a codim dim entity ('vertex')
Definition grid/mmesh.hh:239
void removeVertex(const typename InterfaceGrid::Traits::template Codim< dim - 1 >::Entity &interfaceVertex)
Remove interface vertex manually.
Definition grid/mmesh.hh:806
size_t numBoundarySegments() const
returns the number of boundary segments within the macro grid
Definition grid/mmesh.hh:355
int maxLevel() const
Return maximum level defined in this grid.
Definition grid/mmesh.hh:344
Vertex entity(const HostGridEntity< dimension > &vertexHandle) const
Return the entity corresponding to a vertex handle.
Definition grid/mmesh.hh:455
void addInterface(const I &intersection, const std::size_t marker=1)
Add wrapped intersection to the interface.
Definition grid/mmesh.hh:402
LongestEdgeRefinement< GridImp > RefinementStrategy
The type of the employed refinement strategy.
Definition grid/mmesh.hh:273
HostGridEntity< 1 > FacetHandle
The type of the underlying edge handle.
Definition grid/mmesh.hh:215
void loadBalance(int strategy, int minlevel, int depth, int maxlevel, int minelement)
Definition grid/mmesh.hh:1699
unsigned int ghostSize(int level, int codim) const
Size of the ghost cell layer on a given level.
Definition grid/mmesh.hh:1676
const Traits::GlobalIdSet & globalIdSet() const
Access to the GlobalIdSet.
Definition grid/mmesh.hh:420
MMeshInterfaceGrid< GridImp > InterfaceGrid
The type of the interface grid.
Definition grid/mmesh.hh:254
MMeshInterfaceIterator< codim, const GridImp > interfaceBegin(bool includeBoundary=false) const
iterator to first interface entity
Definition grid/mmesh.hh:555
Traits::LeafIntersectionIterator ileafbegin(const typename Traits::template Codim< 0 >::Entity &entity) const
Definition grid/mmesh.hh:543
MMeshInterfaceVertexIterator< const GridImp > interfaceVerticesEnd(bool includeBoundary=false) const
one past the end of the sequence of interface entities
Definition grid/mmesh.hh:582
InterfaceEntity asInterfaceEntity(const OtherIntersection &intersection) const
Return an intersection as a interface grid codim 0 entity.
Definition grid/mmesh.hh:669
bool markElements()
Mark elements for adaption using the default remeshing indicator.
Definition grid/mmesh.hh:736
const PartitionHelper< GridImp > & partitionHelper() const
Definition grid/mmesh.hh:1781
typename Traits::LeafIntersection Intersection
The type of an intersection.
Definition grid/mmesh.hh:251
Traits::template Codim< codim >::LevelIterator lend(int level) const
one past the end on this level
Definition grid/mmesh.hh:485
HostGridEntity< dimension - 1 > EdgeHandle
The type of the underlying edge handle.
Definition grid/mmesh.hh:218
void moveVertices(const std::vector< GlobalCoordinate > &shifts)
Move vertices.
Definition grid/mmesh.hh:1421
std::enable_if_t< d==3, Edge > entity(const HostGridEntity< 2 > &edgeHandle) const
Definition grid/mmesh.hh:471
std::unordered_map< IdType, std::size_t > BoundarySegments
The boundary segment map.
Definition grid/mmesh.hh:179
MMeshFamily< dim, HostGrid > GridFamily
The grid family type.
Definition grid/mmesh.hh:167
const BoundaryIds & boundaryIds() const
returns the boundary segment index to boundary id map
Definition grid/mmesh.hh:363
void moveInterface(const std::vector< GlobalCoordinate > &shifts)
Move interface vertices.
Definition grid/mmesh.hh:1407
const Entity locate(const GlobalCoordinate &p, const Entity &element={}) const
Locate an entity by coordinate using CGAL's locate.
Definition grid/mmesh.hh:699
InterfaceEntity asInterfaceEntity(const InterfaceElement &segment) const
Return a codim 1 entity as a interface grid codim 0 entity.
Definition grid/mmesh.hh:657
unsigned int overlapSize(int level, int codim) const
Size of the overlap on a given level.
Definition grid/mmesh.hh:1671
Entity entity(const HostGridEntity< 0 > &elementHandle) const
Return the entity corresponding to a element handle.
Definition grid/mmesh.hh:461
RefinementInsertionPointStruct< Point, Edge, IdType, VertexHandle, InterfaceGridConnectedComponent > RefinementInsertionPoint
The type of a refinement insertion point.
Definition grid/mmesh.hh:267
Intersection asIntersection(const FacetHandle &host) const
Return a host facet as intersection.
Definition grid/mmesh.hh:687
int size(int codim) const
number of leaf entities per codim in this process
Definition grid/mmesh.hh:407
Traits::template Codim< codim >::template Partition< PiType >::LeafIterator leafbegin() const
Iterator to first leaf entity of given codim.
Definition grid/mmesh.hh:521
std::unordered_map< std::size_t, std::size_t > BoundaryIds
The boundary id map.
Definition grid/mmesh.hh:182
const HostGridEntity & hostEntity() const
returns the host entity
Definition grid/entity.hh:341
Iterator over all element neighborsMesh entities of codimension 0 ("elements") allow to visit all nei...
Definition grid/intersectioniterator.hh:28
Iterator over the descendants of an entity.Mesh entities of codimension 0 ("elements") allow to visit...
Definition grid/hierarchiciterator.hh:22
The EntitySeed class provides the minimal information needed to restore an Entity using the grid....
Definition grid/entityseed.hh:19
Definition grid/indexsets.hh:17
std::size_t size(GeometryType type) const
get number of entities of given type
Definition grid/indexsets.hh:128
Definition grid/indexsets.hh:301
An intersection with a leaf neighbor elementMesh entities of codimension 0 ("elements") allow to visi...
Definition grid/intersections.hh:35
Definition multiid.hh:15
static Point lineIntersectionPoint(const Point &p1, const Point &p2, const Point &q1, const Point &q2)
Definition polygoncutting.hh:100
const MMeshInterfaceGridLeafIndexSet< const GridImp > & leafIndexSet() const
Access to the LeafIndexSet.
Definition mmesh/interface/grid.hh:236
int getMark(const typename Traits::template Codim< 0 >::Entity &e) const
Return refinement mark for entity.
Definition mmesh/interface/grid.hh:369
Traits::template Codim< EntitySeed::codimension >::Entity entity(const EntitySeed &seed) const
Create Entity from EntitySeed.
Definition mmesh/interface/grid.hh:242
std::enable_if_t< d==2, const MMeshInterfaceEntity< 0 > > mirrorHostEntity(const MMeshInterfaceEntity< 0 > &other) const
Mirror a host entity (2d)
Definition mmesh/interface/grid.hh:602
std::enable_if_t< codim==0, IndexType > index(const Entity< codim, dimension, GridImp, MMeshInterfaceGridEntity > &e) const
get index of an codim 0 entity
Definition interface/indexsets.hh:55
Definition partitionhelper.hh:13
void computeInterfacePartitions()
Compute partition type for every interface entity.
Definition partitionhelper.hh:337
static auto refinement(const Element &element)
Returns the refinement/coarsening point for each grid cell.
Definition longestedgerefinement.hh:42
static int boundaryFlag(const Vertex &v)
return if vertex is removable at the boundary
Definition longestedgerefinement.hh:124
static Vertex coarsening(const Element &element)
return coarsening vertex (vertex of shortest edge)
Definition longestedgerefinement.hh:65
static bool isRemoveable(const Vertex &vertex)
return if interface vertex is neither a tip nor a junction
Definition longestedgerefinement.hh:155
void update()
Update the distances of all vertices.
Definition ratioindicator.hh:94
const DistanceType & distance() const
Returns distance object.
Definition ratioindicator.hh:185
std::ostream & operator<<(std::ostream &stream, const Dune::Entity< codim, dim, const Dune::MMesh< HostGrid, dim >, Dune::MMeshEntity > &entity)
Definition grid/mmesh.hh:2015
The MMeshInterfaceConnectedComponent class.
The MMeshInterfaceGridEntity class.
The MMeshInterfaceGridEntitySeed class.
The MMeshInterfaceGridGeometry class and its specializations Inherits from Dune::AffineGeometry.
The MMeshIncidentIterator class.
The index and id sets for the MMesh class.
The intersection iterator for the MMesh class.
T clear(T... args)
T count(T... args)
T emplace_back(T... args)
T end(T... args)
T endl(T... args)
T erase(T... args)
T find(T... args)
T insert(T... args)
T make_pair(T... args)
T min(T... args)
T push_back(T... args)
T size(T... args)
T sort(T... args)
T to_string(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8