From e6f9c67b64ea92bcdbb0a4086a4379b79fb8259a Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Fri, 22 Jul 2016 14:48:38 +0100 Subject: [PATCH] snappyHexMesh: points on more than one cell region now duplicated if detected on any processor rather than all processor Patch contributed by Mattijs Janssens Resolves bug-report http://bugs.openfoam.org/view.php?id=1936 --- .../snappyHexMeshDriver/snappySnapDriver.C | 379 +----------------- .../snappyHexMeshDriver/snappySnapDriver.H | 4 + 2 files changed, 8 insertions(+), 375 deletions(-) diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C index 786e370eff..08ff431053 100644 --- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C +++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappySnapDriver.C @@ -48,16 +48,11 @@ Description namespace Foam { - -defineTypeNameAndDebug(snappySnapDriver, 0); - -} // End namespace Foam - + defineTypeNameAndDebug(snappySnapDriver, 0); +} // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -// Calculate geometrically collocated points, Requires PackedList to be -// sized and initalised! Foam::label Foam::snappySnapDriver::getCollocatedPoints ( const scalar tol, @@ -118,7 +113,6 @@ Foam::label Foam::snappySnapDriver::getCollocatedPoints } -// Calculate displacement as average of patch points. Foam::pointField Foam::snappySnapDriver::smoothPatchDisplacement ( const motionSmoother& meshMover, @@ -416,67 +410,6 @@ Foam::pointField Foam::snappySnapDriver::smoothPatchDisplacement return patchDisp; } -//XXXXXXX -//Foam::tmp Foam::snappySnapDriver::avg -//( -// const indirectPrimitivePatch& pp, -// const pointField& localPoints -//) -//{ -// const labelListList& pointEdges = pp.pointEdges(); -// const edgeList& edges = pp.edges(); -// -// tmp tavg(new pointField(pointEdges.size(), Zero)); -// pointField& avg = tavg(); -// -// forAll(pointEdges, vertI) -// { -// vector& avgPos = avg[vertI]; -// -// const labelList& pEdges = pointEdges[vertI]; -// -// forAll(pEdges, myEdgeI) -// { -// const edge& e = edges[pEdges[myEdgeI]]; -// -// label otherVertI = e.otherVertex(vertI); -// -// avgPos += localPoints[otherVertI]; -// } -// -// avgPos /= pEdges.size(); -// } -// return tavg; -//} -//Foam::tmp -//Foam::snappySnapDriver::smoothLambdaMuPatchDisplacement -//( -// const motionSmoother& meshMover, -// const List& baffles -//) -//{ -// const indirectPrimitivePatch& pp = meshMover.patch(); -// pointField newLocalPoints(pp.localPoints()); -// -// const label iters = 90; -// const scalar lambda = 0.33; -// const scalar mu = 0.34; -// -// for (label iter = 0; iter < iters; iter++) -// { -// // Lambda -// newLocalPoints = -// (1 - lambda)*newLocalPoints -// + lambda*avg(pp, newLocalPoints); -// -// // Mu -// newLocalPoints = -// (1 + mu)*newLocalPoints -// - mu*avg(pp, newLocalPoints); -// } -// return newLocalPoints-pp.localPoints(); -//} -//XXXXXXX Foam::tmp Foam::snappySnapDriver::edgePatchDist @@ -588,8 +521,6 @@ void Foam::snappySnapDriver::dumpMove } -// Check whether all displacement vectors point outwards of patch. Return true -// if so. bool Foam::snappySnapDriver::outwardsDisplacement ( const indirectPrimitivePatch& pp, @@ -813,7 +744,6 @@ void Foam::snappySnapDriver::preSmoothPatch } -// Get (pp-local) indices of points that are both on zone and on patched surface Foam::labelList Foam::snappySnapDriver::getZoneSurfacePoints ( const fvMesh& mesh, @@ -917,54 +847,6 @@ Foam::tmp Foam::snappySnapDriver::avgCellCentres } -//Foam::tmp Foam::snappySnapDriver::calcEdgeLen -//( -// const indirectPrimitivePatch& pp -//) const -//{ -// // Get local edge length based on refinement level -// // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// // (Ripped from snappyLayerDriver) -// -// tmp tedgeLen(new scalarField(pp.nPoints())); -// scalarField& edgeLen = tedgeLen(); -// { -// const fvMesh& mesh = meshRefiner_.mesh(); -// const scalar edge0Len = meshRefiner_.meshCutter().level0EdgeLength(); -// const labelList& cellLevel = meshRefiner_.meshCutter().cellLevel(); -// -// labelList maxPointLevel(pp.nPoints(), labelMin); -// -// forAll(pp, i) -// { -// label ownLevel = cellLevel[mesh.faceOwner()[pp.addressing()[i]]]; -// const face& f = pp.localFaces()[i]; -// forAll(f, fp) -// { -// maxPointLevel[f[fp]] = max(maxPointLevel[f[fp]], ownLevel); -// } -// } -// -// syncTools::syncPointList -// ( -// mesh, -// pp.meshPoints(), -// maxPointLevel, -// maxEqOp