Go to the documentation of this file.
73 if( sPatch != ePatch )
75 const edge&
e = edges[eI];
76 ++nEdgesAtNode[
e.start()];
77 ++nEdgesAtNode[
e.end()];
86 if( nEdgesAtNode[pI] < 3 )
100 if( nEdgesAtNode[pointI] < 3 )
125 if( sPatch != ePatch )
144 # pragma omp parallel for schedule(dynamic, 40)
153 featureEdge[eI] =
true;
167 if( !featureEdge[eI] )
175 featureEdge[eI] =
false;
177 while( front.
size() )
180 const edge&
e = edges[eLabel];
182 for(
label pI=0;pI<2;++pI)
184 const label pointI =
e[pI];
191 const label eJ = pointEdges(pointI, peI);
196 featureEdge[eJ] =
false;
206 Info << nGroups <<
" edge groups found!" <<
endl;
233 const std::pair<label, label> pp
260 forAll(edgeGroupsAtCorner, i)
262 const label epI = edgeGroupsAtCorner[i];
265 for(
label j=i+1;j<edgeGroupsAtCorner.
size();++j)
267 const label epJ = edgeGroupsAtCorner[j];
271 std::pair<label, label> ep
void calculatePatchPatches()
calculate patch-patches addressing
std::map< std::pair< label, label >, labelHashSet > patchesEdgeGroups_
edge groups between surface patches
void append(const T &e)
Append an element at the end of the list.
labelList edgeGroups_
edge partitions
labelList corners_
corner nodes
#define forAll(list, i)
Loop across all elements in list.
List< labelHashSet > patchPatches_
information which partitions share an edge with a given partition
Template functions to aid in the implementation of demand driven data.
const pointField & points() const
access to points
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Ostream & endl(Ostream &os)
Add newline and flush stream.
label size() const
Size of the active part of the list.
void calculateCornersAndAddressing()
find surface corners
void calculatePatchToEdgeGroups()
calculate surface patch to edge groups addressing
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
List< DynList< label > > cornerPatches_
label size() const
Returns the number of rows.
void appendIfNotIn(const T &e)
#define forAllRow(graph, rowI, index)
const VRWGraph & pointFacets() const
return point-facets addressing
label sizeOfRow(const label rowI) const
Returns the number of elements in the given row.
void calculatePatchAddressing()
calculate patch addressing
const double e
Elementary charge.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
void setSize(const label)
Reset size of List.
std::map< std::pair< label, label >, labelHashSet > edgeGroupsCorners_
corners shared by edge groups
void calculateEdgeGroups()
calculate edge groups
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const LongList< edge > & edges() const
return edges
const labelList & corners() const
return corner nodes
List< labelHashSet > edgeGroupEdgeGroups_
const triSurf & surface_
reference to triSurf
void calculateEdgeGroupsToCorners()
calculate edge groups to corner addressing
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
const VRWGraph & edgeFacets() const
return edge-facets addressing
const VRWGraph & pointEdges() const
return point-edges addressing