diff --git a/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C b/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C index ce858a51b7c84b5f8438c1f81173248cc534f615..0335cf3abc6f3b9fd74cbc5136764125c9af0d74 100644 --- a/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C +++ b/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C @@ -315,12 +315,6 @@ void Foam::mergePolyMesh::addMesh(const polyMesh& m) } } - newOwn = own[faceI]; - if (newOwn > -1) newOwn = renumberCells[newOwn]; - - newNei = nei[faceI]; - if (newNei > -1) newNei = renumberCells[newNei]; - if (faceI < m.nInternalFaces() || faceI >= m.nFaces()) { newPatch = -1; @@ -330,6 +324,20 @@ void Foam::mergePolyMesh::addMesh(const polyMesh& m) newPatch = patchIndices[bm.whichPatch(faceI)]; } + newOwn = own[faceI]; + if (newOwn > -1) newOwn = renumberCells[newOwn]; + + if (newPatch > -1) + { + newNei = -1; + } + else + { + newNei = nei[faceI]; + newNei = renumberCells[newNei]; + } + + newZone = fz.whichZone(faceI); newZoneFlip = false; diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C b/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C index d8f77272d978e0b107b1d069be65d8ce9dbaf1a4..e9a6d14069a05058ada95cb7a5074eff24490251 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C +++ b/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C @@ -284,6 +284,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate() *this ); + pointZones_.setSize(newPointZones.size()); forAll (pointZones_, pzI) { pointZones_[pzI] = newPointZones[pzI]; @@ -304,6 +305,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate() *this ); + faceZones_.setSize(newFaceZones.size()); forAll (faceZones_, fzI) { faceZones_[fzI].resetAddressing @@ -328,6 +330,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate() *this ); + cellZones_.setSize(newCellZones.size()); forAll (cellZones_, czI) { cellZones_[czI] = newCellZones[czI];