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