snappyHexMesh & Mesh around a missile
3 Attachment(s)
Hi Dear Foamers,
These days, I am trying to create a good mesh (C-type) around a missile by using snappyhexmesh. Actually, geometry of the missile is similar to picture3. After creating mesh, boundary of the missile got a bad shape (similar to picture1). I should say that whole the mesh is similar to picture2. Could anyone help me to create a good mesh around the missile? I appreciate your help. Thanks and best regards, Sasan. P.S. Honestly, I used solidworks for creating the geometry and afterwards I imported the geometry in salome for specifying names of the boundaries and after that I exported 3 .stl files and I converted them to 1 .stl file by using cat name.stl >> assemble.stl . I uploaded my case : https://mega.co.nz/#!NlYFXDhD!bYtW2A...WNgA02EeYERHrE snappyHexMeshDict : Code:
/*--------------------------------*- C++ -*----------------------------------*\ |
I would give two recommendations:
1. Use OpenFOAM-2.3.x. OpenCFD is constantly patching snappyHexMesh. 2. Increase the min and max refinement level for the patch of interest like this or higher: Code:
projectile { // Surface-wise min and max refinement level level (4 4); } Cheers, Kyle |
1 Attachment(s)
Quote:
FoamFile { version 2.0; format ascii; class dictionary; object snappyHexMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Which of the steps to run castellatedMesh true; // make basic mesh ? snap true; // decide to snap back to surface ? addLayers true;//false; // decide to add viscous layers ? geometry // Load in STL files here { inlet_1.stl {type triSurfaceMesh; name inlet_1;} outlet.stl {type triSurfaceMesh; name outlet;} inlet_2.stl {type triSurfaceMesh; name inlet_2;} inlet_3.stl {type triSurfaceMesh; name inlet_3;} wall.stl {type triSurfaceMesh; name wall;} //cylinder.stl {type triSurfaceMesh; name volume;} refineCylinder {type searchableCylinder; point1 (0 0 0); point2 (0 0 2); radius 0.13;} //refinementBox {type searchableBox; min (-0.5 -0.5 -0.5); max ( 0.5 0.5 0.5);} }; castellatedMeshControls { maxLocalCells 1000000; //max cells per CPU core maxGlobalCells 2000000; //max cells to use before mesh deletion step minRefinementCells 10; //was 0 - zero means no bad cells are allowed during refinement stages maxLoadUnbalance 0.10; nCellsBetweenLevels 1; // 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 "inlet_1.eMesh"; level 2;} {file "outlet.eMesh"; level 2;} {file "wall.eMesh"; level 3;} {file "inlet_2.eMesh"; level 2;} {file "inlet_3.eMesh"; level 2;} ); // Surface based refinement // ~~~~~~~~~~~~~~~~~~~~~~~~ refinementSurfaces // Surface-wise min and max refinement level { inlet_1 {level (2 2);} outlet {level (2 2);} wall {level (5 5);} inlet_2 {level (2 2);} // was 4 4 inlet_3 {level (2 2);} // was 4 4 } resolveFeatureAngle 80; // Resolve sharp angles // Default 30 refinementRegions // In descending levels of fine-ness {refineCylinder {mode distance; levels ((1E15 2));}} // (0.002 3) (0.01 2));}} // was ((0.001 4) (0.003 3) (0.01 2)) locationInMesh (0.01 0.01 0.01); //to decide which side of mesh to keep ** allowFreeStandingZoneFaces true; } // Settings for the snapping. snapControls { nSmoothPatch 3; tolerance 4.0; nSolveIter 30; nRelaxIter 5; nFeatureSnapIter 15; // 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 layers { wall {nSurfaceLayers 3;} // was 3 //visc_refine_1 // {nSurfaceLayers 3;} // was 3 //visc_refine_2 // {nSurfaceLayers 3;} // was 3 } expansionRatio 1.3; finalLayerThickness 0.00016; //was 0.00016 minThickness 0.00008; //was 0.00008 nGrow 0; // was 1 // Advanced settings featureAngle 80; // was 70 //- When not to extrude surface. 0 is flat, 90 is right angle. nRelaxIter 3; //- Max# of snapping relaxation iter. Should stop before upon reaching a correct mesh. nSmoothSurfaceNormals 1; // Number of smoothing iterations of surface normals nSmoothNormals 3; // Number of smoothing iterations of interior mesh movement direction nSmoothThickness 10; // Smooth layer thickness over surface patches maxFaceThicknessRatio 0.5; // Stop layer growth on highly warped cells maxThicknessToMedialRatio 0.3; // Reduce layer growth where ratio thickness to medial distance is large minMedianAxisAngle 130; // Angle used to pick up medial axis points nBufferCellsNoExtrude 0; // Create buffer region for new layer terminations nLayerIter 50; // Overall max number of layer addition iterations } // Generic mesh quality settings. At any undoable phase these determine // where to undo. meshQualityControls { maxNonOrtho 65; maxBoundarySkewness 20; maxInternalSkewness 4; maxConcave 80; minFlatness 0.5; minVol 1e-13; minTetQuality 1e-9; minArea -1; minTwist 0.02; minDeterminant 0.001; minFaceWeight 0.02; minVolRatio 0.01; minTriangleTwist -1; // Advanced nSmoothScale 4; errorReduction 0.75; } // 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; // ************************************************** *********************** // |
All times are GMT -4. The time now is 04:18. |