57#ifndef directionInfo_H
58#define directionInfo_H
161 template<
class TrackingData>
165 template<
class TrackingData>
176 template<
class TrackingData>
181 const label patchFacei,
182 const point& faceCentre,
187 template<
class TrackingData>
192 const label patchFacei,
193 const point& faceCentre,
198 template<
class TrackingData>
207 template<
class TrackingData>
211 const label thisCelli,
212 const label neighbourFacei,
219 template<
class TrackingData>
223 const label thisFacei,
224 const label neighbourCelli,
231 template<
class TrackingData>
235 const label thisFacei,
242 template<
class TrackingData>
248 template<
class TrackingData>
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Holds direction in which to split cell (in fact a local coordinate axes). Information is a label and ...
bool operator!=(const directionInfo &) const
Test for inequality.
void transform(const polyMesh &, const tensor &, TrackingData &td)
Apply rotation matrix to any coordinates.
friend Ostream & operator<<(Ostream &, const directionInfo &)
bool interpolate(const polyMesh &, const point &pt, const label i0, const directionInfo &f0, const label i1, const directionInfo &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...
void enterDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Reverse of leaveDomain.
bool sameGeometry(const polyMesh &, const directionInfo &, const scalar, TrackingData &td) const
Check for identical geometrical data (eg, cyclics checking).
bool operator==(const directionInfo &) const
Test for equality.
directionInfo()
Default construct, index=-1, vector::zero.
bool updateCell(const polyMesh &, const label thisCelli, const label neighbourFacei, const directionInfo &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring face.
static label edgeToFaceIndex(const primitiveMesh &mesh, const label celli, const label facei, const label edgeI)
Given edge on hex cell find corresponding edge on face. Is either.
bool updateFace(const polyMesh &, const label thisFacei, const label neighbourCelli, const directionInfo &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring cell.
bool valid(TrackingData &td) const
Changed or contains original (invalid) value.
friend Istream & operator>>(Istream &, directionInfo &)
bool equal(const directionInfo &, TrackingData &td) const
Test for equality, with TrackingData.
void leaveDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Convert any absolute coordinates into relative to (patch)face.
An edge is a list of two vertex labels. This can correspond to a directed graph edge or an edge on a ...
A face is a list of labels corresponding to mesh vertices.
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
Cell-face mesh analysis engine.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
List< label > labelList
A List of labels.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces).
Istream & operator>>(Istream &, directionInfo &)
vector point
Point is a vector.
A template class to specify that a data type can be considered as being contiguous in memory.