36void Foam::CFCFaceToCellStencil::calcFaceBoundaryData
38 labelListList& neiGlobal
50 label facei =
pp.start();
60 globFaces.
setSize(cFaces.size()-1);
65 if (cFaces[j] != facei)
94void Foam::CFCFaceToCellStencil::calcCellStencil
108 calcFaceBoundaryData(neiGlobal);
125 validBFace[bFacei++] =
false;
136 globalCellFaces.setSize(
mesh().nCells());
137 forAll(globalCellFaces, celli)
141 allGlobalFaces.
clear();
144 for (
const label facei : cFaces)
148 mesh().isInternalFace(facei)
149 || validBFace[facei-
mesh().nInternalFaces()]
152 allGlobalFaces.append(globalNumbering().toGlobal(facei));
157 for (
const label facei : cFaces)
159 if (
mesh().isInternalFace(facei))
161 label nbrCelli = own[facei];
162 if (nbrCelli == celli)
164 nbrCelli = nei[facei];
168 for (
const label nbrFacei : nbrFaces)
172 mesh().isInternalFace(nbrFacei)
173 || validBFace[nbrFacei-
mesh().nInternalFaces()]
176 label nbrGlobali = globalNumbering().toGlobal(nbrFacei);
179 allGlobalFaces.push_uniq(nbrGlobali);
188 for (
const label nbrGlobali : nbrGlobalFaces)
191 allGlobalFaces.push_uniq(nbrGlobali);
196 globalCellFaces[celli] = allGlobalFaces;
216 faceToCellStencil(
mesh)
219 calcCellStencil(*
this);
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
CFCFaceToCellStencil(const polyMesh &)
Construct from mesh.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
void setSize(label n)
Alias for resize().
void clear()
Clear the list, i.e. set size to zero.
A cell is defined as a list of faces with extra functionality.
const polyMesh & mesh() const
faceToCellStencil(const polyMesh &)
Construct from mesh.
const globalIndex & globalNumbering() const
Global numbering for faces.
label toGlobal(const label proci, const label i) const
From local to global on proci.
A polyBoundaryMesh is a polyPatch list with registered IO, a reference to the associated polyMesh,...
Mesh consisting of general polyhedral cells.
const polyBoundaryMesh & boundaryMesh() const noexcept
Return boundary mesh.
virtual const labelList & faceOwner() const
Return face owner.
virtual const labelList & faceNeighbour() const
Return face neighbour.
A patch is a list of labels that address the faces in the global face list.
label nBoundaryFaces() const noexcept
Number of boundary faces (== nFaces - nInternalFaces).
label nInternalFaces() const noexcept
Number of internal faces.
const cellList & cells() const
const polyBoundaryMesh & patches
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
List< bool > boolList
A List of bools.
#define forAll(list, i)
Loop across all elements in list.