Re: "NaN" for "E-E0" and "Sc(E0)"
Posted: Tue Apr 29, 2014 12:33 pm
Hi Davide,
thanks a lot for your kind offer. I will provide a suitable collection of inputs this evening, if I fail to find the solution until then.
In the meanwhile, I was looking a bit into the code, in particular into interfaces/p2y/PP_PWscf_comp.F .
Regarding to the two databases I uploaded in the previous post:
The reason, why PP_KB is identically zero for the intel version is that the kb_E variable
is identically zero in single-precision (which makes also pp_kb and pp_kbd zero).
For the gfortran version
kb_E seems to be stored in higher precision and is therefore not identically zero.
I.e. the difference between the two databases can probably be neglected; the question is whether they are both correct or both incorrect.
The reason why pp_kbd(1)=NaNf in both versions is that KpG_norm(1)=0. The calculation of pp_kbd involves KpG_norm(:npw)**(l-1) and with l=0 this yields infinity for pp_kbd(1).
I need to stress, however, that this NaNf does not lead to problems in the yambo calculations (no NaN for the QP energies). So maybe it can be ignored.
Unfortunately I cannot test gfortran on the machine, where p2y produces the random results. I will try to go on a third machine, where I can also test both intel and gfortran.
Is there a reference that could help me to understand the pp_kb and pp_kbd terms?
Best,
Leo
thanks a lot for your kind offer. I will provide a suitable collection of inputs this evening, if I fail to find the solution until then.
In the meanwhile, I was looking a bit into the code, in particular into interfaces/p2y/PP_PWscf_comp.F .
Regarding to the two databases I uploaded in the previous post:
The reason, why PP_KB is identically zero for the intel version is that the kb_E variable
Code: Select all
kb_E = psp%d(ibeta)/basis%struct%a_omega*0.5_SP ! 0.5 = Ry2Ha
! psp%d(ibeta) = 1.8086597E-37
! basis%struct%a_omega = 53446.88
For the gfortran version
Code: Select all
kb_E = psp%d(ibeta)/basis%struct%a_omega*0.5_SP ! 0.5 = Ry2Ha
! psp%d(ibeta) = 1.02059998E-37
! basis%struct%a_omega = 53446.8750
! kb_E = 9.55685553E-43
I.e. the difference between the two databases can probably be neglected; the question is whether they are both correct or both incorrect.
The reason why pp_kbd(1)=NaNf in both versions is that KpG_norm(1)=0. The calculation of pp_kbd involves KpG_norm(:npw)**(l-1) and with l=0 this yields infinity for pp_kbd(1).
I need to stress, however, that this NaNf does not lead to problems in the yambo calculations (no NaN for the QP energies). So maybe it can be ignored.
Unfortunately I cannot test gfortran on the machine, where p2y produces the random results. I will try to go on a third machine, where I can also test both intel and gfortran.
Is there a reference that could help me to understand the pp_kb and pp_kbd terms?
Best,
Leo