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?
|