40 #ifndef Foam_PatchEdgeFaceWave_H 41 #define Foam_PatchEdgeFaceWave_H 164 class PrimitivePatchType,
166 class TrackingData = label
175 const PrimitivePatchType& patch_;
192 bitSet sameEdgeOrientation_;
202 const label neighbourFacei,
203 const Type& neighbourInfo,
212 const label neighbourEdgeI,
213 const Type& neighbourInfo,
240 const PrimitivePatchType&
patch,
254 const PrimitivePatchType&
patch,
285 const List<Type>& changedEdgesInfo
298 label
iterate(
const label maxIter);
307 class PrimitivePatchType,
309 class TrackingData =
int 314 const polyMesh& mesh_;
315 const PrimitivePatchType& patch_;
323 const polyMesh&
mesh,
324 const PrimitivePatchType&
patch,
339 x.updateEdge(mesh_, patch_,
y,
true, tol_, td_);
348 class PrimitivePatchType,
350 class TrackingData =
int 355 const polyMesh& mesh_;
356 const PrimitivePatchType& patch_;
364 const polyMesh&
mesh,
365 const PrimitivePatchType&
patch,
378 const vectorTensorTransform& vt,
387 fld[i].transform(mesh_, patch_, vt.R(), tol_, td_);
394 fld[i].transform(mesh_, patch_, vt.R().T(), tol_, td_);
PatchEdgeFaceWaveBase(const polyMesh &mesh, const label nEdges, const label nFaces)
Construct with mesh reference and set initial sizes.
bitSet changedFace_
Track if face has changed.
const polyMesh & mesh_
Reference to mesh.
void size(const label n)
Older name for setAddressableSize.
label nUnvisitedFaces() const noexcept
Number of unvisited faces, i.e. faces that were not (yet) reached from walking across patch...
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
Wave propagation of information along patch. Every iteration information goes through one layer of fa...
void operator()(Type &x, const Type &y) const
label faceToEdge()
Propagate from face to edge.
label edgeToFace()
Propagate from edge to face.
const polyMesh & mesh() const noexcept
Return access to the mesh.
label nUnvisitedEdges_
Number of unvisited edges.
#define forAll(list, i)
Loop across all elements in list.
label nUnvisitedFaces_
Number of unvisited faces.
UList< Type > & allFaceInfo() const noexcept
Access allFaceInfo.
DynamicList< label > changedEdges_
List of changed edges.
static scalar setPropagationTol(const scalar tol) noexcept
Change propagation tolerance, return previous value.
label nChangedFaces() const noexcept
Current number of changed faces.
static scalar propagationTol() noexcept
Access to propagation tolerance.
static scalar propagationTol_
Relative tolerance.
UList< Type > & allEdgeInfo() const noexcept
Access allEdgeInfo.
label nUnvisitedEdges() const noexcept
label iterate(const label maxIter)
Iterate until no changes or maxIter reached.
void setEdgeInfo(const labelList &changedEdges, const List< Type > &changedEdgesInfo)
Copy initial data into allEdgeInfo_.
const TrackingData & data() const noexcept
Additional data to be passed into container.
updateOp(const polyMesh &mesh, const PrimitivePatchType &patch, const scalar tol, TrackingData &td)
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
ClassName("PatchEdgeFaceWave")
Runtime type information.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
const std::string patch
OpenFOAM patch number as a std::string.
label nChangedEdges() const noexcept
Current number of changed edges.
Mesh consisting of general polyhedral cells.
List< label > labelList
A List of labels.
static label dummyTrackData_
Default trackData value (for default template argument)
DynamicList< label > changedFaces_
List of changed faces.
bitSet changedEdge_
Track if edge has changed.