CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Mesh Utilities (http://www.cfd-online.com/Forums/openfoam-meshing-utilities/)
-   -   snappyHexMesh - Floating point error (http://www.cfd-online.com/Forums/openfoam-meshing-utilities/62874-snappyhexmesh-floating-point-error.html)

derjames March 22, 2009 21:53

snappyHexMesh - Floating point error
 
I've been using snappyHexMesh for relatively simple geometries: about 50 stl files and about 1M cells with success. However I moved to more complex geometries involving about 200 stl files and from 5M to 10 M cells and snappy is now throwing me the error below. is there a limitation on the size and number of STL files that 'snappy' can handle?

The computer I am using is: HP workstation 8600, intel Xeon (4 cores) /w Linux RedHat, 16GB RAM 1TB Hard Drive, and OpenFOAM 1.5

thanks for your help...

jim


Code:

Added patches in = 0.01 s

Selecting decompositionMethod simple

Overall mesh bounding box  : (-500 -2500 400) (6500 2500 3000)
Relative tolerance        : 1e-06
Absolute matching distance : 0.00898666


Determining initial surface intersections
-----------------------------------------

Edge intersection testing:
    Number of edges            : 83700
    Number of edges to retest  : 83700
    Number of intersected edges : 1517
Calculated surface intersections in = 29.73 s

Initial mesh : cells:27000  faces:83700  points:29791
Cells per refinement level:
    0    27000

Refinement phase
----------------

Found point (410 -1170 1100) in cell 7413 on processor 0
Reading external feature lines.
Read feature lines in = 0 s


Surface refinement iteration 0
------------------------------

Marked for refinement due to surface intersection : 1873 cells.
Marked for refinement due to curvature/regions    : 0 cells.
Determined cells to refine in = 0.03 s
Selected for refinement : 1873 cells (out of 27000)
Edge intersection testing:
    Number of edges            : 127149
    Number of edges to retest  : 56120
    Number of intersected edges : 6697
Refined mesh in = 1.68 s
After refinement surface refinement iteration 0 : cells:40111  faces:127149  points:47112
Cells per refinement level:
    0    25127
    1    14984

Surface refinement iteration 1
------------------------------

Marked for refinement due to surface intersection : 298 cells.
Marked for refinement due to curvature/regions    : 0 cells.
Determined cells to refine in = 0.76 s
Selected for refinement : 332 cells (out of 40111)
Edge intersection testing:
    Number of edges            : 134700
    Number of edges to retest  : 18673
    Number of intersected edges : 7216
Refined mesh in = 1.07 s
After refinement surface refinement iteration 1 : cells:42435  faces:134700  points:50037
Cells per refinement level:
    0    24923
    1    16488
    2    1024

Surface refinement iteration 2
------------------------------

Marked for refinement due to surface intersection : 494 cells.
#0  Foam::error::printStack(Foam::Ostream&) in "/home/jimi/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/home/jimi/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#2  Uninterpreted: [0xb7feb400]
#3  Foam::meshRefinement::markSurfaceCurvatureRefinement(double, int, Foam::List<int> const&, Foam::Field<Foam::Vector<double> > const&, Foam::List<int>&, int&) const in "/home/jimi/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libautoMesh.so"
#4  Foam::meshRefinement::refineCandidates(Foam::Vector<double> const&, double, Foam::PtrList<Foam::featureEdgeMesh> const&, Foam::List<int> const&, bool, bool, bool, bool, int, int) const in "/home/jimi/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libautoMesh.so"
#5  Foam::autoRefineDriver::surfaceOnlyRefine(Foam::refinementParameters const&, int) in "/home/jimi/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libautoMesh.so"
#6  Foam::autoRefineDriver::doRefine(Foam::dictionary const&, Foam::refinementParameters const&, bool) in "/home/jimi/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libautoMesh.so"
#7  main in "/home/jimi/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/snappyHexMesh"
#8  __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#9  Foam::regIOobject::writeObject(Foam::IOstream::streamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const in "/home/jimi/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/snappyHexMesh"
Floating point exception


mattijs March 23, 2009 06:17

There is no limitation on number of surfaces. (a 32 bit version does have the 2Gb memory limit though). Have you tried 1.5.x instead of 1.5? There are some fixes in there relating to snappyHexMesh. If problem still persists please report a bug in OpenFOAM-bugs.

derjames March 24, 2009 18:52

Quote:

Originally Posted by mattijs (Post 210393)
There is no limitation on number of surfaces. (a 32 bit version does have the 2Gb memory limit though). Have you tried 1.5.x instead of 1.5? There are some fixes in there relating to snappyHexMesh. If problem still persists please report a bug in OpenFOAM-bugs.


Thanks Mattijs, I havenīt tested 1.5.x version yet, I will do that and post back my findings, however for 'snappy' version 1.5 it seems that if an stl file is large (say>200MB) then problems may occur, I haven't confirmed this and I need to make more trials in order to be sure.

cheers
jim

Bob June 23, 2009 06:53

Hi James,

I encountered the same error message as you obtained for an stl of a simple cylinder in OF1.5 (but already after surface refinement interation 1). This is my first case with snappyHexMesh so I also may be due to other reasons but the problem seems identical though.

Did OF1.5 solve your problem or is it a bug?

Many thanks.

Regards,
Bob

derjames September 19, 2009 14:14

This is what I've seen so far.

(1)=============================================== =====

I am using CFD-VisCART to quick fix the STL surfaces (shrink wrap) and to make relevant parts watertight which I then re-export as STLs. If this is done properly snappyHexMesh(1.5) will not complain and the meshing procedure will finish normally. I am producing grids from 3 to 5M cells for the moment and for testing purposes. The full geometry is composed of about 100 STL files. I pretend to use grids ranging from 10 to 13M cells.

I am now investigating the mesh quality controls and layer controls because it seems that the grids I am obtaining are not of enough quality and in consequence the solver diverges. So far I've tested simpleFoam and turbFoam (k-e) for automotive applications.


(2)=============================================== =====
I am also testing snappyHexMesh v1.6. However I am getting again the floting point exception but now when snappyHexMesh reaches the addLayer part of the algorithm (see below). Of course you can obtain the mesh if you disable the addLayer keyword.


Code:


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

patch              faces    layers avg thickness[m]
                                    near-wall overall
-----              -----    ------ --------- -------
pm_in_drive          14      1      0.00516  0.00516
pm_in_drive_621    33      1      0.0223    0.0223 
Trims_Front          52      1      0.0343    0.0343 
Hood_Under          13      1      0.0433    0.0433 
drive_647              17      1      0.00516  0.00516
Bumper_front        49      1      0.0221    0.0221 
#0  Foam::error::printStack(Foam::Ostream&) in "/home/jimi/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/home/jimi/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/libOpenFOAM.so"
#2  Uninterpreted:
#3  Foam::autoLayerDriver::addLayers(Foam::layerParameters const&, Foam::dictionary const&, int, Foam::motionSmoother&, Foam::decompositionMethod&, Foam::fvMeshDistribute&) in "/home/jimi/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/libautoMesh.so"
#4  Foam::autoLayerDriver::doLayers(Foam::dictionary const&, Foam::dictionary const&, Foam::layerParameters const&, Foam::decompositionMethod&, Foam::fvMeshDistribute&) in "/home/jimi/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/libautoMesh.so"
#5  main in "/home/jimi/OpenFOAM/OpenFOAM-1.6/applications/bin/linuxGccDPOpt/snappyHexMesh"
#6  __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#7  _start at /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/i386/elf/start.S:122
Floating point exception

I will continue testing/working with v1.5 until I get a decent mesh and for the moment I will stop using v1.6. I will post my findings here. I apologise in advance if posting here takes very long but I am working on this on my spare time.

cheers
j


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