35 template<
class BoolListType,
class FaceList,
class Po
intField>
39 const BoolListType& borderEdge,
41 const label currentZone,
58 label facei = changedFaces[i];
60 const labelList& fEdges = faceEdges[facei];
64 label edgeI = fEdges[fEdgeI];
66 if (!borderEdge[edgeI])
68 const labelList& eFaceLst = edgeFaces[edgeI];
72 label nbrFacei = eFaceLst[j];
77 newChangedFaces.
append(nbrFacei);
79 else if (
faceZone[nbrFacei] != currentZone)
83 <<
" at face " << nbrFacei
84 <<
" connects to zone " << currentZone
85 <<
" at face " << facei
93 if (newChangedFaces.
empty())
99 changedFaces.
transfer(newChangedFaces);
104 template<
class BoolListType,
class FaceList,
class Po
intField>
108 const BoolListType& borderEdge,
124 markZone(
p, borderEdge, startFacei, zoneI,
faceZone);
135 template<
class BoolListType,
class FaceList,
class Po
intField>
139 const BoolListType& includeFaces,
158 if (includeFaces[oldFacei])
164 const FaceType&
f = localFaces[oldFacei];
168 const label ptLabel =
f[fp];
169 if (!pointHad[ptLabel])
171 pointHad[ptLabel] =
true;
172 pointMap[pointi++] = ptLabel;
184 template<
class FaceList,
class Po
intField>
205 const FaceType&
f =
p[facei];
210 if (pointIsUsed.
set(pointi, 1u))
#define forAll(list, i)
Loop across all elements in list.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
void transfer(List< T > &)
Transfer the contents of the argument List into this list.
void size(const label)
Override size to be inconsistent with allocated storage.
void setSize(const label)
Reset size of List.
void set(const PackedList< 1 > &)
Set specified bits.
A list of faces which address into the list of points.
std::remove_reference< FaceList >::type::value_type FaceType
bool empty() const
Return true if the UList is empty (ie, size() is zero)
A bounding box defined in terms of the points at its extremities.
const point & min() const
Minimum point defining the bounding box.
const point & max() const
Maximum point defining the bounding box.
static const boundBox invertedBox
A very large inverted boundBox: min/max == +/- vGreat.
A subset of mesh faces organised as a primitive patch.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
errorManip< error > abort(error &err)
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)