CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Native Meshers: snappyHexMesh and Others

Add Mesh Layers doesnt work on the whole surface

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   September 10, 2012, 06:13
Default Add Mesh Layers doesnt work on the whole surface
  #1
New Member
 
Join Date: Sep 2012
Posts: 8
Rep Power: 4
Kryo is on a distinguished road
Hello,

I just tried to make a simple mesh with snappyHexMesh, and everything worked quite well so far.

But now I am at a point, where I cannot find a solution to my current problem.

I got a simple "rocket" which exists of a cylinder and a cone as tip and rear.
When creating the mesh it adds the layers on the surface correctly, but only on the cylindrical part.

you can find a screenshot here: https://dl.dropbox.com/u/3545765/layersproblem.png

as you see the layers stop at the edge, same on the tip and rear side.

my snappyhexmeshdict as follows:
Code:
addLayersControls
{
   
    relativeSizes true;


    layers
    {
        rocketbody_rocketbodysurf

        {
            nSurfaceLayers 20;
        }
    }


    expansionRatio 1.1;

     finalLayerThickness 1e-1;


    minThickness 1e-10;

    nGrow 1;

  
    featureAngle 310;


    nRelaxIter 3;

    nSmoothSurfaceNormals 1;


    nSmoothNormals 3;


    nSmoothThickness 10;

    maxFaceThicknessRatio 0.5;

    maxThicknessToMedialRatio 0.3;

    
    minMedianAxisAngle 180;


    nBufferCellsNoExtrude 0;


    nLayerIter 1500;
}
changing feature angle does impact it slightly, but still even with 360░ it doesnt work. The STL file is all in one, so there is only one surface which is rocketbody_rocketbodysurf.

Anyone any ideas? Thanks in advance!


EDIT: maybe the output would also be interesting:
Code:
Shrinking and layer addition phase
----------------------------------

Using mesh parameters 
{
    maxNonOrtho     180;
    maxBoundarySkewness 20;
    maxInternalSkewness 4;
    maxConcave      180;
    minVol          -1e-13;
    minTetQuality   1e-30;
    minArea         -1;
    minTwist        0.02;
    minDeterminant  0.001;
    minFaceWeight   0.02;
    minVolRatio     0.01;
    minTriangleTwist -1;
    nSmoothScale    4;
    errorReduction  0.75;
}



Merging all faces of a cell
---------------------------
    - which are on the same patch
    - which make an angle < 310 degrees
      (cos:0.642788)
    - as long as the resulting face doesn't become concave by more than 90 degrees
      (0=straight, 180=fully concave)

Merging 0 sets of faces.

No faces merged ...

Merging all points on surface that
- are used by only two boundary faces and
- make an angle with a cosine of more than 0.642788.

No straight edges simplified and no points removed ...

Checking mesh manifoldness ...

Checking initial mesh ...
Checking faces in error :
    faces with face pyramid volume < -1e-13                 : 0
    faces with face-decomposition tet quality < 1e-30      : 0
    faces with skewness >   4 (internal) or  20 (boundary) : 0
    faces with interpolation weights (0..1)  <  0.02       : 0
    faces with volume ratio of neighbour cells <  0.01     : 0
    faces with face twist <  0.02                          : 0
    faces on cells with determinant < 0.001                : 0
Detected 0 illegal faces (concave, zero area or negative cell pyramid volume)

Adding in total 0 inter-processor patches to handle extrusion of non-manifold processor boundaries.
Constructing mesh displacer ...

Handling points with inconsistent layer specification ...

Handling non-manifold points ...

Checking patch manifoldness ...
Outside of local patch is multiply connected across edges or points at 0 points.
Set displacement to zero for all 0 non-manifold points

Handling feature edges ...

Handling cells with warped patch faces ...
Set displacement to zero on 0 warped faces since layer would be > 0.5 of the size of the bounding box.

Growing non-extrusion points by one layer ...
Set displacement to zero for an additional 0 points.

patch                     faces    layers avg thickness[m]
                                          near-wall overall
-----                     -----    ------ --------- -------
rocketbody_rocketbodysurf 4536     20     0.00511   0.293   

medialAxisSmoothingInfo : Calculate distance to Medial Axis ...
shrinkMeshDistance : Smoothing normals ...
    Iteration 0   residual 0.0105
shrinkMeshDistance : Smoothing normals ...
shrinkMeshDistance : Smoothing normals in interior ...
    Iteration 0   residual 0.0632

Layer addition iteration 0
--------------------------
Prevented extrusion on 0 coupled patch points during syncPatchDisplacement.

Determining displacement for added points according to pointNormal ...
Prevented extrusion on 0 coupled patch points during syncPatchDisplacement.

shrinkMeshMedialDistance : Smoothing using Medial Axis ...
shrinkMeshMedialDistance : Reduce layer thickness at 0 nodes where thickness to medial axis distance is large 
shrinkMeshDistance : Removing isolated regions ...
Number isolated points extrusion stopped : 0
shrinkMeshDistance : Smoothing field ...
    Iteration 0   residual 9.04e-05
shrinkMeshMedialDistance : Moving mesh ...
Iteration 0
Moving mesh using diplacement scaling : min:1  max:1
Checking faces in error :
    faces with face pyramid volume < -1e-13                 : 0
    faces with face-decomposition tet quality < 1e-30      : 0
    faces with skewness > 4   (internal) or 20  (boundary) : 0
    faces with interpolation weights (0..1)  < 0.02        : 0
    faces with volume ratio of neighbour cells < 0.01      : 0
    faces with face twist < 0.02                           : 0
    faces on cells with determinant < 0.001                : 0
shrinkMeshMedialDistance : Successfully moved mesh
shrinkMeshMedialDistance : Finished moving mesh ...
Prevented extrusion on 0 coupled patch points during syncPatchDisplacement.
truncateDisplacement : Unextruded 0 faces due to non-consecutive vertices being extruded.
truncateDisplacement : Unextruded 0 faces due to stringed edges with inconsistent extrusion.

Setting up information for layer truncation ...

Checking mesh with layer ...
Checking faces in error :
    faces with face pyramid volume < -1e-13                 : 0
    faces with face-decomposition tet quality < 1e-30      : 3588
    faces with skewness > 4   (internal) or 20  (boundary) : 0
    faces with interpolation weights (0..1)  < 0.02        : 0
    faces with volume ratio of neighbour cells < 0.01      : 0
    faces with face twist < 0.02                           : 0
    faces on cells with determinant < 0.001                : 0
Detected 3588 illegal faces (concave, zero area or negative cell pyramid volume)
Extruding 4016 out of 4536 faces (88.5%). Removed extrusion at 302 faces.

Growing non-extrusion points by one layer ...
Set displacement to zero for an additional 198 points.


Layer addition iteration 1
--------------------------
Prevented extrusion on 0 coupled patch points during syncPatchDisplacement.

Determining displacement for added points according to pointNormal ...
Prevented extrusion on 0 coupled patch points during syncPatchDisplacement.

shrinkMeshMedialDistance : Smoothing using Medial Axis ...
shrinkMeshMedialDistance : Reduce layer thickness at 0 nodes where thickness to medial axis distance is large 
shrinkMeshDistance : Removing isolated regions ...
Number isolated points extrusion stopped : 9
shrinkMeshDistance : Smoothing field ...
    Iteration 0   residual 0.00104
shrinkMeshMedialDistance : Moving mesh ...
Iteration 0
Moving mesh using diplacement scaling : min:1  max:1
Checking faces in error :
    faces with face pyramid volume < -1e-13                 : 0
    faces with face-decomposition tet quality < 1e-30      : 0
    faces with skewness > 4   (internal) or 20  (boundary) : 0
    faces with interpolation weights (0..1)  < 0.02        : 0
    faces with volume ratio of neighbour cells < 0.01      : 0
    faces with face twist < 0.02                           : 0
    faces on cells with determinant < 0.001                : 0
shrinkMeshMedialDistance : Successfully moved mesh
shrinkMeshMedialDistance : Finished moving mesh ...
Prevented extrusion on 0 coupled patch points during syncPatchDisplacement.
truncateDisplacement : Unextruded 0 faces due to non-consecutive vertices being extruded.
truncateDisplacement : Unextruded 0 faces due to stringed edges with inconsistent extrusion.

Setting up information for layer truncation ...

Checking mesh with layer ...
Checking faces in error :
    faces with face pyramid volume < -1e-13                 : 0
    faces with face-decomposition tet quality < 1e-30      : 0
    faces with skewness > 4   (internal) or 20  (boundary) : 0
    faces with interpolation weights (0..1)  < 0.02        : 0
    faces with volume ratio of neighbour cells < 0.01      : 0
    faces with face twist < 0.02                           : 0
    faces on cells with determinant < 0.001                : 0
Detected 0 illegal faces (concave, zero area or negative cell pyramid volume)
Extruding 3736 out of 4536 faces (82.4%). Removed extrusion at 0 faces.
Edge intersection testing:
    Number of edges             : 339036
    Number of edges to retest   : 0
    Number of intersected edges : 60289
Writing 55752 added cells to cellSet addedCells
Writing 52016 faces inside added layer to faceSet layerFaces
Layer mesh : cells:109064  faces:339036  points:121291
Cells per refinement level:
    0    7568
    1    2456
    2    6988
    3    7552
    4    2780
    5    8004
    6    73716
Writing mesh to time 3e-07
Wrote mesh in = 5.26 s.
Layers added in = 5.26 s.
Finished meshing in = 12.6 s.
End

Last edited by Kryo; September 10, 2012 at 06:34.
Kryo is offline   Reply With Quote

Old   September 11, 2012, 03:22
Default
  #2
New Member
 
Jane L
Join Date: May 2012
Posts: 21
Rep Power: 5
Jane L is on a distinguished road
For my current project, I can control that kind of proplem with the following options

resolveFeatureAngle 180;
featureAngle 180;

I don't know for sure if it helps because you have allready a tall number for featureAngle

good luck!
Jane L is offline   Reply With Quote

Old   September 11, 2012, 05:47
Default
  #3
Member
 
Jan
Join Date: Dec 2009
Location: Berlin
Posts: 50
Rep Power: 9
SirWombat is on a distinguished road
Send a message via Skype™ to SirWombat
The featureAngle should be fine, though any number beyond 180 should make no difference than using 180.

but lets have a look at the output:

Quote:
Originally Posted by Kryo View Post
Hello,
Code:
Checking faces in error :
    faces with face pyramid volume < -1e-13                 : 0
    faces with face-decomposition tet quality < 1e-30      : 3588
I recommend to alter the quality settings! Just try a to switch that "minTetQuality" off by using
Code:
minTetQuality   -1e30;
and see where that leads.

Also I highly recommend to reduce the "nLayerIter" to a reasonable number, i.e. 10. Else SHM may get stuck in iterating if it fails to meet your quality settings. Better check the output to see if it does converge.

If you want the furthest layer cell to be of equal thickness to the surrounding mesh (finalLayerThickness 1;), then use the following:

Code:
...
    nSmoothSurfaceNormals 50;
    nSmoothNormals 50;
    nSmoothThickness 100;
    maxFaceThicknessRatio 0.8;
    maxThicknessToMedialRatio 0.9;
...

Greetings,
Jan
__________________
~~~_/)~~~

Last edited by SirWombat; September 12, 2012 at 02:00.
SirWombat is offline   Reply With Quote

Old   September 11, 2012, 16:37
Default
  #4
New Member
 
Join Date: Sep 2012
Posts: 8
Rep Power: 4
Kryo is on a distinguished road
thanks a lot SirWombat, that did actually help now nearly all parts of the surface have the layer

Now I can start running some solvers, and see what problems that will bringt forth :P
Kryo is offline   Reply With Quote

Old   September 13, 2012, 05:32
Default
  #5
Senior Member
 
Elo´se
Join Date: Jul 2012
Location: Trondheim, Norway
Posts: 103
Rep Power: 5
Eloise is on a distinguished road
Hi Jan,

Could you develop a bit about the reason why you recommend those parameters? What is their actual effect on the layers? This would be great help!

Regards,
Elo´se

Quote:
Originally Posted by SirWombat View Post
If you want the furthest layer cell to be of equal thickness to the surrounding mesh (finalLayerThickness 1;), then use the following:
Code:
...
    nSmoothSurfaceNormals 50;
    nSmoothNormals 50;
    nSmoothThickness 100;
    maxFaceThicknessRatio 0.8;
    maxThicknessToMedialRatio 0.9;
...
Eloise is offline   Reply With Quote

Old   September 13, 2012, 05:50
Default
  #6
Member
 
Jan
Join Date: Dec 2009
Location: Berlin
Posts: 50
Rep Power: 9
SirWombat is on a distinguished road
Send a message via Skype™ to SirWombat
Hi Elo´se,

it's just what I've been experimenting with and found it to be most suitable for smooth geometries. But I'll try to give an answer anyway:

the smoothing-parameters should be clear .. they smooth the "layer-surface", which consist of all faces between the added layers and the rest of the mesh.

The maxFaceThicknessRatio in combination with maxThicknessToMedialRatio have a strong influence on how thick those layer-cells get in relation to surrounding layer cells, especially towards to the end/edge of the added layer region.

If you would like to experiment yourself then switch off all quality controls and try some variations on those "addLayer"-parameters. Do this on a small and simple mesh so to get a fast result. You will find it to be enlightening!

G Jan
__________________
~~~_/)~~~
SirWombat is offline   Reply With Quote

Old   September 13, 2012, 06:08
Default
  #7
New Member
 
Join Date: Sep 2012
Posts: 8
Rep Power: 4
Kryo is on a distinguished road
well here I am again. Its not quite fitting to the thread title, but I didnt want to open another one.

The calculation is now working fine, but now I wanted to ask, is there no adaptive mesh refinement utility in OpenFoam? I am using sonicFoam with Mach 1.6, and have compression shocks, where I would like to refine the mesh automatically where there is a high pressure gradient. But google didnt help me
Kryo is offline   Reply With Quote

Old   September 13, 2012, 06:44
Default
  #8
Member
 
Jan
Join Date: Dec 2009
Location: Berlin
Posts: 50
Rep Power: 9
SirWombat is on a distinguished road
Send a message via Skype™ to SirWombat
sorry I cannot help you with that topic but google "openfoam adaptive mesh refinement" and have a look at the first result: Chalmers compiled a new solver including AMR ... maybe there's a way to do that with sonicFoam as well ...
__________________
~~~_/)~~~
SirWombat is offline   Reply With Quote

Old   September 13, 2012, 09:28
Default
  #9
New Member
 
Join Date: Sep 2012
Posts: 8
Rep Power: 4
Kryo is on a distinguished road
so there is no way other than coding something like that myself?
Kryo is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
[ICEM] How to generate sunstructured "all-tri patch-dependant" surface mesh in ICEM? jash ANSYS Meshing & Geometry 19 July 23, 2013 18:48
Effect of adding layers with sHM Nucleophobe OpenFOAM Native Meshers: snappyHexMesh and Others 4 August 20, 2012 16:45
[ICEM] Surface mesh not sticking to surface holtwong ANSYS Meshing & Geometry 0 April 4, 2012 06:14
I wonder, how do I mesh a car? MadsR OpenFOAM Native Meshers: snappyHexMesh and Others 0 May 2, 2011 15:39
snappyHexMesh won't work - zeros everywhere! sc298 OpenFOAM Native Meshers: snappyHexMesh and Others 2 March 27, 2011 21:11


All times are GMT -4. The time now is 19:51.