Previous Thread
Next Thread
Print Thread
#578 11/26/03 02:36 AM
Joined: Nov 2003
Posts: 24
themis Offline OP
Forum Member
OP Offline
Forum Member
Joined: Nov 2003
Posts: 24
c31a1 (and others before it) compiled on DEC alpha
give me "floating point exception" upon ABNR minimization.
Upon debugging, the problem is in line

FDIFF1 = PFUNC(LNEW) - PFUNC(LBEST)

where dbx says PFUNC is "denormalized".
PFUNC is a NEB variable.

(Rumor has it it's been programmed by Bernie)

Themis

Joined: Oct 2003
Posts: 13
Forum Member
Offline
Forum Member
Joined: Oct 2003
Posts: 13
Do you enounter this problem when minimizing with or without neb?

jwchu

Joined: Sep 2003
Posts: 395
Forum Member
Offline
Forum Member
Joined: Sep 2003
Posts: 395
Your post says it fails in both c31a1 and in earlier versions, but the NEB code is only available in c31a1. Can you tell us how it fails in earlier versions (certainly not at an NEB variable...)?

I'm not sure who's at fault here. Three people have worked on this code in the most recent round, but your problem may be much older and/or compiler specific.

It could also be that your potential surface has discontinuities (i.e. does not pass the TEST FIRST command) which confuses a minimizer like ABNR since it approximates a Hessian based on finite differences. If this is the case, then you need to use annealing (e.g. Langevin Dynamics) or SD. Try the TEST FIRSt command. If I recall correctly, your methods used to fail this test....

Joined: Sep 2003
Posts: 175
Forum Member
Offline
Forum Member
Joined: Sep 2003
Posts: 175
Sometimes this is a problem of pref.dat keywords. I remember having similar problem in July. Do you use standard set of keywords or you tweaked the pref.dat yourself?

Joined: Nov 2003
Posts: 24
themis Offline OP
Forum Member
OP Offline
Forum Member
Joined: Nov 2003
Posts: 24
Hey, I'm starting to like this forum! Three replies already!

>Do you enounter this problem when minimizing with or without neb

Without.

>Do you use standard set of keywords or you tweaked the pref.dat

Yeap, standard pref.dat

>both c31a1 and in earlier versions

If I remember correctly, the problems started with c30a2x. In that
version there were more problems (crash upon energy, e.g.), here
it's only ABNR minimization.

>It could also be that your potential surface has discontinuities

I'm using plain param19 energy here, no solvation.

Themis

Joined: Sep 2003
Posts: 395
Forum Member
Offline
Forum Member
Joined: Sep 2003
Posts: 395
We need more information...
Test cases have been rechecked. No problems seen here.

Is this problem specific to the alpha?
Have you run your script on another platform?

Joined: Nov 2003
Posts: 24
themis Offline OP
Forum Member
OP Offline
Forum Member
Joined: Nov 2003
Posts: 24
Yes, as the title says, only on DEC alpha.

I just found out that the problem does NOT appear if I use
param22. (weird)

Here's my script:
open read card unit 3 name toph19.inp
read rtf unit 3 card
close unit 3

open read card unit 3 name param19.inp
read para unit 3 card
close unit 3

open read unit 3 card name 1ubq.pdb.crd
read seque coor unit 3
close unit 3

generate main setup

open read unit 2 card name 1ubq.crd
read coor card unit 2
close unit 2

mini abnr nstep 300

And here's the result:
MINI> 0 -2030.92134 0.00000 19.40045 0.00000
MINI INTERN> 127.52376 170.81789 0.00000 115.19641 25.46396
MINI EXTERN> -157.46511 -2312.45825 0.00000 0.00000 0.00000
---------- --------- --------- --------- --------- ---------
forrtl: error (65): floating invalid
0: _call_remove_gp_range [0x3ff81a6c1a4]
1: _call_remove_gp_range [0x3ff81a73f08]
2: _call_remove_gp_range [0x3ff800d8c60]
3: abner2_ [abner.f: 2401, 0x1203bfa2c]
4: abner_ [abner.f: 939, 0x1203b85fc]
5: minmiz_ [minmiz.f: 730, 0x1203a41ac]
6: charmm_ [charmm_main.f: 1759, 0x120074a7c]
7: main [for_main.c: 203, 0x12007fc2c]
8: __start [0x1200725c8]
IOT trap

Joined: Nov 2003
Posts: 200
Forum Member
Offline
Forum Member
Joined: Nov 2003
Posts: 200
The problem is with the NEB code, the fix for now is to move the line:
FDIFF1 = PFUNC(LNEW) - PFUNC(LBEST)
into the IF(QPNEB) THEN block:

C Write out minimization "trajectory" frame
CALL MINTRJ(NCALLS,NSTEP,SDSTP)
C
FDIFF = FUNC(LNEW) - FUNC(LBEST)
GNRM(LNEW) = LENVEC(GRAD(1,LNEW),NP) /
$ SIGN(MAX(ABS(SQRTNP),RSMALL),SQRTNP)
##IF REPLICA
IF(QPNEB) THEN
FDIFF1 = PFUNC(LNEW) - PFUNC(LBEST)
GNRM(LNEW) = LENVEC(PGRAD,NP) /
$ SIGN(MAX(ABS(SQRTNP),RSMALL),SQRTNP)
PGNRM(LNEW) = LENVEC(PSGRAD(1,LNEW),NP) /




That works for the alpha for me now.
Will be submitting the change with our submission Dec31
Mike


Physical mail: Dr. Michael F. Crowley National Renewable Energy Laboratory, MS 3323 1617 Cole Blvd. Golden, CO 80401

Moderated by  BRBrooks, bucknerj, lennart, rmv 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5
(Release build 20201027)
Responsive Width:

PHP: 7.3.31-1~deb10u5 Page Time: 0.016s Queries: 30 (0.011s) Memory: 0.7630 MB (Peak: 0.8323 MB) Data Comp: Off Server Time: 2023-11-28 18:57:10 UTC
Valid HTML 5 and Valid CSS