Hello everyone,

In 
/upflib/vloc_mod.f90<https://github.com/QEF/q-e/blob/de3035747f5d8f2ec9a67869827341ebb43f5b12/upflib/vloc_mod.f90>
 the Fourier transform of the local pseudopotential V_loc is calculated. My 
question is about how one can derive the G=0 
term<https://github.com/QEF/q-e/blob/de3035747f5d8f2ec9a67869827341ebb43f5b12/upflib/vloc_mod.f90#L160>.

Now I will describe how I understand the G=0 term and how this differs from 
what is implemented.

Since the local potential is long-ranged, which results in problems when 
performing the Fourier transformation, the long-range part is subtracted in 
real-space and added back in reciprocal space.
We then calculate the Fourier transform of [V_loc(r) + erf(r)/r] - erf(r)/r. 
The Fourier transform of the term in []-parentheses is the integral over (r 
V_loc(r)+erf(r)) sin(Gr)/G where we integrate r from 0 to infinity. The G=0 
case for this integral is no problem since the function is continuous in the G 
-> 0 limit, where sin(Gr)/G becomes r. This is implemented in this 
loop<https://github.com/QEF/q-e/blob/de3035747f5d8f2ec9a67869827341ebb43f5b12/upflib/vloc_mod.f90#L133>.
The Fourier transform of the remaining -Ze^2 erf(r)/r is implemented in this 
loop<https://github.com/QEF/q-e/blob/de3035747f5d8f2ec9a67869827341ebb43f5b12/upflib/vloc_mod.f90#L296>,
 which is
4 pi/V 1/G^2 e^(-G^2/4).
There the G -> 0 limit is explicitly excluded and should, in my opinion, be the 
G = 0 term calculated 
here<https://github.com/QEF/q-e/blob/de3035747f5d8f2ec9a67869827341ebb43f5b12/upflib/vloc_mod.f90#L157>
 but is not. The limit G -> 0 of the above term is (using the series expansion 
of the exponential)
lim G -> 0 (4 pi/V 1/G^2 - pi/V) which is divergent

But, the G = 0 term implemented is the integral over r^2 (V_loc(r)+1/r), also 
called the "alpha Z" energy term in the code documentation, where I do not 
understand where the 1/r term comes from and, if added here, where it is 
subtracted again to not change the local potential. This suggests that 
something like [V_loc(r) + 1/r] - 1/r is used for the G=0 term but the 
subtracted -1/r term is never calculated.

I thought that this can be explained by 4 pi/V 1/G^2 from the above limit which 
is the Fourier transform of 1/r, but then the V_loc(r) term is missing. As you 
see, I am confused.

Further, I could not find any literature about calculating the Fourier 
transform of the local pseudopotential. The only reference I found that also 
mentions this "alpha Z" energy term is Phys. Rev. B 69, 
075101<https://journals.aps.org/prb/abstract/10.1103/PhysRevB.69.075101> in 
equation (12). Since they do not provide a motivation of this term besides that 
it is "the non-Coulomb part of the pseudopotential at q=0", I cannot understand 
where this term comes from.

Can anyone help me understand the origin of the G=0 term implemented in 
QuantumEspresso?

Best regards
Erik Schultheis

#CallMeByMyFirstName

German Aerospace Center (DLR)
Institute of Materials Research
Linder Höhe | 51147 Cologne

Erik Schultheis M. Sc.
Metallic and Hybrid Materials
Telephone: +49 (0) 2203 601 1311
erik.schulth...@dlr.de<mailto:erik.schulth...@dlr.de> | 
LinkedIn<https://www.linkedin.com/in/erik-schultheis-930549243/>

_______________________________________________
The Quantum ESPRESSO community stands by the Ukrainian
people and expresses its concerns about the devastating
effects that the Russian military offensive has on their
country and on the free and peaceful scientific, cultural,
and economic cooperation amongst peoples
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
users mailing list users@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to