Go to the documentation of this file.
48 Info <<
"Adding buffer layers" <<
endl;
60 forAll(procBoundaries, patchI)
64 label faceI = procBoundaries[patchI].patchStart();
65 const label end = faceI + procBoundaries[patchI].patchSize();
66 for(;faceI<end;++faceI)
71 const face&
f = faces[
c[fI]];
84 globalPointLabel[it.key()],
91 procBoundaries[patchI].neiProcNo()
94 toOtherProc << ptsToSend;
98 forAll(procBoundaries, patchI)
104 procBoundaries[patchI].neiProcNo()
107 fromOtherProc >> receivedPoints;
111 if( globalToLocal.found(receivedPoints[i].pointLabel()) )
113 if( globalToLocalReceived.found(receivedPoints[i].pointLabel()) )
116 globalToLocalReceived.insert
118 receivedPoints[i].pointLabel(),
126 forAll(procBoundaries, patchI)
130 label faceI = procBoundaries[patchI].patchStart();
131 const label end = faceI + procBoundaries[patchI].patchSize();
132 for(;faceI<end;++faceI)
133 cellsToSend.
insert(owner[faceI]);
141 flattenedCells.
append(
c.size());
146 const face&
f = faces[
c[fI]];
149 flattenedCells.
append(
f.size());
151 flattenedCells.
append(globalPointLabel[
f[pI]]);
158 procBoundaries[patchI].neiProcNo()
161 toOtherProc << flattenedCells;
164 forAll(procBoundaries, patchI)
166 word subsetName =
"processor_";
175 procBoundaries[patchI].neiProcNo()
178 fromOtherProc >> receivedCells;
181 while( counter < receivedCells.size() )
186 c[fI].setSize(receivedCells[counter++]);
189 const label gpI = receivedCells[counter++];
191 if( globalToLocal.found(gpI) )
193 c[fI][pI] = globalToLocal[gpI];
197 c[fI][pI] = globalToLocalReceived[gpI];
209 Info <<
"Finished adding buffer layers" <<
endl;
const labelList & owner() const
owner and neighbour cells for faces
const polyMeshGenAddressing & addressingData() const
addressing which may be needed
void append(const T &e)
Append an element at the end of the list.
A class for handling words, derived from string.
#define forAll(list, i)
Loop across all elements in list.
Output inter-processor communications stream.
const Map< label > & globalToLocalPointAddressing() const
Template functions to aid in the implementation of demand driven data.
word scalarToText(const scalar s)
convert the scalar value into text
static bool & parRun()
Is this a parallel run?
Ostream & endl(Ostream &os)
Add newline and flush stream.
const pointFieldPMG & points() const
access to points
void clearOut() const
clear all pointer data
polyMeshGen & mesh_
reference to the mesh
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
void addCellToSubset(const label, const label)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const cellListPMG & cells() const
access to cells
label addCellSubset(const word &)
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
PtrList< coordinateSystem > coordinates(solidRegions.size())
label size() const
Return number of elements in table.
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)
Insert a new entry.
const PtrList< processorBoundaryPatch > & procBoundaries() const
inter-processor boundaries
void addCell(const faceList &cellFaces)
const dimensionedScalar c
Speed of light in a vacuum.
const labelLongList & globalPointLabel() const
Input inter-processor communications stream.
A face is a list of labels corresponding to mesh vertices.
faceListPMG & facesAccess()
access to mesh faces
A cell is defined as a list of faces with extra functionality.