36 void Foam::FECCellToFaceStencil::calcEdgeBoundaryData
40 EdgeMap<labelList>& neiGlobal
43 neiGlobal.resize(2*boundaryEdges.size());
49 label edgeI = boundaryEdges[i];
53 mesh().edges()[edgeI],
57 mesh().edgeFaces(edgeI),
75 void Foam::FECCellToFaceStencil::calcFaceStencil
93 const polyPatch& pp = patches[patchI];
97 label faceI = pp.start();
102 globalNumbering().toGlobal(own[faceI]);
117 allCoupledFacesPatch()().meshEdges
126 validBoundaryFaces(isValidBFace);
131 EdgeMap<labelList> neiGlobal;
144 faceStencil.setSize(
mesh().nFaces());
150 label edgeI = boundaryEdges[i];
159 label faceI = eFaces[j];
162 merge(-1, -1, eGlobals, faceStencil[faceI]);
171 DynamicList<label> fEdgesSet;
172 DynamicList<label> eFacesSet;
177 label globalOwn = globalNumbering().toGlobal(own[faceI]);
178 label globalNei = globalNumbering().toGlobal(nei[faceI]);
183 faceStencilSet.
clear();
186 forAll(faceStencil[faceI], i)
188 label globalI = faceStencil[faceI][i];
189 if (globalI != globalOwn && globalI != globalNei)
191 faceStencilSet.insert(globalI);
194 faceStencil[faceI].clear();
201 label edgeI = fEdges[i];
208 mesh().edgeFaces(edgeI, eFacesSet),
214 faceStencil[faceI].setSize(faceStencilSet.size()+2);
216 faceStencil[faceI][n++] = globalOwn;
217 faceStencil[faceI][n++] = globalNei;
220 if (iter.key() == globalOwn || iter.key() == globalNei)
222 FatalErrorIn(
"FECCellToFaceStencil::calcFaceStencil(..)")
223 <<
"problem:" << faceStencilSet
226 faceStencil[faceI][n++] = iter.key();
231 const polyPatch& pp = patches[patchI];
232 label faceI = pp.start();
238 label globalOwn = globalNumbering().toGlobal(own[faceI]);
244 faceStencilSet.clear();
247 forAll(faceStencil[faceI], i)
249 label globalI = faceStencil[faceI][i];
250 if (globalI != globalOwn && globalI != globalNei)
252 faceStencilSet.insert(globalI);
255 faceStencil[faceI].clear();
262 label edgeI = fEdges[i];
269 mesh().edgeFaces(edgeI, eFacesSet),
275 faceStencil[faceI].setSize(faceStencilSet.size()+2);
277 faceStencil[faceI][n++] = globalOwn;
278 faceStencil[faceI][n++] = globalNei;
281 if (iter.key() == globalOwn || iter.key() == globalNei)
285 "FECCellToFaceStencil::calcFaceStencil(..)"
286 ) <<
"problem:" << faceStencilSet
289 faceStencil[faceI][n++] = iter.key();
292 if (n != faceStencil[faceI].size())
295 <<
" size:" << faceStencil[faceI].size()
302 else if (!isA<emptyPolyPatch>(pp))
306 label globalOwn = globalNumbering().toGlobal(own[faceI]);
311 faceStencilSet.clear();
314 forAll(faceStencil[faceI], i)
316 label globalI = faceStencil[faceI][i];
317 if (globalI != globalOwn)
319 faceStencilSet.insert(globalI);
322 faceStencil[faceI].clear();
329 label edgeI = fEdges[i];
336 mesh().edgeFaces(edgeI, eFacesSet),
342 faceStencil[faceI].setSize(faceStencilSet.size()+1);
344 faceStencil[faceI][n++] = globalOwn;
347 if (iter.key() == globalOwn)
351 "FECCellToFaceStencil::calcFaceStencil(..)"
352 ) <<
"problem:" << faceStencilSet
355 faceStencil[faceI][n++] = iter.key();
366 label globalOwn = globalNumbering().toGlobal(own[faceI]);
367 if (faceStencil[faceI][0] != globalOwn)
369 FatalErrorIn(
"FECCellToFaceStencil::calcFaceStencil(..)")
370 <<
"problem:" << faceStencil[faceI]
371 <<
" globalOwn:" << globalOwn
374 label globalNei = globalNumbering().toGlobal(nei[faceI]);
375 if (faceStencil[faceI][1] != globalNei)
377 FatalErrorIn(
"FECCellToFaceStencil::calcFaceStencil(..)")
378 <<
"problem:" << faceStencil[faceI]
379 <<
" globalNei:" << globalNei
387 const polyPatch& pp = patches[patchI];
393 label faceI = pp.start()+i;
395 label globalOwn = globalNumbering().toGlobal(own[faceI]);
396 if (faceStencil[faceI][0] != globalOwn)
398 FatalErrorIn(
"FECCellToFaceStencil::calcFaceStencil(..)")
399 <<
"problem:" << faceStencil[faceI]
400 <<
" globalOwn:" << globalOwn
404 if (faceStencil[faceI][1] != globalNei)
406 FatalErrorIn(
"FECCellToFaceStencil::calcFaceStencil(..)")
407 <<
"problem:" << faceStencil[faceI]
408 <<
" globalNei:" << globalNei
413 else if (!isA<emptyPolyPatch>(pp))
417 label faceI = pp.start()+i;
419 label globalOwn = globalNumbering().toGlobal(own[faceI]);
420 if (faceStencil[faceI][0] != globalOwn)
422 FatalErrorIn(
"FECCellToFaceStencil::calcFaceStencil(..)")
423 <<
"problem:" << faceStencil[faceI]
424 <<
" globalOwn:" << globalOwn
441 calcFaceStencil(faceStencil);