mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: shm: support for automatic faceZones
This commit is contained in:
committed by
Andrew Heather
parent
0c7140c967
commit
b8c2c0acf6
@ -585,35 +585,52 @@ void Foam::conformalVoronoiMesh::addZones
|
||||
|
||||
labelList namedSurfaces(surfaceZonesInfo::getNamedSurfaces(surfZones));
|
||||
|
||||
// Tbd. No support yet for multi-faceZones on outside of cellZone
|
||||
|
||||
forAll(namedSurfaces, i)
|
||||
{
|
||||
label surfI = namedSurfaces[i];
|
||||
const wordList& fzNames = surfZones[surfI].faceZoneNames();
|
||||
|
||||
Info<< incrIndent << indent << "Surface : "
|
||||
<< geometryToConformTo().geometry().names()[surfI] << nl
|
||||
<< indent << " faceZone : "
|
||||
<< surfZones[surfI].faceZoneName() << nl
|
||||
<< (fzNames.size() ? fzNames[0] : "") << nl
|
||||
<< indent << " cellZone : "
|
||||
<< surfZones[surfI].cellZoneName()
|
||||
<< decrIndent << endl;
|
||||
}
|
||||
|
||||
// Add zones to mesh
|
||||
labelList surfaceToFaceZone =
|
||||
surfaceZonesInfo::addFaceZonesToMesh
|
||||
labelList surfaceToFaceZone(surfZones.size(), -1);
|
||||
{
|
||||
const labelListList surfaceToFaceZones
|
||||
(
|
||||
surfZones,
|
||||
namedSurfaces,
|
||||
mesh
|
||||
surfaceZonesInfo::addFaceZonesToMesh
|
||||
(
|
||||
surfZones,
|
||||
namedSurfaces,
|
||||
mesh
|
||||
)
|
||||
);
|
||||
forAll(surfaceToFaceZones, surfi)
|
||||
{
|
||||
if (surfaceToFaceZones[surfi].size())
|
||||
{
|
||||
surfaceToFaceZone[surfi] = surfaceToFaceZones[surfi][0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
labelList surfaceToCellZone =
|
||||
const labelList surfaceToCellZone
|
||||
(
|
||||
surfaceZonesInfo::addCellZonesToMesh
|
||||
(
|
||||
surfZones,
|
||||
namedSurfaces,
|
||||
mesh
|
||||
);
|
||||
)
|
||||
);
|
||||
|
||||
// Topochange container
|
||||
polyTopoChange meshMod(mesh);
|
||||
|
||||
@ -355,7 +355,16 @@ Foam::conformationSurfaces::conformationSurfaces
|
||||
// Surface zones
|
||||
if (dict.found("faceZone"))
|
||||
{
|
||||
surfZones_.set(surfI, new surfaceZonesInfo(surface, dict));
|
||||
surfZones_.set
|
||||
(
|
||||
surfI,
|
||||
new surfaceZonesInfo
|
||||
(
|
||||
surface,
|
||||
dict,
|
||||
allGeometry_.regionNames()[surfaces_[surfI]]
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
allGeometryToSurfaces_[surfaces_[surfI]] = surfI;
|
||||
|
||||
@ -163,7 +163,16 @@ autoPtr<refinementSurfaces> createRefinementSurfaces
|
||||
globalLevelIncr[surfi] = gapLevelIncrement;
|
||||
|
||||
// Surface zones
|
||||
surfZones.set(surfi, new surfaceZonesInfo(surface, shapeDict));
|
||||
surfZones.set
|
||||
(
|
||||
surfi,
|
||||
new surfaceZonesInfo
|
||||
(
|
||||
surface,
|
||||
shapeDict,
|
||||
allGeometry.regionNames()[surfaces[surfi]]
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// Global perpendicular angle
|
||||
@ -1395,9 +1404,10 @@ int main(int argc, char *argv[])
|
||||
Info<< surfaces.names()[surfi] << ':' << nl << nl;
|
||||
}
|
||||
|
||||
const word& fzName = surfaces.surfZones()[surfi].faceZoneName();
|
||||
const wordList& fzNames =
|
||||
surfaces.surfZones()[surfi].faceZoneNames();
|
||||
|
||||
if (fzName.empty())
|
||||
if (fzNames.empty())
|
||||
{
|
||||
// 'Normal' surface
|
||||
forAll(regNames, i)
|
||||
@ -1520,15 +1530,19 @@ int main(int argc, char *argv[])
|
||||
// region in surface for patch for zoning
|
||||
if (regNames.size())
|
||||
{
|
||||
label globalRegioni = surfaces.globalRegion(surfi, 0);
|
||||
forAll(fzNames, fzi)
|
||||
{
|
||||
const word& fzName = fzNames[fzi];
|
||||
label globalRegioni = surfaces.globalRegion(surfi, fzi);
|
||||
|
||||
meshRefiner.addFaceZone
|
||||
(
|
||||
fzName,
|
||||
pbm[globalToMasterPatch[globalRegioni]].name(),
|
||||
pbm[globalToSlavePatch[globalRegioni]].name(),
|
||||
surfaces.surfZones()[surfi].faceType()
|
||||
);
|
||||
meshRefiner.addFaceZone
|
||||
(
|
||||
fzName,
|
||||
pbm[globalToMasterPatch[globalRegioni]].name(),
|
||||
pbm[globalToSlavePatch[globalRegioni]].name(),
|
||||
surfaces.surfZones()[surfi].faceType()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user