39 #ifndef zoneCellStencils_H 40 #define zoneCellStencils_H 100 const label exclude1,
void validBoundaryFaces(boolList &isValidBFace) const
Valid boundary faces (not empty and not coupled)
static void merge(const label globalI, const labelList &pGlobals, labelList &cCells)
Merge two lists and guarantee globalI is first.
zoneCellStencils(const zoneCellStencils &)=delete
No copy construct.
TypeName("zoneCellStencils")
void insertFaceCells(const label exclude0, const label exclude1, const boolList &nonEmptyFace, const labelList &faceLabels, labelHashSet &globals) const
Collect cell neighbours of faces in global numbering.
labelHashSet needComm_
cells requiring processor communciation
void operator=(const zoneCellStencils &)=delete
No copy assignment.
const polyMesh & mesh() const noexcept
labelList calcFaceCells(const boolList &nonEmptyFace, const labelList &faceLabels, labelHashSet &globals) const
Collect cell neighbours of faces in global numbering.
autoPtr< indirectPrimitivePatch > nonEmptyFacesPatch() const
Return patch of all coupled faces.
labelList faceLabels(nFaceLabels)
const labelHashSet & needsComm() noexcept
const fvMesh & meshRef_
const reference to fvMesh
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
Base class for mesh zones.
autoPtr< indirectPrimitivePatch > allCoupledFacesPatch() const
Return patch of all coupled faces.
void updateStencil(const boolList &zone)
virtual ~zoneCellStencils()=default
Calculates per cell the neighbour data.
Mesh data needed to do the Finite Volume discretisation.
base class for cell stencil in a narrow band
const globalIndex & globalNumbering() const noexcept
Global numbering for cells and boundary faces.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
globalIndex globalNumbering_
Global numbering for cells and boundary faces.
virtual void calculateStencil(const boolList &zone, labelListList &globalCellCells)=0