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

@ -61,17 +61,6 @@ void changePatchID
polyTopoChange& meshMod
)
{
const label zoneID = mesh.faceZones().whichZone(faceID);
bool zoneFlip = false;
if (zoneID >= 0)
{
const faceZone& fZone = mesh.faceZones()[zoneID];
zoneFlip = fZone.flipMap()[fZone.whichFace(faceID)];
}
meshMod.modifyFace
(
mesh.faces()[faceID], // face
@ -79,9 +68,7 @@ void changePatchID
mesh.faceOwner()[faceID], // owner
-1, // neighbour
false, // flip flux
patchID, // patch ID
zoneID, // zone ID
zoneFlip // zone flip
patchID // patch ID
);
}