CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Native Meshers: snappyHexMesh and Others

avoiding bump on patches with no layers

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   May 5, 2015, 12:18
Default avoiding bump on patches with no layers
  #1
Senior Member
 
M. C.
Join Date: May 2013
Location: Italy
Posts: 100
Rep Power: 4
student666 is on a distinguished road
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?
Attached Images
File Type: jpg snap.jpg (77.6 KB, 8 views)
File Type: jpg layer.jpg (97.9 KB, 9 views)
student666 is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Foam::error::PrintStack almir OpenFOAM Running, Solving & CFD 51 June 28, 2015 16:36
Merging edge patches Yosmcer OpenFOAM Native Meshers: blockMesh 11 November 16, 2014 15:51
Cyclic boundaries in OF 21x morard OpenFOAM 25 May 13, 2013 22:35
Regarding periodic BC in ICEM generated grid Tarak OpenFOAM 32 April 30, 2013 14:46
snappyHexMesh : Layers on patches Nucleophobe OpenFOAM Native Meshers: snappyHexMesh and Others 0 October 11, 2012 17:34


All times are GMT -4. The time now is 15:21.