From 3a8a7cc6d4972c4342b8d87297d9acbb0c45eb85 Mon Sep 17 00:00:00 2001 From: mattijs <> Date: Wed, 9 Mar 2022 11:30:46 +0000 Subject: [PATCH] ENH: snappyHexMesh: remove any left-over mesh data before topo change --- .../meshRefinement/meshRefinement.C | 20 ++++++++++++++++ .../meshRefinement/meshRefinementBaffles.C | 20 ++++++++++++++++ .../meshRefinement/meshRefinementMerge.C | 24 +++++++++++++++++++ .../meshRefinement/meshRefinementRefine.C | 8 +++++++ 4 files changed, 72 insertions(+) diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C index 7ae55ea74e..de014919c6 100644 --- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C +++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C @@ -1135,6 +1135,10 @@ Foam::autoPtr Foam::meshRefinement::doRemoveCells meshMod ); + // Remove any unnecessary fields + mesh_.clearOut(); + mesh_.moving(false); + // Change the mesh (no inflation) autoPtr mapPtr = meshMod.changeMesh(mesh_, false, true); mapPolyMesh& map = *mapPtr; @@ -1327,6 +1331,10 @@ Foam::label Foam::meshRefinement::splitFacesUndo // Insert the mesh changes doSplitFaces(splitFaces, splits, meshMod); + // Remove any unnecessary fields + mesh_.clearOut(); + mesh_.moving(false); + // Change the mesh (no inflation) autoPtr mapPtr = meshMod.changeMesh(mesh_, false, true); mapPolyMesh& map = *mapPtr; @@ -1339,6 +1347,10 @@ Foam::label Foam::meshRefinement::splitFacesUndo { mesh_.movePoints(map.preMotionPoints()); } + else + { + mesh_.clearOut(); + } // Reset the instance for if in overwrite mode mesh_.setInstance(timeName()); @@ -1550,6 +1562,10 @@ Foam::label Foam::meshRefinement::splitFacesUndo nSplit -= n; + // Remove any unnecessary fields + mesh_.clearOut(); + mesh_.moving(false); + // Change the mesh (no inflation) autoPtr mapPtr = meshMod.changeMesh(mesh_, false, true); mapPolyMesh& map = *mapPtr; @@ -1562,6 +1578,10 @@ Foam::label Foam::meshRefinement::splitFacesUndo { mesh_.movePoints(map.preMotionPoints()); } + else + { + mesh_.clearOut(); + } // Reset the instance for if in overwrite mode mesh_.setInstance(timeName()); diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C index c4b4f6e3d4..82b357e796 100644 --- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C @@ -600,6 +600,10 @@ Foam::autoPtr Foam::meshRefinement::createBaffles autoPtr mapPtr; if (returnReduce(nBaffles, sumOp