Originally the only supported geometry specification were triangulated surfaces, hence the name of the directory: constant/triSurface, however now that other surface specifications are supported and provided it is much more logical that the directory is named accordingly: constant/geometry. All tutorial and template cases have been updated. Note that backward compatibility is provided such that if the constant/geometry directory does not exist but constant/triSurface does then the geometry files are read from there.
75 lines
1.3 KiB
C++
75 lines
1.3 KiB
C++
Random rndGen(653213);
|
|
|
|
// Determine mesh bounding boxes:
|
|
List<treeBoundBox> meshBb
|
|
(
|
|
1,
|
|
treeBoundBox
|
|
(
|
|
boundBox(coarseMesh.points(), false)
|
|
).extend(1e-3)
|
|
);
|
|
|
|
// Dummy bounds dictionary
|
|
dictionary dict;
|
|
dict.add("bounds", meshBb);
|
|
dict.add
|
|
(
|
|
"distributionType",
|
|
distributedTriSurfaceMesh::distributionTypeNames_
|
|
[
|
|
distributedTriSurfaceMesh::FROZEN
|
|
]
|
|
);
|
|
dict.add("mergeDistance", small);
|
|
|
|
labelHashSet includePatches;
|
|
forAll(patches, patchi)
|
|
{
|
|
const polyPatch& pp = patches[patchi];
|
|
if
|
|
(
|
|
!pp.coupled()
|
|
&& !isA<cyclicAMIPolyPatch>(pp)
|
|
&& !isA<emptyPolyPatch>(pp)
|
|
)
|
|
{
|
|
includePatches.insert(patchi);
|
|
}
|
|
}
|
|
|
|
labelList triSurfaceToAgglom(5*nFineFaces);
|
|
|
|
const triSurface localSurface = triangulate
|
|
(
|
|
patches,
|
|
includePatches,
|
|
finalAgglom,
|
|
triSurfaceToAgglom,
|
|
globalNumbering,
|
|
coarsePatches
|
|
);
|
|
|
|
|
|
distributedTriSurfaceMesh surfacesMesh
|
|
(
|
|
IOobject
|
|
(
|
|
"wallSurface.stl",
|
|
runTime.constant(),
|
|
searchableSurface::geometryDir(runTime),
|
|
runTime,
|
|
IOobject::NO_READ,
|
|
IOobject::NO_WRITE
|
|
),
|
|
localSurface,
|
|
dict
|
|
);
|
|
|
|
|
|
triSurfaceToAgglom.resize(surfacesMesh.size());
|
|
|
|
//surfacesMesh.searchableSurface::write();
|
|
|
|
surfacesMesh.setField(triSurfaceToAgglom);
|