Go to the documentation of this file.
35 template<
class>
class FaceList,
56 const labelList& faceNbs = edgeFaces[edgeI];
58 if (faceNbs.
size() > 2)
62 const edge&
e = edges[edgeI];
64 const point& edgePt = localPoints[
e.start()];
67 e2 /=
mag(e2) + VSMALL;
70 const Face&
f = localFaces[faceNbs[0]];
73 label fp1 =
f.fcIndex(fp0);
74 label vertI = (
f[fp1] !=
e[1] ?
f[fp1] :
f.fcIndex(fp1));
78 vector e0 = e2 ^ (localPoints[vertI] - edgePt);
79 e0 /=
mag(e0) + VSMALL;
89 for (
label nbI = 1; nbI < faceNbs.size(); nbI++)
92 const Face&
f = localFaces[faceNbs[nbI]];
94 label fp1 =
f.fcIndex(fp0);
95 label vertI = (
f[fp1] !=
e[1] ?
f[fp1] :
f.fcIndex(fp1));
97 vector vec = e2 ^ (localPoints[vertI] - edgePt);
98 vec /=
mag(vec) + VSMALL;
119 sortedEdgeFaces[edgeI] = faceNbs;
123 return sortedEdgeFaces;
void sort()
(stable) sort the list (if changed after construction time)
#define forAll(list, i)
Loop across all elements in list.
label findIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurence of given element and return index,.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
dimensioned< scalar > mag(const dimensioned< Type > &)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
A list that is sorted upon construction or when explicitly requested with the sort() method.
scalar pseudoAngle(const vector &e0, const vector &e1, const vector &vec)
Estimate angle of vec in coordinate system (e0, e1, e0^e1).
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const dimensionedScalar e
Elementary charge.
const labelList & indices() const
Return the list of sorted indices. Updated every sort.
A List with indirect addressing.
void size(const label)
Override size to be inconsistent with allocated storage.
A list of faces which address into the list of points.