[Gmsh] multi-scale mesh issue

Jean-Francois Roussel Jean-Francois.Roussel at onecert.fr
Tue Jul 12 17:36:21 CEST 2005


Hi,

first of all congratulations for this nery nice software.

I am using GMSH 3D mesh-generator to mesh the "empty" space with an 
object embedded in it (I do not mesh the object as often in FE, but its 
complement).
And I have a specific need, which is to make multi-scale meshing.
For example, the computation box can be a few 100m big, while I want to 
mesh the object at mm scale (or below if possible!).

First, if I do that brutally, simply having very small and very large 
characteristic lengths I get:
- a nice 2D mesh
- but a degenerated 3D mesh: very long tetrahedra starting from 
different small 2D triangles and ending at a common node in volume.
I solved that by helping GMSH thanks to intermediate boxes with 
intermediate characteristic lengths.
They are a little long to define, but it works fine.
(If ever you have a better idea, I'd appreciate).

The second point I am now stuck with, is that gmsh does not seem be able 
to cope with arbitrary "multi-scale ratio".
When the ratio of the box size to the smallest element size goes beyond 
~ 100 000, gmsh either crashes or enters a seemingly ever lasting loop 
(in all cases with error messages, rather variable, you have a few 
examples below).
I tried some changes without much result:
- gmsh version: 1.56 -> 1.60
- parameters: characteristic length factor, random perturbation (NetGen 
does not work, probably I should check my normals orientation)
A change that brought some relative improvement was to move the region 
of fine meshing around x~y~z~0.
That made me think that the limitation might come from the machine 
precision when making differences in intermediate computations... 
(errors reports are in single precision...).

I attached the file geom8du.geo, which causes the problem.
I made the following tests on this file
- if I remove the largest volume (Volume(3)): it works fine
- if I remove the smallest 2 volumes (Volume(30113) and Volume(30139)): 
it works fine, just with a few classical warnings ("Coplanar points in 
circum sphere computation")
- if I remove the smallest 3 volumes (previous + Volume(30165)): it 
works just fine
- if I remove intermediate volumes: it does not work
which makes me think:
- my CAD is correct (since all my volumes can be meshed independently 
(but not all together))
- it is an issue of relative scales (suppressing smallest or largest 
volumes improves, suppressing intermediate ones does not)

I also attached a slightly more complex file geom8eu.geo (the one I 
initially worked with) in case the threshold for triggering the issue is 
different on your machine and geom8du.geo works on yours (mine is 
Windows - Pentium).

Thanks a lot for your help!

Jean-Francois Roussel

-------Error messages -------

A couple of messages that led to infinite loop or crash:

"Huh! Panic in CrSi"
"Unable to add point... (will try later)"

A recovered error:

Info    : 12/13: Edge 4622->1589 => 0 division(s)
Error   : Missing edge without any intersection 
(0,1.08048e-06,-0.00146627) (0,-1.05818e-16,-0.0005)
Info    : 13/13: Edge 1588->4622 => 1 division(s)
Info    : Boundary faces recovery
Info    : Volume = 5.488e+06
Info    : ===================================================
        : Number of missing faces = 14
        : ===================================================
Info    : 1/14: Face 1562 1563 4440
Info    : Intersections left (the face contains 0 initial faces, divided 
in 3 points)
Info    : The face is divided in 3 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (0 <--> 1=2*(3-1)-3)
Info    : 2/14: Face 1591 1592 4431
Info    : Intersections left (the face contains 5 initial faces, divided 
in 8 points)
Info    : The face is divided in 8 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (5 <--> 6=2*(8-1)-8)
Info    : 3/14: Face 1601 1602 4435
Info    : Recoverable face (4 <--> 4=2*(6-1)-6)
Info    : 4/14: Face 1592 1593 4431
Info    : Recoverable face (7 <--> 7=2*(9-1)-9)
Info    : 5/14: Face 1562 1563 4440
Info    : Intersections left (the face contains 0 initial faces, divided 
in 3 points)
Info    : The face is divided in 3 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (0 <--> 1=2*(3-1)-3)
Info    : 6/14: Face 1001 1602 4435
Info    : Intersections left (the face contains 1 initial faces, divided 
in 4 points)
Info    : The face is divided in 4 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (1 <--> 2=2*(4-1)-4)
Info    : 7/14: Face 1003 1004 4414
Info    : Recoverable face (2 <--> 2=2*(4-1)-4)
Info    : 8/14: Face 1592 1593 4629
Info    : Intersections left (the face contains 23 initial faces, 
divided in 13 points)
Info    : The face is divided in 13 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (23 <--> 11=2*(13-1)-13)
Info    : 9/14: Face 1001 1602 4637
Info    : Intersections left (the face contains 1 initial faces, divided 
in 4 points)
Info    : The face is divided in 4 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (1 <--> 2=2*(4-1)-4)
Info    : 10/14: Face 1588 1589 4622
Info    : Intersections left (the face contains 1 initial faces, divided 
in 4 points)
Info    : The face is divided in 4 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (1 <--> 2=2*(4-1)-4)
Info    : 11/14: Face 1588 1589 4622
Info    : Intersections left (the face contains 1 initial faces, divided 
in 4 points)
Info    : The face is divided in 4 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (1 <--> 2=2*(4-1)-4)
Info    : 12/14: Face 1003 1004 4642
Info    : Recoverable face (2 <--> 2=2*(4-1)-4)
Info    : 13/14: Face 1601 1602 4637
Info    : Intersections left (the face contains 5 initial faces, divided 
in 6 points)
Info    : The face is divided in 6 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (5 <--> 4=2*(6-1)-6)
Info    : 14/14: Face 1591 1592 4629
Info    : Intersections left (the face contains 20 initial faces, 
divided in 12 points)
Info    : The face is divided in 12 points (simplexes added=0, deleted=0)
Warning : *Unrecoverable* face (20 <--> 10=2*(12-1)-12)
Info    : Volume after edge/face recovery = 5.488e+06
Info    : Final check: 1 missing edges, 2 missing faces
Info    : ===================================================
        : Surface coherence results (number of intersections)
        : 42 EV, 16 EE, 0 FV, 0 FF, 0 FE, 3 EEE, 0 EEEE
        : ===================================================
Error   : Could not restore all edges/faces
Error   : Surface recovery failed (send a bug report with the geo file 
to <gmsh at geuz.org>!)
Info    : Mesh 3D... (final)
Info    : Mesh 3D complete (27.66 s)

-- 
------------------------------------------------
Jean-Francois ROUSSEL
ONERA / DESP
Chef d'Unité "Couplage Satellite Environnement"
2 Av Edouard Belin, 31055 TOULOUSE cedex, FRANCE
e-mail: roussel at onecert.fr
Tel: +33 (0)5 62 25 27 35
Fax: +33 (0)5 62 25 25 69
------------------------------------------------

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: geom8du.geo
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20050712/3d4a1159/attachment.geo>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: geom8eu.geo
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20050712/3d4a1159/attachment-0001.geo>