[gmx-developers] Use of invsqrt with tables
hess at kth.se
Wed Mar 23 14:12:46 CET 2016
I tried to explain that this doesn't work. If rsq is GMX_REAL_MIN you
still get overflows during later operations.
For float you can do:
invr = invsqrt(r2 + 1e-38)
On 2016-03-23 14:06, Mark Abraham wrote:
> This isn't related to using tables per se, but rather with using
> potentials that lack singularities that prevent r=0 in practice. I
> think such kernels should rather use an approach like that we use for
> rsqmod = (rsq == 0) ? smallnumber : rsq;
> rinv = invsqrt(rsqmod);
> rinv = (rsq == 0) ? 0 : rinv;
> and maybe a mask on energies also.
> gmx::sqrt in the SIMD module is also an option that implements the
> same kind of conditionality, but doesn't solve the need to have a
> functional rinv.
> On Wed, Mar 23, 2016 at 1:42 PM David van der Spoel
> <spoel at xray.bmc.uu.se <mailto:spoel at xray.bmc.uu.se>> wrote:
> On 23/03/16 13:31, Berk Hess wrote:
> > Hi,
> > But avoiding the inversion is not possible, since you need to
> > the scaling force by the normalized distance vector.
> The force should be zero at r=0 for symmetry reasons and hence the
> should not crash.
> > Berk
> > On 2016-03-23 13:00, David van der Spoel wrote:
> >> Hi,
> >> In all versions of gromacs the distance between two nonbonded
> atoms is
> >> computed as
> >> rinv00 = gmx_invsqrt(rsq00);
> >> r00 = rsq00*rinv00;
> >> This is fine when we use Lennard Jones and Coulomb, but not
> when using
> >> table potentials which do not necessarily have singularities at
> r = 0.
> >> I would therefore propose to replace the statements by a normal
> >> in all innerloops using tables.
> >> Thoughts?
> David van der Spoel, Ph.D., Professor of Biology
> Dept. of Cell & Molec. Biol., Uppsala University.
> Box 596, 75124 Uppsala, Sweden. Phone: +46184714205.
> spoel at xray.bmc.uu.se <mailto:spoel at xray.bmc.uu.se>
> Gromacs Developers mailing list
> * Please search the archive at
> before posting!
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> * For (un)subscribe requests visit
> or send a mail to gmx-developers-request at gromacs.org
> <mailto:gmx-developers-request at gromacs.org>.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gromacs.org_gmx-developers