36 void Foam::faceMapper::calcAddressing()
const
41 || interpolationAddrPtr_
43 || insertedFaceLabelsPtr_
47 <<
"Addressing already calculated."
62 labelList& insertedFaces = *insertedFaceLabelsPtr_;
64 label nInsertedFaces = 0;
68 if (directAddr[faceI] < 0)
71 directAddr[faceI] = 0;
72 insertedFaces[nInsertedFaces] = faceI;
77 insertedFaces.setSize(nInsertedFaces);
94 const labelList& mo = ffp[ffpI].masterObjects();
96 label faceI = ffp[ffpI].index();
98 if (addr[faceI].
size())
101 <<
"Master face " << faceI
102 <<
" mapped from point faces " << mo
108 w[faceI] =
scalarList(mo.size(), 1.0/mo.size());
116 const labelList& mo = ffe[ffeI].masterObjects();
118 label faceI = ffe[ffeI].index();
120 if (addr[faceI].
size())
123 <<
"Master face " << faceI
124 <<
" mapped from edge faces " << mo
130 w[faceI] =
scalarList(mo.size(), 1.0/mo.size());
138 const labelList& mo = fff[fffI].masterObjects();
140 label faceI = fff[fffI].index();
142 if (addr[faceI].
size())
145 <<
"Master face " << faceI
146 <<
" mapped from face faces " << mo
152 w[faceI] =
scalarList(mo.size(), 1.0/mo.size());
162 if (fm[faceI] > -1 && addr[faceI].empty())
174 labelList& insertedFaces = *insertedFaceLabelsPtr_;
176 label nInsertedFaces = 0;
180 if (addr[faceI].empty())
186 insertedFaces[nInsertedFaces] = faceI;
191 insertedFaces.setSize(nInsertedFaces);
196 void Foam::faceMapper::clearOut()
212 insertedFaces_(true),
214 directAddrPtr_(NULL),
215 interpolationAddrPtr_(NULL),
217 insertedFaceLabelsPtr_(NULL)
237 insertedFaces_ =
false;
252 fm[ffp[ffpI].index()] = 0;
259 fm[ffe[ffeI].index()] = 0;
266 fm[fff[fffI].index()] = 0;
271 insertedFaces_ =
true;
289 return mesh_.nFaces();
295 return mpm_.nOldFaces();
301 return mpm_.nOldInternalFaces();
311 "const unallocLabelList& faceMapper::directAddressing() const"
312 ) <<
"Requested direct addressing for an interpolative mapper."
316 if (!insertedObjects())
319 return mpm_.faceMap();
328 return *directAddrPtr_;
339 "const labelListList& faceMapper::addressing() const"
340 ) <<
"Requested interpolative addressing for a direct mapper."
344 if (!interpolationAddrPtr_)
349 return *interpolationAddrPtr_;
359 "const scalarListList& faceMapper::weights() const"
360 ) <<
"Requested interpolative weights for a direct mapper."
375 if (!insertedFaceLabelsPtr_)
377 if (!insertedObjects())
380 insertedFaceLabelsPtr_ =
new labelList(0);
388 return *insertedFaceLabelsPtr_;
394 return mpm_.flipFaceFlux();
400 return mpm_.nOldInternalFaces();
406 return mpm_.oldPatchStarts();
412 return mpm_.oldPatchSizes();