47 const labelList& boundaryPoints
54 for (
const label pointi : boundaryPoints)
56 bool updatePoint =
false;
59 for (
const label celli : pCells[pointi])
70 syncPoints.
insert(pointi,
true);
86void 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(),
128 nonEmptyBoundaryPoints_(nonEmptyFacesPatch()().meshPoints()),
129 uptodate_(
mesh.nCells(), false)
132 validBoundaryFaces(isValidBFace_);
149void Foam::zoneCPCStencil::calculateStencil
156 Map<bool> syncPoints = syncCoupledBoundaryPoints
159 nonEmptyBoundaryPoints_
165 calcPointBoundaryData
175 for (
const label pointi : boundaryPoints)
177 const labelList& pGlobals = neiGlobal[pointi];
180 const labelList& pCells = mesh_.pointCells(pointi);
182 for (
const label celli : pCells)
185 if (
zone[celli] && !uptodate_[celli])
189 globalNumbering().toGlobal(celli),
191 globalCellCells[celli]
194 for (
const label gblIdx : globalCellCells[celli])
196 if (!globalNumbering().isLocal(gblIdx))
198 needComm_.insert(celli);
213 if (zone[celli] && !uptodate_[celli])
215 for (
const label pointi : cPoints[celli])
217 labelList pCells = mesh_.pointCells(pointi);
219 for (label& neiCelli : pCells)
221 neiCelli = globalNumbering().toGlobal(neiCelli);
224 if (!uptodate_[celli])
228 globalNumbering().toGlobal(celli),
230 globalCellCells[celli]
235 uptodate_[celli] =
true;
Various functions to operate on Lists.
bool insert(const Key &key)
Insert a new entry, not overwriting existing entries.
List< Key > toc() const
The table of contents (the keys) in unsorted order.
bool insert(const Key &key, const T &obj)
Copy insert a new entry, not overwriting existing entries.
void clear()
Clear all entries from table.
A HashTable to objects of type <T> with a label key.
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Mesh data needed to do the Finite Volume discretisation.
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
Type * getObjectPtr(const word &name, const bool recursive=false) const
const labelListList & pointCells() const
computes a cell point cell stencil in a narrow band. resizes in case of topological change
base class for cell stencil in a narrow band
Base class for mesh zones.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
List< label > labelList
A List of labels.
List< labelList > labelListList
A List of labelList.
List< bool > boolList
A List of bools.
HashSet< label, Hash< label > > labelHashSet
A HashSet of labels, uses label hasher.
#define forAll(list, i)
Loop across all elements in list.