58 #ifndef PointEdgeWave_H
59 #define PointEdgeWave_H
86 template<
class Type,
class TrackingData =
int>
89 public PointEdgeWaveName
96 static scalar propagationTol_;
120 label nChangedPoints_;
125 label nChangedEdges_;
128 label nCyclicPatches_;
134 label nUnvisitedPoints_;
135 label nUnvisitedEdges_;
154 const label neighbourEdgeI,
155 const Type& neighbourInfo,
164 const Type& neighbourInfo,
173 const label neighbourPointi,
174 const Type& neighbourInfo,
181 template<
class PatchType>
182 label countPatchType()
const;
185 void handleProcPatches();
188 void handleCyclicPatches();
191 label handleCollocatedPoints();
207 return propagationTol_;
213 propagationTol_ = tol;
258 return allPointInfo_;
268 const TrackingData&
data()
const
316 template<
class Type,
class TrackingData =
int>
338 x[i].updatePoint(
y[i], tol_, td_);
#define forAll(list, i)
Loop across all elements in list.
Wave propagation of information through grid. Every iteration information goes through one layer of e...
UList< Type > & allEdgeInfo() const
Access allEdgeInfo.
label getUnsetPoints() const
const TrackingData & data() const
Additional data to be passed into container.
void setPointInfo(const labelList &changedPoints, const List< Type > &changedPointsInfo)
Copy initial data into allPointInfo_.
static scalar propagationTol()
Access to tolerance.
PointEdgeWave(const polyMesh &mesh, const labelList &initialPoints, const List< Type > &initialPointsInfo, UList< Type > &allPointInfo, UList< Type > &allEdgeInfo, const label maxIter, TrackingData &td=defaultTrackingData_)
Construct from mesh, list of changed points with the Type.
static int defaultTrackingData_
Default tracking data to go with default template argument.
void operator=(const PointEdgeWave &)=delete
Disallow default bitwise assignment.
label iterate(const label maxIter)
Iterate until no changes or maxIter reached. Returns actual.
label pointToEdge()
Propagate from point to edge. Returns total number of edges.
label edgeToPoint()
Propagate from edge to point. Returns total number of points.
label getUnsetEdges() const
Get number of unvisited edges, i.e. edges that were not (yet)
UList< Type > & allPointInfo() const
Access allPointInfo.
static void setPropagationTol(const scalar tol)
Change tolerance.
~PointEdgeWave()
Destructor.
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.
bool valid(const PtrList< ModelType > &l)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
TemplateName(FvFaceCellWave)