55template<
class TrackingData>
63template<
class TrackingData>
77template<
class TrackingData>
82 const label patchFacei,
83 const point& faceCentre,
93template<
class TrackingData>
98 const label patchFacei,
99 const point& faceCentre,
105 const face&
f = patch[patchFacei];
107 index_ = (
f.size() - index_) %
f.size();
113template<
class TrackingData>
124template<
class TrackingData>
128 const label thisCelli,
129 const label neighbourFacei,
143 const face&
f =
mesh.faces()[neighbourFacei];
145 if (neighbourInfo.
index() == -2)
150 else if (neighbourInfo.
index() == -1)
185 label v0 =
f[neighbourInfo.
index()];
186 label v1 =
f[(neighbourInfo.
index() + 1) %
f.
size()];
198 n_ = neighbourInfo.
n();
205template<
class TrackingData>
209 const label thisFacei,
210 const label neighbourCelli,
227 if (neighbourInfo.
index() >= 0)
237 neighbourInfo.
index()
246 n_ = neighbourInfo.
n();
253template<
class TrackingData>
270 index_ = neighbourInfo.
index();
272 n_ = neighbourInfo.
n();
279template<
class TrackingData>
282 const directionInfo&
rhs,
290template<
class TrackingData>
306 return updateFace(
mesh, -1, f0, tol,
td);
310 return updateFace(
mesh, -1, f1, tol,
td);
321inline bool Foam::directionInfo::operator==
326 return index_ ==
rhs.index_ && n_ ==
rhs.n_;
330inline bool Foam::directionInfo::operator!=
335 return !(*
this ==
rhs);
void size(const label n)
Older name for setAddressableSize.
Holds direction in which to split cell (in fact a local coordinate axes). Information is a label and ...
void transform(const polyMesh &, const tensor &, TrackingData &td)
Apply rotation matrix to any coordinates.
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).
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.
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.
static bool test(const UList< face > &faces)
Test if given list of faces satisfies criteria for HEX. (6 quad).
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
const edgeList & edges() const
Return mesh edges. Uses calcEdges.
const labelListList & faceEdges() const
Tensor of scalars, i.e. Tensor<scalar>.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
vector point
Point is a vector.
void rhs(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
static constexpr const zero Zero
Global zero (0).