@@ -87,7 +87,7 @@ def tbar_TD_oovv_adc3(exci, g1a_adc0):
8787 ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
8888 ret += 2.0 * (
8989 - 1.0 * einsum ("ijcd,cdab->ijab" , tbarD , hf .vvvv )
90- - 1.0 * einsum ("klab,klij ->ijab" , tbarD , hf .oooo )
90+ - 1.0 * einsum ("klab,ijkl ->ijab" , tbarD , hf .oooo )
9191 )
9292 return ret
9393
@@ -132,7 +132,9 @@ def t2bar_oovv_adc3(exci, g1a_adc0, g2a_adc1):
132132
133133 ttilde1 = (
134134 - 1.0 * einsum ("klab,ijkm,lm->ijab" , t2 , hf .oooo , g1a_adc0 .oo )
135- - 1.0 * 2.0 * einsum ("ka,ijkl,lb->ijab" , u .ph , hf .oooo , rx ).antisymmetrise (2 , 3 )
135+ - 1.0 * 2.0 * einsum (
136+ "ka,ijkl,lb->ijab" , u .ph , hf .oooo , rx
137+ ).antisymmetrise (2 , 3 )
136138 + 1.0 * 2.0 * (
137139 + 0.5 * einsum ("ik,jklm,lmab->ijab" , g1a_adc0 .oo , hf .oooo , t2 )
138140 - 2.0 * einsum ("jkab,lm,ilkm->ijab" , t2 , g1a_adc0 .oo , hf .oooo )
@@ -146,60 +148,74 @@ def t2bar_oovv_adc3(exci, g1a_adc0, g2a_adc1):
146148
147149 ttilde2 = 4.0 * (
148150 - 1.0 * einsum ("ijkc,lc,klab->ijab" , hf .ooov , u .ph , u .pphh )
149- + 1.0 * 2.0 * einsum ("ikab,jlkc,lc->ijab" , u .pphh , hf .ooov , u .ph ).antisymmetrise (0 , 1 )
150- - 1.0 * 4.0 * einsum ("jklb,kc,ilac->ijab" , hf .ooov , u .ph , u .pphh ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
151+ + 1.0 * 2.0 * einsum (
152+ "ikab,jlkc,lc->ijab" , u .pphh , hf .ooov , u .ph
153+ ).antisymmetrise (0 , 1 )
154+ - 1.0 * 4.0 * einsum (
155+ "jklb,kc,ilac->ijab" , hf .ooov , u .ph , u .pphh
156+ ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
151157 )
152158 ttilde2 .evaluate ()
153159
154160 ttilde3 = (
155- + 1.0 * 2.0 * einsum ("ijbc,ac->ijab" , hf .oovv , g1a_adc0 .vv ).antisymmetrise (2 , 3 )
156- - 1.0 * 2.0 * einsum ("jkab,ik->ijab" , hf .oovv , g1a_adc0 .oo ).antisymmetrise (0 , 1 )
157- + 1.0 * 4.0 * einsum ("ia,jkbc,kc->ijab" , u .ph , hf .oovv , u .ph ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
161+ + 1.0 * 2.0 * einsum (
162+ "ijbc,ac->ijab" , hf .oovv , g1a_adc0 .vv
163+ ).antisymmetrise (2 , 3 )
164+ - 1.0 * 2.0 * einsum (
165+ "jkab,ik->ijab" , hf .oovv , g1a_adc0 .oo
166+ ).antisymmetrise (0 , 1 )
167+ + 1.0 * 4.0 * einsum (
168+ "ia,jkbc,kc->ijab" , u .ph , hf .oovv , u .ph
169+ ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
158170 )
159171 ttilde3 .evaluate ()
160172
161173 # TODO: intermediate x_ka <ic||kd>?
162174 # TODO: intermediate x_lc t_jlbd?
163175 ttilde4 = (
164176 + 1.0 * 2.0 * (
165- - 2.0 * einsum ("jkab,ickd,cd->ijab" , t2 , hf .ovov , g1a_adc0 .vv ) #1 ok
166- # - 2.0 * einsum("klab,ickd,jcld->ijab", t2, g2a_adc1.ovov, hf.ovov)
167- - 2.0 * einsum ("ic,kd,jcld,klab->ijab" , u .ph , u .ph , hf .ovov , t2 ) #18 anners
168- + 1.0 * einsum ("ic,jkab,ld,lckd->ijab" , u .ph , t2 , u .ph , hf .ovov ) #13 ok
169- + 1.0 * einsum ("jkab,kc,ld,lcid->ijab" , t2 , u .ph , u .ph , hf .ovov ) #14 ok
177+ - 2.0 * einsum ("jkab,ickd,cd->ijab" , t2 , hf .ovov , g1a_adc0 .vv )
178+ - 2.0 * einsum ("ic,kd,jcld,klab->ijab" , u .ph , u .ph , hf .ovov , t2 )
179+ + 1.0 * einsum ("ic,jkab,ld,lckd->ijab" , u .ph , t2 , u .ph , hf .ovov )
180+ + 1.0 * einsum ("jkab,kc,ld,lcid->ijab" , t2 , u .ph , u .ph , hf .ovov )
170181 ).antisymmetrise (0 , 1 )
171182 + 1.0 * 2.0 * (
172- - 2.0 * einsum ("ijcb,kalc,kl->ijab" , t2 , hf .ovov , g1a_adc0 .oo ) #2 ok
173- # - 2.0 * einsum("ijcd,kalc,kbld->ijab", t2, g2a_adc1.ovov, hf.ovov)
174- - 2.0 * einsum ("ka,lc,kbld,ijcd->ijab" , u .ph , u .ph , hf .ovov , t2 ) # 17 anners
175- + 1.0 * einsum ("ka,ijbc,ld,kdlc->ijab" , u .ph , t2 , u .ph , hf .ovov ) #11 ok
176- + 1.0 * einsum ("ijbc,kc,ld,kdla->ijab" , t2 , u .ph , u .ph , hf .ovov ) #12 ok
183+ - 2.0 * einsum ("ijcb,kalc,kl->ijab" , t2 , hf .ovov , g1a_adc0 .oo )
184+ - 2.0 * einsum ("ka,lc,kbld,ijcd->ijab" , u .ph , u .ph , hf .ovov , t2 )
185+ + 1.0 * einsum ("ka,ijbc,ld,kdlc->ijab" , u .ph , t2 , u .ph , hf .ovov )
186+ + 1.0 * einsum ("ijbc,kc,ld,kdla->ijab" , t2 , u .ph , u .ph , hf .ovov )
177187 ).antisymmetrise (2 , 3 )
178188 + 1.0 * 4.0 * (
179- + 1.0 * einsum ("ac,jdkc,ikbd->ijab" , g1a_adc0 .vv , hf .ovov , t2 ) #3 ok
180- - 1.0 * einsum ("jckb,ikad,cd->ijab" , hf .ovov , t2 , g1a_adc0 .vv ) #4 ok
181- - 1.0 * einsum ("ik,kclb,jlac->ijab" , g1a_adc0 .oo , hf .ovov , t2 ) #5 ok
182- + 1.0 * einsum ("jckb,ilac,lk->ijab" , hf .ovov , t2 , g1a_adc0 .oo ) #6 ok
183- - 1.0 * einsum ("ic,jckb,ka->ijab" , u .ph , hf .ovov , rx ) #7 ok
184- - 1.0 * einsum ("jb,kc,lcid,klad->ijab" , u .ph , u .ph , hf .ovov , t2 ) #8 ok
185- - 1.0 * einsum ("ka,jckb,ic->ijab" , u .ph , hf .ovov , rx ) #9 ok
186- - 1.0 * einsum ("jb,kc,lakd,ilcd->ijab" , u .ph , u .ph , hf .ovov , t2 ) #10 ok
187- + 2.0 * einsum ("ka,ickd,ld,jlbc->ijab" , u .ph , hf .ovov , u .ph , t2 ) #15 ok
188- + 2.0 * einsum ("ic,kcla,kd,jlbd->ijab" , u .ph , hf .ovov , u .ph , t2 ) #15 ok
189+ + 1.0 * einsum ("ac,jdkc,ikbd->ijab" , g1a_adc0 .vv , hf .ovov , t2 )
190+ - 1.0 * einsum ("jckb,ikad,cd->ijab" , hf .ovov , t2 , g1a_adc0 .vv )
191+ - 1.0 * einsum ("ik,kclb,jlac->ijab" , g1a_adc0 .oo , hf .ovov , t2 )
192+ + 1.0 * einsum ("jckb,ilac,lk->ijab" , hf .ovov , t2 , g1a_adc0 .oo )
193+ - 1.0 * einsum ("ic,jckb,ka->ijab" , u .ph , hf .ovov , rx )
194+ - 1.0 * einsum ("jb,kc,lcid,klad->ijab" , u .ph , u .ph , hf .ovov , t2 )
195+ - 1.0 * einsum ("ka,jckb,ic->ijab" , u .ph , hf .ovov , rx )
196+ - 1.0 * einsum ("jb,kc,lakd,ilcd->ijab" , u .ph , u .ph , hf .ovov , t2 )
197+ + 2.0 * einsum ("ka,ickd,ld,jlbc->ijab" , u .ph , hf .ovov , u .ph , t2 )
198+ + 2.0 * einsum ("ic,kcla,kd,jlbd->ijab" , u .ph , hf .ovov , u .ph , t2 )
189199 ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
190200 )
191201 ttilde4 .evaluate ()
192202
193203 ttilde5 = - 4.0 * (
194204 + 1.0 * einsum ("kcab,kd,ijcd->ijab" , hf .ovvv , u .ph , u .pphh )
195- + 1.0 * 2.0 * einsum ("ijbc,kcad,kd->ijab" , u .pphh , hf .ovvv , u .ph ).antisymmetrise (2 , 3 )
196- + 1.0 * 4.0 * einsum ("jcbd,kd,ikac->ijab" , hf .ovvv , u .ph , u .pphh ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
205+ + 1.0 * 2.0 * einsum (
206+ "ijbc,kcad,kd->ijab" , u .pphh , hf .ovvv , u .ph
207+ ).antisymmetrise (2 , 3 )
208+ + 1.0 * 4.0 * einsum (
209+ "jcbd,kd,ikac->ijab" , hf .ovvv , u .ph , u .pphh
210+ ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
197211 )
198212 ttilde5 .evaluate ()
199213
200214 ttilde6 = (
201215 - 1.0 * einsum ("ijcd,abde,ce->ijab" , t2 , hf .vvvv , g1a_adc0 .vv )
202- - 1.0 * 2.0 * einsum ("ic,abcd,jkde,ke->ijab" , u .ph , hf .vvvv , t2 , u .ph ).antisymmetrise (0 , 1 )
216+ - 1.0 * 2.0 * einsum (
217+ "ic,abcd,jkde,ke->ijab" , u .ph , hf .vvvv , t2 , u .ph
218+ ).antisymmetrise (0 , 1 )
203219 - 1.0 * 2.0 * (
204220 + 0.5 * einsum ("ac,bcde,ijde->ijab" , g1a_adc0 .vv , hf .vvvv , t2 )
205221 - 2.0 * einsum ("ijbc,de,adce->ijab" , t2 , g1a_adc0 .vv , hf .vvvv )
@@ -210,11 +226,11 @@ def t2bar_oovv_adc3(exci, g1a_adc0, g2a_adc1):
210226 ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
211227 )
212228 ttilde6 .evaluate ()
213- # TODO: prefactors etc maybe wrong...
229+
214230 ret = 0.5 * (
215231 hf .oovv
216232 + ttilde1 + ttilde2 + ttilde3 + ttilde4 + ttilde5 + ttilde6
217- + tbar_TD + tbar_rho
233+ + tbar_TD + tbar_rho
218234 ) / (2.0 * direct_sum ("ia+jb->ijab" , df_ia , df_ia ).symmetrise (0 , 1 ))
219235 return ret
220236
@@ -285,8 +301,8 @@ def ampl_relaxed_dms_adc2(exci):
285301 g2a .oovv = (
286302 0.5 * (
287303 - 1.0 * t2
288- + 2.0 * einsum ("ijcb,ca->ijab" , t2 , g1a_adc1 .vv ).antisymmetrise (( 2 , 3 ) )
289- - 2.0 * einsum ("kjab,ki->ijab" , t2 , g1a_adc1 .oo ).antisymmetrise (( 0 , 1 ) )
304+ + 2.0 * einsum ("ijcb,ca->ijab" , t2 , g1a_adc1 .vv ).antisymmetrise (2 , 3 )
305+ - 2.0 * einsum ("kjab,ki->ijab" , t2 , g1a_adc1 .oo ).antisymmetrise (0 , 1 )
290306 - 4.0 * einsum (
291307 "ia,jb->ijab" , u .ph , ru_ov
292308 ).antisymmetrise ((0 , 1 )).antisymmetrise ((2 , 3 ))
@@ -321,9 +337,7 @@ def ampl_relaxed_dms_adc3(exci):
321337 tD = mp .td2 (b .oovv )
322338 rho = mp .mp2_diffdm
323339
324- print ("bar" , 0.25 * t2bar .dot (hf .oovv ))
325-
326- # Table IX (10.1063/1.5085117)
340+ # Table IX (10.1063/1.5085117)
327341 g1a = g1a_adc1 .copy ()
328342 g1a .oo += (
329343 - 2.0 * einsum ("jkab,ikab->ij" , u .pphh , u .pphh )
@@ -335,7 +349,7 @@ def ampl_relaxed_dms_adc3(exci):
335349 )
336350 g1a .vv += (
337351 + 2.0 * einsum ("ijac,ijbc->ab" , u .pphh , u .pphh )
338- + 1.0 * 2.0 * (
352+ + 1.0 * 2.0 * (
339353 + 1.0 * einsum ("ijac,ijbc->ab" , t2bar , t2 )
340354 + 1.0 * einsum ("ijac,ijbc->ab" , tbarD , tD )
341355 + 0.5 * einsum ("ia,ib->ab" , rho_bar , rho .ov )
@@ -352,13 +366,17 @@ def ampl_relaxed_dms_adc3(exci):
352366 + 2.0 * einsum ("ijab,klab->ijkl" , u .pphh , u .pphh )
353367 + 0.5 * 2.0 * (
354368 + 2.0 * einsum ("ijab,klab->ijkl" , tbarD , t2 )
355- + 0.5 * 2.0 * einsum ("jm,imkl->ijkl" , g1a_adc1 .oo , tsq_oooo ).antisymmetrise (0 , 1 )
356- + 1.0 * 2.0 * einsum ("kc,ijbc,ma,lmab->ijkl" , u .ph , t2 , u .ph , t2 ).antisymmetrise (2 , 3 )
369+ + 0.5 * 2.0 * einsum (
370+ "jm,imab,klab->ijkl" , g1a_adc1 .oo , t2 , t2
371+ ).antisymmetrise (0 , 1 )
372+ + 1.0 * 2.0 * einsum (
373+ "kc,ijbc,ma,lmab->ijkl" , u .ph , t2 , u .ph , t2
374+ ).antisymmetrise (2 , 3 )
357375 + 1.0 * 4.0 * (
358376 + 1.0 * einsum ("ik,jl->ijkl" , rho .oo , g1a_adc1 .oo )
359377 - 1.0 * einsum ("lajb,ia,kb->ijkl" , tsq_ovov , u .ph , u .ph )
360378 ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
361- ).symmetrise ([(0 , 1 ), (2 , 3 )])
379+ ).symmetrise ([(0 , 2 ), (1 , 3 )])
362380 )
363381 g2a .ooov = (
364382 - 2.0 * einsum ("kb,ijab->ijka" , u .ph , u .pphh )
@@ -380,7 +398,8 @@ def ampl_relaxed_dms_adc3(exci):
380398 + 1.0 * einsum ("jkab,ik->ijab" , tD + t2 , g1a_adc1 .oo )
381399 ).antisymmetrise (0 , 1 )
382400 - 1.0 * 4.0 * (
383- + 1.0 * einsum ("ia,jb->ijab" , u .ph , einsum ("jkbc,kc->jb" , tD , u .ph ) + rx )
401+ + 1.0 * einsum ("ia,jb->ijab" , u .ph ,
402+ einsum ("jkbc,kc->jb" , tD , u .ph ) + rx )
384403 ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
385404 )
386405 g2a .ovov = (
@@ -399,7 +418,7 @@ def ampl_relaxed_dms_adc3(exci):
399418 - 2.0 * einsum ("jckb,ic,ka->iajb" , tsq_ovov , u .ph , u .ph )
400419 + 0.5 * einsum ("acbd,ic,jd->iajb" , tsq_vvvv , u .ph , u .ph )
401420 + 0.5 * einsum ("ikjl,ka,lb->iajb" , tsq_oooo , u .ph , u .ph )
402- ).symmetrise ([(0 , 2 ), (1 , 3 )]) # TODO: symmetrise correct?
421+ ).symmetrise ([(0 , 2 ), (1 , 3 )])
403422 )
404423 g2a .ovvv = (
405424 - 2.0 * einsum ("ja,ijbc->iabc" , u .ph , u .pphh )
@@ -420,15 +439,15 @@ def ampl_relaxed_dms_adc3(exci):
420439 - 1.0 * einsum ("be,aecd->abcd" , g1a_adc1 .vv , tsq_vvvv )
421440 ).antisymmetrise (0 , 1 )
422441 + 1.0 * 2.0 * (
423- + 1.0 * einsum ("ia,ijcd,jkbe,ke->abcd" , u .ph , t2 , t2 , u .ph ) # TODO: not sure...
442+ + 1.0 * einsum ("ia,ijcd,jkbe,ke->abcd" , u .ph , t2 , t2 , u .ph )
424443 ).antisymmetrise (0 , 1 )
425444 + 1.0 * 4.0 * (
426445 + 1.0 * einsum ("bd,ac->abcd" , rho .vv , g1a_adc1 .vv )
427446 - 1.0 * einsum ("idjb,ia,jc->abcd" , tsq_ovov , u .ph , u .ph )
428447 ).antisymmetrise (0 , 1 ).antisymmetrise (2 , 3 )
429- ).symmetrise ([(0 , 1 ), (2 , 3 )])
448+ ).symmetrise ([(0 , 2 ), (1 , 3 )])
430449 )
431- return g1a , g2a
450+ return g1a , g2a
432451
433452
434453### CVS ###
0 commit comments