[QE-users] [SPAM] Fourier Transform of Local Pseudopotential and G=0 limit

Erik.Schultheis at dlr.de Erik.Schultheis at dlr.de
Tue Aug 20 11:54:08 CEST 2024


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.schultheis at dlr.de<mailto:erik.schultheis at dlr.de> | LinkedIn<https://www.linkedin.com/in/erik-schultheis-930549243/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20240820/9eea9abe/attachment.html>


More information about the users mailing list