[Gmsh] sphere hack

William F Mitchell william.mitchell at nist.gov
Fri Apr 6 14:40:55 CEST 2012


I am using Gmsh to generate an initial coarse mesh for my adaptive finite 
element code, PHAML (http://math.nist.gov/phaml).  For this I need to determine 
which, if any, boundary pieces (surfaces) contain each grid point.  When using a 
sphere as the domain (based on gmsh-source/demos/sphere.geo) my code was not 
identifying points on the interior of a surface piece as being on the piece. 
While trying to find out what was wrong I encountered a 2008 post that says 
"there is a hack in the interpolation code to check if all the bounding curves 
are circle arcs with the same center... in which case we consider that the patch 
is on a sphere", because the transfinite interpolation does not represent a 
sphere exactly.  I guess this is an "undocumented feature".  So what was going 
wrong in my code is that I compared a point on the transfinite interpolation 
surface to a mesh point that was actually on the sphere and found they were not 
equal, and concluded the mesh point was not on that boundary piece.

I can deal with this, but I have two questions.

It looks to me like the hack essentially takes the line between the center of 
the circle arcs and the transfinite interpolation point, and moves the point to 
the intersection of that line and the sphere.  Am I correct in that assessment?

Is there a way to tell Gmsh to not apply the hack?  If not, why not?

Thanks,
Bill

-- 
William F. Mitchell
Applied and Computational Mathematics Division
National Institute of Standards and Technology
william.mitchell at nist.gov     http://math.nist.gov/~WMitchell