36 #ifndef _NEIGHBORMARKER_H_ 37 #define _NEIGHBORMARKER_H_ 1
39 #include <boost/unordered_set.hpp> 41 #include <lifev/core/LifeV.hpp> 43 #include <lifev/core/mesh/Marker.hpp> 44 #include <lifev/core/mesh/RegionMesh.hpp> 45 #include <unordered_set> 74 Marker<FlagPolicy>::operator= ( marker );
141 template <
typename MeshType>
149 for (
UInt ie = 0; ie < mesh.numEdges(); ie++ )
151 ID id0 = mesh.edge ( ie ).point ( 0 ).id();
152 ID id1 = mesh.edge ( ie ).point ( 1 ).id();
154 ASSERT ( mesh.point ( id0 ).id() == id0 ,
"the mesh has been reordered, the point must be found" );
155 ASSERT ( mesh.point ( id1 ).id() == id1 ,
"the mesh has been reordered, the point must be found" );
157 mesh.point ( id0 ).pointNeighbors().insert ( id1 );
158 mesh.point ( id1 ).pointNeighbors().insert ( id0 );
162 template <
typename MeshType>
165 neighborList.resize ( mesh.numGlobalPoints() );
168 for (
UInt ie = 0; ie < mesh.numEdges(); ie++ )
170 ID id0 = mesh.edge ( ie ).point ( 0 ).id();
171 ID id1 = mesh.edge ( ie ).point ( 1 ).id();
173 ASSERT ( mesh.point ( id0 ).id() == id0 && mesh.point ( id1 ).id() == id1,
174 "the mesh has been reordered, the point must be found" );
176 neighborList[ id0 ].insert ( id1 );
177 neighborList[ id1 ].insert ( id0 );
NeighborMarker< FlagPolicy > & operator=(NeighborMarker< FlagPolicy > const &marker)
void setPointNeighbors(neighbors_Type const &pointNeighbors)
neighbors_Type::iterator neighborIterator_Type
MarkerIDStandardPolicy - Class that defines the standard policies on Marker Ids.
void createPointNeighbors(MeshType &mesh)
this routine generates point neighbors for the given mesh
neighbors_Type const & pointNeighbors() const
Marker< MT > volumeMarker_Type
The marker used for the Volumes.
ID markerID_Type
markerID_Type is the type used to store the geometric entity marker IDs
void updateInverseJacobian(const UInt &iQuadPt)
neighbors_Type M_pointNeighbors
NeighborMarkerCommon< MarkerIDStandardPolicy > neighborMarkerCommon_Type
The NeighborMarkerCommon: uses all defaults except for Points.
Marker< MT > faceMarker_Type
The marker used for the Faces.
neighbors_Type::const_iterator neighborConstIterator_Type
Marker< MT > edgeMarker_Type
The marker used for the Edges.
NeighborMarker< MT > pointMarker_Type
The marker used for the Points.
std::unordered_set< ID > neighbors_Type
Marker< MT > regionMarker_Type
The marker used for the Regions.
void createPointNeighbors(MeshType const &mesh, neighborList_Type &neighborList)
std::vector< neighbors_Type > neighborList_Type
Marker - Base marker class.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
neighbors_Type & pointNeighbors()
NeighborMarker(markerID_Type &p)