61#ifndef PointEdgeWave_H
62#define PointEdgeWave_H
88template<
class Type,
class TrackingData =
int>
91 public PointEdgeWaveName
98 static scalar propagationTol_;
101 static int dummyTrackData_;
125 label nChangedPoints_;
131 label nChangedEdges_;
134 label nCyclicPatches_;
140 label nUnvisitedPoints_;
141 label nUnvisitedEdges_;
175 const label neighbourEdgeI,
176 const Type& neighbourInfo,
185 const Type& neighbourInfo,
194 const label neighbourPointi,
195 const Type& neighbourInfo,
203 template<
class PatchType>
204 label countPatchType()
const;
207 void handleProcPatches();
210 void handleCyclicPatches();
213 label handleCollocatedPoints();
230 return propagationTol_;
236 propagationTol_ = tol;
255 TrackingData& td = dummyTrackData_
265 TrackingData& td = dummyTrackData_
278 return allPointInfo_;
288 const TrackingData&
data()
const
319 label
iterate(
const label maxIter);
330template<
class Type,
class TrackingData =
int>
353 x[i].updatePoint(
y[i], tol_, td_);
Wave propagation of information through grid. Every iteration information goes through one layer of e...
label nUnvisitedEdges() const
Number of unvisited edges, i.e. edges that were not (yet)
void setPointInfo(const labelList &changedPoints, const List< Type > &changedPointsInfo)
Copy initial data into allPointInfo_.
static scalar propagationTol()
Access to tolerance.
~PointEdgeWave()=default
Destructor.
label iterate(const label maxIter)
Iterate until no changes or maxIter reached. Returns actual.
UList< Type > & allEdgeInfo() const
Access allEdgeInfo.
label pointToEdge()
Propagate from point to edge. Returns total number of edges.
label edgeToPoint()
Propagate from edge to point. Returns total number of points.
const TrackingData & data() const
Additional data to be passed into container.
static void setPropagationTol(const scalar tol)
Change tolerance.
label nUnvisitedPoints() const
UList< Type > & allPointInfo() const
Access allPointInfo.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
listUpdateOp(const scalar tol, TrackingData &td)
void operator()(List< Type > &x, const List< Type > &y) const
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
#define TemplateName(TemplateNameString)
Add typeName information from argument TypeNameString to a.
#define forAll(list, i)
Loop across all elements in list.