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_ea.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
@@ -912,6 +914,516 @@ def analyze(myadc):
912
914
 
913
915
  myadc.analyze_spec_factor()
914
916
 
917
+ def make_rdm1(adc):
918
+
919
+ cput0 = (logger.process_clock(), logger.perf_counter())
920
+ log = logger.Logger(adc.stdout, adc.verbose)
921
+
922
+ nroots = adc.U.shape[1]
923
+ U = adc.renormalize_eigenvectors(nroots)
924
+
925
+ list_rdm1 = []
926
+
927
+ for i in range(U.shape[1]):
928
+ rdm1 = make_rdm1_eigenvectors(adc, U[:,i], U[:,i])
929
+ list_rdm1.append(rdm1)
930
+
931
+ cput0 = log.timer_debug1("completed OPDM calculation", *cput0)
932
+ return list_rdm1
933
+
934
+ def make_rdm1_eigenvectors(adc, L, R):
935
+ # Using SQA EA
936
+ L = np.array(L).ravel()
937
+ R = np.array(R).ravel()
938
+
939
+ t1_ccee = adc.t2[0][:]
940
+ t2_ce = adc.t1[0][:]
941
+
942
+ nocc = adc._nocc
943
+ nvir = adc._nvir
944
+ nmo = nocc + nvir
945
+ n_singles = nvir
946
+ n_doubles = nvir * nvir * nocc
947
+
948
+ s1 = 0
949
+ f1 = n_singles
950
+ s2 = f1
951
+ f2 = s2 + n_doubles
952
+
953
+ rdm1 = np.zeros((nmo,nmo))
954
+ kd_oc = np.identity(nocc)
955
+
956
+ L1 = L[s1:f1]
957
+ L2 = L[s2:f2]
958
+ R1 = R[s1:f1]
959
+ R2 = R[s2:f2]
960
+
961
+ L2 = L2.reshape(nocc,nvir,nvir)
962
+ R2 = R2.reshape(nocc,nvir,nvir)
963
+
964
+ einsum = lib.einsum
965
+ einsum_type = True
966
+
967
+ ############# block- ij
968
+ ### 000 ###
969
+ rdm1[:nocc, :nocc] += 2 * einsum('a,a,IJ->IJ', L1, R1, kd_oc, optimize = einsum_type)
970
+
971
+ ### 101 ###
972
+ rdm1[:nocc, :nocc] -= 2 * einsum('Jab,Iab->IJ', L2, R2, optimize = einsum_type)
973
+ rdm1[:nocc, :nocc] += 1 * einsum('Jab,Iba->IJ', L2, R2, optimize = einsum_type)
974
+ rdm1[:nocc, :nocc] += 4 * einsum('iab,iab,IJ->IJ', L2, R2, kd_oc, optimize = einsum_type)
975
+ rdm1[:nocc, :nocc] -= 2 * einsum('iab,iba,IJ->IJ', L2, R2, kd_oc, optimize = einsum_type)
976
+
977
+ ### 020 ###
978
+ rdm1[:nocc, :nocc] -= 2 * einsum('a,a,Iibc,Jibc->IJ', L1, R1,
979
+ t1_ccee, t1_ccee, optimize = einsum_type)
980
+ rdm1[:nocc, :nocc] += einsum('a,a,Iibc,Jicb->IJ', L1, R1, t1_ccee,
981
+ t1_ccee, optimize = einsum_type)
982
+ rdm1[:nocc, :nocc] += 2 * einsum('a,b,Iiac,Jibc->IJ', L1, R1,
983
+ t1_ccee, t1_ccee, optimize = einsum_type)
984
+ rdm1[:nocc, :nocc] -= einsum('a,b,Iiac,Jicb->IJ', L1, R1, t1_ccee,
985
+ t1_ccee, optimize = einsum_type)
986
+ rdm1[:nocc, :nocc] -= einsum('a,b,Iica,Jibc->IJ', L1, R1, t1_ccee,
987
+ t1_ccee, optimize = einsum_type)
988
+ rdm1[:nocc, :nocc] += einsum('a,b,Iica,Jicb->IJ', L1, R1, t1_ccee,
989
+ t1_ccee, optimize = einsum_type)
990
+ rdm1[:nocc, :nocc] -= 2 * einsum('a,a,Iibc,Jibc->IJ', L1, R1,
991
+ t1_ccee, t1_ccee, optimize = einsum_type)
992
+ rdm1[:nocc, :nocc] += einsum('a,a,Iibc,Jicb->IJ', L1, R1, t1_ccee,
993
+ t1_ccee, optimize = einsum_type)
994
+ rdm1[:nocc, :nocc] += einsum('a,b,Iica,Jicb->IJ', L1, R1, t1_ccee,
995
+ t1_ccee, optimize = einsum_type)
996
+
997
+ ############# block- ab
998
+ ### 000 ###
999
+ rdm1[nocc:, nocc:] += einsum('B,A->AB', L1, R1, optimize = einsum_type)
1000
+
1001
+ ### 020 ###
1002
+ rdm1[nocc:, nocc:] -= einsum('A,a,ijab,ijBb->AB', L1, R1, t1_ccee,
1003
+ t1_ccee, optimize = einsum_type)
1004
+ rdm1[nocc:, nocc:] += 1/2 * einsum('A,a,ijab,jiBb->AB', L1,
1005
+ R1, t1_ccee, t1_ccee, optimize = einsum_type)
1006
+ rdm1[nocc:, nocc:] -= einsum('a,B,ijab,ijAb->AB', L1, R1, t1_ccee,
1007
+ t1_ccee, optimize = einsum_type)
1008
+ rdm1[nocc:, nocc:] += 1/2 * einsum('a,B,ijab,jiAb->AB', L1,
1009
+ R1, t1_ccee, t1_ccee, optimize = einsum_type)
1010
+ rdm1[nocc:, nocc:] += 2 * einsum('a,a,ijAb,ijBb->AB', L1, R1,
1011
+ t1_ccee, t1_ccee, optimize = einsum_type)
1012
+ rdm1[nocc:, nocc:] -= einsum('a,a,ijAb,jiBb->AB', L1, R1, t1_ccee,
1013
+ t1_ccee, optimize = einsum_type)
1014
+ rdm1[nocc:, nocc:] -= einsum('a,b,ijBa,ijAb->AB', L1, R1, t1_ccee,
1015
+ t1_ccee, optimize = einsum_type)
1016
+ rdm1[nocc:, nocc:] += einsum('a,b,ijBa,jiAb->AB', L1, R1, t1_ccee,
1017
+ t1_ccee, optimize = einsum_type)
1018
+ rdm1[nocc:, nocc:] += 2 * einsum('a,a,ijAb,ijBb->AB', L1, R1,
1019
+ t1_ccee, t1_ccee, optimize = einsum_type)
1020
+ rdm1[nocc:, nocc:] -= einsum('a,a,ijAb,jiBb->AB', L1, R1, t1_ccee,
1021
+ t1_ccee, optimize = einsum_type)
1022
+ rdm1[nocc:, nocc:] -= einsum('a,b,ijBa,ijAb->AB', L1, R1, t1_ccee,
1023
+ t1_ccee, optimize = einsum_type)
1024
+
1025
+ ### 101 ###
1026
+ rdm1[nocc:, nocc:] += 2 * einsum('iAa,iBa->AB', R2, R2, optimize = einsum_type)
1027
+ rdm1[nocc:, nocc:] -= einsum('iAa,iaB->AB', R2, R2, optimize = einsum_type)
1028
+ rdm1[nocc:, nocc:] -= einsum('iaA,iBa->AB', L2, R2, optimize = einsum_type)
1029
+ rdm1[nocc:, nocc:] += 2 * einsum('iaA,iaB->AB', L2, R2, optimize = einsum_type)
1030
+
1031
+ ############# block- ai
1032
+ # 020 #
1033
+ rdm1[nocc:, :nocc] -= einsum('a,A,Ia->AI', L1, R1, t2_ce, optimize = einsum_type)
1034
+ rdm1[nocc:, :nocc] += 2 * einsum('a,a,IA->AI', L1, R1, t2_ce, optimize = einsum_type)
1035
+
1036
+ # 011 #
1037
+ rdm1[nocc:, :nocc] -= 2 * einsum('A,iab,Iiab->AI', L1, R2, t1_ccee, optimize = einsum_type)
1038
+ rdm1[nocc:, :nocc] += einsum('A,iab,Iiba->AI', L1, R2, t1_ccee, optimize = einsum_type)
1039
+ rdm1[nocc:, :nocc] += 2 * einsum('a,iab,IiAb->AI', L1, R2, t1_ccee, optimize = einsum_type)
1040
+ rdm1[nocc:, :nocc] -= einsum('a,iab,iIAb->AI', L1, R2, t1_ccee, optimize = einsum_type)
1041
+ rdm1[nocc:, :nocc] -= 2 * einsum('a,iba,IiAb->AI', L1, R2, t1_ccee, optimize = einsum_type)
1042
+ rdm1[nocc:, :nocc] += einsum('a,iba,iIAb->AI', L1, R2, t1_ccee, optimize = einsum_type)
1043
+ rdm1[nocc:, :nocc] += 2 * einsum('a,iab,IiAb->AI', L1, R2, t1_ccee, optimize = einsum_type)
1044
+ rdm1[nocc:, :nocc] -= einsum('a,iab,iIAb->AI', L1, R2, t1_ccee, optimize = einsum_type)
1045
+
1046
+ # 110 #
1047
+ rdm1[nocc:, :nocc] -= einsum('IAa,a->AI',L2, R1, optimize = einsum_type)
1048
+ rdm1[nocc:, :nocc] += 2 * einsum('IaA,a->AI',L2, R1, optimize = einsum_type)
1049
+
1050
+ ############# block- ia
1051
+ rdm1[:nocc, nocc:] = rdm1[nocc:, :nocc].T
1052
+
1053
+ ####### ADC(3) SPIN ADAPTED EXCITED STATE OPDM WITH SQA ################
1054
+ if adc.method == "adc(3)":
1055
+ ### Redudant Variables used for names from SQA
1056
+ einsum_type = True
1057
+ t3_ce = adc.t1[1][:]
1058
+ t2_ccee = adc.t2[1][:]
1059
+
1060
+ ############# block- ij
1061
+ # 120 #
1062
+ rdm1[:nocc, :nocc] -= 2 * einsum('Jab,a,Ib->IJ', L2, R1, t2_ce, optimize = einsum_type)
1063
+ rdm1[:nocc, :nocc] += einsum('Jab,b,Ia->IJ', L2, R1, t2_ce, optimize = einsum_type)
1064
+
1065
+ # 021 #
1066
+ rdm1[:nocc, :nocc] -= 2 * einsum('a,Iab,Jb->IJ', L1, R2, t2_ce, optimize = einsum_type)
1067
+ rdm1[:nocc, :nocc] += einsum('a,Iba,Jb->IJ', L1, R2, t2_ce, optimize = einsum_type)
1068
+
1069
+ # 030 #
1070
+ rdm1[:nocc, :nocc] -= 4 * einsum('a,a,Iibc,Jibc->IJ', L1,
1071
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1072
+ rdm1[:nocc, :nocc] += 2 * einsum('a,a,Iibc,Jicb->IJ', L1,
1073
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1074
+ rdm1[:nocc, :nocc] -= 4 * einsum('a,a,Jibc,Iibc->IJ', L1,
1075
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1076
+ rdm1[:nocc, :nocc] += 2 * einsum('a,a,Jibc,Iicb->IJ', L1,
1077
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1078
+ rdm1[:nocc, :nocc] += 2 * einsum('a,b,Iibc,Jiac->IJ', L1,
1079
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1080
+ rdm1[:nocc, :nocc] -= einsum('a,b,Iibc,Jica->IJ', L1, R1,
1081
+ t1_ccee, t2_ccee, optimize = einsum_type)
1082
+ rdm1[:nocc, :nocc] -= einsum('a,b,Iicb,Jiac->IJ', L1, R1,
1083
+ t1_ccee, t2_ccee, optimize = einsum_type)
1084
+ rdm1[:nocc, :nocc] += 2 * einsum('a,b,Iicb,Jica->IJ', L1,
1085
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1086
+ rdm1[:nocc, :nocc] += 2 * einsum('a,b,Jiac,Iibc->IJ', L1,
1087
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1088
+ rdm1[:nocc, :nocc] -= einsum('a,b,Jiac,Iicb->IJ', L1, R1,
1089
+ t1_ccee, t2_ccee, optimize = einsum_type)
1090
+ rdm1[:nocc, :nocc] -= einsum('a,b,Jica,Iibc->IJ', L1, R1,
1091
+ t1_ccee, t2_ccee, optimize = einsum_type)
1092
+ rdm1[:nocc, :nocc] += 2 * einsum('a,b,Jica,Iicb->IJ', L1,
1093
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1094
+
1095
+ ############# block- ab
1096
+ # 120 #
1097
+ rdm1[nocc:, nocc:] -= einsum('iAa,a,iB->AB', L2, R1, t2_ce, optimize = einsum_type)
1098
+ rdm1[nocc:, nocc:] += 2 * einsum('iaA,a,iB->AB', L2, R1, t2_ce, optimize = einsum_type)
1099
+
1100
+ # 021 #
1101
+ rdm1[nocc:, nocc:] += 2 * einsum('a,iaB,iA->AB', L1, R2, t2_ce, optimize = einsum_type)
1102
+ rdm1[nocc:, nocc:] -= einsum('a,iBa,iA->AB', L1, R2, t2_ce, optimize = einsum_type)
1103
+
1104
+ # 030 #
1105
+ rdm1[nocc:, nocc:] -= einsum('B,a,ijAb,ijab->AB', L1, R1,
1106
+ t1_ccee, t2_ccee, optimize = einsum_type)
1107
+ rdm1[nocc:, nocc:] += 1/2 * einsum('B,a,ijAb,jiab->AB',
1108
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
1109
+ rdm1[nocc:, nocc:] -= einsum('B,a,ijab,ijAb->AB', L1, R1,
1110
+ t1_ccee, t2_ccee, optimize = einsum_type)
1111
+ rdm1[nocc:, nocc:] += 1/2 * einsum('B,a,ijab,jiAb->AB',
1112
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
1113
+ rdm1[nocc:, nocc:] -= einsum('a,A,ijBb,ijab->AB', L1, R1,
1114
+ t1_ccee, t2_ccee, optimize = einsum_type)
1115
+ rdm1[nocc:, nocc:] += 1/2 * einsum('a,A,ijBb,jiab->AB',
1116
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
1117
+ rdm1[nocc:, nocc:] -= einsum('a,A,ijab,ijBb->AB', L1, R1,
1118
+ t1_ccee, t2_ccee, optimize = einsum_type)
1119
+ rdm1[nocc:, nocc:] += 1/2 * einsum('a,A,ijab,jiBb->AB',
1120
+ L1, R1, t1_ccee, t2_ccee, optimize = einsum_type)
1121
+ rdm1[nocc:, nocc:] += 4 * einsum('a,a,ijAb,ijBb->AB', L1,
1122
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1123
+ rdm1[nocc:, nocc:] -= 2 * einsum('a,a,ijAb,jiBb->AB', L1,
1124
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1125
+ rdm1[nocc:, nocc:] += 4 * einsum('a,a,ijBb,ijAb->AB', L1,
1126
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1127
+ rdm1[nocc:, nocc:] -= 2 * einsum('a,a,ijBb,jiAb->AB', L1,
1128
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1129
+ rdm1[nocc:, nocc:] -= 2 * einsum('a,b,ijAa,ijBb->AB', L1,
1130
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1131
+ rdm1[nocc:, nocc:] += einsum('a,b,ijAa,jiBb->AB', L1, R1,
1132
+ t1_ccee, t2_ccee, optimize = einsum_type)
1133
+ rdm1[nocc:, nocc:] -= 2 * einsum('a,b,ijBb,ijAa->AB', L1,
1134
+ R1, t1_ccee, t2_ccee, optimize = einsum_type)
1135
+ rdm1[nocc:, nocc:] += einsum('a,b,ijBb,jiAa->AB', L1, R1,
1136
+ t1_ccee, t2_ccee, optimize = einsum_type)
1137
+
1138
+ ############# block- ia
1139
+ # 120 #
1140
+ rdm1[:nocc, nocc:] -= 2 * einsum('iab,A,Iiab->IA', L2, R1, t2_ccee, optimize = einsum_type)
1141
+ rdm1[:nocc, nocc:] += einsum('iab,A,Iiba->IA', L2, R1, t2_ccee, optimize = einsum_type)
1142
+ rdm1[:nocc, nocc:] += 4 * einsum('iab,a,IiAb->IA', L2, R1, t2_ccee, optimize = einsum_type)
1143
+ rdm1[:nocc, nocc:] -= 2 * einsum('iab,a,iIAb->IA', L2, R1, t2_ccee, optimize = einsum_type)
1144
+ rdm1[:nocc, nocc:] -= 2 * einsum('iab,b,IiAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1145
+ rdm1[:nocc, nocc:] += einsum('iab,b,iIAa->IA', L2, R1, t2_ccee, optimize = einsum_type)
1146
+
1147
+ # 021 #
1148
+ rdm1[:nocc, nocc:] -= einsum('a,Iab,ijbc,ijAc->IA', L1, R2,
1149
+ t1_ccee, t1_ccee, optimize = einsum_type)
1150
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,Iab,ijbc,jiAc->IA',
1151
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1152
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,Ibc,ijAa,jibc->IA',
1153
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1154
+ rdm1[:nocc, nocc:] -= einsum('a,iaA,ijbc,Ijbc->IA', L1, R2,
1155
+ t1_ccee, t1_ccee, optimize = einsum_type)
1156
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iaA,ijbc,Ijcb->IA',
1157
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1158
+ rdm1[:nocc, nocc:] += einsum('a,iab,ijbc,IjAc->IA', L1, R2,
1159
+ t1_ccee, t1_ccee, optimize = einsum_type)
1160
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijbc,jIAc->IA',
1161
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1162
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijcb,IjAc->IA',
1163
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1164
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iab,ijcb,jIAc->IA',
1165
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1166
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,ibA,Ijca,ijcb->IA',
1167
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1168
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,ibc,IjAa,ijcb->IA',
1169
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1170
+
1171
+ rdm1[:nocc, nocc:] -= einsum('a,Iab,ijbc,ijAc->IA', L1, R2,
1172
+ t1_ccee, t1_ccee, optimize = einsum_type)
1173
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,Iab,ijbc,jiAc->IA',
1174
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1175
+ rdm1[:nocc, nocc:] += einsum('a,Iba,ijbc,ijAc->IA', L1, R2,
1176
+ t1_ccee, t1_ccee, optimize = einsum_type)
1177
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,Iba,ijbc,jiAc->IA',
1178
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1179
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,Ibc,ijAa,ijbc->IA',
1180
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1181
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,Ibc,ijAa,jibc->IA',
1182
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1183
+ rdm1[:nocc, nocc:] += einsum('a,iAa,ijbc,Ijbc->IA', L1, R2,
1184
+ t1_ccee, t1_ccee, optimize = einsum_type)
1185
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iAa,ijbc,Ijcb->IA',
1186
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1187
+ rdm1[:nocc, nocc:] -= einsum('a,iAb,Ijac,ijbc->IA', L1, R2,
1188
+ t1_ccee, t1_ccee, optimize = einsum_type)
1189
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iAb,Ijac,ijcb->IA',
1190
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1191
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iAb,Ijca,ijbc->IA',
1192
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1193
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iAb,Ijca,ijcb->IA',
1194
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1195
+ rdm1[:nocc, nocc:] -= einsum('a,iaA,ijbc,Ijbc->IA', L1, R2,
1196
+ t1_ccee, t1_ccee, optimize = einsum_type)
1197
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iaA,ijbc,Ijcb->IA',
1198
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1199
+ rdm1[:nocc, nocc:] += einsum('a,iab,ijbc,IjAc->IA', L1, R2,
1200
+ t1_ccee, t1_ccee, optimize = einsum_type)
1201
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijbc,jIAc->IA',
1202
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1203
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijcb,IjAc->IA',
1204
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1205
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iab,ijcb,jIAc->IA',
1206
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1207
+ rdm1[:nocc, nocc:] += einsum('a,ibA,Ijac,ijbc->IA', L1, R2,
1208
+ t1_ccee, t1_ccee, optimize = einsum_type)
1209
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,ibA,Ijac,ijcb->IA',
1210
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1211
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,ibA,Ijca,ijbc->IA',
1212
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1213
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,ibA,Ijca,ijcb->IA',
1214
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1215
+ rdm1[:nocc, nocc:] -= einsum('a,iba,ijbc,IjAc->IA', L1, R2,
1216
+ t1_ccee, t1_ccee, optimize = einsum_type)
1217
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iba,ijbc,jIAc->IA',
1218
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1219
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iba,ijcb,IjAc->IA',
1220
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1221
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iba,ijcb,jIAc->IA',
1222
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1223
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,ibc,IjAa,ijbc->IA',
1224
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1225
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,ibc,IjAa,ijcb->IA',
1226
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1227
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,ibc,jIAa,ijbc->IA',
1228
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1229
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,ibc,jIAa,ijcb->IA',
1230
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1231
+
1232
+ rdm1[:nocc, nocc:] += einsum('a,iab,ijbc,IjAc->IA', L1, R2,
1233
+ t1_ccee, t1_ccee, optimize = einsum_type)
1234
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijbc,jIAc->IA',
1235
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1236
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijcb,IjAc->IA',
1237
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1238
+ rdm1[:nocc, nocc:] -= einsum('a,iba,ijbc,IjAc->IA', L1, R2,
1239
+ t1_ccee, t1_ccee, optimize = einsum_type)
1240
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iba,ijbc,jIAc->IA',
1241
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1242
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iba,ijcb,IjAc->IA',
1243
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1244
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,ibc,IjAa,ijbc->IA',
1245
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1246
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,ibc,IjAa,ijcb->IA',
1247
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1248
+
1249
+ rdm1[:nocc, nocc:] -= einsum('a,iAb,Ijac,ijbc->IA', L1, R2,
1250
+ t1_ccee, t1_ccee, optimize = einsum_type)
1251
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iAb,Ijac,ijcb->IA',
1252
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1253
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,iAb,Ijca,ijbc->IA',
1254
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1255
+ rdm1[:nocc, nocc:] += einsum('a,iab,ijbc,IjAc->IA', L1, R2,
1256
+ t1_ccee, t1_ccee, optimize = einsum_type)
1257
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijbc,jIAc->IA',
1258
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1259
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,iab,ijcb,IjAc->IA',
1260
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1261
+ rdm1[:nocc, nocc:] -= 1/2 * einsum('a,ibc,IjAa,ijcb->IA',
1262
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1263
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,ibc,jIAa,ijcb->IA',
1264
+ L1, R2, t1_ccee, t1_ccee, optimize = einsum_type)
1265
+
1266
+ # 030 #
1267
+ rdm1[:nocc, nocc:] -= einsum('A,a,Ia->IA', L1, R1, t3_ce, optimize = einsum_type)
1268
+ rdm1[:nocc, nocc:] += 2 * einsum('a,a,IA->IA', L1, R1, t3_ce, optimize = einsum_type)
1269
+ rdm1[:nocc, nocc:] -= einsum('A,a,Iiab,ib->IA', L1, R1, t1_ccee,
1270
+ t2_ce, optimize = einsum_type)
1271
+ rdm1[:nocc, nocc:] += 1/2 * einsum('A,a,Iiba,ib->IA', L1,
1272
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1273
+ rdm1[:nocc, nocc:] += 2 * einsum('a,a,IiAb,ib->IA', L1, R1,
1274
+ t1_ccee, t2_ce, optimize = einsum_type)
1275
+ rdm1[:nocc, nocc:] -= einsum('a,a,iIAb,ib->IA', L1, R1, t1_ccee,
1276
+ t2_ce, optimize = einsum_type)
1277
+ rdm1[:nocc, nocc:] -= einsum('a,b,IiAb,ia->IA', L1, R1, t1_ccee,
1278
+ t2_ce, optimize = einsum_type)
1279
+ rdm1[:nocc, nocc:] += 1/2 * einsum('a,b,iIAb,ia->IA', L1,
1280
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1281
+
1282
+ ############# block- ai
1283
+ # 120 #
1284
+ rdm1[nocc:, :nocc] -= einsum('Iab,a,ijbc,ijAc->AI', L2, R1,
1285
+ t1_ccee, t1_ccee, optimize = einsum_type)
1286
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Iab,a,ijbc,jiAc->AI',
1287
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1288
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Iab,c,ijab,jiAc->AI',
1289
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1290
+ rdm1[nocc:, :nocc] -= einsum('iaA,a,ijbc,Ijbc->AI', L2, R1,
1291
+ t1_ccee, t1_ccee, optimize = einsum_type)
1292
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iaA,a,ijbc,Ijcb->AI',
1293
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1294
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iaA,b,ijca,Ijcb->AI',
1295
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1296
+ rdm1[nocc:, :nocc] += einsum('iab,a,ijbc,IjAc->AI', L2, R1,
1297
+ t1_ccee, t1_ccee, optimize = einsum_type)
1298
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijbc,jIAc->AI',
1299
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1300
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijcb,IjAc->AI',
1301
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1302
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,a,ijcb,jIAc->AI',
1303
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1304
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,c,ijba,IjAc->AI',
1305
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1306
+
1307
+ rdm1[nocc:, :nocc] -= einsum('Iab,a,ijbc,ijAc->AI', L2, R1,
1308
+ t1_ccee, t1_ccee, optimize = einsum_type)
1309
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Iab,a,ijbc,jiAc->AI',
1310
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1311
+ rdm1[nocc:, :nocc] += einsum('Iab,b,ijac,ijAc->AI', L2, R1,
1312
+ t1_ccee, t1_ccee, optimize = einsum_type)
1313
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('Iab,b,ijac,jiAc->AI',
1314
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1315
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('Iab,c,ijab,ijAc->AI',
1316
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1317
+ rdm1[nocc:, :nocc] += 1/2 * einsum('Iab,c,ijab,jiAc->AI',
1318
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1319
+ rdm1[nocc:, :nocc] += einsum('iAa,a,ijbc,Ijbc->AI', L2, R1,
1320
+ t1_ccee, t1_ccee, optimize = einsum_type)
1321
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iAa,a,ijbc,Ijcb->AI',
1322
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1323
+ rdm1[nocc:, :nocc] -= einsum('iAa,b,ijac,Ijbc->AI', L2, R1,
1324
+ t1_ccee, t1_ccee, optimize = einsum_type)
1325
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iAa,b,ijac,Ijcb->AI',
1326
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1327
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iAa,b,ijca,Ijbc->AI',
1328
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1329
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iAa,b,ijca,Ijcb->AI',
1330
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1331
+ rdm1[nocc:, :nocc] -= einsum('iaA,a,ijbc,Ijbc->AI', L2, R1,
1332
+ t1_ccee, t1_ccee, optimize = einsum_type)
1333
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iaA,a,ijbc,Ijcb->AI',
1334
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1335
+ rdm1[nocc:, :nocc] += einsum('iaA,b,ijac,Ijbc->AI', L2, R1,
1336
+ t1_ccee, t1_ccee, optimize = einsum_type)
1337
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iaA,b,ijac,Ijcb->AI',
1338
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1339
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iaA,b,ijca,Ijbc->AI',
1340
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1341
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iaA,b,ijca,Ijcb->AI',
1342
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1343
+ rdm1[nocc:, :nocc] += einsum('iab,a,ijbc,IjAc->AI', L2, R1,
1344
+ t1_ccee, t1_ccee, optimize = einsum_type)
1345
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijbc,jIAc->AI',
1346
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1347
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijcb,IjAc->AI',
1348
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1349
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,a,ijcb,jIAc->AI',
1350
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1351
+ rdm1[nocc:, :nocc] -= einsum('iab,b,ijac,IjAc->AI', L2, R1,
1352
+ t1_ccee, t1_ccee, optimize = einsum_type)
1353
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,b,ijac,jIAc->AI',
1354
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1355
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,b,ijca,IjAc->AI',
1356
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1357
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,b,ijca,jIAc->AI',
1358
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1359
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,c,ijab,IjAc->AI',
1360
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1361
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,c,ijab,jIAc->AI',
1362
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1363
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,c,ijba,IjAc->AI',
1364
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1365
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,c,ijba,jIAc->AI',
1366
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1367
+
1368
+ rdm1[nocc:, :nocc] += einsum('iab,a,ijbc,IjAc->AI', L2, R1,
1369
+ t1_ccee, t1_ccee, optimize = einsum_type)
1370
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijbc,jIAc->AI',
1371
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1372
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijcb,IjAc->AI',
1373
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1374
+ rdm1[nocc:, :nocc] -= einsum('iab,b,ijac,IjAc->AI', L2, R1,
1375
+ t1_ccee, t1_ccee, optimize = einsum_type)
1376
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,b,ijac,jIAc->AI',
1377
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1378
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,b,ijca,IjAc->AI',
1379
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1380
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,c,ijab,IjAc->AI',
1381
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1382
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,c,ijba,IjAc->AI',
1383
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1384
+
1385
+ rdm1[nocc:, :nocc] -= einsum('iAa,b,ijac,Ijbc->AI', L2, R1,
1386
+ t1_ccee, t1_ccee, optimize = einsum_type)
1387
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iAa,b,ijac,Ijcb->AI',
1388
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1389
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iAa,b,ijca,Ijbc->AI',
1390
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1391
+ rdm1[nocc:, :nocc] += einsum('iab,a,ijbc,IjAc->AI', L2, R1,
1392
+ t1_ccee, t1_ccee, optimize = einsum_type)
1393
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijbc,jIAc->AI',
1394
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1395
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,a,ijcb,IjAc->AI',
1396
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1397
+ rdm1[nocc:, :nocc] -= 1/2 * einsum('iab,c,ijba,IjAc->AI',
1398
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1399
+ rdm1[nocc:, :nocc] += 1/2 * einsum('iab,c,ijba,jIAc->AI',
1400
+ L2, R1, t1_ccee, t1_ccee, optimize = einsum_type)
1401
+
1402
+ # 021 #
1403
+ rdm1[nocc:, :nocc] -= 2 * einsum('A,iab,Iiab->AI', L1, R2, t2_ccee, optimize = einsum_type)
1404
+ rdm1[nocc:, :nocc] += einsum('A,iab,Iiba->AI', L1, R2, t2_ccee, optimize = einsum_type)
1405
+ rdm1[nocc:, :nocc] += 4 * einsum('a,iab,IiAb->AI', L1, R2, t2_ccee, optimize = einsum_type)
1406
+ rdm1[nocc:, :nocc] -= 2 * einsum('a,iab,iIAb->AI', L1, R2, t2_ccee, optimize = einsum_type)
1407
+ rdm1[nocc:, :nocc] -= 2 * einsum('a,iba,IiAb->AI', L1, R2, t2_ccee, optimize = einsum_type)
1408
+ rdm1[nocc:, :nocc] += einsum('a,iba,iIAb->AI', L1, R2, t2_ccee, optimize = einsum_type)
1409
+
1410
+ # 030 #
1411
+ rdm1[nocc:, :nocc] -= einsum('a,A,Ia->AI', L1, R1, t3_ce, optimize = einsum_type)
1412
+ rdm1[nocc:, :nocc] += 2 * einsum('a,a,IA->AI', L1, R1, t3_ce, optimize = einsum_type)
1413
+ rdm1[nocc:, :nocc] -= einsum('a,A,Iiab,ib->AI', L1, R1, t1_ccee,
1414
+ t2_ce, optimize = einsum_type)
1415
+ rdm1[nocc:, :nocc] += 1/2 * einsum('a,A,Iiba,ib->AI', L1,
1416
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1417
+ rdm1[nocc:, :nocc] += 2 * einsum('a,a,IiAb,ib->AI', L1, R1,
1418
+ t1_ccee, t2_ce, optimize = einsum_type)
1419
+ rdm1[nocc:, :nocc] -= einsum('a,a,iIAb,ib->AI', L1, R1, t1_ccee,
1420
+ t2_ce, optimize = einsum_type)
1421
+ rdm1[nocc:, :nocc] -= einsum('a,b,IiAa,ib->AI', L1, R1, t1_ccee,
1422
+ t2_ce, optimize = einsum_type)
1423
+ rdm1[nocc:, :nocc] += 1/2 * einsum('a,b,iIAa,ib->AI', L1,
1424
+ R1, t1_ccee, t2_ce, optimize = einsum_type)
1425
+ return rdm1
1426
+
915
1427
 
916
1428
  def compute_dyson_mo(myadc):
917
1429
 
@@ -1000,24 +1512,28 @@ class RADCEA(radc.RADC):
1000
1512
  self.with_df = adc.with_df
1001
1513
  self.compute_properties = adc.compute_properties
1002
1514
  self.approx_trans_moments = adc.approx_trans_moments
1003
- self.E = None
1004
- self.U = None
1005
- self.P = None
1006
- self.X = None
1515
+
1007
1516
  self.evec_print_tol = adc.evec_print_tol
1008
1517
  self.spec_factor_print_tol = adc.spec_factor_print_tol
1009
1518
 
1519
+ self.E = adc.E
1520
+ self.U = adc.U
1521
+ self.P = adc.P
1522
+ self.X = adc.X
1523
+
1010
1524
  kernel = radc.kernel
1011
1525
  get_imds = get_imds
1012
1526
  matvec = matvec
1013
1527
  get_diag = get_diag
1014
1528
  get_trans_moments = get_trans_moments
1015
- renormalize_eigenvectors = renormalize_eigenvectors
1016
1529
  get_properties = get_properties
1530
+
1531
+ renormalize_eigenvectors = renormalize_eigenvectors
1532
+ analyze = analyze
1017
1533
  analyze_spec_factor = analyze_spec_factor
1018
1534
  analyze_eigenvector = analyze_eigenvector
1019
- analyze = analyze
1020
1535
  compute_dyson_mo = compute_dyson_mo
1536
+ make_rdm1 = make_rdm1
1021
1537
 
1022
1538
  def get_init_guess(self, nroots=1, diag=None, ascending=True):
1023
1539
  if diag is None :