CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Bugs (http://www.cfd-online.com/Forums/openfoam-bugs/)
-   -   SnappyHexMesh plane surface bounding box (http://www.cfd-online.com/Forums/openfoam-bugs/62374-snappyhexmesh-plane-surface-bounding-box.html)

podallaire August 8, 2008 10:06

Good morning, using snappyH
 
Good morning,

using snappyHexMesh, I was able to mesh compilcated surfaces - great tool !

I just found out that if one of the stl files is a perfect plane surface that sits on one of the 3 orthogonal planes (X-Y, Y-Z, or X-Z), the bounding box detector creates an error. Here is an example :

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

Edge intersection testing:
Number of edges : 725100
Number of edges to retest : 725100
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found
sh: gaddr2line: command not found


Badly formed bounding boxhttp://www.cfd-online.com/OpenFOAM_D...lipart/sad.gif-0.500637 -11.25 1.99967) (0.500362 -11.25 3.00077)#0 Foam::error::printStack(Foam:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifstream&) addr2line failed
#1 Foam::error::abort() addr2line failed
#2 Foam::indexedOctree<foam::treedatatrisurface>::div ide(Foam::treeBoundBox const&, Foam::DynamicList<foam::list<int>, 0u, 2u, 1u>&, int) const addr2line failed
#3 Foam::indexedOctree<foam::treedatatrisurface>::ind exedOctree(Foam::treeDataTriSu rface const&, Foam::treeBoundBox const&, int, double, double) addr2line failed
...

Regards,

Pierre-Olivier

mattijs August 11, 2008 05:22

Hi Pierre-Olivier, the (axi
 
Hi Pierre-Olivier,

the (axis-aligned) octree used for doing geometric tests on surfaces does not like 2D axis-aligned geometries (planes, lines, points). You could try perturbing your surface or rotate the whole lot. Anything that causes the bounding box to be non 2d-axis-aligned should work.

podallaire August 11, 2008 22:43

Yes, it worked - thanks !
 
Yes, it worked - thanks !

waterboy November 12, 2008 07:38

Hi, I was able to use snappyH
 
Hi,
I was able to use snappyHexmesh on geometries I created myself with SALOME. When trying another STL file, created with some unknown program it fails with a segmentation fault. Blender refuses to open it,but Paraview can read it alright. Are there any known STL format issues? Recommendations how to check/repair such a STL file?
Thanks for any advice,
Regards,
Pal

norman1981 November 12, 2008 08:29

Hi, you can have a look at
 
Hi,

you can have a look at this very useful tutorial:

http://www.cfditalia.org/software/preprocessing/preparazione_del_modello_snappyh exmesh

I know that it is written in Italian but you can figure out how to use these things reading the reported "command box"!

In any case Blender should open your file so I think that something wrong is present there...

Have a nice day!

Norman

mattijs November 12, 2008 10:38

Is the STL binary? Binary STL
 
Is the STL binary? Binary STL is not very well defined. If it is Ascii snappedHexMesh should not fail. What kind of error do you get? Can you run e.g. surfaceCheck on the surface?

waterboy November 17, 2008 18:30

Great Thanks Norman and Mattij
 
Great Thanks Norman and Mattijs,
In prefer spanish but will see how far I get with italian:-) The STL is ASCII... Will see for any error message tomorow and check that surfaceCheck. Sorry for being so slow but as a student I only work part time on FOAM...
Have a nice day/night:-)
Pal

waterboy November 18, 2008 08:35

Hi, Back to work I tried agai
 
Hi,
Back to work I tried again and yes, the STL was bad. After processing it with admesh surfaceCheck tells me

Dumping bad quality faces to "badFaces"
Paste this into the input for surfaceSubset

...
Edges:
min 0.000141144 for edge 113249 points (53.4499 9.918 2.5517e-06)(53.4499 9.91786 2.40737e-06)
max 160.585 for edge 124347 points (149.285 0 16.5)(-11.2999 0.0101797 16.5)

Checking for points less than 1E-6 of bounding box ((162.57 27.5 16.5) meter) apart.
Found 0 nearby points.

Surface is closed. All edges connected to two faces.

Number of unconnected parts : 1

Number of zones (connected area with consistent normal) : 333194
More than one normal orientation.

Checking self-intersection.
Surface is not self-intersecting

End

Seems OK to me. With blockMesh I tried to put a box around and the locationinMesh point inside, quite similar to the racing car example. snappyHexmesh now segfaults:-(

Create time

Create mesh for time = 0

Read mesh in = 1.58 s
Reading refinement surfaces.
Read refinement surfaces in = 3.24 s

Reading refinement shells.
#0 Foam::error::printStack(Foam:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifstream&) in "/home/pasch/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::sigSegv::sigSegvHandler(int) in "/home/pasch/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#2 Uninterpreted: [0xffffe420]
#3 Foam::triSurfaceMesh::isSurfaceClosed() const in "/home/pasch/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libmeshTools.so"
#4 Foam::triSurfaceMesh::hasVolumeType() const in "/home/pasch/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libmeshTools.so"
#5 Foam::shellSurfaces::setAndCheckLevels(double, Foam::List<foam::tuple2<double,> > const&) in "/home/pasch/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libautoMesh.so"
#6 Foam::shellSurfaces::shellSurfaces(Foam::searchabl eSurfaces const&, Foam::dictionary const&) in "/home/pasch/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libautoMesh.so"
#7 main in "/home/pasch/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/snappyHexMesh"
#8 __libc_start_main in "/lib/tls/libc.so.6"
#9 Foam::regIOobject::writeObject(Foam::IOstream::str eamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const in "/home/pasch/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/snappyHexMesh"
Segmentation fault


Any clue?
Thanks in advance,
Pal

waterboy November 18, 2008 10:40

Thanks a lot, its running....
 
Thanks a lot, its running....

erik023 November 19, 2008 04:11

Dear SnappyHex Users, i have
 
Dear SnappyHex Users,
i have a bit of trouble getting nice results when using interfoam in combination with snappy. I try to simulate a sphere with water flowing around it. what i see is that, when looking at the gamma 0.5 isosurface i have an area that looks very bumpy, like the region was made up from triangles (some polygons in 3d i guess) and that the isosurface is following them. i have been given the indication that this might just be a fault in paraview (and ensight) but could there also be another explination. i cant find anywhere how to turn of the spliting of hexcells by drawing a diagonal through them as is done in snappy. is there a way around this, or do i simply need to make a finer mesh? finer background mesh?

thanks
Erik

mattijs November 19, 2008 06:07

foamToVTK/paraFoam/foamToEnsig
 
foamToVTK/paraFoam/foamToEnsight all will decompose any cell which is not a pure hex into pyramids and tetrahedra and this can lead to low quality isosurfaces.

(a pure hex is a cell with 6 quad faces. Even a single edge being split will cause the cell to become a polyhedron and be decomposed)

Solutions:
- make sure your iso surface does not go through any refinement region.
- map the solution onto a pure hex mesh.
- write a small utility to do double averaging - cell to point and then point to cell. This will produce very smooth isosurfaces but will lose precision so is a cheat.

erik023 November 19, 2008 08:28

Ah, many thanks to Niklas Wiks
 
Ah, many thanks to Niklas Wikström who gave me pretty much the same explication.

Mattijs - I like the idea of mapping the solution, it there a utility to do this or would I write it myself?
I need not to Worry then about the quality of the solution if I understand it right, just the graphical output!?

thank you both!

waterboy November 25, 2008 04:53

Hi, I noticed that snappyHexm
 
Hi,
I noticed that snappyHexmesh fails with a segmentation fault if the refinement level of a region is higher than the one specified at the surface. Although I can't imagine why anyone might want to do this , a clear message may be helpful to users and should be very easy to implement. Or is this supposed to work?

waterboy November 25, 2008 05:13

Sorry, I posted false informat
 
Sorry, I posted false information above.
My case fails with a floating point exception if the refinement level is higher than 5 in either the region or the surface... I don't really need such a high resolution but it shouldn't fail just like that, I believe.
Pal

mattijs November 25, 2008 08:01

No it shouldn't fail with norm
 
No it shouldn't fail with normal input. Do you have a testcase? You can send it to me directly (domain opencfd.co.uk, user m.janssens)

mattijs November 25, 2008 08:07

I assume you are using 1.5.x ?
 
I assume you are using 1.5.x ? It has got various fixes in snappyHexMesh.

waterboy November 25, 2008 10:33

Hi Mattijs, Yes, I am using v
 
Hi Mattijs,
Yes, I am using version 1.5.
I need to ask wether I am allowed to share the geometry.
If not I will try to reproduce the error with another case and send You the setup. Right now it is running with a refinement level of 5 in the refinement region and seems fine.
Confused...
Thanks a lot,
Pal

waterboy November 25, 2008 12:53

Hi again, Someone smart told
 
Hi again,
Someone smart told me snappyHexmesh might fail due to old data from previous runs. Is that true? I have been cleaning my case before every new calculation since then and my problems seem to be gone.. Can anyone verify? Is it the existing timesteps?...
Cheers,
Pal

mattijs November 25, 2008 14:57

Yes that can be the case. It r
 
Yes that can be the case. It reads a starting mesh to start refining from. Usually this comes from constant/polyMesh but it can also come from a time directory. The starting mesh consists of the usual faces,points,etc. files but also two special files, pointLevel and cellLevel and these have to be consistent with the mesh.

andresbh August 21, 2009 04:08

Hi all,

I have a question regarding the snappyhexmesh. My domain is as large as 1mm^3 with a couple of bodies inside. snappyhexmesh refines the surface intersection to the domain created with blockmesh but it does not remove the volume of the body. I have tried reducing the property

minVol

to a very small value. But the results are the same.

do you have any advice for this case?

many thanks

Andres


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