35template<
class TrackingData>
36inline bool Foam::wallPoint::update
48 origin_ =
w2.origin();
53 const scalar
diff = distSqr_ - dist2;
61 if ((
diff < SMALL) || ((distSqr_ > SMALL) && (
diff/distSqr_ < tol)))
70 origin_ =
w2.origin();
78template<
class TrackingData>
79inline bool Foam::wallPoint::update
115template<
class TrackingData>
118 return distSqr_ > -SMALL;
123template<
class TrackingData>
132 const scalar
diff =
mag(distSqr() -
w2.distSqr());
140 if ((distSqr() > SMALL) && ((
diff/distSqr()) < tol))
152template<
class TrackingData>
158 const point& faceCentre,
162 origin_ -= faceCentre;
166template<
class TrackingData>
180template<
class TrackingData>
186 const point& faceCentre,
191 origin_ += faceCentre;
196template<
class TrackingData>
200 const label thisCelli,
201 const label neighbourFacei,
210 mesh.cellCentres()[thisCelli],
219template<
class TrackingData>
223 const label thisFacei,
224 const label neighbourCelli,
233 mesh.faceCentres()[thisFacei],
242template<
class TrackingData>
246 const label thisFacei,
255 mesh.faceCentres()[thisFacei],
263template<
class TrackingData>
274template<
class TrackingData>
328inline bool Foam::wallPoint::operator==
333 return origin_ ==
rhs.origin_;
337inline bool Foam::wallPoint::operator!=
342 return !(*
this ==
rhs);
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
Holds information regarding nearest wall point. Used in wall distance calculation.
const point & origin() const
void transform(const polyMesh &, const tensor &, TrackingData &td)
Apply rotation matrix to any coordinates.
void enterDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Reverse of leaveDomain.
bool equal(const wallPoint &, TrackingData &td) const
Test for equality, with TrackingData.
bool interpolate(const polyMesh &, const point &pt, const label i0, const wallPoint &f0, const label i1, const wallPoint &f1, const scalar weight, const scalar tol, TrackingData &td)
Interpolate between two values (lerp). Returns true if causes changes. Not sure if needs to be specia...
bool updateCell(const polyMesh &, const label thisCelli, const label neighbourFacei, const wallPoint &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring face.
bool sameGeometry(const polyMesh &, const wallPoint &, const scalar, TrackingData &td) const
Check for identical geometrical data (eg, cyclics checking).
wallPoint()
Default construct.
bool valid(TrackingData &td) const
Changed or contains original (invalid) value.
bool updateFace(const polyMesh &, const label thisFacei, const label neighbourCelli, const wallPoint &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring cell.
void leaveDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Convert any absolute coordinates into relative to (patch)face centre.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
refinementData transform(const tensor &, const refinementData val)
No-op rotational transform for base types.
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
scalar diff(const triad &A, const triad &B)
Return a quantity of the difference between two triads.
vector point
Point is a vector.
void rhs(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
dimensioned< Type > lerp(const dimensioned< Type > &a, const dimensioned< Type > &b, const scalar t)