diff --git a/src/finiteVolume/fvMesh/fvMeshStitchers/fvMeshStitcher/fvMeshStitcher.C b/src/finiteVolume/fvMesh/fvMeshStitchers/fvMeshStitcher/fvMeshStitcher.C index e8ad8cf0af..0f08877001 100644 --- a/src/finiteVolume/fvMesh/fvMeshStitchers/fvMeshStitcher/fvMeshStitcher.C +++ b/src/finiteVolume/fvMesh/fvMeshStitchers/fvMeshStitcher/fvMeshStitcher.C @@ -1223,9 +1223,6 @@ bool Foam::fvMeshStitcher::disconnect // Prevent hangs caused by processor cyclic patches using mesh geometry mesh_.deltaCoeffs(); - meshObject::movePoints(mesh_); - meshObject::movePoints(mesh_); - if (coupled && geometric) { const volScalarField::Internal o(openness()); @@ -1246,6 +1243,11 @@ bool Foam::fvMeshStitcher::disconnect Info<< decrIndent; } + meshObject::movePoints(mesh_); + meshObject::movePoints(mesh_); + + const_cast(mesh_.time()).functionObjects().movePoints(mesh_); + return true; } @@ -1398,9 +1400,6 @@ bool Foam::fvMeshStitcher::connect // Prevent hangs caused by processor cyclic patches using mesh geometry mesh_.deltaCoeffs(); - meshObject::movePoints(mesh_); - meshObject::movePoints(mesh_); - if (coupled && geometric) { const volScalarField::Internal o(openness()); @@ -1504,6 +1503,11 @@ bool Foam::fvMeshStitcher::connect Info<< decrIndent; } + meshObject::movePoints(mesh_); + meshObject::movePoints(mesh_); + + const_cast(mesh_.time()).functionObjects().movePoints(mesh_); + return true; } @@ -1564,6 +1568,8 @@ void Foam::fvMeshStitcher::reconnect(const bool geometric) const meshObject::movePoints(mesh_); meshObject::movePoints(mesh_); + + const_cast(mesh_.time()).functionObjects().movePoints(mesh_); } diff --git a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C index 0eef0910a7..cb3580452b 100644 --- a/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C +++ b/src/functionObjects/field/fieldValues/surfaceFieldValue/surfaceFieldValue.C @@ -30,6 +30,7 @@ License #include "mergePoints.H" #include "indirectPrimitivePatch.H" #include "PatchTools.H" +#include "fvMeshStitcher.H" #include "polyTopoChangeMap.H" #include "polyMeshMap.H" #include "addToRunTimeSelectionTable.H" @@ -442,7 +443,7 @@ void Foam::functionObjects::fieldValues::surfaceFieldValue::initialise } } - if (nFaces_ == 0) + if (nFaces_ == 0 && (!mesh_.stitcher().stitches() || !mesh_.conformal())) { FatalErrorInFunction << type() << " " << name() << ": " @@ -826,7 +827,8 @@ void Foam::functionObjects::fieldValues::surfaceFieldValue::movePoints { if (&mesh == &mesh_) { - // It may be necessary to reset if the mesh moves + // It may be necessary to reset if the mesh moves. The total area might + // change, as might non-conformal faces. initialise(dict_); } }