pyscf 2.6.2__py3-none-macosx_11_0_arm64.whl → 2.8.0__py3-none-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. pyscf/__init__.py +2 -2
  2. pyscf/adc/__init__.py +3 -8
  3. pyscf/adc/dfadc.py +22 -6
  4. pyscf/adc/radc.py +106 -15
  5. pyscf/adc/radc_amplitudes.py +7 -1
  6. pyscf/adc/radc_ao2mo.py +4 -2
  7. pyscf/adc/radc_ea.py +524 -8
  8. pyscf/adc/radc_ip.py +492 -60
  9. pyscf/adc/radc_ip_cvs.py +4 -2
  10. pyscf/adc/uadc.py +116 -27
  11. pyscf/adc/uadc_amplitudes.py +215 -20
  12. pyscf/adc/uadc_ao2mo.py +30 -9
  13. pyscf/adc/uadc_ea.py +34 -44
  14. pyscf/adc/uadc_ip.py +9 -4
  15. pyscf/adc/uadc_ip_cvs.py +4 -1
  16. pyscf/agf2/__init__.py +2 -2
  17. pyscf/agf2/aux_space.py +1 -1
  18. pyscf/agf2/chkfile.py +1 -1
  19. pyscf/ao2mo/__init__.py +13 -2
  20. pyscf/ao2mo/_ao2mo.py +10 -1
  21. pyscf/ao2mo/incore.py +3 -0
  22. pyscf/ao2mo/nrr_outcore.py +2 -2
  23. pyscf/ao2mo/outcore.py +9 -7
  24. pyscf/ao2mo/r_outcore.py +2 -2
  25. pyscf/cc/__init__.py +21 -3
  26. pyscf/cc/bccd.py +0 -46
  27. pyscf/cc/ccsd.py +29 -13
  28. pyscf/cc/ccsd_rdm.py +6 -1
  29. pyscf/cc/gccsd.py +2 -2
  30. pyscf/cc/uccsd.py +7 -7
  31. pyscf/cc/uccsd_rdm.py +2 -2
  32. pyscf/data/elements.py +1 -1
  33. pyscf/df/__init__.py +2 -1
  34. pyscf/df/addons.py +79 -51
  35. pyscf/df/autoaux.py +195 -0
  36. pyscf/df/df.py +5 -1
  37. pyscf/df/df_jk.py +27 -25
  38. pyscf/df/grad/casscf.py +0 -41
  39. pyscf/df/grad/rhf.py +31 -1
  40. pyscf/df/hessian/rhf.py +2 -10
  41. pyscf/df/hessian/rks.py +1 -7
  42. pyscf/df/hessian/uhf.py +3 -13
  43. pyscf/df/hessian/uks.py +1 -8
  44. pyscf/df/incore.py +18 -6
  45. pyscf/df/outcore.py +6 -6
  46. pyscf/dft/dks.py +1 -1
  47. pyscf/dft/gks.py +25 -21
  48. pyscf/dft/libxc.py +91 -645
  49. pyscf/dft/numint.py +40 -19
  50. pyscf/dft/radi.py +48 -7
  51. pyscf/dft/rks.py +29 -25
  52. pyscf/dft/roks.py +7 -1
  53. pyscf/dft/uks.py +34 -25
  54. pyscf/dft/xc_deriv.py +1 -1
  55. pyscf/dft/xcfun.py +53 -2
  56. pyscf/eph/eph_fd.py +1 -1
  57. pyscf/eph/rhf.py +6 -36
  58. pyscf/eph/rks.py +0 -4
  59. pyscf/eph/uhf.py +1 -7
  60. pyscf/eph/uks.py +1 -7
  61. pyscf/fci/addons.py +117 -2
  62. pyscf/fci/cistring.py +1 -1
  63. pyscf/fci/direct_nosym.py +3 -3
  64. pyscf/fci/direct_spin0_symm.py +22 -43
  65. pyscf/fci/direct_spin1.py +65 -10
  66. pyscf/fci/direct_spin1_symm.py +49 -14
  67. pyscf/fci/direct_uhf.py +4 -4
  68. pyscf/fci/selected_ci_symm.py +1 -1
  69. pyscf/grad/ccsd.py +3 -7
  70. pyscf/grad/ccsd_slow.py +2 -3
  71. pyscf/grad/lagrange.py +11 -3
  72. pyscf/grad/mp2.py +13 -4
  73. pyscf/grad/sacasscf.py +1 -1
  74. pyscf/grad/tdrks.py +1 -1
  75. pyscf/grad/uccsd.py +3 -7
  76. pyscf/grad/ump2.py +2 -4
  77. pyscf/gto/basis/__init__.py +17 -4
  78. pyscf/gto/basis/bse.py +68 -15
  79. pyscf/gto/basis/def2-mtzvp.dat +4719 -0
  80. pyscf/gto/basis/def2-mtzvpp.dat +4739 -0
  81. pyscf/gto/basis/dyall-basis/__init__.py +0 -0
  82. pyscf/gto/basis/dyall-basis/dyall_2zp.py +6492 -0
  83. pyscf/gto/basis/dyall-basis/dyall_3zp.py +8343 -0
  84. pyscf/gto/basis/dyall-basis/dyall_4zp.py +10055 -0
  85. pyscf/gto/basis/dyall-basis/dyall_aae2z.py +1818 -0
  86. pyscf/gto/basis/dyall-basis/dyall_aae3z.py +2521 -0
  87. pyscf/gto/basis/dyall-basis/dyall_aae4z.py +3351 -0
  88. pyscf/gto/basis/dyall-basis/dyall_acv2z.py +1790 -0
  89. pyscf/gto/basis/dyall-basis/dyall_acv3z.py +2417 -0
  90. pyscf/gto/basis/dyall-basis/dyall_acv4z.py +3085 -0
  91. pyscf/gto/basis/dyall-basis/dyall_ae2z.py +6619 -0
  92. pyscf/gto/basis/dyall-basis/dyall_ae3z.py +9027 -0
  93. pyscf/gto/basis/dyall-basis/dyall_ae4z.py +11839 -0
  94. pyscf/gto/basis/dyall-basis/dyall_av2z.py +1742 -0
  95. pyscf/gto/basis/dyall-basis/dyall_av3z.py +2318 -0
  96. pyscf/gto/basis/dyall-basis/dyall_av4z.py +2905 -0
  97. pyscf/gto/basis/dyall-basis/dyall_cv2z.py +6558 -0
  98. pyscf/gto/basis/dyall-basis/dyall_cv3z.py +8767 -0
  99. pyscf/gto/basis/dyall-basis/dyall_cv4z.py +11098 -0
  100. pyscf/gto/basis/dyall-basis/dyall_v2z.py +6472 -0
  101. pyscf/gto/basis/dyall-basis/dyall_v3z.py +8539 -0
  102. pyscf/gto/basis/dyall-basis/dyall_v4z.py +10658 -0
  103. pyscf/gto/basis/ma-def2-qzvp.dat +5959 -0
  104. pyscf/gto/basis/ma-def2-qzvpp.dat +6195 -0
  105. pyscf/gto/basis/ma-def2-svp.dat +3504 -0
  106. pyscf/gto/basis/ma-def2-svpp.dat +3504 -0
  107. pyscf/gto/basis/ma-def2-tzvp.dat +4347 -0
  108. pyscf/gto/basis/ma-def2-tzvpp.dat +4549 -0
  109. pyscf/gto/basis/parse_cp2k.py +8 -7
  110. pyscf/gto/basis/parse_cp2k_pp.py +1 -1
  111. pyscf/gto/basis/parse_nwchem.py +26 -11
  112. pyscf/gto/basis/parse_nwchem_ecp.py +2 -1
  113. pyscf/gto/basis/sap_grasp_large.dat +2438 -0
  114. pyscf/gto/basis/sap_grasp_small.dat +1434 -0
  115. pyscf/gto/eval_gto.py +1 -1
  116. pyscf/gto/ft_ao.py +6 -6
  117. pyscf/gto/mole.py +123 -71
  118. pyscf/gto/moleintor.py +1 -1
  119. pyscf/gw/gw_ac.py +2 -2
  120. pyscf/gw/gw_cd.py +2 -2
  121. pyscf/gw/rpa.py +135 -246
  122. pyscf/gw/ugw_ac.py +2 -2
  123. pyscf/gw/urpa.py +80 -131
  124. pyscf/hessian/rhf.py +30 -128
  125. pyscf/hessian/rks.py +1 -6
  126. pyscf/hessian/uhf.py +28 -138
  127. pyscf/hessian/uks.py +1 -8
  128. pyscf/lib/CMakeLists.txt +6 -2
  129. pyscf/lib/ao2mo/nr_ao2mo.c +1 -1
  130. pyscf/lib/ao2mo/nrr_ao2mo.c +1 -1
  131. pyscf/lib/ao2mo/r_ao2mo.c +1 -1
  132. pyscf/lib/cc/ccsd_pack.c +1 -1
  133. pyscf/lib/cc/ccsd_t.c +6 -6
  134. pyscf/lib/cc/uccsd_t.c +4 -4
  135. pyscf/lib/config.h +0 -1
  136. pyscf/lib/config.h.in +0 -1
  137. pyscf/lib/deps/include/XCFun/XCFunExport.h +1 -0
  138. pyscf/lib/deps/include/xc.h +28 -18
  139. pyscf/lib/deps/include/xc_funcs.h +50 -2
  140. pyscf/lib/deps/include/xc_version.h +3 -3
  141. pyscf/lib/deps/lib/libcint.6.dylib +0 -0
  142. pyscf/lib/deps/lib/{libxc.12.dylib → libxc.15.dylib} +0 -0
  143. pyscf/lib/deps/lib/libxcfun.2.dylib +0 -0
  144. pyscf/lib/dft/grid_common.c +1 -1
  145. pyscf/lib/dft/libxc_itrf.c +10 -7
  146. pyscf/lib/dft/nr_numint_sparse.c +3 -3
  147. pyscf/lib/dft/xcfun_itrf.c +1 -1
  148. pyscf/lib/diis.py +2 -2
  149. pyscf/lib/exceptions.py +6 -0
  150. pyscf/lib/gto/fill_grids_int2c.c +11 -9
  151. pyscf/lib/gto/fill_int2e.c +7 -5
  152. pyscf/lib/gto/fill_r_4c.c +1 -1
  153. pyscf/lib/gto/ft_ao.c +1 -1
  154. pyscf/lib/gto/ft_ao.h +1 -1
  155. pyscf/lib/gto/gto.h +2 -2
  156. pyscf/lib/gto/nr_ecp.c +3 -2
  157. pyscf/lib/libagf2.dylib +0 -0
  158. pyscf/lib/libao2mo.dylib +0 -0
  159. pyscf/lib/libcc.dylib +0 -0
  160. pyscf/lib/libcgto.dylib +0 -0
  161. pyscf/lib/libcvhf.dylib +0 -0
  162. pyscf/lib/libdft.dylib +0 -0
  163. pyscf/lib/libfci.dylib +0 -0
  164. pyscf/lib/libmcscf.dylib +0 -0
  165. pyscf/lib/libmp.dylib +0 -0
  166. pyscf/lib/libnp_helper.dylib +0 -0
  167. pyscf/lib/libpbc.dylib +0 -0
  168. pyscf/lib/libri.dylib +0 -0
  169. pyscf/lib/libxc_itrf.dylib +0 -0
  170. pyscf/lib/libxcfun_itrf.dylib +0 -0
  171. pyscf/lib/linalg_helper.py +117 -198
  172. pyscf/lib/logger.py +2 -1
  173. pyscf/lib/mcscf/fci_contract.c +10 -3
  174. pyscf/lib/misc.py +63 -22
  175. pyscf/lib/mp/CMakeLists.txt +22 -0
  176. pyscf/lib/mp/mp2.c +518 -0
  177. pyscf/lib/mp/mp2.h +44 -0
  178. pyscf/lib/np_helper/CMakeLists.txt +1 -1
  179. pyscf/lib/np_helper/imatcopy.c +360 -0
  180. pyscf/lib/np_helper/np_helper.c +94 -0
  181. pyscf/lib/np_helper/np_helper.h +26 -0
  182. pyscf/lib/numpy_helper.py +195 -11
  183. pyscf/lib/pbc/nr_direct.c +2 -7
  184. pyscf/lib/pbc/nr_ecp.c +10 -3
  185. pyscf/lib/pbc/pbc.h +1 -1
  186. pyscf/lib/vhf/fblas.h +3 -0
  187. pyscf/lib/vhf/nr_sgx_direct.c +8 -6
  188. pyscf/lib/vhf/nr_sr_vhf.c +8 -12
  189. pyscf/lib/vhf/optimizer.c +2 -2
  190. pyscf/lib/vhf/rkb_screen.c +139 -0
  191. pyscf/lo/iao.py +1 -1
  192. pyscf/lo/ibo.py +3 -3
  193. pyscf/lo/pipek_jacobi.py +1 -1
  194. pyscf/mcscf/__init__.py +2 -2
  195. pyscf/mcscf/addons.py +3 -3
  196. pyscf/mcscf/apc.py +2 -2
  197. pyscf/mcscf/casci.py +13 -7
  198. pyscf/mcscf/chkfile.py +69 -41
  199. pyscf/mcscf/dmet_cas.py +2 -2
  200. pyscf/mcscf/mc1step.py +72 -44
  201. pyscf/mcscf/newton_casscf.py +5 -5
  202. pyscf/mcscf/ucasci.py +1 -1
  203. pyscf/mcscf/umc1step.py +49 -28
  204. pyscf/md/integrators.py +3 -3
  205. pyscf/mp/__init__.py +1 -0
  206. pyscf/mp/dfmp2.py +498 -59
  207. pyscf/mp/dfmp2_native.py +11 -1
  208. pyscf/mp/dfmp2_slow.py +133 -0
  209. pyscf/mp/dfump2.py +672 -0
  210. pyscf/mp/dfump2_native.py +9 -0
  211. pyscf/mp/dfump2_slow.py +161 -0
  212. pyscf/mp/gmp2.py +6 -47
  213. pyscf/mp/mp2.py +25 -10
  214. pyscf/mp/ump2.py +30 -24
  215. pyscf/pbc/adc/kadc_rhf.py +1 -1
  216. pyscf/pbc/adc/kadc_rhf_amplitudes.py +2 -2
  217. pyscf/pbc/ao2mo/eris.py +1 -1
  218. pyscf/pbc/cc/kccsd_rhf.py +3 -3
  219. pyscf/pbc/cc/kccsd_t_rhf.py +2 -2
  220. pyscf/pbc/ci/kcis_rhf.py +2 -2
  221. pyscf/pbc/df/aft.py +8 -9
  222. pyscf/pbc/df/aft_ao2mo.py +1 -1
  223. pyscf/pbc/df/df.py +85 -12
  224. pyscf/pbc/df/df_jk.py +6 -2
  225. pyscf/pbc/df/fft.py +9 -5
  226. pyscf/pbc/df/fft_ao2mo.py +4 -0
  227. pyscf/pbc/df/fft_jk.py +18 -10
  228. pyscf/pbc/df/ft_ao.py +4 -3
  229. pyscf/pbc/df/gdf_builder.py +5 -4
  230. pyscf/pbc/df/incore.py +2 -2
  231. pyscf/pbc/df/mdf.py +6 -3
  232. pyscf/pbc/df/mdf_jk.py +2 -1
  233. pyscf/pbc/df/outcore.py +10 -10
  234. pyscf/pbc/df/rsdf.py +2 -2
  235. pyscf/pbc/df/rsdf_builder.py +13 -8
  236. pyscf/pbc/df/rsdf_helper.py +6 -6
  237. pyscf/pbc/df/rsdf_jk.py +2 -1
  238. pyscf/pbc/dft/cdft.py +5 -5
  239. pyscf/pbc/dft/gen_grid.py +3 -2
  240. pyscf/pbc/dft/gks.py +14 -3
  241. pyscf/pbc/dft/kgks.py +15 -4
  242. pyscf/pbc/dft/krks.py +28 -10
  243. pyscf/pbc/dft/krks_ksymm.py +21 -9
  244. pyscf/pbc/dft/krkspu.py +1 -30
  245. pyscf/pbc/dft/krkspu_ksymm.py +0 -30
  246. pyscf/pbc/dft/kuks.py +30 -13
  247. pyscf/pbc/dft/kuks_ksymm.py +22 -10
  248. pyscf/pbc/dft/kukspu.py +0 -27
  249. pyscf/pbc/dft/kukspu_ksymm.py +0 -30
  250. pyscf/pbc/dft/multigrid/multigrid.py +36 -33
  251. pyscf/pbc/dft/multigrid/multigrid_pair.py +7 -2
  252. pyscf/pbc/dft/multigrid/pp.py +1 -1
  253. pyscf/pbc/dft/numint.py +56 -31
  254. pyscf/pbc/dft/rks.py +16 -24
  255. pyscf/pbc/dft/uks.py +21 -4
  256. pyscf/pbc/eph/eph_fd.py +1 -1
  257. pyscf/pbc/geomopt/geometric_solver.py +1 -1
  258. pyscf/pbc/gto/_pbcintor.py +1 -0
  259. pyscf/pbc/gto/cell.py +194 -23
  260. pyscf/pbc/gto/ecp.py +12 -12
  261. pyscf/pbc/gto/eval_gto.py +3 -3
  262. pyscf/pbc/gto/neighborlist.py +4 -1
  263. pyscf/pbc/gto/pseudo/pp.py +1 -1
  264. pyscf/pbc/gw/krgw_ac.py +4 -4
  265. pyscf/pbc/gw/krgw_cd.py +4 -4
  266. pyscf/pbc/gw/kugw_ac.py +3 -3
  267. pyscf/pbc/lib/kpts_helper.py +4 -3
  268. pyscf/pbc/lib/linalg_helper.py +1 -1
  269. pyscf/pbc/mp/kmp2.py +1 -1
  270. pyscf/pbc/mpitools/mpi.py +1 -1
  271. pyscf/pbc/scf/_response_functions.py +141 -34
  272. pyscf/pbc/scf/addons.py +15 -11
  273. pyscf/pbc/scf/cphf.py +1 -1
  274. pyscf/pbc/scf/ghf.py +1 -1
  275. pyscf/pbc/scf/hf.py +21 -32
  276. pyscf/pbc/scf/kghf.py +33 -29
  277. pyscf/pbc/scf/khf.py +103 -29
  278. pyscf/pbc/scf/khf_ksymm.py +15 -1
  279. pyscf/pbc/scf/krohf.py +5 -7
  280. pyscf/pbc/scf/kuhf.py +54 -23
  281. pyscf/pbc/scf/kuhf_ksymm.py +1 -1
  282. pyscf/pbc/scf/rsjk.py +14 -10
  283. pyscf/pbc/scf/scfint.py +1 -1
  284. pyscf/pbc/scf/stability.py +27 -15
  285. pyscf/pbc/scf/uhf.py +3 -1
  286. pyscf/pbc/symm/symmetry.py +2 -2
  287. pyscf/pbc/tdscf/krhf.py +238 -154
  288. pyscf/pbc/tdscf/krks.py +1 -45
  289. pyscf/pbc/tdscf/kuhf.py +319 -171
  290. pyscf/pbc/tdscf/kuks.py +0 -56
  291. pyscf/pbc/tdscf/rhf.py +116 -3
  292. pyscf/pbc/tdscf/rks.py +2 -1
  293. pyscf/pbc/tdscf/uhf.py +214 -1
  294. pyscf/pbc/tdscf/uks.py +2 -1
  295. pyscf/pbc/tools/k2gamma.py +20 -6
  296. pyscf/pbc/tools/lattice.py +3 -3
  297. pyscf/pbc/tools/pbc.py +111 -91
  298. pyscf/pbc/tools/pyscf_ase.py +0 -1
  299. pyscf/pbc/tools/pywannier90.py +1 -1
  300. pyscf/qmmm/mm_mole.py +1 -1
  301. pyscf/scf/_response_functions.py +87 -46
  302. pyscf/scf/_vhf.py +15 -10
  303. pyscf/scf/addons.py +29 -15
  304. pyscf/scf/cphf.py +14 -52
  305. pyscf/scf/dhf.py +121 -38
  306. pyscf/scf/dispersion.py +10 -9
  307. pyscf/scf/ghf.py +25 -13
  308. pyscf/scf/ghf_symm.py +2 -2
  309. pyscf/scf/hf.py +262 -30
  310. pyscf/scf/rohf.py +37 -5
  311. pyscf/scf/stability.py +142 -112
  312. pyscf/scf/ucphf.py +21 -16
  313. pyscf/scf/uhf.py +104 -61
  314. pyscf/sgx/sgx.py +1 -1
  315. pyscf/sgx/sgx_jk.py +4 -4
  316. pyscf/solvent/__init__.py +2 -2
  317. pyscf/solvent/_attach_solvent.py +2 -0
  318. pyscf/solvent/_ddcosmo_tdscf_grad.py +1 -1
  319. pyscf/solvent/cosmors.py +366 -0
  320. pyscf/solvent/ddcosmo.py +1 -1
  321. pyscf/solvent/pcm.py +4 -4
  322. pyscf/solvent/pol_embed.py +1 -1
  323. pyscf/solvent/smd.py +5 -3
  324. pyscf/soscf/ciah.py +3 -11
  325. pyscf/soscf/newton_ah.py +5 -2
  326. pyscf/symm/__init__.py +1 -1
  327. pyscf/symm/addons.py +5 -5
  328. pyscf/symm/geom.py +1 -5
  329. pyscf/tdscf/_lr_eig.py +1002 -0
  330. pyscf/tdscf/dhf.py +84 -87
  331. pyscf/tdscf/dks.py +0 -4
  332. pyscf/tdscf/ghf.py +139 -127
  333. pyscf/tdscf/gks.py +27 -25
  334. pyscf/tdscf/rhf.py +194 -147
  335. pyscf/tdscf/rks.py +26 -22
  336. pyscf/tdscf/uhf.py +166 -118
  337. pyscf/tdscf/uks.py +32 -31
  338. pyscf/tools/fcidump.py +3 -0
  339. pyscf/tools/qcschema.py +265 -0
  340. pyscf/x2c/sfx2c1e.py +1 -1
  341. pyscf/x2c/tdscf.py +41 -41
  342. pyscf/x2c/x2c.py +15 -11
  343. {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/METADATA +39 -36
  344. {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/NOTICE +14 -1
  345. {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/RECORD +348 -316
  346. {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/WHEEL +1 -1
  347. pyscf/dft/gen_libxc_param.py +0 -35
  348. pyscf/dft/gen_xcfun_param.py +0 -209
  349. pyscf/pbc/tdscf/kproxy.py +0 -189
  350. pyscf/pbc/tdscf/kproxy_supercell.py +0 -664
  351. pyscf/pbc/tdscf/krhf_slow.py +0 -300
  352. pyscf/pbc/tdscf/krhf_slow_gamma.py +0 -175
  353. pyscf/pbc/tdscf/krhf_slow_supercell.py +0 -250
  354. pyscf/pbc/tdscf/proxy.py +0 -39
  355. pyscf/pbc/tdscf/rhf_slow.py +0 -35
  356. pyscf/tdscf/common_slow.py +0 -799
  357. pyscf/tdscf/proxy.py +0 -258
  358. pyscf/tdscf/rhf_slow.py +0 -181
  359. {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/LICENSE +0 -0
  360. {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/top_level.txt +0 -0
pyscf/adc/radc_ip.py CHANGED
@@ -12,9 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  #
15
- # Author: Samragni Banerjee <samragnibanerjee4@gmail.com>
15
+ # Author: Abdelrahman Ahmed <>
16
+ # Samragni Banerjee <samragnibanerjee4@gmail.com>
17
+ # James Serna <jamcar456@gmail.com>
18
+ # Terrence Stahl <>
16
19
  # Alexander Sokolov <alexander.y.sokolov@gmail.com>
17
- #
18
20
 
19
21
  '''
20
22
  Restricted algebraic diagrammatic construction
@@ -280,7 +282,6 @@ def get_diag(adc,M_ij=None,eris=None):
280
282
 
281
283
  return diag
282
284
 
283
-
284
285
  def matvec(adc, M_ij=None, eris=None):
285
286
 
286
287
  if adc.method not in ("adc(2)", "adc(2)-x", "adc(3)"):
@@ -779,8 +780,8 @@ def compute_dyson_mo(myadc):
779
780
 
780
781
  return dyson_mo
781
782
 
782
- def make_rdm1(adc):
783
783
 
784
+ def make_rdm1(adc):
784
785
  cput0 = (logger.process_clock(), logger.perf_counter())
785
786
  log = logger.Logger(adc.stdout, adc.verbose)
786
787
 
@@ -796,13 +797,16 @@ def make_rdm1(adc):
796
797
  cput0 = log.timer_debug1("completed OPDM calculation", *cput0)
797
798
  return list_rdm1
798
799
 
800
+
799
801
  def make_rdm1_eigenvectors(adc, L, R):
800
802
 
801
803
  L = np.array(L).ravel()
802
804
  R = np.array(R).ravel()
803
805
 
804
- t2_1 = adc.t2[0][:]
805
- t1_2 = adc.t1[0][:]
806
+ t2_ce = adc.t1[0][:]
807
+ t1_ccee = adc.t2[0][:]
808
+
809
+ einsum = lib.einsum
806
810
 
807
811
  nocc = adc._nocc
808
812
  nvir = adc._nvir
@@ -828,61 +832,486 @@ def make_rdm1_eigenvectors(adc, L, R):
828
832
  R2 = R2.reshape(nvir,nocc,nocc)
829
833
 
830
834
  #####G^000#### block- ij
831
- rdm1[:nocc,:nocc] = 2*np.einsum('ij,m,m->ij',kd_oc,L1,R1,optimize=True)
832
- rdm1[:nocc,:nocc] -= np.einsum('i,j->ij',L1,R1,optimize=True)
833
-
834
- rdm1[:nocc,:nocc] += 4*np.einsum('ij,etu,etu->ij',kd_oc,L2,R2,optimize=True)
835
- rdm1[:nocc,:nocc] -= np.einsum('ij,etu,eut->ij',kd_oc,L2,R2,optimize=True)
836
- rdm1[:nocc,:nocc] -= np.einsum('ij,eut,etu->ij',kd_oc,L2,R2,optimize=True)
837
- rdm1[:nocc,:nocc] -= 4*np.einsum('eti,etj->ij',L2,R2,optimize=True)
838
- rdm1[:nocc,:nocc] += np.einsum('eti,ejt->ij',L2,R2,optimize=True)
839
- rdm1[:nocc,:nocc] += np.einsum('eit,etj->ij',L2,R2,optimize=True)
840
-
841
- rdm1[:nocc,:nocc] -= 2*np.einsum('g,g,hjcd,hicd->ij', L1,R1,t2_1,t2_1,optimize=True)
842
- rdm1[:nocc,:nocc] += 2*np.einsum('g,g,jhcd,hicd->ij', L1,R1,t2_1,t2_1,optimize=True)
843
- rdm1[:nocc,:nocc] -= 2*np.einsum('g,g,jhcd,ihcd->ij', L1,R1,t2_1,t2_1,optimize=True)
844
- rdm1[:nocc,:nocc] += 2*np.einsum('g,h,jgcd,ihcd->ij', L1,R1,t2_1,t2_1,optimize=True)
845
- rdm1[:nocc,:nocc] -= np.einsum('g,h,gjcd,ihcd->ij', L1,R1,t2_1,t2_1,optimize=True)
846
- temp_ij = np.einsum('g,j,ghcd,ihcd->ij',L1,R1,t2_1,t2_1,optimize=True)
847
- temp_ij -= 0.25*np.einsum('g,j,hgcd,ihcd->ij',L1,R1,t2_1,t2_1,optimize=True)
848
- temp_ij -= 0.25*np.einsum('g,j,ghcd,hicd->ij',L1,R1,t2_1,t2_1,optimize=True)
835
+ rdm1[:nocc,:nocc] = 2*einsum('ij,m,m->ij',kd_oc,L1,R1,optimize=True)
836
+ rdm1[:nocc,:nocc] -= einsum('i,j->ij',L1,R1,optimize=True)
837
+
838
+ rdm1[:nocc,:nocc] += 4*einsum('ij,etu,etu->ij',kd_oc,L2,R2,optimize=True)
839
+ rdm1[:nocc,:nocc] -= einsum('ij,etu,eut->ij',kd_oc,L2,R2,optimize=True)
840
+ rdm1[:nocc,:nocc] -= einsum('ij,eut,etu->ij',kd_oc,L2,R2,optimize=True)
841
+
842
+ rdm1[:nocc,:nocc] -= 2*einsum('eti,etj->ij',L2,R2,optimize=True)
843
+ rdm1[:nocc,:nocc] += einsum('eit,etj->ij',L2,R2,optimize=True)
844
+ rdm1[:nocc,:nocc] += einsum('eti,ejt->ij',L2,R2,optimize=True)
845
+ rdm1[:nocc,:nocc] -= 2*einsum('eit,ejt->ij',L2,R2,optimize=True)
846
+
847
+ rdm1[:nocc,:nocc] -= 2*einsum('g,g,hjcd,hicd->ij', L1,R1,t1_ccee,t1_ccee,optimize=True)
848
+ rdm1[:nocc,:nocc] += 2*einsum('g,g,jhcd,hicd->ij', L1,R1,t1_ccee,t1_ccee,optimize=True)
849
+ rdm1[:nocc,:nocc] -= 2*einsum('g,g,jhcd,ihcd->ij', L1,R1,t1_ccee,t1_ccee,optimize=True)
850
+ rdm1[:nocc,:nocc] += 2*einsum('g,h,jgcd,ihcd->ij', L1,R1,t1_ccee,t1_ccee,optimize=True)
851
+ rdm1[:nocc,:nocc] -= einsum('g,h,gjcd,ihcd->ij', L1,R1,t1_ccee,t1_ccee,optimize=True)
852
+ temp_ij = einsum('g,j,ghcd,ihcd->ij',L1,R1,t1_ccee,t1_ccee,optimize=True)
853
+ temp_ij -= 0.25*einsum('g,j,hgcd,ihcd->ij',L1,R1,t1_ccee,t1_ccee,optimize=True)
854
+ temp_ij -= 0.25*einsum('g,j,ghcd,hicd->ij',L1,R1,t1_ccee,t1_ccee,optimize=True)
849
855
  rdm1[:nocc,:nocc] += temp_ij
850
856
  rdm1[:nocc,:nocc] += temp_ij.T
851
857
 
852
- ########## block- ab
853
- rdm1[nocc:,nocc:] = np.einsum('atu,btu->ab', L2,R2,optimize=True)
854
- rdm1[nocc:,nocc:] -= 0.5*np.einsum('aut,btu->ab', L2,R2,optimize=True)
855
- rdm1[nocc:,nocc:] -= 0.5*np.einsum('atu,but->ab', L2,R2,optimize=True)
856
- rdm1[nocc:,nocc:] += np.einsum('atu,btu->ab', L2,R2,optimize=True)
857
-
858
- rdm1[nocc:,nocc:] += 4*np.einsum('g,g,hmbc,hmac->ab', L1,R1,t2_1,t2_1,optimize=True)
859
- rdm1[nocc:,nocc:] -= np.einsum('g,g,mhbc,hmac->ab', L1,R1,t2_1,t2_1,optimize=True)
860
- rdm1[nocc:,nocc:] -= np.einsum('g,g,hmbc,mhac->ab', L1,R1,t2_1,t2_1,optimize=True)
861
- rdm1[nocc:,nocc:] -= 4*np.einsum('g,h,hmbc,gmac->ab', L1,R1,t2_1,t2_1,optimize=True)
862
- rdm1[nocc:,nocc:] += np.einsum('g,h,mhbc,gmac->ab', L1,R1,t2_1,t2_1,optimize=True)
863
- rdm1[nocc:,nocc:] += np.einsum('g,h,hmbc,mgac->ab', L1,R1,t2_1,t2_1,optimize=True)
864
-
865
- ########### block- ia
866
- rdm1[:nocc,nocc:] = -np.einsum('n,ani->ia', R1,L2,optimize=True)
867
- rdm1[:nocc,nocc:] += 2*np.einsum('n,ain->ia', R1,L2,optimize=True)
868
-
869
- rdm1[:nocc,nocc:] -= 2*np.einsum('g,cgh,ihac->ia', L1,R2,t2_1,optimize=True)
870
- rdm1[:nocc,nocc:] += np.einsum('g,cgh,hiac->ia', L1,R2,t2_1,optimize=True)
871
- rdm1[:nocc,nocc:] += 4*np.einsum('g,chg,ihac->ia', L1,R2,t2_1,optimize=True)
872
- rdm1[:nocc,nocc:] -= np.einsum('g,chg,hiac->ia', L1,R2,t2_1,optimize=True)
873
- rdm1[:nocc,nocc:] -= np.einsum('g,cgh,ihac->ia', L1,R2,t2_1,optimize=True)
874
- rdm1[:nocc,nocc:] += np.einsum('i,cgh,ghac->ia', L1,R2,t2_1,optimize=True)
875
- rdm1[:nocc,nocc:] -= 2*np.einsum('i,chg,ghac->ia', L1,R2,t2_1,optimize=True)
876
-
877
- rdm1[:nocc,nocc:] += np.einsum('g,g,ia->ia', L1,R1,t1_2,optimize=True)
878
- rdm1[:nocc,nocc:] += np.einsum('g,g,ia->ia', L1,R1,t1_2,optimize=True)
879
- rdm1[:nocc,nocc:] -= np.einsum('g,i,ga->ia', R1,L1,t1_2,optimize=True)
880
-
881
- ############ block- ai
858
+ ########### block- ab
859
+ rdm1[nocc:,nocc:] = einsum('atu,btu->ab', L2,R2,optimize=True)
860
+ rdm1[nocc:,nocc:] -= 0.5*einsum('aut,btu->ab', L2,R2,optimize=True)
861
+ rdm1[nocc:,nocc:] -= 0.5*einsum('atu,but->ab', L2,R2,optimize=True)
862
+ rdm1[nocc:,nocc:] += einsum('atu,btu->ab', L2,R2,optimize=True)
863
+
864
+ rdm1[nocc:,nocc:] += 4*einsum('g,g,hmbc,hmac->ab', L1,R1,t1_ccee,t1_ccee,optimize=True)
865
+ rdm1[nocc:,nocc:] -= einsum('g,g,mhbc,hmac->ab', L1,R1,t1_ccee,t1_ccee,optimize=True)
866
+ rdm1[nocc:,nocc:] -= einsum('g,g,hmbc,mhac->ab', L1,R1,t1_ccee,t1_ccee,optimize=True)
867
+
868
+ rdm1[nocc:,nocc:] -= 2 * einsum('g,h,hmbc,gmac->ab', L1,R1,t1_ccee,t1_ccee,optimize=True)
869
+ rdm1[nocc:,nocc:] -= 2 * einsum('g,h,mhbc,mgac->ab', L1,R1,t1_ccee,t1_ccee,optimize=True)
870
+
871
+ rdm1[nocc:,nocc:] += einsum('g,h,mhbc,gmac->ab', L1,R1,t1_ccee,t1_ccee,optimize=True)
872
+ rdm1[nocc:,nocc:] += einsum('g,h,hmbc,mgac->ab', L1,R1,t1_ccee,t1_ccee,optimize=True)
873
+
874
+
875
+ ############ block- ia
876
+ rdm1[:nocc,nocc:] = -einsum('n,ani->ia', R1,L2,optimize=True)
877
+ rdm1[:nocc,nocc:] += 2*einsum('n,ain->ia', R1,L2,optimize=True)
878
+ rdm1[:nocc,nocc:] -= 2*einsum('g,cgh,ihac->ia', L1,R2,t1_ccee,optimize=True)
879
+ rdm1[:nocc,nocc:] += 4*einsum('g,chg,ihac->ia', L1,R2,t1_ccee,optimize=True)
880
+ rdm1[:nocc,nocc:] += einsum('g,cgh,hiac->ia', L1,R2,t1_ccee,optimize=True)
881
+ rdm1[:nocc,nocc:] -= 2*einsum('g,chg,hiac->ia', L1,R2,t1_ccee,optimize=True)
882
+
883
+ rdm1[:nocc,nocc:] += einsum('i,cgh,ghac->ia', L1,R2,t1_ccee,optimize=True)
884
+ rdm1[:nocc,nocc:] -= 2*einsum('i,chg,ghac->ia', L1,R2,t1_ccee,optimize=True)
885
+
886
+ rdm1[:nocc,nocc:] += einsum('g,g,ia->ia', L1,R1,t2_ce,optimize=True)
887
+ rdm1[:nocc,nocc:] += einsum('g,g,ia->ia', L1,R1,t2_ce,optimize=True)
888
+ rdm1[:nocc,nocc:] -= einsum('g,i,ga->ia', R1,L1,t2_ce,optimize=True)
889
+
890
+ ############# block- ai
882
891
  rdm1[nocc:,:nocc] = rdm1[:nocc,nocc:].T
883
892
 
893
+ ####### ADC(3) SPIN ADAPTED EXCITED STATE OPDM WITH SQA ################
894
+ if adc.method == "adc(3)":
895
+ ### Redudant Variables used for names from SQA
896
+ einsum_type = True
897
+ t3 = adc.t1[1][:]
898
+ t2_ccee = adc.t2[1][:]
899
+ ###################################################
900
+
901
+ ############# block- ij
902
+ ### 030 ###
903
+ rdm1[:nocc, :nocc] += einsum('J,i,Ijab,ijab->IJ', L1, R1,
904
+ t1_ccee, t2_ccee, optimize = einsum_type)
905
+ rdm1[:nocc, :nocc] -= 1/2 * einsum('J,i,Ijab,ijba->IJ',
906
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
907
+ rdm1[:nocc, :nocc] += einsum('J,i,ijab,Ijab->IJ', L1, R1,
908
+ t1_ccee, t2_ccee, optimize = einsum_type)
909
+ rdm1[:nocc, :nocc] -= 1/2 * einsum('J,i,ijab,Ijba->IJ',
910
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
911
+ rdm1[:nocc, :nocc] += einsum('i,I,Jjab,ijab->IJ', L1, R1,
912
+ t1_ccee, t2_ccee, optimize = einsum_type)
913
+ rdm1[:nocc, :nocc] -= 1/2 * einsum('i,I,Jjab,ijba->IJ',
914
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
915
+ rdm1[:nocc, :nocc] += einsum('i,I,ijab,Jjab->IJ', L1, R1,
916
+ t1_ccee, t2_ccee, optimize = einsum_type)
917
+ rdm1[:nocc, :nocc] -= 1/2 * einsum('i,I,ijab,Jjba->IJ',
918
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
919
+ rdm1[:nocc, :nocc] -= 2 * einsum('i,i,Ijab,Jjab->IJ', L1,
920
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
921
+ rdm1[:nocc, :nocc] += einsum('i,i,Ijab,Jjba->IJ', L1, R1,
922
+ t1_ccee, t2_ccee, optimize = einsum_type)
923
+ rdm1[:nocc, :nocc] -= 2 * einsum('i,i,Jjab,Ijab->IJ', L1,
924
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
925
+ rdm1[:nocc, :nocc] += einsum('i,i,Jjab,Ijba->IJ', L1, R1,
926
+ t1_ccee, t2_ccee, optimize = einsum_type)
927
+ rdm1[:nocc, :nocc] += einsum('i,j,Iiab,Jjab->IJ', L1, R1,
928
+ t1_ccee, t2_ccee, optimize = einsum_type)
929
+ rdm1[:nocc, :nocc] -= einsum('i,j,Iiab,Jjba->IJ', L1, R1,
930
+ t1_ccee, t2_ccee, optimize = einsum_type)
931
+ rdm1[:nocc, :nocc] += einsum('i,j,Jjab,Iiab->IJ', L1, R1,
932
+ t1_ccee, t2_ccee, optimize = einsum_type)
933
+ rdm1[:nocc, :nocc] -= einsum('i,j,Jjab,Iiba->IJ', L1, R1,
934
+ t1_ccee, t2_ccee, optimize = einsum_type)
935
+
936
+ rdm1[:nocc, :nocc] -= 2 * einsum('i,i,Ijab,Jjab->IJ', L1,
937
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
938
+ rdm1[:nocc, :nocc] += einsum('i,i,Ijab,Jjba->IJ', L1, R1,
939
+ t1_ccee, t2_ccee, optimize = einsum_type)
940
+ rdm1[:nocc, :nocc] -= 2 * einsum('i,i,Jjab,Ijab->IJ', L1,
941
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
942
+ rdm1[:nocc, :nocc] += einsum('i,i,Jjab,Ijba->IJ', L1, R1,
943
+ t1_ccee, t2_ccee, optimize = einsum_type)
944
+ rdm1[:nocc, :nocc] += einsum('i,j,Iiab,Jjab->IJ', L1, R1,
945
+ t1_ccee, t2_ccee, optimize = einsum_type)
946
+ rdm1[:nocc, :nocc] += einsum('i,j,Jjab,Iiab->IJ', L1, R1,
947
+ t1_ccee, t2_ccee, optimize = einsum_type)
948
+
949
+ ### 021 ###
950
+ rdm1[:nocc, :nocc] -= 2 * einsum('i,aIi,Ja->IJ', L1, R2, t2_ce, optimize = einsum_type)
951
+ rdm1[:nocc, :nocc] += einsum('i,aiI,Ja->IJ', L1, R2, t2_ce, optimize = einsum_type)
952
+
953
+ ### 120 ###
954
+ rdm1[:nocc, :nocc] -= 2 * einsum('aJi,i,Ia->IJ', L2, R1, t2_ce, optimize = einsum_type)
955
+ rdm1[:nocc, :nocc] += einsum('aiJ,i,Ia->IJ', L2, R1, t2_ce, optimize = einsum_type)
956
+
957
+ #----------------------------------------------------------------------------------------------------------#
958
+
959
+ ############# block- ab
960
+ ### 030 ###
961
+ rdm1[nocc:, nocc:] += 2 * einsum('i,i,jkAa,jkBa->AB', L1,
962
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
963
+ rdm1[nocc:, nocc:] -= einsum('i,i,jkAa,kjBa->AB', L1, R1,
964
+ t1_ccee, t2_ccee, optimize = einsum_type)
965
+ rdm1[nocc:, nocc:] += 2 * einsum('i,i,jkBa,jkAa->AB', L1,
966
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
967
+ rdm1[nocc:, nocc:] -= einsum('i,i,jkBa,kjAa->AB', L1, R1,
968
+ t1_ccee, t2_ccee, optimize = einsum_type)
969
+ rdm1[nocc:, nocc:] -= 2 * einsum('i,j,ikBa,jkAa->AB', L1,
970
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
971
+ rdm1[nocc:, nocc:] += einsum('i,j,ikBa,kjAa->AB', L1, R1,
972
+ t1_ccee, t2_ccee, optimize = einsum_type)
973
+ rdm1[nocc:, nocc:] -= 2 * einsum('i,j,jkAa,ikBa->AB', L1,
974
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
975
+ rdm1[nocc:, nocc:] += einsum('i,j,jkAa,kiBa->AB', L1, R1,
976
+ t1_ccee, t2_ccee, optimize = einsum_type)
977
+ rdm1[nocc:, nocc:] += einsum('i,j,kiBa,jkAa->AB', L1, R1,
978
+ t1_ccee, t2_ccee, optimize = einsum_type)
979
+ rdm1[nocc:, nocc:] -= einsum('i,j,kiBa,kjAa->AB', L1, R1,
980
+ t1_ccee, t2_ccee, optimize = einsum_type)
981
+ rdm1[nocc:, nocc:] += einsum('i,j,kjAa,ikBa->AB', L1, R1,
982
+ t1_ccee, t2_ccee, optimize = einsum_type)
983
+ rdm1[nocc:, nocc:] -= einsum('i,j,kjAa,kiBa->AB', L1, R1,
984
+ t1_ccee, t2_ccee, optimize = einsum_type)
985
+
986
+ rdm1[nocc:, nocc:] += 2 * einsum('i,i,jkAa,jkBa->AB', L1,
987
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
988
+ rdm1[nocc:, nocc:] -= einsum('i,i,jkAa,kjBa->AB', L1, R1,
989
+ t1_ccee, t2_ccee, optimize = einsum_type)
990
+ rdm1[nocc:, nocc:] += 2 * einsum('i,i,jkBa,jkAa->AB', L1,
991
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
992
+ rdm1[nocc:, nocc:] -= einsum('i,i,jkBa,kjAa->AB', L1, R1,
993
+ t1_ccee, t2_ccee, optimize = einsum_type)
994
+ rdm1[nocc:, nocc:] -= einsum('i,j,kiBa,kjAa->AB', L1, R1,
995
+ t1_ccee, t2_ccee, optimize = einsum_type)
996
+ rdm1[nocc:, nocc:] -= einsum('i,j,kjAa,kiBa->AB', L1, R1,
997
+ t1_ccee, t2_ccee, optimize = einsum_type)
998
+
999
+ ### 021 ###
1000
+ rdm1[nocc:, nocc:] -= einsum('i,Bij,jA->AB', L1, R2, t2_ce, optimize = einsum_type)
1001
+ rdm1[nocc:, nocc:] += 2 * einsum('i,Bji,jA->AB', L1, R2, t2_ce, optimize = einsum_type)
1002
+
1003
+ ### 120 ###
1004
+ rdm1[nocc:, nocc:] -= einsum('Aij,i,jB->AB', L2, R1, t2_ce, optimize = einsum_type)
1005
+ rdm1[nocc:, nocc:] += 2 * einsum('Aij,j,iB->AB', L2, R1, t2_ce, optimize = einsum_type)
1006
+
1007
+ #----------------------------------------------------------------------------------------------------------#
1008
+ ############# block- ia
1009
+ ### 030 ###
1010
+ rdm1[:nocc, nocc:] -= einsum('i,I,iA->IA', L1, R1, t3, optimize = einsum_type)
1011
+ rdm1[:nocc, nocc:] += einsum('i,i,IA->IA', L1, R1, t3, optimize = einsum_type)
1012
+ rdm1[:nocc, nocc:] -= einsum('i,I,ijAa,ja->IA', L1, R1, t1_ccee,
1013
+ t2_ce, optimize = einsum_type)
1014
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,I,jiAa,ja->IA', L1,
1015
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1016
+ rdm1[:nocc, nocc:] += einsum('i,i,IjAa,ja->IA', L1, R1, t1_ccee,
1017
+ t2_ce, optimize = einsum_type)
1018
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,i,jIAa,ja->IA', L1,
1019
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1020
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,j,IiAa,ja->IA', L1,
1021
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1022
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,j,iIAa,ja->IA', L1,
1023
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1024
+
1025
+ rdm1[:nocc, nocc:] += einsum('i,i,IA->IA', L1, R1, t3, optimize = einsum_type)
1026
+ rdm1[:nocc, nocc:] += einsum('i,i,IjAa,ja->IA', L1, R1, t1_ccee,
1027
+ t2_ce, optimize = einsum_type)
1028
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,i,jIAa,ja->IA', L1,
1029
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1030
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,j,IiAa,ja->IA', L1,
1031
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1032
+
1033
+ ### 021 ###
1034
+ rdm1[:nocc, nocc:] -= einsum('i,ajI,ikAb,jkab->IA', L1, R2,
1035
+ t1_ccee, t1_ccee, optimize = einsum_type)
1036
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajI,ikAb,kjab->IA',
1037
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1038
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajI,kiAb,jkab->IA',
1039
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1040
+ rdm1[:nocc, nocc:] += einsum('i,aji,jkab,IkAb->IA', L1, R2,
1041
+ t1_ccee, t1_ccee, optimize = einsum_type)
1042
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,jkab,kIAb->IA',
1043
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1044
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,kjab,IkAb->IA',
1045
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1046
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,ajk,IiAb,jkab->IA',
1047
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1048
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajk,iIAb,jkab->IA',
1049
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1050
+
1051
+ rdm1[:nocc, nocc:] += einsum('i,Aij,jkab,Ikab->IA', L1, R2,
1052
+ t1_ccee, t1_ccee, optimize = einsum_type)
1053
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,Aij,jkab,Ikba->IA',
1054
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1055
+ rdm1[:nocc, nocc:] -= einsum('i,Aji,jkab,Ikab->IA', L1, R2,
1056
+ t1_ccee, t1_ccee, optimize = einsum_type)
1057
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,Aji,jkab,Ikba->IA',
1058
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1059
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,Ajk,Iiab,jkab->IA',
1060
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1061
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,Ajk,Iiab,jkba->IA',
1062
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1063
+ rdm1[:nocc, nocc:] -= einsum('i,aIi,jkab,jkAb->IA', L1, R2,
1064
+ t1_ccee, t1_ccee, optimize = einsum_type)
1065
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aIi,jkab,kjAb->IA',
1066
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1067
+ rdm1[:nocc, nocc:] += einsum('i,aIj,ikAb,jkab->IA', L1, R2,
1068
+ t1_ccee, t1_ccee, optimize = einsum_type)
1069
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aIj,ikAb,kjab->IA',
1070
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1071
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aIj,kiAb,jkab->IA',
1072
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1073
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aIj,kiAb,kjab->IA',
1074
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1075
+ rdm1[:nocc, nocc:] += einsum('i,aiI,jkab,jkAb->IA', L1, R2,
1076
+ t1_ccee, t1_ccee, optimize = einsum_type)
1077
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aiI,jkab,kjAb->IA',
1078
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1079
+ rdm1[:nocc, nocc:] -= einsum('i,aij,jkab,IkAb->IA', L1, R2,
1080
+ t1_ccee, t1_ccee, optimize = einsum_type)
1081
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aij,jkab,kIAb->IA',
1082
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1083
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aij,kjab,IkAb->IA',
1084
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1085
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aij,kjab,kIAb->IA',
1086
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1087
+ rdm1[:nocc, nocc:] -= einsum('i,ajI,ikAb,jkab->IA', L1, R2,
1088
+ t1_ccee, t1_ccee, optimize = einsum_type)
1089
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajI,ikAb,kjab->IA',
1090
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1091
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajI,kiAb,jkab->IA',
1092
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1093
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,ajI,kiAb,kjab->IA',
1094
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1095
+ rdm1[:nocc, nocc:] += einsum('i,aji,jkab,IkAb->IA', L1, R2,
1096
+ t1_ccee, t1_ccee, optimize = einsum_type)
1097
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,jkab,kIAb->IA',
1098
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1099
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,kjab,IkAb->IA',
1100
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1101
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aji,kjab,kIAb->IA',
1102
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1103
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,ajk,IiAb,jkab->IA',
1104
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1105
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajk,IiAb,kjab->IA',
1106
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1107
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajk,iIAb,jkab->IA',
1108
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1109
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,ajk,iIAb,kjab->IA',
1110
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1111
+
1112
+ rdm1[:nocc, nocc:] -= einsum('i,Aji,jkab,Ikab->IA', L1, R2,
1113
+ t1_ccee, t1_ccee, optimize = einsum_type)
1114
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,Aji,jkab,Ikba->IA',
1115
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1116
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,Ajk,Iiab,jkab->IA',
1117
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1118
+ rdm1[:nocc, nocc:] -= einsum('i,aIi,jkab,jkAb->IA', L1, R2,
1119
+ t1_ccee, t1_ccee, optimize = einsum_type)
1120
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aIi,jkab,kjAb->IA',
1121
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1122
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aIj,kiAb,kjab->IA',
1123
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1124
+ rdm1[:nocc, nocc:] += einsum('i,aji,jkab,IkAb->IA', L1, R2,
1125
+ t1_ccee, t1_ccee, optimize = einsum_type)
1126
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,jkab,kIAb->IA',
1127
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1128
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,kjab,IkAb->IA',
1129
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1130
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aji,kjab,kIAb->IA',
1131
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1132
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,ajk,IiAb,jkab->IA',
1133
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1134
+
1135
+ rdm1[:nocc, nocc:] -= einsum('i,aij,jkab,IkAb->IA', L1, R2,
1136
+ t1_ccee, t1_ccee, optimize = einsum_type)
1137
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aij,jkab,kIAb->IA',
1138
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1139
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,aij,kjab,IkAb->IA',
1140
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1141
+ rdm1[:nocc, nocc:] += einsum('i,aji,jkab,IkAb->IA', L1, R2,
1142
+ t1_ccee, t1_ccee, optimize = einsum_type)
1143
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,jkab,kIAb->IA',
1144
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1145
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,aji,kjab,IkAb->IA',
1146
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1147
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('i,ajk,IiAb,jkab->IA',
1148
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1149
+ rdm1[:nocc, nocc:] += 1/2 * einsum('i,ajk,IiAb,kjab->IA',
1150
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1151
+
1152
+ ### 120 ###
1153
+ rdm1[:nocc, nocc:] += einsum('aij,I,ijAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1154
+ rdm1[:nocc, nocc:] -= 2 * einsum('aij,I,jiAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1155
+ rdm1[:nocc, nocc:] -= 2 * einsum('aij,i,IjAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1156
+ rdm1[:nocc, nocc:] += einsum('aij,i,jIAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1157
+ rdm1[:nocc, nocc:] += 4 * einsum('aij,j,IiAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1158
+ rdm1[:nocc, nocc:] -= 2 * einsum('aij,j,iIAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1159
+ #----------------------------------------------------------------------------------------------------------#
1160
+ ############# block- ai
1161
+ ### 030 ###
1162
+ rdm1[nocc:, :nocc] -= einsum('I,i,iA->AI', L1, R1, t3, optimize = einsum_type)
1163
+ rdm1[nocc:, :nocc] += einsum('i,i,IA->AI', L1, R1, t3, optimize = einsum_type)
1164
+ rdm1[nocc:, :nocc] -= einsum('I,i,ijAa,ja->AI', L1, R1, t1_ccee,
1165
+ t2_ce, optimize = einsum_type)
1166
+ rdm1[nocc:, :nocc] += 1/2 * einsum('I,i,jiAa,ja->AI', L1,
1167
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1168
+ rdm1[nocc:, :nocc] += einsum('i,i,IjAa,ja->AI', L1, R1, t1_ccee,
1169
+ t2_ce, optimize = einsum_type)
1170
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('i,i,jIAa,ja->AI', L1,
1171
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1172
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('i,j,IjAa,ia->AI', L1,
1173
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1174
+ rdm1[nocc:, :nocc] += 1/2 * einsum('i,j,jIAa,ia->AI', L1,
1175
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1176
+
1177
+ rdm1[nocc:, :nocc] += einsum('i,i,IA->AI', L1, R1, t3, optimize = einsum_type)
1178
+ rdm1[nocc:, :nocc] += einsum('i,i,IjAa,ja->AI', L1, R1, t1_ccee,
1179
+ t2_ce, optimize = einsum_type)
1180
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('i,i,jIAa,ja->AI', L1,
1181
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1182
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('i,j,IjAa,ia->AI', L1,
1183
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1184
+
1185
+ ### 021 ###
1186
+ rdm1[nocc:, :nocc] += einsum('I,aij,ijAa->AI', L1, R2, t2_ccee, optimize = einsum_type)
1187
+ rdm1[nocc:, :nocc] -= 2 * einsum('I,aij,jiAa->AI', L1, R2, t2_ccee, optimize = einsum_type)
1188
+ rdm1[nocc:, :nocc] -= 2 * einsum('i,aij,IjAa->AI', L1, R2, t2_ccee, optimize = einsum_type)
1189
+ rdm1[nocc:, :nocc] += einsum('i,aij,jIAa->AI', L1, R2, t2_ccee, optimize = einsum_type)
1190
+ rdm1[nocc:, :nocc] += 4 * einsum('i,aji,IjAa->AI', L1, R2, t2_ccee, optimize = einsum_type)
1191
+ rdm1[nocc:, :nocc] -= 2 * einsum('i,aji,jIAa->AI', L1, R2, t2_ccee, optimize = einsum_type)
1192
+
1193
+ ### 120 ###
1194
+ rdm1[nocc:, :nocc] -= einsum('aiI,j,ikab,jkAb->AI', L2, R1,
1195
+ t1_ccee, t1_ccee, optimize = einsum_type)
1196
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aiI,j,ikab,kjAb->AI',
1197
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1198
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aiI,j,kiab,jkAb->AI',
1199
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1200
+ rdm1[nocc:, :nocc] += einsum('aij,j,ikab,IkAb->AI', L2, R1,
1201
+ t1_ccee, t1_ccee, optimize = einsum_type)
1202
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,ikab,kIAb->AI',
1203
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1204
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,kiab,IkAb->AI',
1205
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1206
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,k,ijab,IkAb->AI',
1207
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1208
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,k,ijab,kIAb->AI',
1209
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1210
+
1211
+ rdm1[nocc:, :nocc] += einsum('Aij,i,jkab,Ikab->AI', L2, R1,
1212
+ t1_ccee, t1_ccee, optimize = einsum_type)
1213
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('Aij,i,jkab,Ikba->AI',
1214
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1215
+ rdm1[nocc:, :nocc] -= einsum('Aij,j,ikab,Ikab->AI', L2, R1,
1216
+ t1_ccee, t1_ccee, optimize = einsum_type)
1217
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Aij,j,ikab,Ikba->AI',
1218
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1219
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Aij,k,ijab,Ikab->AI',
1220
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1221
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('Aij,k,ijab,Ikba->AI',
1222
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1223
+ rdm1[nocc:, :nocc] -= einsum('aIi,i,jkab,jkAb->AI', L2, R1,
1224
+ t1_ccee, t1_ccee, optimize = einsum_type)
1225
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aIi,i,jkab,kjAb->AI',
1226
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1227
+ rdm1[nocc:, :nocc] += einsum('aIi,j,ikab,jkAb->AI', L2, R1,
1228
+ t1_ccee, t1_ccee, optimize = einsum_type)
1229
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aIi,j,ikab,kjAb->AI',
1230
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1231
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aIi,j,kiab,jkAb->AI',
1232
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1233
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aIi,j,kiab,kjAb->AI',
1234
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1235
+ rdm1[nocc:, :nocc] += einsum('aiI,i,jkab,jkAb->AI', L2, R1,
1236
+ t1_ccee, t1_ccee, optimize = einsum_type)
1237
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aiI,i,jkab,kjAb->AI',
1238
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1239
+ rdm1[nocc:, :nocc] -= einsum('aiI,j,ikab,jkAb->AI', L2, R1,
1240
+ t1_ccee, t1_ccee, optimize = einsum_type)
1241
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aiI,j,ikab,kjAb->AI',
1242
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1243
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aiI,j,kiab,jkAb->AI',
1244
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1245
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aiI,j,kiab,kjAb->AI',
1246
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1247
+ rdm1[nocc:, :nocc] -= einsum('aij,i,jkab,IkAb->AI', L2, R1,
1248
+ t1_ccee, t1_ccee, optimize = einsum_type)
1249
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,i,jkab,kIAb->AI',
1250
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1251
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,i,kjab,IkAb->AI',
1252
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1253
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,i,kjab,kIAb->AI',
1254
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1255
+ rdm1[nocc:, :nocc] += einsum('aij,j,ikab,IkAb->AI', L2, R1,
1256
+ t1_ccee, t1_ccee, optimize = einsum_type)
1257
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,ikab,kIAb->AI',
1258
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1259
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,kiab,IkAb->AI',
1260
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1261
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,j,kiab,kIAb->AI',
1262
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1263
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,k,ijab,IkAb->AI',
1264
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1265
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,k,ijab,kIAb->AI',
1266
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1267
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,k,jiab,IkAb->AI',
1268
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1269
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,k,jiab,kIAb->AI',
1270
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1271
+
1272
+ rdm1[nocc:, :nocc] -= einsum('Aij,j,ikab,Ikab->AI', L2, R1,
1273
+ t1_ccee, t1_ccee, optimize = einsum_type)
1274
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Aij,j,ikab,Ikba->AI',
1275
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1276
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Aij,k,ijab,Ikab->AI',
1277
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1278
+ rdm1[nocc:, :nocc] -= einsum('aIi,i,jkab,jkAb->AI', L2, R1,
1279
+ t1_ccee, t1_ccee, optimize = einsum_type)
1280
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aIi,i,jkab,kjAb->AI',
1281
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1282
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aIi,j,kiab,kjAb->AI',
1283
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1284
+ rdm1[nocc:, :nocc] += einsum('aij,j,ikab,IkAb->AI', L2, R1,
1285
+ t1_ccee, t1_ccee, optimize = einsum_type)
1286
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,ikab,kIAb->AI',
1287
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1288
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,kiab,IkAb->AI',
1289
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1290
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,j,kiab,kIAb->AI',
1291
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1292
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,k,ijab,IkAb->AI',
1293
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1294
+
1295
+ rdm1[nocc:, :nocc] -= einsum('aij,i,jkab,IkAb->AI', L2, R1,
1296
+ t1_ccee, t1_ccee, optimize = einsum_type)
1297
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,i,jkab,kIAb->AI',
1298
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1299
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,i,kjab,IkAb->AI',
1300
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1301
+ rdm1[nocc:, :nocc] += einsum('aij,j,ikab,IkAb->AI', L2, R1,
1302
+ t1_ccee, t1_ccee, optimize = einsum_type)
1303
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,ikab,kIAb->AI',
1304
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1305
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,j,kiab,IkAb->AI',
1306
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1307
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('aij,k,ijab,IkAb->AI',
1308
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1309
+ rdm1[nocc:, :nocc] += 1/2 * einsum('aij,k,jiab,IkAb->AI',
1310
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1311
+
884
1312
  return rdm1
885
1313
 
1314
+
886
1315
  class RADCIP(radc.RADC):
887
1316
  '''restricted ADC for IP energies and spectroscopic amplitudes
888
1317
 
@@ -956,23 +1385,26 @@ class RADCIP(radc.RADC):
956
1385
  self.with_df = adc.with_df
957
1386
  self.compute_properties = adc.compute_properties
958
1387
  self.approx_trans_moments = adc.approx_trans_moments
959
- self.E = None
960
- self.U = None
961
- self.P = None
962
- self.X = None
1388
+
963
1389
  self.evec_print_tol = adc.evec_print_tol
964
1390
  self.spec_factor_print_tol = adc.spec_factor_print_tol
965
1391
 
1392
+ self.E = adc.E
1393
+ self.U = adc.U
1394
+ self.P = adc.P
1395
+ self.X = adc.X
1396
+
966
1397
  kernel = radc.kernel
967
1398
  get_imds = get_imds
968
1399
  get_diag = get_diag
969
1400
  matvec = matvec
970
1401
  get_trans_moments = get_trans_moments
971
- renormalize_eigenvectors = renormalize_eigenvectors
972
1402
  get_properties = get_properties
1403
+
1404
+ renormalize_eigenvectors = renormalize_eigenvectors
1405
+ analyze = analyze
973
1406
  analyze_spec_factor = analyze_spec_factor
974
1407
  analyze_eigenvector = analyze_eigenvector
975
- analyze = analyze
976
1408
  compute_dyson_mo = compute_dyson_mo
977
1409
  make_rdm1 = make_rdm1
978
1410
 
pyscf/adc/radc_ip_cvs.py CHANGED
@@ -12,9 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  #
15
- # Author: Abdelrahman Ahmed <abdelrahman.maa.ahmed@gmail.com>
15
+ # Author: Abdelrahman Ahmed <>
16
+ # Samragni Banerjee <samragnibanerjee4@gmail.com>
17
+ # James Serna <jamcar456@gmail.com>
18
+ # Terrence Stahl <>
16
19
  # Alexander Sokolov <alexander.y.sokolov@gmail.com>
17
- #
18
20
 
19
21
  '''
20
22
  Restricted algebraic diagrammatic construction