[Wien] NaN output in lapw3 17.1
Georg Eickerling
georg.eickerling at physik.uni-augsburg.de
Fri Jun 1 15:40:08 CEST 2018
Dear WIEN users,
I found a possible issue with lapw3 in WIEN 17.1.
The bottom line is, that in some cases lapw3 from 17.1 instead of values for
Fs produces this in the output:
X - RAY STRUCTURFACTORS
K-VECTOR SIN O/L (A-1) F
0 0 0 0.0000000 NaN
0 -1 0 0.0490923 NaN
-1 0 0 0.0951928 NaN
0 -2 0 0.0981846 NaN
This happens only in some special cases as it seems:
1. lapw3 from WIEN 14.2 on the same set of files:
=================================================
X - RAY STRUCTURFACTORS
K-VECTOR SIN O/L (A-1) F
0 0 0 0.0000000 171.9999994533
0 -1 0 0.0490923 0.0000000000
-1 0 0 0.0951928 0.0000000000
0 -2 0 0.0981846 -15.8811296486
=> the clmsum seems to be "intact", there are indeed 172 electrons in my cell.
2. lapw3 from 17.1 for a 17.1 calculation on diamond:
=========================================================
X - RAY STRUCTURFACTORS
K-VECTOR SIN O/L (A-1) F
0 0 0 0.0000000 11.9999999251
-1 -1 -1 0.2427814 -4.6602717246
0 0 -2 0.2803398 -0.0000000000
0 -2 -2 0.3964603 -3.9467736723
-1 -1 -3 0.4648909 -2.3980119816
-2 -2 -2 0.4855627 0.2291402630
=> my lapw3 binary from 17.1 is working in this case
3. run lapw3 from 17.1 on 13.1 calculation of the same compound:
================================================================
X - RAY STRUCTURFACTORS
K-VECTOR SIN O/L (A-1) F
0 0 0 0.0000000 171.9999994164
0 -1 0 0.0494237 -0.0000000000
-1 0 0 0.0960836 -0.0000000000
0 -2 0 0.0988474 -15.6330077799
=> cross-check on my lapw3 binary also works
What I can also tell is, that the atomic contributions in output3 from my 17_1
calculation also look OK:
0 0 0 0.0000 19.4565 19.4565 => that's a scandium atom
or
0 0 0 0.0000 4.1588 4.1588 => that's a carbon atom
and the values compare quite well with the ones from the "old" lapw3, but
starting from here:
STRUCTURFACTORS FOR OUT:
Number of hkl trimmed down to 21889
0 0 0 NaN 0.0000000000000000
0 -1 0 NaN 0.0490922829131512
-1 0 0 NaN 0.0951927607312776
0 -2 0 NaN 0.0981845658263024
things break in the output.
My debugging results:
======================
I found that the problem is triggered when the trimming of the INDMAX values
happens in fourir.frc starting from line 170.
In my particular case, INDMAX = 36353
this gets trimmed down to nuse = 21889
However, the last value for rhouse(NUSE) I saw created in line 195
rhouse(NUSE)=RHOK(IIZ)/INST(IIZ)*TAUK(KP)
was
NUSE rhouse(NUSE)
21888 -1.357441708557500E-010
so that later
DO 35 KP=1,NUSE
F=F+RHOUSE(KP)*U
35 ENDDO
yields NaN, because RHOUSE(21889) is missing.
On the other hand, in line 175 I see
allocate(rhouse(INDMAX))
so I assume the array is initialized large enough and lapw3 can read
"something" from it for the N+1 element?
I.e., for my diamond case, the according numbers are
indmax 2229
nuse 1105
the last rhouse created in 195:
NUSE rhouse(NUSE)
1104 7.021053333129166E-010
so that in this case (by conincidence?):
rhouse(nuse) = 0.000000000000000E+000
and the case works.
The fix for me up to now was a
DO 35 KP=1,NUSE-1
to make it work for my original case with 17.1.
Any thoughts on this from the experts?
best regards,
Georg Eickerling
More information about the Wien
mailing list