Go to the documentation of this file.
52 if (!isA<emptyPolyPatch>(pp))
54 nNonEmpty += pp.size();
60 for (
const polyPatch& pp :
patches)
62 if (!isA<emptyPolyPatch>(pp))
64 label facei = pp.start();
68 nonEmptyFaces[nNonEmpty++] = facei++;
96 nCoupled += pp.size();
102 for (
const polyPatch& pp :
patches)
106 label facei = pp.start();
110 coupledFaces[nCoupled++] = facei++;
131 isValidBFace.
setSize(meshRef_.nBoundaryFaces());
137 if (pp.coupled() || isA<emptyPolyPatch>(pp))
139 label bFacei = pp.start() - meshRef_.nInternalFaces();
142 isValidBFace[bFacei++] =
false;
157 for (
const label celli : cCells)
159 if (celli != globalI)
165 for (
const label celli : pGlobals)
167 if (celli != globalI)
173 cCells.setSize(
set.size()+1);
175 cCells[
n++] = globalI;
177 for (
const label seti :
set)
186 const label exclude0,
187 const label exclude1,
193 const labelList& own = meshRef_.faceOwner();
194 const labelList& nei = meshRef_.faceNeighbour();
196 for (
const label facei : faceLabels)
198 const label globalOwn = globalNumbering().toGlobal(own[facei]);
199 if (globalOwn != exclude0 && globalOwn != exclude1)
201 globals.insert(globalOwn);
204 if (meshRef_.isInternalFace(facei))
206 const label globalNei = globalNumbering().toGlobal(nei[facei]);
207 if (globalNei != exclude0 && globalNei != exclude1)
209 globals.insert(globalNei);
214 const label bFacei = facei - meshRef_.nInternalFaces();
216 if (isValidBFace[bFacei])
218 label globalI = globalNumbering().toGlobal
224 if (globalI != exclude0 && globalI != exclude1)
226 globals.insert(globalI);
252 return globals.toc();
263 globalNumbering_(meshRef_.nCells() + meshRef_.nBoundaryFaces())
static autoPtr< T > New(Args &&... args)
List< label > labelList
A List of labels.
virtual const pointField & points() const
autoPtr< indirectPrimitivePatch > nonEmptyFacesPatch() const
autoPtr< indirectPrimitivePatch > allCoupledFacesPatch() const
void set(List< bool > &bools, const labelRange &range)
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
void validBoundaryFaces(boolList &isValidBFace) const
static void merge(const label globalI, const labelList &pGlobals, labelList &cCells)
zoneCellStencils(const zoneCellStencils &)=delete
List< bool > boolList
A List of bools.
const polyBoundaryMesh & boundaryMesh() const
A HashTable with keys but without contents that is similar to std::unordered_set.
void insertFaceCells(const label exclude0, const label exclude1, const boolList &nonEmptyFace, const labelList &faceLabels, labelHashSet &globals) const
A patch is a list of labels that address the faces in the global face list.
void setSize(const label n)
A List with indirect addressing.
base class for cell stencil in a narrow band
Mesh data needed to do the Finite Volume discretisation.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
virtual const faceList & faces() const
labelList calcFaceCells(const boolList &nonEmptyFace, const labelList &faceLabels, labelHashSet &globals) const
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
bool insert(const Key &key)
const polyBoundaryMesh & patches
HashSet< label, Hash< label > > labelHashSet
A HashSet with label keys and label hasher.
defineTypeNameAndDebug(combustionModel, 0)