Go to the documentation of this file.
40 #ifndef PatchEdgeFaceWave_H
41 #define PatchEdgeFaceWave_H
69 class PrimitivePatchType,
71 class TrackingData = label
75 public PatchEdgeFaceWaveName
82 static scalar propagationTol_;
85 static label dummyTrackData_;
94 const PrimitivePatchType& patch_;
121 label nUnvisitedEdges_;
122 label nUnvisitedFaces_;
128 bitSet sameEdgeOrientation_;
138 const label neighbourFacei,
139 const Type& neighbourInfo,
148 const label neighbourEdgeI,
149 const Type& neighbourInfo,
170 return propagationTol_;
176 propagationTol_ = tol;
191 const PrimitivePatchType&
patch,
197 TrackingData& td = dummyTrackData_
205 const PrimitivePatchType&
patch,
208 TrackingData& td = dummyTrackData_
227 const TrackingData&
data()
const
241 return nUnvisitedFaces_;
246 return nUnvisitedEdges_;
266 label
iterate(
const label maxIter);
275 class PrimitivePatchType,
277 class TrackingData =
int
283 const PrimitivePatchType& patch_;
292 const PrimitivePatchType&
patch,
307 x.updateEdge(mesh_, patch_,
y,
true, tol_, td_);
316 class PrimitivePatchType,
318 class TrackingData =
int
324 const PrimitivePatchType& patch_;
333 const PrimitivePatchType&
patch,
355 fld[i].transform(mesh_, patch_, vt.R(), tol_, td_);
362 fld[i].transform(mesh_, patch_, vt.R().T(), tol_, td_);
UList< Type > & allEdgeInfo() const
Access allEdgeInfo.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
Wave propagation of information along patch. Every iteration information goes through one layer of fa...
label faceToEdge()
Propagate from face to edge.
label nUnvisitedFaces() const
Mesh consisting of general polyhedral cells.
#define forAll(list, i)
Loop across all elements in list.
UList< Type > & allFaceInfo() const
Access allFaceInfo.
static scalar propagationTol()
Access to tolerance.
label edgeToFace()
Propagate from edge to face.
TemplateName(blendedSchemeBase)
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))
void setEdgeInfo(const labelList &changedEdges, const List< Type > &changedEdgesInfo)
Copy initial data into allEdgeInfo_.
const std::string patch
OpenFOAM patch number as a std::string.
label nUnvisitedEdges() const
Tensor< Cmpt > T() const
Return non-Hermitian transpose.
static void setPropagationTol(const scalar tol)
Change tolerance.
label iterate(const label maxIter)
Iterate until no changes or maxIter reached.
const TrackingData & data() const
Additional data to be passed into container.
void operator()(Type &x, const Type &y) const
updateOp(const polyMesh &mesh, const PrimitivePatchType &patch, const scalar tol, TrackingData &td)