Go to the documentation of this file.
57 const edge&
e = edges[fEdges[fp]];
59 if ((
e[0] == v0 &&
e[1] == v1) || (
e[0] == v1 &&
e[1] == v0))
62 nbrEdgeI = fEdges[fp];
69 label edgeI = fEdges[i];
71 const edge&
e = edges[edgeI];
75 (
e[0] == v0 &&
e[1] == v1)
76 || (
e[0] == v1 &&
e[1] == v0)
91 <<
"Did not find edge on face " << faceI <<
" that uses vertices"
100 if (eFaces.size() == 1)
104 else if (eFaces.size() == 2)
106 label nbrFaceI = eFaces[0];
108 if (nbrFaceI == faceI)
110 nbrFaceI = eFaces[1];
118 <<
"Illegal surface on patch. Face " << faceI
119 <<
" at vertices " << v0 <<
',' << v1
120 <<
" has fewer than 1 or more than 2 neighbours"
138 nbrFaces.setSize(pp_.size());
139 nbrEnterVerts.setSize(pp_.size());
144 label faceI = changedFaces[i];
145 label enterVertI = enterVerts[i];
147 if (!visited_[faceI])
150 visited_[faceI] =
true;
151 visitOrder_.append(faceI);
153 const face&
f = pp_.localFaces()[faceI];
157 indexInFace_.append(fp);
162 label fp1 = reverse_ ?
f.rcIndex(fp) :
f.fcIndex(fp);
163 label nbr = getNeighbour(faceI, fp,
f[fp],
f[fp1]);
169 && faceZone_[nbr] == faceZone_[faceI]
172 nbrFaces[changedI] = nbr;
173 nbrEnterVerts[changedI] =
f[fp];
183 nbrEnterVerts.setSize(changedI);
196 const label enterVertI,
204 visitOrder_(pp.size()),
205 indexInFace_(pp.size())
227 if (nbrFaces.empty())
232 changedFaces = nbrFaces;
233 enterVerts = nbrEnterVerts;
const primitivePatch & pp_
Reference to patch to walk on.
const labelListList & edgeFaces() const
Return edge-face addressing.
List< label > labelList
A List of labels.
const edgeList & edges() const
Return list of edges, address into LOCAL point list.
walkPatch(const walkPatch &)
Disallow default bitwise copy construct.
#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,.
void faceToFace(const labelList &changedFaces, const labelList &enterVerts, labelList &nbrFaces, labelList &nbrEnterVerts)
Gets labels of changed faces and enterVertices on faces.
PrimitivePatch< face, SubList, const pointField & > primitivePatch
Foam::primitivePatch.
const labelListList & faceEdges() const
Return face-edge addressing.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dynamicLabelList visitOrder_
errorManip< error > abort(error &err)
const double e
Elementary charge.
List< bool > boolList
Bool container classes.
void setSize(const label)
Reset size of List.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
label getNeighbour(const label faceI, const label fp, const label v0, const label v1) const
Get other face using v0, v1. Returns -1 if none.
Various functions to operate on Lists.
dynamicLabelList indexInFace_
defineTypeNameAndDebug(combustionModel, 0)
void reverse(UList< T > &, const label n)