54 for (
const label pointi : boundaryPoints)
56 bool updatePoint =
false;
59 for (
const label celli : pCells[pointi])
70 syncPoints.insert(pointi,
true);
86 void Foam::zoneCPCStencil::calcPointBoundaryData
91 Map<labelList>& neiGlobal
94 neiGlobal.resize(2*boundaryPoints.size());
98 for (
const label pointi : boundaryPoints)
106 mesh_.pointFaces()[pointi],
116 ListOps::unionEqOp(),
127 nonEmptyBoundaryPoints_(nonEmptyFacesPatch()().meshPoints()),
128 uptodate_(
mesh.nCells(), false)
135 void Foam::zoneCPCStencil::calculateStencil
142 Map<bool> syncPoints = syncCoupledBoundaryPoints
145 nonEmptyBoundaryPoints_
148 labelList boundaryPoints(syncPoints.toc());
151 calcPointBoundaryData
161 for (
const label pointi : boundaryPoints)
163 const labelList& pGlobals = neiGlobal[pointi];
166 const labelList& pCells = mesh_.pointCells(pointi);
168 for (
const label celli : pCells)
171 if (
zone[celli] && !uptodate_[celli])
175 globalNumbering().toGlobal(celli),
177 globalCellCells[celli]
180 for (
const label gblIdx : globalCellCells[celli])
182 if (!globalNumbering().isLocal(gblIdx))
184 needComm_.insert(celli);
199 if (zone[celli] && !uptodate_[celli])
201 for (
const label pointi : cPoints[celli])
203 labelList pCells = mesh_.pointCells(pointi);
205 for (label& neiCelli : pCells)
207 neiCelli = globalNumbering().toGlobal(neiCelli);
210 if (!uptodate_[celli])
214 globalNumbering().toGlobal(celli),
216 globalCellCells[celli]
221 uptodate_[celli] =
true;
229 if (mesh_.topoChanging())
234 nonEmptyBoundaryPoints_ = nonEmptyFacesPatch()().meshPoints();
235 uptodate_.resize(mesh_.nCells());
237 validBoundaryFaces(isValidBFace_);