44 label nGlobalInsert = 0;
70 label elem = listA[i];
72 if (elem != global0 && elem != global1)
89 result[resultI++] = global0;
93 result[resultI++] = global1;
100 label elem = listB[i];
102 if (elem != global0 && elem != global1)
104 result[resultI++] = elem;
112 label elem = listA[i];
114 if (elem != global0 && elem != global1)
118 result[resultI++] = elem;
123 if (resultI != result.size())
143 if (cCells[i] != globalI)
145 set.insert(cCells[i]);
151 if (pGlobals[i] != globalI)
153 set.insert(pGlobals[i]);
159 cCells[n++] = globalI;
163 cCells[n++] = iter.key();
178 if (pp.
coupled() || isA<emptyPolyPatch>(pp))
183 isValidBFace[bFacei++] =
false;
203 nCoupled += pp.size();
219 coupledFaces[nCoupled++] = facei++;
239 void Foam::cellToCellStencil::unionEqOp::operator()
266 const label exclude0,
267 const label exclude1,
278 label facei = faceLabels[i];
281 if (globalOwn != exclude0 && globalOwn != exclude1)
283 globals.
insert(globalOwn);
286 if (
mesh().isInternalFace(facei))
289 if (globalNei != exclude0 && globalNei != exclude1)
291 globals.
insert(globalNei);
298 if (isValidBFace[bFacei])
306 if (globalI != exclude0 && globalI != exclude1)
334 return globals.
toc();
343 globalNumbering_(mesh_.nCells()+mesh_.nFaces()-mesh_.nInternalFaces())
static void merge(const label global0, const label global1, const labelList &listA, labelList &listB)
Merge two lists.
const fvPatchList & patches
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
label findSortedIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurrence of given element in sorted list and return index,.
#define forAll(list, i)
Loop across all elements in list.
bool empty() const
Return true if the UList is empty (ie, size() is zero)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
label nInternalFaces() const
virtual const labelList & faceNeighbour() const
Return face neighbour.
void size(const label)
Override size to be inconsistent with allocated storage.
PrimitivePatch< IndirectList< face >, const pointField & > indirectPrimitivePatch
Foam::indirectPrimitivePatch.
bool insert(const Key &key)
Insert a new entry.
virtual bool coupled() const
Return true if this patch is geometrically coupled (i.e. faces and.
void clear()
Clear all entries from table.
virtual const labelList & faceOwner() const
Return face owner.
errorManip< error > abort(error &err)
void validBoundaryFaces(boolList &isValidBFace) const
Valid boundary faces (not empty and not coupled)
void setSize(const label)
Reset size of List.
label toGlobal(const label i) const
From local to global.
labelList calcFaceCells(const boolList &nonEmptyFace, const labelList &faceLabels, labelHashSet &globals) const
Collect cell neighbours of faces in global numbering.
label start() const
Return start label of this patch in the polyMesh face list.
const globalIndex & globalNumbering() const
Global numbering for cells and boundary faces.
cellToCellStencil(const polyMesh &)
Construct from mesh.
const polyMesh & mesh() const
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
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.
Mesh consisting of general polyhedral cells.
List< Key > toc() const
Return the table of contents.
A patch is a list of labels that address the faces in the global face list.
void transfer(List< T > &)
Transfer the contents of the argument List into this list.
autoPtr< indirectPrimitivePatch > allCoupledFacesPatch() const
Return patch of all coupled faces.