|
[Sponsors] |
[snappyHexMesh] bumps and broken surface after meshing with snappyhexmesh |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
February 12, 2018, 13:07 |
bumps and broken surface after meshing with snappyhexmesh
|
#1 |
New Member
Richard adeyemi
Join Date: Apr 2012
Posts: 2
Rep Power: 0 |
Dear all,
I would like to count on your expertise and wealth of experiences. Am trying to create a mesh in OpenFoam using SHMdict. i have done some preliminary works and meshing. Please see the attached my dict, geometry and meshing figures. I could observed that after snappyhexmesh is applied, there is broken surface on my blades. How can i correct this error? /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.1 | | \\ / 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 true;// was set true before snap true; addLayers false;// was set false before // set addLayers at first. you can always go back and change to true when there is no more error. // Geometry. Definition of all surfaces. All surfaces are of class // searchableSurface. // Surfaces are used // - to specify refinement for any mesh cell intersecting it // - to specify refinement for any mesh cell inside/outside/near // - to 'snap' the mesh boundary to the surface geometry { //outercube.stl {type triSurfaceMesh; name outercube;} //innercube.stl {type triSurfaceMesh; name innercube;} //innercylindersmal1.stl {type triSurfaceMesh; name innercylindersmal1;} //blades.stl {type triSurfaceMesh; name blades;} outercube.stl { type triSurfaceMesh; name outercube; } innercube.stl { type triSurfaceMesh; name innercube; } innercylindersmal1.stl { type triSurfaceMesh; name innercylindersmal1; } blades.stl { type triSurfaceMesh; name blades; } /* outercube.stl { type triSurfaceMesh; name outercube; regions { outercube { name outercube; } } } innercube.stl { type triSurfaceMesh; name innercube; regions { innercube { name innercube; } } } innercylindersmal1.stl { type triSurfaceMesh; name innercylindersmal1; regions { innercylindersmal1 { name innercylindersmal1; } } } blades.stl { type triSurfaceMesh; name blades; regions { blades { name blades; } } } */ //refinementBox {type searchableBox; min (-25 -30.2509 -20.9932); max ( 30 30.129 24.0068); }; // Settings for the castellatedMesh generation. castellatedMeshControls { maxLocalCells 1000000; maxGlobalCells 20000000; minRefinementCells 0;// was 100 maxLoadUnbalance 0.10; nCellsBetweenLevels 3; // it was 7 before. // Explicit feature edge refinement // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ features // taken from STL from each .eMesh file created by "SurfaceFeatureExtract" command ( { file "innercylindersmal1.eMesh"; level 2; //was 3 } { file "outercube.eMesh"; level 0; } { file "blades.eMesh"; level 3; // was 4 } { file "innercube.eMesh"; level 1; // was 2 } ); // Surface based refinement // ~~~~~~~~~~~~~~~~~~~~~~~ refinementSurfaces { innercylindersmal1 { level (2 2); // was (3 3) before faceType boundary; cellZone innercylindersmal1; faceZone innercylindersmal1; cellZoneInside inside; } outercube { level (0 0);// it was initially (0 0) } blades { level (3 3);// was initially (4,4) } //innercube //{ // level (3 3);// it was (4 4) and was commented //} } resolveFeatureAngle 30; // it can use 95 // Region-wise refinement // ~~~~~~~~~~~~~~~~~~~~~~ refinementRegions { // innercube //{ // mode inside; //levels ((1E15 3));// it was 3 before and commented // } innercylindersmal1 { mode inside; levels ((1E15 2)); // it was 3 } } // Mesh selection // ~~~~~~~~~~~~~~ locationInMesh (8.2 12.906 9.16859); // it was (-0.153401 0.15340 0.450484) allowFreeStandingZoneFaces true; } // Settings for the snapping. snapControls { nSmoothPatch 4;// was 3 before tolerance 1.0; // was 4.0; nSolveIter 300; // was 30 before nRelaxIter 5; // it was 10 before // Feature snapping nFeatureSnapIter 15; // was 10 before implicitFeatureSnap false; explicitFeatureSnap true; multiRegionFeatureSnap false; //it was true before. Just for explicit method, "...detect features between multiple surfaces..." } // Settings for the layer addition. addLayersControls { relativeSizes true;// was false before layers { blades { nSurfaceLayers 3; // was commented and set to 5. } } // Expansion factor for layer mesh expansionRatio 1.2;// was 1.0 finalLayerThickness 0.1;// was 0.16 minThickness 0.01;// was 0.08 nGrow 0; // was 1 // Advanced settings featureAngle 60; //it was 30 before. i can use 60 as well nRelaxIter 20;// was 3 nSmoothSurfaceNormals 1; nSmoothNormals 3; nSmoothThickness 10; maxFaceThicknessRatio 0.5; maxThicknessToMedialRatio 0.3; // it was 0.3 before minMedianAxisAngle 130; nBufferCellsNoExtrude 0; nLayerIter 100; // was 50. slipFeatureAngle 30; } // Generic mesh quality settings. At any undoable phase these determine // where to undo. meshQualityControls { // Specify mesh quality constraints in separate dictionary so can // be reused (e.g. checkMesh -meshQuality) #include "meshQualityDict" relaxed { maxNonOrtho 75; } // Advanced nSmoothScale 4; errorReduction 0.75; } // Advanced // put 1 if you wnat to write all the meshes at each stage so that you look and make correction and 0 if not debug 0; //0: only write final meshes // Merge tolerance. Is fraction of overall bounding box of initial mesh. // Note: the write tolerance needs to be higher than this. mergeTolerance 1e-6; // ************************************************** *********************** // |
|
Tags |
openfoam 2.1, snappyhesmeshdict, snappyhexmesh 3d |
|
|