33template<
class TrackingData>
45 const scalar dist2 =
magSqr(pt -
w2.origin_[index2]);
116template<
class TrackingData>
119 return origin_.size();
124template<
class TrackingData>
138template<
class TrackingData>
143 const label patchFacei,
144 const point& faceCentre,
148 for (
auto& o : origin_)
156template<
class TrackingData>
164 for (
auto& o : origin_)
172template<
class TrackingData>
177 const label patchFacei,
178 const point& faceCentre,
183 for (
auto& o : origin_)
191template<
class TrackingData>
195 const label thisCelli,
196 const label neighbourFacei,
204 bool hasChanged =
false;
211 const scalar blockSize =
212 td.regionToBlockSize_[nbrSurface[0]][nbrSurface[1]];
226 label index = surface_.find(nbrSurface);
230 origin_.append(neighbourInfo.
origin_[i]);
232 surface_.append(nbrSurface);
239 update(cc, index, neighbourInfo, i, tol, td)
261template<
class TrackingData>
265 const label thisFacei,
266 const label neighbourCelli,
273 bool hasChanged =
false;
275 if (!td.isBlockedFace_[thisFacei])
284 const scalar blockSize =
285 td.regionToBlockSize_[nbrSurface[0]][nbrSurface[1]];
294 label index = surface_.find(nbrSurface);
298 origin_.append(neighbourInfo.
origin_[i]);
300 surface_.append(nbrSurface);
307 update(fc, index, neighbourInfo, i, tol, td)
330template<
class TrackingData>
334 const label thisFacei,
341 bool hasChanged =
false;
343 if (!td.isBlockedFace_[thisFacei])
352 const scalar blockSize =
353 td.regionToBlockSize_[nbrSurface[0]][nbrSurface[1]];
362 const label index = surface_.find(nbrSurface);
366 origin_.append(neighbourInfo.
origin_[i]);
368 surface_.append(nbrSurface);
375 update(fc, index, neighbourInfo, i, tol, td)
397template<
class TrackingData>
416 surface_ == rhs.surface_
417 && distSqr_ == rhs.distSqr_
418 && origin_ == rhs.origin_;
428 return !(*
this == rhs);
A 1D vector of objects of type <T> with a fixed length <N>.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
bool valid() const
True if all internal ids are non-negative.
friend Ostream & operator(Ostream &, const faMatrix< Type > &)
virtual bool update()
Update the mesh for both mesh motion and topology change.
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
const vectorField & faceCentres() const
const vectorField & cellCentres() const
For use with FaceCellWave. Determines topological distance to starting faces.
DynamicList< scalar > distSqr_
Distance (squared) from cellcenter to origin.
bool equal(const wallPoints &, TrackingData &) const
Test for equality, with TrackingData.
bool updateCell(const polyMesh &, const label thisCelli, const label neighbourFacei, const wallPoints &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring face.
void enterDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Reverse of leaveDomain.
wallPoints()
Default construct.
bool sameGeometry(const polyMesh &, const wallPoints &, const scalar, TrackingData &td) const
Check for identical geometrical data (eg, cyclics checking)
bool valid(TrackingData &td) const
Changed or contains original (invalid) value.
bool updateFace(const polyMesh &, const label thisFacei, const label neighbourCelli, const wallPoints &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring cell.
DynamicList< FixedList< label, 3 > > surface_
Originating surface,region and topological region.
DynamicList< point > origin_
Starting points.
void leaveDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Convert any absolute coordinates into relative to (patch)face.
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
scalar diff(const triad &A, const triad &B)
Return a quantity of the difference between two triads.
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
#define forAll(list, i)
Loop across all elements in list.