fluent3DMeshToFoam: Renumbered faceZones
The faces in the mesh are renumbered to ensure upper-triangular ordering, the faces in the faceZones must also be renumbered accordingly. Resolves bug-report https://bugs.openfoam.org/view.php?id=4171
This commit is contained in:
@ -1250,14 +1250,14 @@ int main(int argc, char *argv[])
|
|||||||
// Add all cells
|
// Add all cells
|
||||||
for (label celli = 0; celli < nCells; celli++)
|
for (label celli = 0; celli < nCells; celli++)
|
||||||
{
|
{
|
||||||
meshMod.addCell
|
meshMod.addCell(celli);
|
||||||
(
|
|
||||||
celli // masterCellID
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool doneWarning = false;
|
bool doneWarning = false;
|
||||||
|
|
||||||
|
// Store the face indices of the faces added to the faceZones
|
||||||
|
labelListList faceZones(faceZoneIDs.size());
|
||||||
|
|
||||||
// Add faceZone faces
|
// Add faceZone faces
|
||||||
forAll(faceZoneIDs, faceZonei)
|
forAll(faceZoneIDs, faceZonei)
|
||||||
{
|
{
|
||||||
@ -1266,6 +1266,8 @@ int main(int argc, char *argv[])
|
|||||||
label end = faceGroupEndIndex[fgi];
|
label end = faceGroupEndIndex[fgi];
|
||||||
label zoneID = faceGroupZoneID[fgi];
|
label zoneID = faceGroupZoneID[fgi];
|
||||||
|
|
||||||
|
faceZones[faceZonei].setSize(end - start + 1, -1);
|
||||||
|
|
||||||
Info<< "faceZone from Fluent indices: " << start
|
Info<< "faceZone from Fluent indices: " << start
|
||||||
<< " to: " << end
|
<< " to: " << end
|
||||||
<< " type: " << groupType[zoneID]
|
<< " type: " << groupType[zoneID]
|
||||||
@ -1289,7 +1291,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
meshMod.addFace
|
faceZones[faceZonei][facei - start] = meshMod.addFace
|
||||||
(
|
(
|
||||||
faces[facei],
|
faces[facei],
|
||||||
owner[facei],
|
owner[facei],
|
||||||
@ -1455,18 +1457,21 @@ int main(int argc, char *argv[])
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const labelList& reverseFaceMap = map().reverseFaceMap();
|
||||||
|
const labelHashSet& flipFaceFlux = map().flipFaceFlux();
|
||||||
|
|
||||||
// Add the face zones as required
|
// Add the face zones as required
|
||||||
|
// Renumbering the faces in the zones
|
||||||
forAll(faceZoneIDs, faceZonei)
|
forAll(faceZoneIDs, faceZonei)
|
||||||
{
|
{
|
||||||
const label cgi = faceZoneIDs[faceZonei];
|
const label cgi = faceZoneIDs[faceZonei];
|
||||||
|
|
||||||
mesh.faceZones()[faceZonei].resetAddressing
|
// Original faceZone face labels
|
||||||
|
labelList& fzFaces = faceZones[faceZonei];
|
||||||
|
|
||||||
|
// Original faceZone flipMap
|
||||||
|
boolList fzfm
|
||||||
(
|
(
|
||||||
identityMap
|
|
||||||
(
|
|
||||||
faceGroupStartIndex[cgi],
|
|
||||||
faceGroupEndIndex[cgi] + 1 - faceGroupStartIndex[cgi]
|
|
||||||
),
|
|
||||||
boolList::subList
|
boolList::subList
|
||||||
(
|
(
|
||||||
fm,
|
fm,
|
||||||
@ -1474,6 +1479,25 @@ int main(int argc, char *argv[])
|
|||||||
faceGroupStartIndex[cgi]
|
faceGroupStartIndex[cgi]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Renumber faces and update flipMap for the faceZone
|
||||||
|
forAll(fzFaces, fi)
|
||||||
|
{
|
||||||
|
// Current face index for the face in the faceZone
|
||||||
|
const label facei = fzFaces[fi];
|
||||||
|
|
||||||
|
// Renumbered face
|
||||||
|
fzFaces[fi] = reverseFaceMap[facei];
|
||||||
|
|
||||||
|
// Updated flipMap
|
||||||
|
fzfm[fi] =
|
||||||
|
flipFaceFlux.found(reverseFaceMap[facei])
|
||||||
|
? !fzfm[fi]
|
||||||
|
: fzfm[fi];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset the faceZone
|
||||||
|
mesh.faceZones()[faceZonei].resetAddressing(fzFaces, fzfm);
|
||||||
}
|
}
|
||||||
|
|
||||||
mesh.setInstance(runTime.constant());
|
mesh.setInstance(runTime.constant());
|
||||||
|
|||||||
Reference in New Issue
Block a user