Hello Paolo, Hello everyone,

in this thread I asked in September last year (2024) about the theory behind 
the implementation of the local pseudopotential and how to treat the G=0 limit.
Now, I have an additional question that is also concerned about the 
implementation of the local pseudopotential. This is why I write an e-mail in 
this thread instead of starting a new thread.

I would like to know why for the local pseudopotential in upflib/vloc_mod 
(https://github.com/QEF/q-e/blob/develop/upflib/vloc_mod.f90) the term erf(r)/r 
is added in G-space and subtracted in real space. I understand that this is a 
totally valid implementation and theoretically sound. But, from my 
understanding, one could also add and subtract 1/r (or any function that 
behaves like 1/r for large r, erf(r)/r being one of them) and end up with the 
same numerical values for the local pseudopotential since this would also make 
the function short-ranged in real space.

Is there a specific reason why erf(r)/r, instead of e.g. 1/r, was chosen in the 
Quantum ESPRESSO implementation to calculate the local pseudopotential?

Best regards
Erik

-----Ursprüngliche Nachricht-----
Von: Paolo Giannozzi <[email protected]> 
Gesendet: Montag, 9. September 2024 18:48
An: Schultheis, Erik <[email protected]>
Cc: [email protected]
Betreff: Re: AW: AW: [QE-users] [SPAM] Fourier Transform of Local 
Pseudopotential and G=0 limit

On 09/09/2024 14:49, [email protected] wrote:

> But, similarly, why would one calculate the G=0 limit of V(r) + Z erf(r)/r?

One would not: it is useless. The correct G=0 limit is computed instead

> This comment in the source code

... is just a reminder of what I just wrote, in case one is puzzled by the 
difference between the G=0 term and the finite-G (or finite-q, whatever you 
prefer) term

> !! q = 0 case, continuous for q -> 0
> !! NOT THE SAME AS THE G=0 TERM, computed below

Paolo


> Also explicitly differentiates between q and G but both are momentum vectors 
> and q=0 should implicate G=0.
> 
> Best regards
> Erik
> 
> -----Ursprüngliche Nachricht-----
> Von: Paolo Giannozzi <[email protected]>
> Gesendet: Freitag, 23. August 2024 12:36
> An: Schultheis, Erik <[email protected]>
> Cc: [email protected]
> Betreff: Re: AW: [QE-users] [SPAM] Fourier Transform of Local 
> Pseudopotential and G=0 limit
> 
> Yes, exactly.
> 
> Paolo
> 
> 
> On 23/08/2024 11:47, [email protected] wrote:
>> Hi Paolo,
>>
>> Thanks for your quick answer.
>>
>> Point 2 is clear to me since it only applies to G!=0.
>> After thinking what you wrote in Point 1 and finding further information in 
>> Warren E. Picketts " Pseudopotential Methods in Condensed Matter 
>> Applications" 
>> (https://www.sciencedirect.com/science/article/pii/0167797789900026), 
>> especially around equation (5.20), I now have an idea what might happen here.
>>
>> You are saying that the local potential V_loc plus the Hartree potential 
>> yield the "alpha Z" term for G=0. In the work of Pickett he writes that the 
>> formally divergent terms in the ion-ion interaction, the coulomb interaction 
>> of the electrons, and the local pseudopotential combine to give the finite 
>> Ewald energy (which is clear to me) and the "alpha Z" term. From this, I 
>> guess that the electronic background, i.e. the coulomb interaction of the 
>> electrons, cancels the -Z/r behavior of the local pseudopotential V_loc. But 
>> since V_loc is not exactly -Z/r only its -Z/r part is canceled and the 
>> remaining (non-Coulomb) part is still to be calculated in the G=0 limit. 
>> Let's write V_loc(r) = V_loc(r) - (-Z/r) + (-Z/r) = (V_loc(r) + Z/r) - Z/r. 
>> Then the first term is the non-Coulomb part of V_loc and the second term 
>> (-Z/r) is the Coulomb part of V_loc. The second term is cancelled by the 
>> electronic background (Hartree potential) while the first term is not. So 
>> the G=0 limit of (V_loc(r) + Z/r), i.e. the "alpha Z" term, has to be 
>> calculated to get the correct G=0 limit of V_loc.
>>
>> Is this the correct reasoning behind the "alpha Z" term?
>>
>> Best regards
>> Erik
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Paolo Giannozzi <[email protected]>
>> Gesendet: Donnerstag, 22. August 2024 18:35
>> An: Schultheis, Erik <[email protected]>
>> Cc: Quantum ESPRESSO users Forum <[email protected]>
>> Betreff: Re: [QE-users] [SPAM] Fourier Transform of Local 
>> Pseudopotential and G=0 limit
>>
>> You are mixing up two different aspects:
>> 1. V(G=0) for the local+Hartree potential is not divergent and yields the 
>> "alpha Z" term. Of course, one sets V_H(G=0)=0.
>> 2. The local potential V(r) behaves as -Ze^2/r for large r, making direct 
>> computation of V(G) problematic. One removes the long-range behavior by 
>> adding to V(r) a function f(r)=Ze^2 erf(r)/r in real space; performs the 
>> Fourier transform; subtracts out f(G)=4\pi Z e^2 exp(-G^2)/\Omega G^2 or 
>> something like that from V(G). All this applies to G!=0.
>>
>> Paolo
>>
>> On 20/08/2024 11:54, Erik Schultheis via users wrote:
>>> 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/de3035747f5d8f2ec9a67869827341ebb43
>>> f 5b12/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/de3035747f5d8f2ec9a67869827341ebb43
>>> f 5b12/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
>>>
>>> [email protected] <mailto:[email protected]> | 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 [email protected] 
>>> https://lists.quantum-espresso.org/mailman/listinfo/users
>>
> 
> --
> Paolo Giannozzi, Dip. Scienze Matematiche Informatiche e Fisiche, 
> Univ. Udine, via delle Scienze 206, 33100 Udine Italy, +39-0432-558216 
> X SCUOLA ENERGIE RINNOVABILI 16-21/9/2024 - PRE-ISCRIZIONE 
> https://agenda.infn.it/event/39573/

--
Paolo Giannozzi, Dip. Scienze Matematiche Informatiche e Fisiche, Univ. Udine, 
via delle Scienze 206, 33100 Udine Italy, +39-0432-558216 X SCUOLA ENERGIE 
RINNOVABILI 16-21/9/2024
_______________________________________________________________________________
The Quantum ESPRESSO Foundation stands in solidarity with all civilians 
worldwide who are victims of terrorism, military aggression, and indiscriminate 
warfare.
--------------------------------------------------------------------------------
Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to