Go to the documentation of this file.
52 regions_[0] = regions[0];
53 regions_[1] = regions[1];
65 template<
class TrackingData>
68 return regions_.size() && !regions_.found(
labelMax);
72 template<
class Patch,
class TrackingData>
84 template<
class Patch,
class TrackingData>
99 label index =
patch.faceEdges()[facei].find(edgeI);
100 bool sameOrientation = (
f[index] ==
e.start());
105 faceInfo.regions_[index],
106 faceInfo.regions_[
f.fcIndex(index)]
108 if (!sameOrientation)
113 if (!faceInfo.
valid(td))
119 if (orientedInfo.found(-1) || regions_.found(-1))
126 bool changed =
false;
128 regions_.setSize(orientedInfo.size(),
labelMax);
131 if (orientedInfo[i] != -1 && orientedInfo[i] < regions_[i])
133 regions_[i] = orientedInfo[i];
141 template<
class Patch,
class TrackingData>
147 const bool sameOrientation,
153 edge orientedInfo(edgeInfo.regions_[0], edgeInfo.regions_[1]);
154 if (!sameOrientation)
160 if (!edgeInfo.
valid(td))
166 if (orientedInfo.
found(-1) || regions_.found(-1))
173 bool changed =
false;
175 regions_.setSize(orientedInfo.size(),
labelMax);
178 if (orientedInfo[i] != -1 && orientedInfo[i] < regions_[i])
180 regions_[i] = orientedInfo[i];
188 template<
class Patch,
class TrackingData>
204 label index0 =
patch.faceEdges()[facei].find(edgeI);
205 label index1 =
f.fcIndex(index0);
206 bool sameOrientation = (
f[index0] ==
e.start());
212 edgeInfo.regions_[0],
215 if (!sameOrientation)
220 if (!edgeInfo.
valid(td))
226 if (orientedInfo.
found(-1) || regions_.found(-1))
233 bool changed =
false;
238 if (orientedInfo[0] < regions_[index0])
240 regions_[index0] = orientedInfo[0];
243 if (orientedInfo[1] < regions_[index1])
245 regions_[index1] = orientedInfo[1];
253 template<
class TrackingData>
266 inline bool Foam::patchEdgeFaceRegions::operator==
271 return regions() == rhs.
regions();
275 inline bool Foam::patchEdgeFaceRegions::operator!=
280 return !(*
this == rhs);
bool updateFace(const polyMesh &mesh, const Patch &patch, const label facei, const label edgeI, const patchEdgeFaceRegions &edgeInfo, const scalar tol, TrackingData &td)
Influence of edge on face.
void transform(const polyMesh &mesh, const Patch &patch, const tensor &rotTensor, const scalar tol, TrackingData &td)
Apply rotation matrix.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Mesh consisting of general polyhedral cells.
#define forAll(list, i)
Loop across all elements in list.
const labelList & regions() const
bool updateEdge(const polyMesh &mesh, const Patch &patch, const label edgeI, const label facei, const patchEdgeFaceRegions &faceInfo, const scalar tol, TrackingData &td)
Influence of face on edge.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
bool valid(TrackingData &td) const
Check whether origin has been changed at all or.
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
Transport of regions for use in PatchEdgeFaceWave.
bool found(const label pointLabel) const
Return true if point label is found in edge.
bool equal(const patchEdgeFaceRegions &, TrackingData &) const
Same (like operator==)
void flip()
Flip the Pair in-place.
errorManip< error > abort(error &err)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
An ordered pair of two objects of type <T> with first() and second() elements.
const std::string patch
OpenFOAM patch number as a std::string.
patchEdgeFaceRegions()
Construct null.
const dimensionedScalar e
Elementary charge.
A face is a list of labels corresponding to mesh vertices.