polyTopoChange: Removed restrictive faceZone functionality

Now faceZones are handled directly by the applications and the new
faceZone::topoChange function so that any face can now be in any number of
zones, significantly increasing the flexibility and usefulness of faceZones.

This completes the generalisation of cellZone, faceZone and pointZone to support
multiple zones for each cell, face or point respectively.  Next step will be to
make zones polymorphic and run-time selectable so that they can alter during the
run and adapt to moving meshes for example.
This commit is contained in:
Henry Weller
2024-03-25 14:32:59 +00:00
parent 7c86fc69bb
commit a833a81560
41 changed files with 296 additions and 1379 deletions

View File

@ -191,13 +191,6 @@ label mergePatchFaces
// Restore. Get face properties.
label own = mesh.faceOwner()[newMasterI];
label zoneID = mesh.faceZones().whichZone(newMasterI);
bool zoneFlip = false;
if (zoneID >= 0)
{
const faceZone& fZone = mesh.faceZones()[zoneID];
zoneFlip = fZone.flipMap()[fZone.whichFace(newMasterI)];
}
label patchID = mesh.boundaryMesh().whichPatch(newMasterI);
Pout<< "Restoring new master face " << newMasterI
@ -211,12 +204,9 @@ label mergePatchFaces
own, // owner
-1, // neighbour
false, // face flip
patchID, // patch for face
zoneID, // zone for face
zoneFlip // face flip in zone
patchID // patch for face
);
// Add the previously removed faces
for (label i = 1; i < setFaces.size(); i++)
{
@ -230,9 +220,7 @@ label mergePatchFaces
-1, // neighbour,
newMasterI, // masterFaceID,
false, // flipFaceFlux,
patchID, // patchID,
zoneID, // zoneID,
zoneFlip // zoneFlip
patchID // patchID,
);
}
}