diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index 92e947d0e4..e01ba16a89 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -455,11 +455,7 @@ int main(int argc, char *argv[]) } // Clear the field maps if there has been topology change - if - ( - state == fvMesh::TOPO_CHANGE - || state == fvMesh::TOPO_PATCH_CHANGE - ) + if (state >= fvMesh::TOPO_CHANGE) { for (label proci = 0; proci < meshes.nProcs(); proci++) { diff --git a/src/finiteVolume/fvMesh/fvMesh.C b/src/finiteVolume/fvMesh/fvMesh.C index 6f91433ebb..0f465cc1ae 100644 --- a/src/finiteVolume/fvMesh/fvMesh.C +++ b/src/finiteVolume/fvMesh/fvMesh.C @@ -766,6 +766,18 @@ Foam::polyMesh::readUpdateState Foam::fvMesh::readUpdate() stitcher_->connect(false, false, true); } + // If the mesh has been re-stitched with different geometry, then the + // finite-volume topology has changed + if + ( + stitcher_.valid() + && stitcher_->stitches() + && state == polyMesh::POINTS_MOVED + ) + { + state = polyMesh::TOPO_CHANGE; + } + return state; }