与能量方程不同,振幅方程需要计算激发态矢量与有效哈密顿和真空态矢量之间的内积,所以振幅方程的推导要比能量方程复杂很多,但是具体推导过程类似,依旧是先把振幅方程自然截断再对剩下的非零项逐项进行收缩。。本文将以 CCD (即激发算符只保留双激发部分)为例,简要介绍 CC 振幅方程的推导过程。
在推导开始之前,这里先将哈密顿算符的各分子轨道指标换成占据/非占据轨道指标。这样做能够清晰地看到各项的 q-产生湮灭算符个数,以便后续推导。
fpq{ap†aq}=fij{ai†aj}+fab{aa†ab}=fia{ai†aa}+fai{aa†ai} 41⟨pq∣∣rs⟩{ap†aq†asar}=41⟨ab∣∣cd⟩{aa†ab†adac}+41⟨ij∣∣kl⟩{ai†aj†akal}+⟨ia∣∣bj⟩{ai†aa†ajab}+21⟨ai∣∣bc⟩{aa†ai†acab}+21⟨ij∣∣ka⟩{ai†aj†akaa}+21⟨ab∣∣ci⟩{aa†ab†aiac}+21⟨ia∣∣jk⟩{ai†aa†akaj}+41⟨ij∣∣ab⟩{ai†aj†abaa}+41⟨ab∣∣ij⟩{aa†ab†ajai}其中两体算符部分使用了双电子积分的对称性,合并了一些项。可以看到两体算符前三项均包含两个产生算符两个湮灭算符、第四项和第五项三产生一湮灭、第六项和第七项一产生三湮灭、第八项四湮灭、最后一项四产生。
1. CCD 振幅方程的推导
在本系列第一篇博客我们已经推导过 CC 振幅方程。令激发算符 T^=T^2 ,可以得到 CCD 双激发振幅所满足的方程,即
Ωabij=⟨Ψijab∣e−T^H^eT^∣Ψ0⟩=⟨Ψ0∣{ai†aj†abaa}e−T^2H^eT^2∣Ψ0⟩=0由于激发算符全为产生算符,而 {ai†aj†abaa} 为湮灭算符,为了保证最后的收缩表达式中能含有全收缩项,产生算符和湮灭算符的数量必需相等。由于哈密顿算符中的项最多包含四个湮灭算符,所以产生算符也最多只有八个。故上式最多只能保留两个双激发算符,因此上式的 BCH 展开式二阶以上的项全部恒为零,即
Ωabij=⟨Ψijab∣e−T^2H^eT^2∣Ψ0⟩=⟨Ψ0∣{ai†aj†abaa}(H^+H^T^2+2!1H^T^2T^2)∣Ψ0⟩=0与能量方程的推导类似,接下来我们来展开计算上面这三项,以得到双激发振幅所满足的代数方程。下面推导过程若没有特殊说明,均使用爱因斯坦求和约定。
(1)⟨Ψijab∣H^∣Ψ0⟩
该项中含有四个湮灭算符,哈密顿算符中只有含有四个产生算符的项才能够全收缩,即
⟨Ψijab∣H^∣Ψ0⟩=⟨Ψ0∣{ai†aj†abaa}41⟨cd∣∣kl⟩{ac†ad†alak}∣Ψ0⟩=41(1−P^ab)(1−P^ij)⟨ab∣∣ij⟩=⟨ab∣∣ij⟩其中 P^ij 为交换算符,其定义为 P^ijAabij=Aabji 。
(2)⟨Ψijab∣H^T^2∣Ψ0⟩
该项中含有四个产生算符四个湮灭算符,故哈密顿算符中只有产生算符和湮灭算符数量相等的项才能够全收缩,即
⟨Ψijab∣H^T^2∣Ψ0⟩=⟨Ψijab∣(fmn{am†an}+fef{ae†af}+41⟨ef∣∣gh⟩{ae†af†ahag}+41⟨mn∣∣op⟩{am†an†apao}+⟨me∣∣fn⟩{am†ae†anaf})T^2∣Ψ0⟩下面我们来逐项计算上式
⟨Ψijab∣fmn{am†an}T^2∣Ψ0⟩=41⟨Ψ0∣{ai†aj†abaa}fmn{am†an}tklcd{ac†ad†alak}∣Ψ0⟩=41fmntklcd⟨Ψ0∣{ai†aj†abaa}{am†an}{ac†ad†alak}∣Ψ0⟩=−fiitijab−fjjtijab⟨Ψijab∣fef{ae†af}T^2∣Ψ0⟩=41⟨Ψ0∣{ai†aj†abaa}fef{ae†af}tklcd{ac†ad†alak}∣Ψ0⟩=41feftklcd⟨Ψ0∣{ai†aj†abaa}{ae†af}{ac†ad†alak}∣Ψ0⟩=faatijab+fbbtijab⟨Ψijab∣41⟨ef∣∣gh⟩{ae†af†ahag}T^2∣Ψ0⟩=41⟨Ψ0∣{ai†aj†abaa}41⟨ef∣∣gh⟩{ae†af†ahag}tklcd{ac†ad†alak}∣Ψ0⟩=161⟨ef∣∣gh⟩tklcd⟨Ψ0∣{ai†aj†abaa}{ae†af†ahag}{ac†ad†alak}∣Ψ0⟩=161(1−P^ij)(1−P^ab)(1−P^cd)⟨ab∣∣cd⟩tijcd=21⟨ab∣∣cd⟩tijcd⟨Ψijab∣41⟨mn∣∣op⟩{am†an†apao}T^2∣Ψ0⟩=41⟨Ψ0∣{ai†aj†abaa}41⟨mn∣∣op⟩{am†an†apao}tklcd{ac†ad†alak}∣Ψ0⟩=161⟨mn∣∣op⟩tklcd⟨Ψ0∣{ai†aj†abaa}{am†an†apao}{ac†ad†alak}∣Ψ0⟩=161(1−P^ij)(1−P^ab)(1−P^kl)⟨ij∣∣kl⟩tklab=21⟨ij∣∣kl⟩tklab⟨Ψijab∣⟨me∣∣fn⟩{am†ae†anaf}T^2∣Ψ0⟩=41⟨Ψ0∣{ai†aj†abaa}⟨me∣∣fn⟩{am†ae†anaf}tklcd{ac†ad†alak}∣Ψ0⟩=41⟨me∣∣fn⟩tklcd⟨Ψ0∣{ai†aj†abaa}{am†ae†anaf}{ac†ad†alak}∣Ψ0⟩=41(1−P^ij)(1−P^ab)⟨kb∣∣cj⟩[(1−P^ik)(1−P^ac)tikac]=(1−P^ij)(1−P^ab)⟨kb∣∣cj⟩tikac综上所述
⟨Ψijab∣H^T^2∣Ψ0⟩=(faa+fbb−fii−fjj)tijab+21⟨ab∣∣cd⟩tijcd+21⟨ij∣∣kl⟩tklab+(1−P^ij)(1−P^ab)⟨kb∣∣cj⟩tikac(3)2!1⟨Ψijab∣H^T^2T^2∣Ψ0⟩
该项包含四个湮灭算符和八个产生算符,所以只有哈密顿算符中包含四个湮灭算符的那一项才能够全收缩,即
2!1⟨Ψijab∣H^T^2T^2∣Ψ0⟩=2!1⟨Ψijab∣41⟨op∣∣gh⟩{ao†ap†ahag}T^2T^2∣Ψ0⟩=1281⟨Ψ0∣{ai†aj†abaa}⟨op∣∣gh⟩{ao†ap†ahag}tklcd{ac†ad†alad}tmnef{ae†af†anan}∣Ψ0⟩=1281⟨op∣∣gh⟩tklcdtmnef⟨Ψ0∣{ai†aj†abaa}{ao†ap†ahag}{ac†ad†alak}{ae†af†anam}∣Ψ0⟩=1281⟨kl∣∣cd⟩((1−P^ij)(1−P^ab)(1−P^cd)(1−P^kl)tijcdtklab+(1−P^ij)(1−P^ab)(1−P^cd)(1−P^kl)(1−P^ac)(1−P^bd)(1−P^ik)(1−P^jl)tikactjlbd−2(1−P^ij)(1−P^ab)(1−P^cd)(1−P^kl)(1−P^ik)(1−P^jl)tikabtjlcd−2(1−P^ij)(1−P^ab)(1−P^cd)(1−P^kl)(1−P^ac)(1−P^bd)tijactklbd)=41⟨kl∣∣cd⟩tijcdtklab+21(1−P^ij)(1−P^ab)⟨kl∣∣cd⟩tikactjlbd−21(1−P^ij)⟨kl∣∣cd⟩tikabtjlcd−21(1−P^ab)⟨kl∣∣cd⟩tijactklbd2. 结论
综上所述,CCD 双激发振幅所满足的代数方程为
Ωabij=⟨Ψijab∣e−T^2H^eT^2∣Ψ0⟩=⟨Ψ0∣{ai†aj†abaa}(H^+H^T^2+2!1H^T^2T^2)∣Ψ0⟩=⟨ab∣∣ij⟩+(faa+fbb−fii−fjj)tijab+21⟨ab∣∣cd⟩tijcd+21⟨ij∣∣kl⟩tklab+(1−P^ij)(1−P^ab)⟨kb∣∣cj⟩tikac+41⟨kl∣∣cd⟩tijcdtklab+21(1−P^ij)(1−P^ab)⟨kl∣∣cd⟩tikactjlbd−21(1−P^ij)⟨kl∣∣cd⟩tikabtjlcd−21(1−P^ab)⟨kl∣∣cd⟩tijactklbd=0通过求解上述方程组,即可得到双激发振幅 tijab。在实际计算中,迭代方程往往比代数方程更容易处理。将上式写成迭代方程的形式,令 εp=fpp 为分子轨道能量,可得
tijab=εi+εj−εa−εb1[⟨ab∣∣ij⟩+21⟨ab∣∣cd⟩tijcd+21⟨ij∣∣kl⟩tklab+(1−P^ij)(1−P^ab)⟨kb∣∣cj⟩tikac+41⟨kl∣∣cd⟩tijcdtklab+21(1−P^ij)(1−P^ab)⟨kl∣∣cd⟩tikactjlbd−21(1−P^ij)⟨kl∣∣cd⟩tikabtjlcd−21(1−P^ab)⟨kl∣∣cd⟩tijactklbd]这就是一般量化代码中最常用的 CCD 方程的形式,可直接用来编写程序。若令方程右边的双激发振幅等于零,可得
tijab=εi+εj−εa−εb⟨ab∣∣ij⟩这就是 MP2 振幅,将其代入 CC 能量方程即可得到 MP2 能量。因此我们常使用 MP2 振幅作为双激发振幅的初猜来开始振幅方程的迭代。