36 void Foam::pointMapper::calcAddressing()
const
41 || interpolationAddrPtr_
43 || insertedPointLabelsPtr_
47 <<
"Addressing already calculated."
62 labelList& insertedPoints = *insertedPointLabelsPtr_;
64 label nInsertedPoints = 0;
66 forAll (directAddr, pointI)
68 if (directAddr[pointI] < 0)
71 directAddr[pointI] = 0;
72 insertedPoints[nInsertedPoints] = pointI;
77 insertedPoints.setSize(nInsertedPoints);
95 const labelList& mo = cfc[cfcI].masterObjects();
97 label pointI = cfc[cfcI].index();
99 if (addr[pointI].
size())
101 FatalErrorIn(
"void pointMapper::calcAddressing() const")
102 <<
"Master point " << pointI
103 <<
" mapped from points " << mo
109 w[pointI] =
scalarList(mo.size(), 1.0/mo.size());
120 if (cm[pointI] > -1 && addr[pointI].empty())
131 labelList& insertedPoints = *insertedPointLabelsPtr_;
133 label nInsertedPoints = 0;
137 if (addr[pointI].empty())
143 insertedPoints[nInsertedPoints] = pointI;
148 insertedPoints.setSize(nInsertedPoints);
153 void Foam::pointMapper::clearOut()
169 insertedPoints_(true),
171 directAddrPtr_(NULL),
172 interpolationAddrPtr_(NULL),
174 insertedPointLabelsPtr_(NULL)
189 insertedPoints_ =
false;
203 cm[cfc[cfcI].index()] = 0;
208 insertedPoints_ =
true;
226 return mpm_.pointMap().size();
232 return mpm_.nOldPoints();
242 "const unallocLabelList& pointMapper::directAddressing() const"
243 ) <<
"Requested direct addressing for an interpolative mapper."
247 if (!insertedObjects())
250 return mpm_.pointMap();
259 return *directAddrPtr_;
270 "const labelListList& pointMapper::addressing() const"
271 ) <<
"Requested interpolative addressing for a direct mapper."
275 if (!interpolationAddrPtr_)
280 return *interpolationAddrPtr_;
290 "const scalarListList& pointMapper::weights() const"
291 ) <<
"Requested interpolative weights for a direct mapper."
306 if (!insertedPointLabelsPtr_)
308 if (!insertedObjects())
311 insertedPointLabelsPtr_ =
new labelList(0);
319 return *insertedPointLabelsPtr_;