89 Info<<
"Writing " << msg <<
" (" << cells.
size() <<
") to cellSet "
100 if (elems[i] == type)
115 const bool selectCut,
116 const bool selectInside,
117 const bool selectOutside,
118 const scalar nearDist,
136 writeSet(inside,
"inside cells");
140 writeSet(outside,
"outside cells");
144 writeSet(cutCells,
"cells cut by surface");
155 label cType = cellType[cellI];
161 cellType[cellI] = MESH;
165 cellType[cellI] = NONMESH;
172 cellType[cellI] = MESH;
176 cellType[cellI] = NONMESH;
183 cellType[cellI] = MESH;
187 cellType[cellI] = NONMESH;
193 <<
"Multiple mesh regions in original mesh" << endl
194 <<
"Please use splitMeshRegions to separate these"
202 Info<<
"Removing cells with points closer than " << nearDist
203 <<
" to the surface ..." <<
nl <<
endl;
212 const point& pt = pts[pointI];
222 if (cellType[pCells[i]] != NONMESH)
224 cellType[pCells[i]] = NONMESH;
253 Info<<
"Removed " << nRemoved <<
" cells since too close to surface"
262 label selectOutsideCells
284 forAll(outsidePts, outsidePtI)
287 label cellI = queryMesh.
findCell(outsidePts[outsidePtI], -1,
false);
289 if (cellI != -1 && cellType[cellI] == MESH)
291 Info<<
"Marking cell " << cellI <<
" containing outside point "
292 << outsidePts[outsidePtI] <<
" with type " << cellType[cellI]
303 label faceI = cFaces[i];
305 if (outsideFacesMap.insert(faceI))
307 outsideFaces.
append(faceI);
308 outsideFacesInfo.append(meshInfo);
318 outsideFaces.shrink(),
319 outsideFacesInfo.shrink(),
329 forAll(allCellInfo, cellI)
331 if (cellType[cellI] == MESH)
335 if (allCellInfo[cellI].
type() != MESH)
337 cellType[cellI] = NONMESH;
349 int main(
int argc,
char *argv[])
373 fileName surfName(refineDict.lookup(
"surface"));
374 pointField outsidePts(refineDict.lookup(
"outsidePoints"));
375 bool useSurface(
readBool(refineDict.lookup(
"useSurface")));
376 bool selectCut(
readBool(refineDict.lookup(
"selectCut")));
377 bool selectInside(
readBool(refineDict.lookup(
"selectInside")));
378 bool selectOutside(
readBool(refineDict.lookup(
"selectOutside")));
379 scalar nearDist(
readScalar(refineDict.lookup(
"nearDistance")));
384 Info<<
"Cells to be used for meshing (0=false, 1=true):" <<
nl
385 <<
" cells cut by surface : " << selectCut <<
nl
386 <<
" cells inside of surface : " << selectInside <<
nl
387 <<
" cells outside of surface : " << selectOutside <<
nl
388 <<
" cells with points further than : " << nearDist <<
nl
393 Info<<
"Cells to be used for meshing (0=false, 1=true):" <<
nl
394 <<
" cells reachable from outsidePoints:" << selectOutside <<
nl
399 (void)edgeCalc.minLen(
Info);
405 forAll(outsidePts, outsideI)
407 const point& outsidePoint = outsidePts[outsideI];
409 label cellI = queryMesh.
findCell(outsidePoint, -1,
false);
413 <<
"outsidePoint " << outsidePoint
414 <<
" is not inside any cell"
442 surf().writeStats(
Info);
468 label nHanging, nRegionEdges, nRegionPoints, nOutside;
472 Info<<
"Removing cells which after subsetting would have all points"
473 <<
" on outside ..." <<
nl <<
endl;
483 Info<<
"Removing edges connecting cells unconnected by faces ..."
494 Info<<
"Removing points connecting cells unconnected by faces ..."
510 nOutside = selectOutsideCells
522 || nRegionPoints != 0
527 getType(cellType, MESH, selectedCells);
529 writeSet(selectedCells,
"cells selected for meshing");