Go to the documentation of this file.
69 problematicPoint[bp[it.key()]] =
true;
75 label nThreads = 3 * omp_get_num_procs();
76 if( edges.
size() < 1000 )
81 # pragma omp parallel num_threads(nThreads)
87 # pragma omp for schedule(static, 1)
95 const label f0 = edgeFaces(edgeI, 0);
96 const label f1 = edgeFaces(edgeI, 1);
98 if( facePatch[f0] == facePatch[
f1] )
107 const edge e = edges[edgeI];
110 if( problematicPoint[bp[
e.start()]] )
116 if( problematicPoint[bp[
e.end()]] )
131 if( tet0.
mag() > -VSMALL )
145 if( tet1.
mag() > -VSMALL )
166 std::map<label, LongList<labelledPoint> > exchangeFaceCentres;
171 exchangeFaceCentres.insert
179 if( eIter() == facePatch[edgeFaces(eIter.key(), 0)] )
188 const edge&
e = edges[eIter.key()];
191 problematicPoint[bp[
e.start()]] ||
192 problematicPoint[bp[
e.end()]]
199 const label neiProcs = otherProc[eIter.key()];
200 exchangeFaceCentres[neiProcs].append
204 globalEdgeLabel[eIter.key()],
205 fCentres[edgeFaces(eIter.key(), 0)]
214 # pragma omp parallel for schedule(dynamic, 20)
227 const edge&
e = edges[edgeI];
228 const label f0 = edgeFaces(edgeI, 0);
240 if ( tet0.
mag() > -VSMALL )
254 if ( tet1.
mag() > -VSMALL )
264 # ifdef DEBUGClassifyEdges
267 forAll(problematicPoint, bpI)
268 if( problematicPoint[bpI] )
284 Info <<
"Edge " << edgeI <<
" is convex" <<
endl;
290 Info <<
"Edge " << edgeI <<
" is concave" <<
endl;
296 Info <<
"Edge " << edgeI <<
" is not determined" <<
endl;
302 Info <<
"Edge " << edgeI <<
" is a patch edge" <<
endl;
const vectorField & faceCentres() const
const labelList & bp() const
const point & coordinates() const
return point coordinates
const meshSurfaceEngine & surfaceEngine_
mesh surface
const Map< label > & globalToLocalBndEdgeAddressing() const
global boundary edge label to local label. Only for processor edges
const labelList & globalBoundaryEdgeLabel() const
global boundary edge label
#define forAll(list, i)
Loop across all elements in list.
const labelHashSet & invertedVertices() const
return the labels of inverted vertices
Template functions to aid in the implementation of demand driven data.
meshSurfaceCheckEdgeTypes(const meshSurfaceCheckEdgeTypes &)
Disallow default bitwise copy construct.
static bool & parRun()
Is this a parallel run?
List< direction > edgeType_
a list which classifies each edge
const VRWGraph & pointFaces() const
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
const labelList & boundaryFacePatches() const
patch label for each boundary face
Ostream & endl(Ostream &os)
Add newline and flush stream.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
void convexEdges(labelLongList &convexEdges) const
return indices of convex edges
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
const Map< label > & otherEdgeFaceAtProc() const
const DynList< label > & beNeiProcs() const
communication matrix for sending edge data
void classifyEdges()
check feature edges and classify them
label size() const
Returns the number of rows.
const pointFieldPMG & points() const
label sizeOfRow(const label rowI) const
Returns the number of elements in the given row.
void addPointToSubset(const label, const label)
const VRWGraph & edgeFaces() const
const double e
Elementary charge.
const edgeList & edges() const
~meshSurfaceCheckEdgeTypes()
void setSize(const label)
Reset size of List.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void concaveEdges(labelLongList &concaveEdges) const
return indices of concave edges
void exchangeMap(const std::map< label, ListType > &m, LongList< T > &data, const Pstream::commsTypes commsType)
const labelList & boundaryPoints() const
void size(const label)
Override size to be inconsistent with allocated storage.
const Map< label > & otherEdgeFacePatch() const
scalar mag() const
Return volume.
label addPointSubset(const word &)
point subsets
const polyMeshGen & mesh() const
label pointLabel() const
return point label