61#ifndef Foam_PointEdgeWave_H
62#define Foam_PointEdgeWave_H
182template<
class Type,
class TrackingData =
int>
199 label nCyclicPatches_;
236 const label neighbourEdgeI,
237 const Type& neighbourInfo,
246 const Type& neighbourInfo,
255 const label neighbourPointi,
256 const Type& neighbourInfo,
264 template<
class PatchType>
268 void handleProcPatches();
271 void handleCyclicPatches();
274 label handleCollocatedPoints();
278 PointEdgeWave(
const PointEdgeWave&) =
delete;
281 void operator=(
const PointEdgeWave&) =
delete;
324 return allPointInfo_;
343 const UList<Type>& changedPointsInfo
356 label
iterate(
const label maxIter);
367template<
class Type,
class TrackingData =
int>
384 void operator()(UList<Type>&
x,
const UList<Type>&
y)
const
390 x[i].updatePoint(
y[i], tol_, td_);
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
PointEdgeWaveBase(const polyMesh &mesh)
Construct with mesh reference and set initial sizes.
static int dummyTrackData_
Default trackData value (for default template argument).
bitSet changedPoint_
Track if point has changed.
DynamicList< label > changedPoints_
List of changed points.
DynamicList< label > changedEdges_
List of changed edges.
PstreamBuffers pBufs_
Buffers when updating processor patches.
static scalar propagationTol_
Relative tolerance.
ClassName("PointEdgeWave")
Runtime type information.
label nUnvisitedEdges() const noexcept
Number of unvisited edges, i.e. edges that were not (yet) reached from walking across mesh.
label nChangedEdges() const noexcept
Current number of changed edges.
label nChangedPoints() const noexcept
Current number of changed points.
static scalar setPropagationTol(const scalar tol) noexcept
Change propagation tolerance, return previous value.
label nUnvisitedEdges_
Number of unvisited edges.
bitSet changedEdge_
Track if edge has changed.
label nUnvisitedPoints() const noexcept
Get number of unvisited points.
const polyMesh & mesh() const noexcept
Return access to the mesh.
label nUnvisitedPoints_
Number of unvisited points.
const polyMesh & mesh_
Reference to mesh.
static scalar propagationTol() noexcept
Access to propagation tolerance.
Wave propagation of information through grid. Every iteration information goes through one layer of e...
UList< Type > & allEdgeInfo() const noexcept
Access allEdgeInfo.
~PointEdgeWave()=default
Destructor.
UList< Type > & allPointInfo() const noexcept
Access allPointInfo.
const TrackingData & data() const noexcept
Additional data to be passed into container.
Foam::label countPatchType() const
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.
void setPointInfo(const labelList &changedPoints, const UList< Type > &changedPointsInfo)
Copy initial data into allPointInfo_.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
void size(const label n)
Older name for setAddressableSize.
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()(UList< Type > &x, const UList< 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 ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
List< label > labelList
A List of labels.
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
UList< label > labelUList
A UList of labels.
#define forAll(list, i)
Loop across all elements in list.