diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C index 1021e16432..d6002dc40f 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -663,18 +663,11 @@ void Foam::autoRefineDriver::mergePatchFaces const dictionary& motionDict ) { - const fvMesh& mesh = meshRefiner_.mesh(); - Info<< nl << "Merge refined boundary faces" << nl << "----------------------------" << nl << endl; - if (debug) - { - const_cast(mesh.time())++; - } - meshRefiner_.mergePatchFacesUndo ( Foam::cos(degToRad(45.0)), diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C index 948930467a..7f612246f4 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.C @@ -1465,6 +1465,7 @@ void Foam::autoSnapDriver::doSnap { disp = calcNearestSurfaceFeature ( + snapParams, iter, featureCos, scalar(iter+1)/nFeatIter, diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H index 35d0822d2a..9431f9b751 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriver.H @@ -111,17 +111,43 @@ class autoSnapDriver // Feature line snapping + //- Is point on two feature edges that make a largish angle? + bool isFeaturePoint + ( + const scalar featureCos, + const indirectPrimitivePatch& pp, + const PackedBoolList& isFeatureEdge, + const label pointI + ) const; + void smoothAndConstrain ( const indirectPrimitivePatch& pp, const List& constraints, vectorField& disp ) const; - //void calcNearest + void smoothAndConstrain2 + ( + const bool applyConstraints, + const indirectPrimitivePatch& pp, + const List& constraints, + vectorField& disp + ) const; + void calcNearest + ( + const label iter, + const indirectPrimitivePatch& pp, + vectorField& pointDisp, + vectorField& pointSurfaceNormal, + vectorField& pointRotation + ) const; + //void calcNearestFace //( - // const pointField& points, - // vectorField& disp, - // vectorField& surfaceNormal + // const label iter, + // const indirectPrimitivePatch& pp, + // vectorField& faceDisp, + // vectorField& faceSurfaceNormal, + // vectorField& faceRotation //) const; void calcNearestFace ( @@ -129,19 +155,18 @@ class autoSnapDriver const indirectPrimitivePatch& pp, vectorField& faceDisp, vectorField& faceSurfaceNormal, + labelList& faceSurfaceRegion, vectorField& faceRotation ) const; void interpolateFaceToPoint ( const label iter, const indirectPrimitivePatch& pp, - const vectorField& faceSurfaceNormal, - - const vectorField& faceDisp, - const vectorField& faceRotation, - - vectorField& patchDisp, - vectorField& patchRotationDisp + const List >& pointFaceDisp, + const List >& pointFaceRotation, + const List >& pointFaceCentres, + vectorField& patchDisp + //vectorField& patchRotationDisp ) const; void correctAttraction ( @@ -152,6 +177,14 @@ class autoSnapDriver const point& pt, vector& edgeOffset // offset from pt to point on edge ) const; + + //- Return hit if on multiple points + pointIndexHit findMultiPatchPoint + ( + const point& pt, + const labelList& patchIDs, + const List& faceCentres + ) const; void binFeatureFace ( const label iter, @@ -186,6 +219,25 @@ class autoSnapDriver DynamicList