Dear experts,
While studying the GB code in egb.f (and NAB),
I noticed that:
1) At each force field call ~N**2 logarithms are calculated,
each one two times (once when the (inverse) effective Born radii are
calculated, a second time when the respective contributons to the
gradient are done). Calculating the gradients only once and
storing them in an array is useless (I tried it) (and uses VERY MUCH
memory).
So, has anyone else thought about this (and even come up with a clever
solution) ?
2) Calculating logarithms needs many CPU cycles (at least in x86
machines) so that replacing the logarithms even by a 9th order polynomial
gives a noticeable speed increase. This has a drawback, namely that
it introduces a kink in the contributions to the inverse effective born
radii as a function of interatomic distance (where dij = ri+sj, for those
who are familiar with the code).
Besides, differentiating the series expansion is quite cumbersome so that
I simply replaced the logarithms a second time, so that energy and
gradients do not exactly match ( but conjugate gradient minimization works
down to 10**-4 kcal/(mol*A) grms with the 9th order approximation, so that
the error
seems quite small, in any case sufficient for simulated annealing and the
likes).
Has anyone tried something along these lines ?
Maybe by approximating the "Schaefer - Froemmel" Integrals
by something that does not yield logarithms ?
Best regards,
W. A. Svrcek-Seiler
)))))
(((((
( O O )
-------oOOO--(_)--OOOo-----------------------------------------------------
o Wolfgang Andreas Svrcek-Seiler
o (godzilla)
svrci_at_tbi.univie.ac.at
.oooO Tel.:01-4277-52733
( ) Oooo.
-------\ (----( )--------------------------------------------------------
\_) ) /
(_/
Received on Fri Jun 15 2001 - 08:05:36 PDT