Fschi |
January 19, 2017 07:46 |
'cracks' in Mesh on surface using STL
3 Attachment(s)
Hello,
I've got some troubles generating a good mesh with snappyHexMesh using HelyxOS as GUI.
I have a several surface-geometries of a car as STL. And I need to have a qood mesh, especially on the surface because its used for wallFilm modelling.
Below I've got 3 different pictures. The first shows the 'crack' in the mesh. The second the original STL at that point.
And in the third picture you can see the result using that mesh for the wallFilm-simulation. So it's not just some grafics problem in paraview.
I've tried to use implicit snapping, surfaceFeatureExtract, refinementBoxes but nothing helps...
Does anybody got an idea what to change?
That's the SnappyHexMeshDict for the mesh in the pictures
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| o | |
| o o | HELYX-OS |
| o O o | Version: v2.4.0 |
| o o | Web: http://www.engys.com |
| o | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location system;
object snappyHexMeshDict;
}
castellatedMesh true;
snap true;
addLayers true;
geometry
{
car_side.stl
{
type triSurfaceMesh;
name car_side;
appendRegionName false;
}
car_mirror.stl
{
type triSurfaceMesh;
name car_mirror;
appendRegionName false;
}
car_window.stl
{
type triSurfaceMesh;
name car_window;
appendRegionName false;
}
car_A_pillar.stl
{
type triSurfaceMesh;
name car_A_pillar;
appendRegionName false;
}
refinementBox
{
type searchableBox;
min ( -0.2 -1.2 0.4 );
max ( 1.4 -0.3 1.4 );
}
}
castellatedMeshControls
{
features
(
);
refinementSurfaces
{
car_side
{
level ( 6 6 );
}
car_mirror
{
level ( 6 6 );
}
car_window.stl
{
level ( 3 3 );
}
car_A_pillar
{
level ( 6 6 );
}
}
refinementRegions
{
refinementBox
{
mode inside;
levels (( 1E5 4 ));
}
}
locationInMesh ( 1.0 -0.6 1.15 );
maxLocalCells 500000;
maxGlobalCells 4000000;
minRefinementCells 0;
nCellsBetweenLevels 3;
resolveFeatureAngle 30.0;
allowFreeStandingZoneFaces true;
planarAngle 30.0;
maxLoadUnbalance 0.1;
}
snapControls
{
nSolveIter 30;
nSmoothPatch 15;
tolerance 5.0;
nRelaxIter 20;
nFeatureSnapIter 25;
implicitFeatureSnap false;
explicitFeatureSnap true;
multiRegionFeatureSnap false;
}
addLayersControls
{
layers
{
}
relativeSizes true;
expansionRatio 1.0;
finalLayerThickness 0.3;
minThickness 0.25;
nGrow 0;
featureAngle 130.0;
slipFeatureAngle 30.0;
nRelaxIter 5;
nSmoothSurfaceNormals 1;
nSmoothNormals 3;
nSmoothThickness 10;
maxFaceThicknessRatio 0.5;
maxThicknessToMedialRatio 0.3;
minMedialAxisAngle 90;
nBufferCellsNoExtrude 0;
nLayerIter 50;
nRelaxedIter 20;
writeVTK false;
noErrors false;
layerRecovery 1;
growZoneLayers false;
projectGrownUp 0.0;
}
meshQualityControls
{
maxNonOrtho 65.0;
maxBoundarySkewness 20;
maxInternalSkewness 4;
maxConcave 80.0;
minFlatness 0.5;
minVol 1.0E-13;
minTetQuality 1.0E-15;
minArea -1.0;
minTwist 0.02;
minDeterminant 0.001;
minFaceWeight 0.05;
minVolRatio 0.01;
minTriangleTwist -1.0;
nSmoothScale 4;
errorReduction 0.75;
relaxed
{
maxNonOrtho 75;
}
}
debug 0;
mergeTolerance 1.0E-6;
autoBlockMesh false;
and checkMesh:
Code:
...
Checking geometry...
Overall domain bounding box (-1.5 -1.3 0.499994189) (3.5 7.236849546e-35 1.5)
Mesh has 3 geometric (non-empty/wedge) directions (1 1 1)
Mesh has 3 solution (non-empty) directions (1 1 1)
Boundary openness (-1.751362408e-17 5.916174453e-16 8.765075835e-16) OK.
Max cell openness = 6.012466732e-16 OK.
Max aspect ratio = 22.62027622 OK.
Minimum face area = 1.424391158e-07. Maximum face area = 0.01792372431. Face area magnitudes OK.
Min volume = 3.321075353e-10. Max volume = 0.002282463027. Total volume = 5.595986151. Cell volumes OK.
Mesh non-orthogonality Max: 66.78962882 average: 7.806298952
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 3.76298589 OK.
Coupled point location match (average 0) OK.
Mesh OK.
|