From 4f0418744d288719a81f470cb208f91b8e294c9e Mon Sep 17 00:00:00 2001 From: mattijs Date: Thu, 24 Jul 2008 13:21:25 +0100 Subject: [PATCH 1/5] syntax --- src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C index 218087f774..7bbe58ff8f 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C @@ -248,7 +248,7 @@ Foam::label Foam::autoRefineDriver::surfaceOnlyRefine refineParams.keepPoints()[0], refineParams.curvature(), - PtrList(0), // dummy featureMeshes; + PtrList(), // dummy featureMeshes; labelList(0), // dummy featureLevels; false, // featureRefinement @@ -389,7 +389,7 @@ Foam::label Foam::autoRefineDriver::shellRefine refineParams.keepPoints()[0], refineParams.curvature(), - PtrList(0), // dummy featureMeshes; + PtrList(), // dummy featureMeshes; labelList(0), // dummy featureLevels; false, // featureRefinement From 1b9980a590a35b479fae24f04efd25ebed327721 Mon Sep 17 00:00:00 2001 From: mattijs Date: Thu, 24 Jul 2008 13:22:32 +0100 Subject: [PATCH 2/5] did not handle internal faces correctly --- .../polyTopoChange/duplicatePoints.C | 40 ++++++++++++++----- .../polyTopoChange/localPointRegion.C | 40 ++++++++++++++++--- 2 files changed, 64 insertions(+), 16 deletions(-) diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/duplicatePoints.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/duplicatePoints.C index df9434deec..ee915cfa5e 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/duplicatePoints.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/duplicatePoints.C @@ -155,17 +155,35 @@ void Foam::duplicatePoints::setRefinement zoneFlip = fZone.flipMap()[fZone.whichFace(faceI)]; } - meshMod.modifyFace - ( - newFace, // modified face - faceI, // label of face being modified - mesh_.faceOwner()[faceI], // owner - -1, // neighbour - false, // face flip - patches.whichPatch(faceI), // patch for face - zoneID, // zone for face - zoneFlip // face flip in zone - ); + + if (mesh_.isInternalFace(faceI)) + { + meshMod.modifyFace + ( + newFace, // modified face + faceI, // label of face being modified + mesh_.faceOwner()[faceI], // owner + mesh_.faceNeighbour()[faceI], // neighbour + false, // face flip + -1, // patch for face + zoneID, // zone for face + zoneFlip // face flip in zone + ); + } + else + { + meshMod.modifyFace + ( + newFace, // modified face + faceI, // label of face being modified + mesh_.faceOwner()[faceI], // owner + -1, // neighbour + false, // face flip + patches.whichPatch(faceI), // patch for face + zoneID, // zone for face + zoneFlip // face flip in zone + ); + } } diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/localPointRegion.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/localPointRegion.C index 9470a8d861..0a233e97af 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/localPointRegion.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/localPointRegion.C @@ -43,15 +43,22 @@ class minEqOpFace { public: - void operator()( face& x, const face& y ) const + void operator()(face& x, const face& y) const { - forAll(x, i) + if (x.size() > 0) { - x[i] = min(x[i], y[i]); + label j = 0; + forAll(x, i) + { + x[i] = min(x[i], y[j]); + + j = y.rcIndex(j); + } } }; }; + // Dummy transform for faces. Used in synchronisation void transformList ( @@ -120,7 +127,7 @@ void Foam::localPointRegion::countPointRegions forAllConstIter(Map