35 const Foam::label Foam::enrichedPatch::nFaceHits_ = 4;
39 void Foam::enrichedPatch::calcMasterPointFaces()
const
41 if (masterPointFacesPtr_)
43 FatalErrorIn(
"void enrichedPatch::calcMasterPointFaces() const")
44 <<
"Master point face addressing already calculated."
56 Map<DynamicList<label> > mpf(
meshPoints().size());
61 forAll (masterPatch_, faceI)
63 const face& curFace = ef[faceI + slavePatch_.size()];
67 Map<DynamicList<label> >::iterator mpfIter =
68 mpf.find(curFace[pointI]);
70 if (mpfIter == mpf.end())
82 mpf.find(curFace[pointI])().
append(faceI);
86 mpfIter().append(faceI);
94 forAll (slavePointFaceHits_, pointI)
98 slavePointPointHits_[pointI] < 0
99 && slavePointEdgeHits_[pointI] < 0
100 && slavePointFaceHits_[pointI].hit()
105 const label mergedSmp =
108 Map<DynamicList<label> >::iterator mpfIter =
111 if (mpfIter == mpf.end())
123 mpf.find(mergedSmp)().
append
125 slavePointFaceHits_[pointI].hitObject()
130 mpfIter().append(slavePointFaceHits_[pointI].hitObject());
138 masterPointFacesPtr_ =
new Map<labelList>(2*mpfToc.size());
139 Map<labelList>& masterPointFaceAddr = *masterPointFacesPtr_;
144 l.
transfer(mpf.find(mpfToc[mpfTocI])());
146 masterPointFaceAddr.insert(mpfToc[mpfTocI], l);
156 if (!masterPointFacesPtr_)
158 calcMasterPointFaces();
161 return *masterPointFacesPtr_;