From: Avell Diroll (avelldiroll_at_yahoo.fr)
Date: Wed Feb 21 2007 - 06:42:05 CST

John Stone wrote:
> Julien,
> I've reproduced your problem, and it is as I suspected, the isosurface
> is ill-defined at an isovalue of zero. The isosurface extraction
> code in VMD includes a safety check that prevents it from drawing triangles
> where the interpolated vertex coordinate is calculated under conditions
> leading to numerical instability. If I disable the safety checks
> your surface will render without the holes, but other ill-defined datasets
> could render badly or cause a runtime floating point exception due to
> division by a value that's nearly zero. If you like I would be happy to
> provide you with a binary that disables the safety check for the time being,
> so that you can make your figures, while I see if I can implement the safety
> check just slightly differently to allow you to get your surface even though
> this specific case is definitely marginal at best. Try rendering the
> isosurface for isovalues 0, 0.0001, and 0.000001 and you'll see how
> small the volume gradient is at the outer edges of your box.

Hi John,
It's great to know there's a rational explanation to this behaviour.
Thanks for your time spent in solving this.

I would be glad to receive a VMD "safety check free" version.

However if this case is marginal, it might be easier to add a console
option to disable the safety check "manually" than to modify its
implementation.

I observed the isovalues you were suggesting and the gradient is
definitely small on the edges (1e-17), but having a display of a
"lipophilic transition" plane would be really nice even if the grid
values are below the precision level of the calculation.

Thanks for everything

Julien Lefeuvre