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] bumps and broken surface after meshing with snappyhexmesh (https://www.cfd-online.com/Forums/openfoam-meshing/198611-bumps-broken-surface-after-meshing-snappyhexmesh.html)

Yemi2favours February 12, 2018 12:07

bumps and broken surface after meshing with snappyhexmesh
 
4 Attachment(s)
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;


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


All times are GMT -4. The time now is 02:00.