CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM

snappyHexMesh on 1.7.1 and 2.1.0

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

Reply
 
LinkBack Thread Tools Display Modes
Old   May 3, 2012, 11:50
Default snappyHexMesh on 1.7.1 and 2.1.0
  #1
Senior Member
 
Andrea Ferrari
Join Date: Dec 2010
Posts: 260
Rep Power: 6
Andrea_85 is on a distinguished road
Hi all,
What are the differences between the old snappyHexMesh (OF 1.7) and the the new one (OF 2.1). I meshed the same geometry with both versions, using the same dictionary and obtaining different mesh:

snappy of OF 2.1.0

Mesh stats
points: 5756460
internal points: 0
faces: 11189366
internal faces: 5292421
cells: 2767077
boundary patches: 7
point zones: 0
face zones: 0
cell zones: 0

Overall number of cells of each type:
hexahedra: 2646402
prisms: 120675
wedges: 0
pyramids: 0
tet wedges: 0
tetrahedra: 0
polyhedra: 0

snappy on OF 1.7.1


Mesh stats
points: 5997810
internal points: 0
faces: 11310041
internal faces: 5292421
cells: 2767077
boundary patches: 7
point zones: 0
face zones: 0
cell zones: 0

Overall number of cells of each type:
hexahedra: 2767077
prisms: 0
wedges: 0
pyramids: 0
tet wedges: 0
tetrahedra: 0
polyhedra: 0


The total number of cells is the same but in OF 1.7.1 i have only hexa (some cells were not exactly hex, but they were a little bit distorted) while in OF 2.1 i got also some prisms cells. Since i think that working with hex is always better how can i reproduce the same hex-mesh on OF 2.1? How can I avoid prisms?

thanks

andrea
Andrea_85 is offline   Reply With Quote

Old   May 3, 2012, 15:45
Default
  #2
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 6,987
Blog Entries: 32
Rep Power: 69
wyldckat is a jewel in the roughwyldckat is a jewel in the roughwyldckat is a jewel in the rough
Greetings Andrea,

OK, quickest comparison:
Code:
diff -Nur OpenFOAM-1.7.1/tutorials/mesh/snappyHexMesh/motorBike/system/snappyHexMeshDict OpenFOAM-2.1.0/tutorials/mesh/snappyHexMesh/motorBike/system/snappyHexMeshDict > snappyHexMeshDict.diff
It basically gives the following output:
Code:
--- OpenFOAM-1.7.1/tutorials/mesh/snappyHexMesh/motorBike/system/snappyHexMeshDict    2010-08-24 15:32:48.000000000 +0100
+++ OpenFOAM-2.1.0/tutorials/mesh/snappyHexMesh/motorBike/system/snappyHexMeshDict    2011-11-30 14:25:22.000000000 +0000
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.7.1                                 |
-|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
+|  \\    /   O peration     | Version:  2.1.0                                 |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
@@ -28,7 +28,7 @@
 // - to 'snap' the mesh boundary to the surface
 geometry
 {
-    motorBike.stl
+    motorBike.obj
     {
         type triSurfaceMesh;
         name motorBike;
@@ -54,7 +54,7 @@
     // If local number of cells is >= maxLocalCells on any processor
     // switches from from refinement followed by balancing
     // (current method) to (weighted) balancing before refinement.
-    maxLocalCells 1000000;
+    maxLocalCells 100000;
 
     // Overall cell limit (approximately). Refinement will stop immediately
     // upon reaching this number so a refinement level might not complete.
@@ -152,6 +152,12 @@
     // NOTE: This point should never be on a face, always inside a cell, even
     // after refinement.
     locationInMesh (3 3 0.43);
+
+
+    // Whether any faceZones (as specified in the refinementSurfaces)
+    // are only on the boundary of corresponding cellZones or also allow
+    // free-standing zone faces. Not used if there are no faceZones.
+    allowFreeStandingZoneFaces true;
 }
 
 
@@ -169,11 +175,16 @@
     tolerance 4.0;
 
     //- Number of mesh displacement relaxation iterations.
-    nSolveIter 30;
+    nSolveIter 0;
 
     //- Maximum number of snapping relaxation iterations. Should stop
     //  before upon reaching a correct mesh.
     nRelaxIter 5;
+
+    //- Highly experimental and wip: number of feature edge snapping
+    //  iterations. Leave out altogether to disable.
+    //  Do not use here since mesh resolution too low and baffles present
+    //nFeatureSnapIter 10;
 }
 
 
@@ -188,275 +199,7 @@
     // Per final patch (so not geometry!) the layer information
     layers
     {
-        minZ
-        {
-            nSurfaceLayers 1;
-        }
-        motorBike_frt-fairing:001%1
-        {
-            nSurfaceLayers 1;
-        }
 [snipped code]
-        motorBike_rear-shock-link-shadow%87
-        {
-            nSurfaceLayers 1;
-        }
-        motorBike_rear-brake-fluid-pot-bracket-shadow%88
-        {
-            nSurfaceLayers 1;
-        }
-        motorBike_rr-wh-chain-hub-shadow%89
+        "(lowerWall|motorBike).*"
         {
             nSurfaceLayers 1;
         }
@@ -466,6 +209,9 @@
     expansionRatio 1.0;
 
     //- Wanted thickness of final added cell layer. If multiple layers
+    //  is the
+    //  thickness of the layer furthest away from the wall.
+    //  Relative to undistorted size of cell outside layer.
     //  is the thickness of the layer furthest away from the wall.
     //  See relativeSizes parameter.
     finalLayerThickness 0.3;
@@ -478,8 +224,8 @@
     //- If points get not extruded do nGrow layers of connected faces that are
     //  also not grown. This helps convergence of the layer addition process
     //  close to features.
-    nGrow 1;
-
+    // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
+    nGrow 0;
 
     // Advanced settings
 
@@ -508,12 +254,17 @@
     maxThicknessToMedialRatio 0.3;
 
     // Angle used to pick up medial axis points
-    minMedianAxisAngle 130;
+    // Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x.
+    minMedianAxisAngle 90;
+
 
     // Create buffer region for new layer terminations
     nBufferCellsNoExtrude 0;
 
-    // Overall max number of layer addition iterations
+
+    // Overall max number of layer addition iterations. The mesher will exit
+    // if it reaches this number of iterations; possibly with an illegal
+    // mesh.
     nLayerIter 50;
 }
 
@@ -535,14 +286,21 @@
     //  Set to 180 to disable.
     maxConcave 80;
 
-    //- Minimum projected area v.s. actual area. Set to -1 to disable.
-    minFlatness 0.5;
-
     //- Minimum pyramid volume. Is absolute volume of cell pyramid.
     //  Set to a sensible fraction of the smallest cell volume expected.
     //  Set to very negative number (e.g. -1E30) to disable.
     minVol 1e-13;
 
+    //- Minimum quality of the tet formed by the face-centre
+    //  and variable base point minimum decomposition triangles and
+    //  the cell centre. This has to be a positive number for tracking
+    //  to work. Set to very negative number (e.g. -1E30) to
+    //  disable.
+    //     <0 = inside out tet,
+    //      0 = flat tet
+    //      1 = regular tet
+    minTetQuality 1e-30;
+
     //- Minimum face area. Set to <0 to disable.
     minArea -1;
 
@@ -585,7 +343,7 @@
 
 // Merge tolerance. Is fraction of overall bounding box of initial mesh.
 // Note: the write tolerance needs to be higher than this.
-mergeTolerance 1E-6;
+mergeTolerance 1e-6;
 
 
 // ************************************************************************* //
In bold is the main difference between the two OpenFOAM versions, when it comes to "snappyHexMeshDict".

You might also want to upgrade to 2.1.x for at least the following reason: http://www.openfoam.org/mantisbt/view.php?id=351

Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   May 4, 2012, 03:14
Default
  #3
Senior Member
 
Andrea Ferrari
Join Date: Dec 2010
Posts: 260
Rep Power: 6
Andrea_85 is on a distinguished road
HI Bruno,

that's the point. If there's no significant difference why i get two different mesh? and again my question...how can i avoid prisms? i tried set "cellDeterminat = -1" with no changes. I think that if i had a full hexa-mesh with the old version it should be possibile to get the same with the new one.

best

andrea
Andrea_85 is offline   Reply With Quote

Old   May 5, 2012, 08:59
Default
  #4
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 6,987
Blog Entries: 32
Rep Power: 69
wyldckat is a jewel in the roughwyldckat is a jewel in the roughwyldckat is a jewel in the rough
Hi Andrea,

I forgot to mention that there might be more changes beyond these two lists I've shown above. But in the link to the bug tracker it indicates that "maxNonOrtho" also changed.

If you could provide a simple example, it might be easier to pinpoint the change. Nonetheless, I'll try to list a few more changes:
  • This bug report seems closely related to your problem: http://www.openfoam.org/mantisbt/view.php?id=309 - namely this comment:
    Quote:
    I've reenabled refining and snapping

    castellatedMesh true;
    snap true;

    and set

    minTetQuality -1;

    and get really good results in 2.1.x.
Mmmm... can't find anything else. But I'd say that the "minTetQuality" option is what you might be looking for.


Best regards,
Bruno
wyldckat 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
Adding layers goes wrong with SnappyHexMesh Elise OpenFOAM Native Meshers: snappyHexMesh and Others 1 April 22, 2013 02:32
SnappyHexMesh in Parallel problem swifty OpenFOAM Meshing & Mesh Conversion 4 September 26, 2012 08:37
Installing OpenFOAM 2.1.0 on ROCKS cluster aerospain OpenFOAM Installation 4 March 27, 2012 05:28
Instell OF 2.1.0 on suse enterprise with suse rpm preibie OpenFOAM Installation 2 February 9, 2012 04:09
SGI/OpenCFD release OpenFOAMŪ version 2.1.0 opencfd OpenFOAM Announcements from ESI-OpenCFD 1 December 20, 2011 00:24


All times are GMT -4. The time now is 04:36.