[CP2K-user] [CP2K:13870] A question about a formula in CP2K source code

Junting yjthya8... at gmail.com
Thu Sep 17 17:12:49 UTC 2020


Dear Matthias,

Sorry to bother you again. I have tried both one-electron integral and 
two-electron integral ways to derive <a|erf(alpha_c*r)/r|b>, and they gave 
me the same results, which is encouraging. However, there is one remaining 
question about the normalization factor.

The eq.30 of this work 
<https://pubs.rsc.org/en/content/articlelanding/2000/CP/b001167n#!divAbstract> shows 
that there is a nomalization factor N = (alpha_c^2/pi)^(3/2) when rewriting 
<a|erf(alpha_c*r)/r|b> to a three-center two-electron repulsion integral 
<ab||c>. But in the work of McMurchie and Davidson 
<https://www.sciencedirect.com/science/article/pii/002199917890092X>, the 
expression for lambda in eq. (3.31) seems to be for unnormalized case. If 
the lambda is multiplied by N = (alpha_c^2/pi)^(3/2), the result will be 
perfectly in agreement with my result of ferf (i.e. 
2*pi*zetp*f0*sqrt(zetc*zetw)).

Since the ferf in aobasis/ai_verfc.F matches the the form of lambda, is it 
supposed to be mutiplied by N? Or has it already been multiplied somewhere 
else in the code?

Best,

Junting


在2020年9月14日星期一 UTC+8 下午10:29:52<Matthias Krack> 写道:

> Dear Junting
>
>  
>
> The one-electron integral <a_c|-Z_c*erf(alpha*|r - R_c|)/(|r - R_c|)|b> 
> can be rewritten as a three-center two-electron repulsion integral <ab||c> 
> (see eq. 30 of this work <https://doi.org/10.1039/B001167N>).
>
>  
>
> HTH
>
>  
>
> Matthias
>
>  
>
> *From:* c... at googlegroups.com <c... at googlegroups.com> *On Behalf Of *
> Junting
> *Sent:* Montag, 14. September 2020 16:14
> *To:* cp2k <c... at googlegroups.com>
> *Subject:* Re: [CP2K:13870] A question about a formula in CP2K source code
>
>  
>
> Dear Matthias,
>
>  
>
> Thank you so much for providing me with this insightful work!
>
>  
>
> However, Eq (3.31) is in Two-electron Integral part, and seems not to 
> involve error function. The <a|erf(r)/r|b> term is one-electron integral, 
> describing the interaction between electron and core, instead of eletron 
> repulsion. I still do not understand how these two are related.
>
>  
>
> And from intuition, if zetc goes to infinity, ferf should become the same 
> as fnuc. But according to source code, they seem quite different, which 
> also makes me confused.
>
>  
>
> Best,
>
>  
>
> Junting
>
> 在2020年9月14日星期一 UTC+8 下午4:15:43<Matthias Krack> 写道:
>
> Dear Junting
>
>  
>
> Did you compare your results with the work of McMurchie and Davidson 
> <https://www.sciencedirect.com/science/article/pii/002199917890092X> from 
> 1978? The expression for lambda in eq. (3.31) seems to match the 
> implemented ferf for the basic integral.
>
>  
>
> Best 
>
>  
>
> Matthias
>
>  
>
> *From:* c... at googlegroups.com <c... at googlegroups.com> *On Behalf Of *
> Junting
> *Sent:* Montag, 14. September 2020 05:13
> *To:* cp2k <c... at googlegroups.com>
> *Subject:* [CP2K:13866] A question about a formula in CP2K source code
>
>  
>
> Dear CP2K users and developers,
>
>  
>
> I am reading the source code of CP2K, and I have got lots of insights 
> about formulas and algorithms from it. However, I have encountered a 
> question when reading the aobasis/ai_verfc.F file in src directory.
>
>  
>
> The ai_verfc module is used for calculating the matrix <a|erfc(r)/r|b> in 
> all-electron calculation. This term is divided into a nuclear term 
> <a|1/r|b> and an error function term <a|erf(r)/r|b>. In the code prefactors 
> corresponding these two terms are calculated by 
>
>  
>
> fnuc = 2.0_dp*pi*zetp*f0
>
> ferf = 2.0_dp*SQRT(pi**5*zetw)*zetp*zetq*f0
>
>  
>
> and the basic s-orbital integrals are calculated by prefactors and 
> incomplete gamma function
>
>  
>
> t = rcp2/zetp
>
> CALL fgamma(nmax-1, t, f)
>
> vnuc(1, 1, n) = fnuc*f(n-1)
>
>  
>
> t = -f4*rcp2/zetp
>
> CALL fgamma(nmax-1, t, f)
>
> verf(1, 1, n) = ferf*f(n-1)
>
>  
>
> Then the integrals over p or higher orbitals are calculated by a recursion 
> procedure as is discussed in the literature: S. Obara and A. Saika, J. 
> Chem. Phys. 84, 3963 (1986).
>
>  
>
> My question is that according to my derivations, my result for fnuc is 
> consistent with the code, but my ferf is 
>
> ferf = 2.0_dp*pi*zetp*f0*(-f4)**(n-0.5)
>
> which is not consistent with the code, and is dependent on the parameter n 
> in the incomplete gamma function f(n).
>
>  
>
> And it is reasonable that on the limit of zetc going to infinity, the 
> error function term <a|erf(r)/r|b> should be the same as the nuclear term 
> <a|1/r|b>. But according to source code, it seems not to be the case.
>
>  
>
> Therefore I want to ask, is this a potential mistake in the source code, 
> or did I miss anything else in the derivations? I really appreciate it if 
> someone could help me solve this question.
>
>  
>
> Best wishes,
>
> Junting
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "cp2k" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to cp... at googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/cp2k/89673088-6dba-4f9f-9cf8-464569253964o%40googlegroups.com 
> <https://groups.google.com/d/msgid/cp2k/89673088-6dba-4f9f-9cf8-464569253964o%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "cp2k" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to cp... at googlegroups.com.
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/cp2k/e6dafc7a-0a1b-49ec-bd14-86583294e012n%40googlegroups.com 
> <https://groups.google.com/d/msgid/cp2k/e6dafc7a-0a1b-49ec-bd14-86583294e012n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cp2k.org/archives/cp2k-user/attachments/20200917/855b030c/attachment.htm>


More information about the CP2K-user mailing list