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_);
Info<< nl<< "Wrote faMesh in vtk format: "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.mesh().time().globalPath()/"finiteArea-edges"));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Wave propagation of information along patch. Every iteration information goes through one layer of fa...
label edgeToFace()
Propagate from edge to face.
static scalar propagationTol()
Access to tolerance.
UList< Type > & allFaceInfo() const
Access allFaceInfo.
label nUnvisitedFaces() const
label iterate(const label maxIter)
Iterate until no changes or maxIter reached.
UList< Type > & allEdgeInfo() const
Access allEdgeInfo.
void setEdgeInfo(const labelList &changedEdges, const List< Type > &changedEdgesInfo)
Copy initial data into allEdgeInfo_.
label faceToEdge()
Propagate from face to edge.
label nUnvisitedEdges() const
const TrackingData & data() const
Additional data to be passed into container.
static void setPropagationTol(const scalar tol)
Change tolerance.
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...
Mesh consisting of general polyhedral cells.
updateOp(const polyMesh &mesh, const PrimitivePatchType &patch, const scalar tol, TrackingData &td)
void operator()(Type &x, const Type &y) const
#define TemplateName(TemplateNameString)
Add typeName information from argument TypeNameString to a.
#define forAll(list, i)
Loop across all elements in list.