52 template<
class TrackingData>
59 template<
class TrackingData>
73 template<
class TrackingData>
78 const label patchFacei,
79 const point& faceCentre,
85 template<
class TrackingData>
90 const label patchFacei,
91 const point& faceCentre,
97 const face&
f = patch[patchFacei];
99 index_ = (f.
size() - index_) % f.
size();
104 template<
class TrackingData>
114 template<
class TrackingData>
118 const label thisCelli,
119 const label neighbourFacei,
135 if (neighbourInfo.
index() == -2)
140 else if (neighbourInfo.
index() == -1)
178 index_ = findEdge(mesh, mesh.
faceEdges()[neighbourFacei], v0, v1);
188 n_ = neighbourInfo.
n();
194 template<
class TrackingData>
198 const label thisFacei,
199 const label neighbourCelli,
216 if (neighbourInfo.
index() >= 0)
226 neighbourInfo.
index()
236 n_ = neighbourInfo.
n();
242 template<
class TrackingData>
259 index_ = neighbourInfo.
index();
261 n_ = neighbourInfo.
n();
268 template<
class TrackingData>
281 inline bool Foam::directionInfo::operator==
290 inline bool Foam::directionInfo::operator!=
295 return !(*
this == rhs);
bool isA(const Type &t)
Check if a dynamic_cast to typeid is possible.
bool sameGeometry(const polyMesh &, const directionInfo &, const scalar, TrackingData &td) const
Check for identical geometrical data. Used for cyclics checking.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A face is a list of labels corresponding to mesh vertices.
bool equal(const directionInfo &, TrackingData &td) const
Same (like operator==)
const labelListList & faceEdges() const
void size(const label)
Override size to be inconsistent with allocated storage.
bool operator==(const directionInfo &) const
A cellMatcher for hex cells.
void leaveDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Convert any absolute coordinates into relative to (patch)face.
bool updateCell(const polyMesh &, const label thisCelli, const label neighbourFacei, const directionInfo &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring face.
bool valid(TrackingData &td) const
Check whether origin has been changed at all or.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
void enterDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Reverse of leaveDomain.
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.
virtual const faceList & faces() const
Return raw faces.
Holds direction in which to split cell (in fact a local coordinate axes). Information is a label and ...
directionInfo()
Construct null.
const edgeList & edges() const
Return mesh edges. Uses calcEdges.
void transform(const polyMesh &, const tensor &, TrackingData &td)
Apply rotation matrix to any coordinates.
bool updateFace(const polyMesh &, const label thisFacei, const label neighbourCelli, const directionInfo &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring cell.
const doubleScalar e
Elementary charge.
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
label start() const
Return start vertex label.