From: Axel Kohlmeyer (akohlmey_at_cmm.chem.upenn.edu)
Date: Wed Feb 21 2007 - 11:54:12 CST

On Wed, 21 Feb 2007, John Stone wrote:

JS>
JS> Hi,
JS> Actually neither one of these suggestions is really workable,
JS> as the safety checks prevent IEEE NANs from being used in the vertex
JS> coordinate interpolation. I don't want to add any additional flags
JS> controlling the safety checks as they are in a performance-critical
JS> region of the code. Setting the gridpoint value to zero doesn't affect
JS> the need for the test, as the test is required in conditions when the
JS> _difference_ between gridpoint values or positions is nearly zero, which

well, with a 'cut-to-zero' threshold (it has to be large enough), you
will have a defined situation where the _difference_ between gridpoint
values is either the threshold value or _exactly_ zero. this would
at least give you a controlled environment (that is why it is done for
DFT like this). however, since you know the code and the associated
problems so much better, i won't insist that this is a viable solution
for the problem at hand. take your time and i am confident, that you'll
come up with a solution that would be even better. ;-)

cheers,
   axel.

JS> can occur for many combinations of voxel values, for example. I'm going to
JS> test an alternative equation for stability under conditions of IEEE NAN
JS> input values and see if that works. If it does, then I'll remove the
JS> safety checks and the quality of the surface should degrade smoothly up
JS> until NAN occurs. Anyway, give me some time to work on it
JS> and I'll let you know how it goes.
JS>
JS> John
JS>
JS> On Wed, Feb 21, 2007 at 10:44:21AM -0500, Axel Kohlmeyer wrote:
JS> > On Wed, 21 Feb 2007, Avell Diroll wrote:
JS> >
JS> >
JS> >
JS> > JS> > check just slightly differently to allow you to get your surface even though
JS> > JS> > this specific case is definitely marginal at best. Try rendering the
JS> > JS> > isosurface for isovalues 0, 0.0001, and 0.000001 and you'll see how
JS> > JS> > small the volume gradient is at the outer edges of your box.
JS> >
JS> > how about adding a 'cutoff' threshold that will set all gridpoints to
JS> > zero for the purpose of isosurface rendering if the absolute value of
JS> > the grid point is below that threashold?
JS> >
JS> > we're doing something similar in the gradient corrected functionals in
JS> > the density functional theory codes. below a certain density the data
JS> > is too 'noisy' and you can get huge gradients due to that noise. since
JS> > the density is _very_ low, it is error from ignoring that contribution
JS> > (can be checked with much larger basis sets) is very small than the
JS> > one introduced from the spuriously high gradients.
JS> >
JS> > axel.
JS> >
JS> > --
JS> > =======================================================================
JS> > Axel Kohlmeyer akohlmey_at_cmm.chem.upenn.edu http://www.cmm.upenn.edu
JS> > Center for Molecular Modeling -- University of Pennsylvania
JS> > Department of Chemistry, 231 S.34th Street, Philadelphia, PA 19104-6323
JS> > tel: 1-215-898-1582, fax: 1-215-573-6233, office-tel: 1-215-898-5425
JS> > =======================================================================
JS> > If you make something idiot-proof, the universe creates a better idiot.
JS>
JS>

-- 
=======================================================================
Axel Kohlmeyer   akohlmey_at_cmm.chem.upenn.edu   http://www.cmm.upenn.edu
   Center for Molecular Modeling   --   University of Pennsylvania
Department of Chemistry, 231 S.34th Street, Philadelphia, PA 19104-6323
tel: 1-215-898-1582,  fax: 1-215-573-6233,  office-tel: 1-215-898-5425
=======================================================================
If you make something idiot-proof, the universe creates a better idiot.