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>
112 const BoolListType& borderEdge,
120 for (label startFacei = 0; startFacei <
faceZone.
size();)
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)
void setSize(const 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 the UList 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.
static const boundBox invertedBox
A large inverted boundBox: min/max == +/- ROOTVGREAT.
void add(const boundBox &bb)
Extend to include the second 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)
errorManip< error > abort(error &err)
#define forAll(list, i)
Loop across all elements in list.