38template<
class BoolListType,
class FaceList,
class Po
intField>
42 const BoolListType& borderEdge,
44 const label currentZone,
61 label facei = changedFaces[i];
63 const labelList& fEdges = faceEdges[facei];
67 label edgeI = fEdges[fEdgeI];
69 if (!borderEdge[edgeI])
71 const labelList& eFaceLst = edgeFaces[edgeI];
75 label nbrFacei = eFaceLst[j];
80 newChangedFaces.
append(nbrFacei);
82 else if (
faceZone[nbrFacei] != currentZone)
86 <<
" at face " << nbrFacei
87 <<
" connects to zone " << currentZone
88 <<
" at face " << facei
96 if (newChangedFaces.
empty())
102 changedFaces.
transfer(newChangedFaces);
107template<
class BoolListType,
class FaceList,
class Po
intField>
111 const PrimitivePatch<FaceList, PointField>&
p,
112 const BoolListType& borderEdge,
116 faceZone.setSize(
p.size());
120 for (label startFacei = 0; startFacei < faceZone.size();)
123 for (; startFacei < faceZone.size(); ++startFacei)
125 if (faceZone[startFacei] == -1)
127 faceZone[startFacei] = zoneI;
128 markZone(
p, borderEdge, startFacei, zoneI, faceZone);
139template<
class BoolListType,
class FaceList,
class Po
intField>
144 const BoolListType& includeFaces,
149 const auto& localFaces =
p.localFaces();
151 faceMap.resize(localFaces.size());
158 forAll(localFaces, oldFacei)
160 if (includeFaces[oldFacei])
166 pointUsed.
set(localFaces[oldFacei]);
176template<
class FaceList,
class Po
intField>
193 for (
const auto&
f :
p)
195 for (
const label pointi :
f)
197 if (pointUsed.
set(pointi))
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
void append(const T &val)
Copy append an element to the end of this list.
void transfer(List< T > &list)
Transfer the contents of the argument List into this list and annul the argument list.
void setSize(label n)
Alias for resize().
void clear()
Clear the list, i.e. set size to zero.
A list of faces which address into the list of points.
bool empty() const noexcept
True if List is empty (ie, size() is zero).
void size(const label n)
Older name for setAddressableSize.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
labelList sortedToc() const
The indices of the on bits as a sorted labelList.
void set(const bitSet &bitset)
Set specified bits from another bitset.
A bounding box defined in terms of min/max extrema points.
void add(const boundBox &bb)
Extend to include the second box.
void reset()
Reset to an inverted box.
A subset of mesh faces organised as a primitive patch.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
GeometricField< Type, pointPatchField, pointMesh > PointField
A point field for a given type.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define forAll(list, i)
Loop across all elements in list.