CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [snappyHexMesh] avoiding bump on patches with no layers (https://www.cfd-online.com/Forums/openfoam-meshing/152633-avoiding-bump-patches-no-layers.html)

student666 May 5, 2015 12:18

avoiding bump on patches with no layers
 
2 Attachment(s)
Hi all,

I'm looking for help as I can't understand how to avoid bump on patches with no layers.
Enclosed you can see 2 pictures: one is after snapping process, the other is after layer addition.

Patches that don't have layer become distorted after layer addition, you can see it on the cylindrical patch. How can I solve?

Here's my SHM dict
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.2.0                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// Which of the steps to run
castellatedMesh false;  // make basic mesh ?
snap            false;  // decide to snap back to surface ?
addLayers      true;  // decide to add viscous layers ?


geometry // Load in STL files here
{
    amiRot1.stl {type triSurfaceMesh; name amiRot1;}
    amiRot2.stl {type triSurfaceMesh; name amiRot2;}
    blade.stl {type triSurfaceMesh; name blade;}
    backTip.stl {type triSurfaceMesh; name backTip;}
    frontTip.stl {type triSurfaceMesh; name frontTip;}
    wallRotating.stl {type triSurfaceMesh; name wallRotating;}
    fanHub.stl {type triSurfaceMesh; name fanHub;}

};

castellatedMeshControls
{
    maxLocalCells 2000000;  //max cells per CPU core
    maxGlobalCells 4000000; //max cells to use before mesh deletion step
    minRefinementCells 10;  //was 0 - zero means no bad cells are allowed during refinement stages
    maxLoadUnbalance 0.05;  //0.1 default
    nCellsBetweenLevels 3;  // expansion factor between each high & low refinement zone

    // Explicit feature edge refinement
    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    features // taken from STL from each .eMesh file created by "SurfaceFeatureExtract" command
    (

    {file "blade.eMesh"; level 1;}
    {file "backTip.eMesh"; level 2;}
        {file "frontTip.eMesh"; level 3;}     
    {file "wallRotating.eMesh"; level 1;}
           
    );

    // Surface based refinement
    // ~~~~~~~~~~~~~~~~~~~~~~~~

    refinementSurfaces // Surface-wise min and max refinement level
    {

    blade {level (2 2);}
    backTip {level (2 2);}
    frontTip {level (2 2);}
    wallRotating {level (2 2);}
    amiRot2 {level (1 1);}
    amiRot1 {level (1 2);}
    fanHub {level (1 1);}   
   
    } 


    resolveFeatureAngle 60;  //was80 Resolve sharp angles // Default 30
    refinementRegions      // In descending levels of fine-ness
    {
    //refine1 {mode inside; levels ((3 4));}

    }

    locationInMesh (0.04 0.04 -0.0051);  //to decide which side of mesh to keep **
    allowFreeStandingZoneFaces false; //true;
}


// Settings for the snapping.
snapControls
{
    nSmoothPatch 3;// era 3;
    tolerance 2.0; //era 3.0 default is 2
    nSolveIter 300; //era30
    nRelaxIter 5; // efault 5
    nFeatureSnapIter 35; // default is 10
   
// New settings from openfoam 2.2 onwards for SHMesh

implicitFeatureSnap false; // default is false - detects without doing surfaceFeatureExtract
explicitFeatureSnap true; // default is true
multiRegionFeatureSnap false; // deafault is false - detects features between multiple surfaces

}


// Settings for the layer addition.
addLayersControls //add the PATCH names from inside the STL file so STLpatchName_insideSTLName
{
    relativeSizes false; // was true con false hanno la stessa grandezza
    layers
    {

    blade  {nSurfaceLayers 5;expansionRatio 1.12;thickness 0.001;minThickness 0.00001;}
    backTip  {nSurfaceLayers 5;expansionRatio 1.12;thickness 0.001;minThickness 0.00001;}
    frontTip  {nSurfaceLayers 5;expansionRatio 1.12;thickness 0.0015;minThickness 0.00001;}
    wallRotating  {nSurfaceLayers 5;expansionRatio 1.12;thickness 0.002;minThickness 0.00001;}       
    }

    expansionRatio 1.15;
  // thickness 0.002;
    firstLayerThickness 0.0002; //was 0.00018
    minThickness 0.00008;
    nGrow 0; // was 1


    // Advanced settings

    // Static analysis of starting mesh

    featureAngle 310; //- When not to extrude surface. 0 is flat, 90 is right angle.
    nRelaxIter 5; //era 13 //- Max# of snapping relaxation iter. Should stop before upon reaching a correct mesh.
    maxFaceThicknessRatio 0.8; // Stop layer growth on highly warped cells

    // Patch displacement

    nSmoothSurfaceNormals 150;  //100 Number of smoothing iterations of surface normals
    nSmoothThickness 50;  //100 Smooth layer thickness over surface patches

    // Medial axis analysis   

    minMedianAxisAngle 90;  //135 Angle used to pick up medial axis points
    maxThicknessToMedialRatio 0.9; // Reduce layer growth where ratio thickness to medial distance is large
    nSmoothNormals 50; // Number of smoothing iterations of interior mesh movement direction
   
        // Optional:
    //nMedialAxisIter 10;  //limit the number of steps walking away from the surface. Default is unlimited.
    //nSmoothDisplacement 90; //smooth displacement after medial axis determination. default is 0.
        // (wip)Optional:
    //detectExtrusionIsland true;  // do not extrude a point if none of the surrounding points is not extruded. Default is false.

    // Mesh shrinking
    slipFeatureAngle 10; //at non-patched sides allow mesh to slip if extrusion direction makes angle larger than slipFeatureAngle. Default
            //is 0.5*featureAngle.
    nBufferCellsNoExtrude 1;  // Create buffer region for new layer terminations
    nLayerIter 50; //Overall max number of layer addition iterations. The mesher will exit if it reaches this number of iterations;
          //possiblywith an illegal mesh.
    nRelaxedIter 0; // Max number of iterations after which relaxed meshQuality controls get used. Up to nRelaxedIter it uses the settings
            // in meshQualityControls, after nRelaxedIter it uses the values in meshQualityControls::relaxed.
            //IMPOSTANDOLO A 0 SHM UTILIZZA IMMEDIATAMENTE I VALORI RELAXED
 
        // Additional reporting: if there are just a few faces where there
        // are mesh errors (after adding the layers) print their face centres.
        // This helps in tracking down problematic mesh areas.
        //additionalReporting true;
}



// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls
{
  /* disabling mesh quality
 
  MaxNonOrtho 180;
  maxBoundarySkewness -1;
  maxInternalSkewness -1;
  maxConcave 180;
  minVol -1e33;
  minTetQuality -1e30;
  minTwist -1e30;
  minDeterminant -1;
  minFaceWeight -1;
  minVolRatio -1;
  minArea -1;
  minTriangleTwist -1;
  */
   
    maxNonOrtho 55; //default 65
    maxBoundarySkewness 20; 
    maxInternalSkewness 4; 
    maxConcave 80;
    minVol 1e-13;
    minTetQuality -1e30;
    minFlatness 0.5;
    minTetQuality 1e-9;
    minArea -1;
    minTwist 0.05;
    minDeterminant 0.001;
    minVolRatio 0.01;
    minFaceWeight 0.05;
    minTriangleTwist -1;
    nSmoothScale 4;
    errorReduction 0.75;

    // Advanced
    relaxed // mesh Quality Controls for layer addiction phase
    {
    maxNonOrtho 65;
    //maxBoundarySkewness 25;
    //maxInternalSkewness 5;
    maxConcave 90;
    minTwist 0.02;
    minFaceWeight 0.02;
    minDeterminant 0.0001;
    }
}

// Advanced

debug 0;


// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1E-6;


// ************************************************************************* //

Can someone help me please?


All times are GMT -4. The time now is 06:45.