Go to the documentation of this file.
59 const label start = boundaries[patchI].patchStart();
60 const label end = start + boundaries[patchI].patchSize();
62 for(
label faceI=start;faceI<end;++faceI)
71 # pragma omp parallel for schedule(dynamic, 1000)
73 for(
label cellI=
cells.size()-1;cellI>=0;--cellI)
82 bool allBoundary(
true);
85 if( bp[cellPoints[cpI]] < 0 )
120 if( faceGroup.found(internalFaces[i]) )
124 front.
append(internalFaces[i]);
125 faceGroup.insert(internalFaces[i], nGroup);
127 while( front.
size() )
133 const label nei = internalFaces[j];
134 if( faceGroup.found(nei) )
140 faceGroup.insert(nei, nGroup);
197 forAll(procBoundaries, patchI)
199 label start = procBoundaries[patchI].patchStart();
200 labelList patchCellType(procBoundaries[patchI].patchSize());
202 forAll(patchCellType, faceI)
203 patchCellType[faceI] =
cellType_[owner[start++]];
208 procBoundaries[patchI].neiProcNo(),
209 patchCellType.byteSize()
212 toOtherProc << patchCellType;
216 forAll(procBoundaries, patchI)
221 procBoundaries[patchI].neiProcNo()
224 labelList& otherTypes = otherProcType[patchI];
225 fromOtherProc >> otherTypes;
230 # pragma omp parallel for schedule(dynamic, 40)
237 # pragma omp critical
246 bool hasInternalNeighbour(
false);
251 const label faceI =
c[fI];
253 if( faceI < nInternalFaces )
257 label nei = neighbour[
c[fI]];
263 hasInternalNeighbour =
true;
272 const label j = faceI - procBoundaries[patchI].patchStart();
276 hasInternalNeighbour =
true;
282 if( hasInternalNeighbour || (nNeiCells == 1) )
285 # pragma omp critical
304 nRemoved = badCells.
size();
307 Info <<
"Found " << nRemoved <<
" non-mappable cells" <<
endl;
313 removeCell[it.key()] =
true;
const labelList & neighbour() const
const labelList & owner() const
owner and neighbour cells for faces
const labelList & bp() const
#define forAll(list, i)
Loop across all elements in list.
Output inter-processor communications stream.
~checkNonMappableCellConnections()
bool removeCells()
find and remove problematic cells
static bool & parRun()
Is this a parallel run?
Ostream & endl(Ostream &os)
Add newline and flush stream.
T removeLastElement()
Return and remove the last element.
const faceListPMG & faces() const
access to faces
label nInternalFaces() const
return number of internal faces
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
label faceIsInProcPatch(const label faceLabel) const
return processor patch label for the given face label
const cellListPMG & cells() const
access to cells
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
void findCellTypes()
classify cells
label size() const
Return number of elements in table.
void setSize(const label)
Reset size of List.
void clear()
Clear all entries from table.
const PtrList< boundaryPatch > & boundaries() const
ordinary boundaries
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
labelList cellType_
type of cell
void findCells(labelHashSet &badCells)
find problematic cells
label size() const
Return the number of elements in the PtrList.
bool insert(const Key &key)
Insert a new entry.
const PtrList< processorBoundaryPatch > & procBoundaries() const
inter-processor boundaries
const dimensionedScalar c
Speed of light in a vacuum.
Input inter-processor communications stream.
void size(const label)
Override size to be inconsistent with allocated storage.
polyMeshGen & mesh_
Reference to polyMeshGen.
A cell is defined as a list of faces with extra functionality.
label size() const
return the number of used elements
void removeCells(const boolList &removeCell, const bool removeProcFaces=true)
remove cells
bool shareAnEdge(const faceType1 &f1, const faceType2 &f2)
check if two faces share an edge
checkNonMappableCellConnections(const checkNonMappableCellConnections &)
Disallow default bitwise copy construct.
void append(const T &e)
Append an element at the end of the list.