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.
- pyscf/__init__.py +2 -2
- pyscf/adc/__init__.py +3 -8
- pyscf/adc/dfadc.py +22 -6
- pyscf/adc/radc.py +106 -15
- pyscf/adc/radc_amplitudes.py +7 -1
- pyscf/adc/radc_ao2mo.py +4 -2
- pyscf/adc/radc_ea.py +524 -8
- pyscf/adc/radc_ip.py +492 -60
- pyscf/adc/radc_ip_cvs.py +4 -2
- pyscf/adc/uadc.py +116 -27
- pyscf/adc/uadc_amplitudes.py +215 -20
- pyscf/adc/uadc_ao2mo.py +30 -9
- pyscf/adc/uadc_ea.py +34 -44
- pyscf/adc/uadc_ip.py +9 -4
- pyscf/adc/uadc_ip_cvs.py +4 -1
- pyscf/agf2/__init__.py +2 -2
- pyscf/agf2/aux_space.py +1 -1
- pyscf/agf2/chkfile.py +1 -1
- pyscf/ao2mo/__init__.py +13 -2
- pyscf/ao2mo/_ao2mo.py +10 -1
- pyscf/ao2mo/incore.py +3 -0
- pyscf/ao2mo/nrr_outcore.py +2 -2
- pyscf/ao2mo/outcore.py +9 -7
- pyscf/ao2mo/r_outcore.py +2 -2
- pyscf/cc/__init__.py +21 -3
- pyscf/cc/bccd.py +0 -46
- pyscf/cc/ccsd.py +29 -13
- pyscf/cc/ccsd_rdm.py +6 -1
- pyscf/cc/gccsd.py +2 -2
- pyscf/cc/uccsd.py +7 -7
- pyscf/cc/uccsd_rdm.py +2 -2
- pyscf/data/elements.py +1 -1
- pyscf/df/__init__.py +2 -1
- pyscf/df/addons.py +79 -51
- pyscf/df/autoaux.py +195 -0
- pyscf/df/df.py +5 -1
- pyscf/df/df_jk.py +27 -25
- pyscf/df/grad/casscf.py +0 -41
- pyscf/df/grad/rhf.py +31 -1
- pyscf/df/hessian/rhf.py +2 -10
- pyscf/df/hessian/rks.py +1 -7
- pyscf/df/hessian/uhf.py +3 -13
- pyscf/df/hessian/uks.py +1 -8
- pyscf/df/incore.py +18 -6
- pyscf/df/outcore.py +6 -6
- pyscf/dft/dks.py +1 -1
- pyscf/dft/gks.py +25 -21
- pyscf/dft/libxc.py +91 -645
- pyscf/dft/numint.py +40 -19
- pyscf/dft/radi.py +48 -7
- pyscf/dft/rks.py +29 -25
- pyscf/dft/roks.py +7 -1
- pyscf/dft/uks.py +34 -25
- pyscf/dft/xc_deriv.py +1 -1
- pyscf/dft/xcfun.py +53 -2
- pyscf/eph/eph_fd.py +1 -1
- pyscf/eph/rhf.py +6 -36
- pyscf/eph/rks.py +0 -4
- pyscf/eph/uhf.py +1 -7
- pyscf/eph/uks.py +1 -7
- pyscf/fci/addons.py +117 -2
- pyscf/fci/cistring.py +1 -1
- pyscf/fci/direct_nosym.py +3 -3
- pyscf/fci/direct_spin0_symm.py +22 -43
- pyscf/fci/direct_spin1.py +65 -10
- pyscf/fci/direct_spin1_symm.py +49 -14
- pyscf/fci/direct_uhf.py +4 -4
- pyscf/fci/selected_ci_symm.py +1 -1
- pyscf/grad/ccsd.py +3 -7
- pyscf/grad/ccsd_slow.py +2 -3
- pyscf/grad/lagrange.py +11 -3
- pyscf/grad/mp2.py +13 -4
- pyscf/grad/sacasscf.py +1 -1
- pyscf/grad/tdrks.py +1 -1
- pyscf/grad/uccsd.py +3 -7
- pyscf/grad/ump2.py +2 -4
- pyscf/gto/basis/__init__.py +17 -4
- pyscf/gto/basis/bse.py +68 -15
- pyscf/gto/basis/def2-mtzvp.dat +4719 -0
- pyscf/gto/basis/def2-mtzvpp.dat +4739 -0
- pyscf/gto/basis/dyall-basis/__init__.py +0 -0
- pyscf/gto/basis/dyall-basis/dyall_2zp.py +6492 -0
- pyscf/gto/basis/dyall-basis/dyall_3zp.py +8343 -0
- pyscf/gto/basis/dyall-basis/dyall_4zp.py +10055 -0
- pyscf/gto/basis/dyall-basis/dyall_aae2z.py +1818 -0
- pyscf/gto/basis/dyall-basis/dyall_aae3z.py +2521 -0
- pyscf/gto/basis/dyall-basis/dyall_aae4z.py +3351 -0
- pyscf/gto/basis/dyall-basis/dyall_acv2z.py +1790 -0
- pyscf/gto/basis/dyall-basis/dyall_acv3z.py +2417 -0
- pyscf/gto/basis/dyall-basis/dyall_acv4z.py +3085 -0
- pyscf/gto/basis/dyall-basis/dyall_ae2z.py +6619 -0
- pyscf/gto/basis/dyall-basis/dyall_ae3z.py +9027 -0
- pyscf/gto/basis/dyall-basis/dyall_ae4z.py +11839 -0
- pyscf/gto/basis/dyall-basis/dyall_av2z.py +1742 -0
- pyscf/gto/basis/dyall-basis/dyall_av3z.py +2318 -0
- pyscf/gto/basis/dyall-basis/dyall_av4z.py +2905 -0
- pyscf/gto/basis/dyall-basis/dyall_cv2z.py +6558 -0
- pyscf/gto/basis/dyall-basis/dyall_cv3z.py +8767 -0
- pyscf/gto/basis/dyall-basis/dyall_cv4z.py +11098 -0
- pyscf/gto/basis/dyall-basis/dyall_v2z.py +6472 -0
- pyscf/gto/basis/dyall-basis/dyall_v3z.py +8539 -0
- pyscf/gto/basis/dyall-basis/dyall_v4z.py +10658 -0
- pyscf/gto/basis/ma-def2-qzvp.dat +5959 -0
- pyscf/gto/basis/ma-def2-qzvpp.dat +6195 -0
- pyscf/gto/basis/ma-def2-svp.dat +3504 -0
- pyscf/gto/basis/ma-def2-svpp.dat +3504 -0
- pyscf/gto/basis/ma-def2-tzvp.dat +4347 -0
- pyscf/gto/basis/ma-def2-tzvpp.dat +4549 -0
- pyscf/gto/basis/parse_cp2k.py +8 -7
- pyscf/gto/basis/parse_cp2k_pp.py +1 -1
- pyscf/gto/basis/parse_nwchem.py +26 -11
- pyscf/gto/basis/parse_nwchem_ecp.py +2 -1
- pyscf/gto/basis/sap_grasp_large.dat +2438 -0
- pyscf/gto/basis/sap_grasp_small.dat +1434 -0
- pyscf/gto/eval_gto.py +1 -1
- pyscf/gto/ft_ao.py +6 -6
- pyscf/gto/mole.py +123 -71
- pyscf/gto/moleintor.py +1 -1
- pyscf/gw/gw_ac.py +2 -2
- pyscf/gw/gw_cd.py +2 -2
- pyscf/gw/rpa.py +135 -246
- pyscf/gw/ugw_ac.py +2 -2
- pyscf/gw/urpa.py +80 -131
- pyscf/hessian/rhf.py +30 -128
- pyscf/hessian/rks.py +1 -6
- pyscf/hessian/uhf.py +28 -138
- pyscf/hessian/uks.py +1 -8
- pyscf/lib/CMakeLists.txt +6 -2
- pyscf/lib/ao2mo/nr_ao2mo.c +1 -1
- pyscf/lib/ao2mo/nrr_ao2mo.c +1 -1
- pyscf/lib/ao2mo/r_ao2mo.c +1 -1
- pyscf/lib/cc/ccsd_pack.c +1 -1
- pyscf/lib/cc/ccsd_t.c +6 -6
- pyscf/lib/cc/uccsd_t.c +4 -4
- pyscf/lib/config.h +0 -1
- pyscf/lib/config.h.in +0 -1
- pyscf/lib/deps/include/XCFun/XCFunExport.h +1 -0
- pyscf/lib/deps/include/xc.h +28 -18
- pyscf/lib/deps/include/xc_funcs.h +50 -2
- pyscf/lib/deps/include/xc_version.h +3 -3
- pyscf/lib/deps/lib/libcint.6.dylib +0 -0
- pyscf/lib/deps/lib/{libxc.12.dylib → libxc.15.dylib} +0 -0
- pyscf/lib/deps/lib/libxcfun.2.dylib +0 -0
- pyscf/lib/dft/grid_common.c +1 -1
- pyscf/lib/dft/libxc_itrf.c +10 -7
- pyscf/lib/dft/nr_numint_sparse.c +3 -3
- pyscf/lib/dft/xcfun_itrf.c +1 -1
- pyscf/lib/diis.py +2 -2
- pyscf/lib/exceptions.py +6 -0
- pyscf/lib/gto/fill_grids_int2c.c +11 -9
- pyscf/lib/gto/fill_int2e.c +7 -5
- pyscf/lib/gto/fill_r_4c.c +1 -1
- pyscf/lib/gto/ft_ao.c +1 -1
- pyscf/lib/gto/ft_ao.h +1 -1
- pyscf/lib/gto/gto.h +2 -2
- pyscf/lib/gto/nr_ecp.c +3 -2
- pyscf/lib/libagf2.dylib +0 -0
- pyscf/lib/libao2mo.dylib +0 -0
- pyscf/lib/libcc.dylib +0 -0
- pyscf/lib/libcgto.dylib +0 -0
- pyscf/lib/libcvhf.dylib +0 -0
- pyscf/lib/libdft.dylib +0 -0
- pyscf/lib/libfci.dylib +0 -0
- pyscf/lib/libmcscf.dylib +0 -0
- pyscf/lib/libmp.dylib +0 -0
- pyscf/lib/libnp_helper.dylib +0 -0
- pyscf/lib/libpbc.dylib +0 -0
- pyscf/lib/libri.dylib +0 -0
- pyscf/lib/libxc_itrf.dylib +0 -0
- pyscf/lib/libxcfun_itrf.dylib +0 -0
- pyscf/lib/linalg_helper.py +117 -198
- pyscf/lib/logger.py +2 -1
- pyscf/lib/mcscf/fci_contract.c +10 -3
- pyscf/lib/misc.py +63 -22
- pyscf/lib/mp/CMakeLists.txt +22 -0
- pyscf/lib/mp/mp2.c +518 -0
- pyscf/lib/mp/mp2.h +44 -0
- pyscf/lib/np_helper/CMakeLists.txt +1 -1
- pyscf/lib/np_helper/imatcopy.c +360 -0
- pyscf/lib/np_helper/np_helper.c +94 -0
- pyscf/lib/np_helper/np_helper.h +26 -0
- pyscf/lib/numpy_helper.py +195 -11
- pyscf/lib/pbc/nr_direct.c +2 -7
- pyscf/lib/pbc/nr_ecp.c +10 -3
- pyscf/lib/pbc/pbc.h +1 -1
- pyscf/lib/vhf/fblas.h +3 -0
- pyscf/lib/vhf/nr_sgx_direct.c +8 -6
- pyscf/lib/vhf/nr_sr_vhf.c +8 -12
- pyscf/lib/vhf/optimizer.c +2 -2
- pyscf/lib/vhf/rkb_screen.c +139 -0
- pyscf/lo/iao.py +1 -1
- pyscf/lo/ibo.py +3 -3
- pyscf/lo/pipek_jacobi.py +1 -1
- pyscf/mcscf/__init__.py +2 -2
- pyscf/mcscf/addons.py +3 -3
- pyscf/mcscf/apc.py +2 -2
- pyscf/mcscf/casci.py +13 -7
- pyscf/mcscf/chkfile.py +69 -41
- pyscf/mcscf/dmet_cas.py +2 -2
- pyscf/mcscf/mc1step.py +72 -44
- pyscf/mcscf/newton_casscf.py +5 -5
- pyscf/mcscf/ucasci.py +1 -1
- pyscf/mcscf/umc1step.py +49 -28
- pyscf/md/integrators.py +3 -3
- pyscf/mp/__init__.py +1 -0
- pyscf/mp/dfmp2.py +498 -59
- pyscf/mp/dfmp2_native.py +11 -1
- pyscf/mp/dfmp2_slow.py +133 -0
- pyscf/mp/dfump2.py +672 -0
- pyscf/mp/dfump2_native.py +9 -0
- pyscf/mp/dfump2_slow.py +161 -0
- pyscf/mp/gmp2.py +6 -47
- pyscf/mp/mp2.py +25 -10
- pyscf/mp/ump2.py +30 -24
- pyscf/pbc/adc/kadc_rhf.py +1 -1
- pyscf/pbc/adc/kadc_rhf_amplitudes.py +2 -2
- pyscf/pbc/ao2mo/eris.py +1 -1
- pyscf/pbc/cc/kccsd_rhf.py +3 -3
- pyscf/pbc/cc/kccsd_t_rhf.py +2 -2
- pyscf/pbc/ci/kcis_rhf.py +2 -2
- pyscf/pbc/df/aft.py +8 -9
- pyscf/pbc/df/aft_ao2mo.py +1 -1
- pyscf/pbc/df/df.py +85 -12
- pyscf/pbc/df/df_jk.py +6 -2
- pyscf/pbc/df/fft.py +9 -5
- pyscf/pbc/df/fft_ao2mo.py +4 -0
- pyscf/pbc/df/fft_jk.py +18 -10
- pyscf/pbc/df/ft_ao.py +4 -3
- pyscf/pbc/df/gdf_builder.py +5 -4
- pyscf/pbc/df/incore.py +2 -2
- pyscf/pbc/df/mdf.py +6 -3
- pyscf/pbc/df/mdf_jk.py +2 -1
- pyscf/pbc/df/outcore.py +10 -10
- pyscf/pbc/df/rsdf.py +2 -2
- pyscf/pbc/df/rsdf_builder.py +13 -8
- pyscf/pbc/df/rsdf_helper.py +6 -6
- pyscf/pbc/df/rsdf_jk.py +2 -1
- pyscf/pbc/dft/cdft.py +5 -5
- pyscf/pbc/dft/gen_grid.py +3 -2
- pyscf/pbc/dft/gks.py +14 -3
- pyscf/pbc/dft/kgks.py +15 -4
- pyscf/pbc/dft/krks.py +28 -10
- pyscf/pbc/dft/krks_ksymm.py +21 -9
- pyscf/pbc/dft/krkspu.py +1 -30
- pyscf/pbc/dft/krkspu_ksymm.py +0 -30
- pyscf/pbc/dft/kuks.py +30 -13
- pyscf/pbc/dft/kuks_ksymm.py +22 -10
- pyscf/pbc/dft/kukspu.py +0 -27
- pyscf/pbc/dft/kukspu_ksymm.py +0 -30
- pyscf/pbc/dft/multigrid/multigrid.py +36 -33
- pyscf/pbc/dft/multigrid/multigrid_pair.py +7 -2
- pyscf/pbc/dft/multigrid/pp.py +1 -1
- pyscf/pbc/dft/numint.py +56 -31
- pyscf/pbc/dft/rks.py +16 -24
- pyscf/pbc/dft/uks.py +21 -4
- pyscf/pbc/eph/eph_fd.py +1 -1
- pyscf/pbc/geomopt/geometric_solver.py +1 -1
- pyscf/pbc/gto/_pbcintor.py +1 -0
- pyscf/pbc/gto/cell.py +194 -23
- pyscf/pbc/gto/ecp.py +12 -12
- pyscf/pbc/gto/eval_gto.py +3 -3
- pyscf/pbc/gto/neighborlist.py +4 -1
- pyscf/pbc/gto/pseudo/pp.py +1 -1
- pyscf/pbc/gw/krgw_ac.py +4 -4
- pyscf/pbc/gw/krgw_cd.py +4 -4
- pyscf/pbc/gw/kugw_ac.py +3 -3
- pyscf/pbc/lib/kpts_helper.py +4 -3
- pyscf/pbc/lib/linalg_helper.py +1 -1
- pyscf/pbc/mp/kmp2.py +1 -1
- pyscf/pbc/mpitools/mpi.py +1 -1
- pyscf/pbc/scf/_response_functions.py +141 -34
- pyscf/pbc/scf/addons.py +15 -11
- pyscf/pbc/scf/cphf.py +1 -1
- pyscf/pbc/scf/ghf.py +1 -1
- pyscf/pbc/scf/hf.py +21 -32
- pyscf/pbc/scf/kghf.py +33 -29
- pyscf/pbc/scf/khf.py +103 -29
- pyscf/pbc/scf/khf_ksymm.py +15 -1
- pyscf/pbc/scf/krohf.py +5 -7
- pyscf/pbc/scf/kuhf.py +54 -23
- pyscf/pbc/scf/kuhf_ksymm.py +1 -1
- pyscf/pbc/scf/rsjk.py +14 -10
- pyscf/pbc/scf/scfint.py +1 -1
- pyscf/pbc/scf/stability.py +27 -15
- pyscf/pbc/scf/uhf.py +3 -1
- pyscf/pbc/symm/symmetry.py +2 -2
- pyscf/pbc/tdscf/krhf.py +238 -154
- pyscf/pbc/tdscf/krks.py +1 -45
- pyscf/pbc/tdscf/kuhf.py +319 -171
- pyscf/pbc/tdscf/kuks.py +0 -56
- pyscf/pbc/tdscf/rhf.py +116 -3
- pyscf/pbc/tdscf/rks.py +2 -1
- pyscf/pbc/tdscf/uhf.py +214 -1
- pyscf/pbc/tdscf/uks.py +2 -1
- pyscf/pbc/tools/k2gamma.py +20 -6
- pyscf/pbc/tools/lattice.py +3 -3
- pyscf/pbc/tools/pbc.py +111 -91
- pyscf/pbc/tools/pyscf_ase.py +0 -1
- pyscf/pbc/tools/pywannier90.py +1 -1
- pyscf/qmmm/mm_mole.py +1 -1
- pyscf/scf/_response_functions.py +87 -46
- pyscf/scf/_vhf.py +15 -10
- pyscf/scf/addons.py +29 -15
- pyscf/scf/cphf.py +14 -52
- pyscf/scf/dhf.py +121 -38
- pyscf/scf/dispersion.py +10 -9
- pyscf/scf/ghf.py +25 -13
- pyscf/scf/ghf_symm.py +2 -2
- pyscf/scf/hf.py +262 -30
- pyscf/scf/rohf.py +37 -5
- pyscf/scf/stability.py +142 -112
- pyscf/scf/ucphf.py +21 -16
- pyscf/scf/uhf.py +104 -61
- pyscf/sgx/sgx.py +1 -1
- pyscf/sgx/sgx_jk.py +4 -4
- pyscf/solvent/__init__.py +2 -2
- pyscf/solvent/_attach_solvent.py +2 -0
- pyscf/solvent/_ddcosmo_tdscf_grad.py +1 -1
- pyscf/solvent/cosmors.py +366 -0
- pyscf/solvent/ddcosmo.py +1 -1
- pyscf/solvent/pcm.py +4 -4
- pyscf/solvent/pol_embed.py +1 -1
- pyscf/solvent/smd.py +5 -3
- pyscf/soscf/ciah.py +3 -11
- pyscf/soscf/newton_ah.py +5 -2
- pyscf/symm/__init__.py +1 -1
- pyscf/symm/addons.py +5 -5
- pyscf/symm/geom.py +1 -5
- pyscf/tdscf/_lr_eig.py +1002 -0
- pyscf/tdscf/dhf.py +84 -87
- pyscf/tdscf/dks.py +0 -4
- pyscf/tdscf/ghf.py +139 -127
- pyscf/tdscf/gks.py +27 -25
- pyscf/tdscf/rhf.py +194 -147
- pyscf/tdscf/rks.py +26 -22
- pyscf/tdscf/uhf.py +166 -118
- pyscf/tdscf/uks.py +32 -31
- pyscf/tools/fcidump.py +3 -0
- pyscf/tools/qcschema.py +265 -0
- pyscf/x2c/sfx2c1e.py +1 -1
- pyscf/x2c/tdscf.py +41 -41
- pyscf/x2c/x2c.py +15 -11
- {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/METADATA +39 -36
- {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/NOTICE +14 -1
- {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/RECORD +348 -316
- {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/WHEEL +1 -1
- pyscf/dft/gen_libxc_param.py +0 -35
- pyscf/dft/gen_xcfun_param.py +0 -209
- pyscf/pbc/tdscf/kproxy.py +0 -189
- pyscf/pbc/tdscf/kproxy_supercell.py +0 -664
- pyscf/pbc/tdscf/krhf_slow.py +0 -300
- pyscf/pbc/tdscf/krhf_slow_gamma.py +0 -175
- pyscf/pbc/tdscf/krhf_slow_supercell.py +0 -250
- pyscf/pbc/tdscf/proxy.py +0 -39
- pyscf/pbc/tdscf/rhf_slow.py +0 -35
- pyscf/tdscf/common_slow.py +0 -799
- pyscf/tdscf/proxy.py +0 -258
- pyscf/tdscf/rhf_slow.py +0 -181
- {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/LICENSE +0 -0
- {pyscf-2.6.2.dist-info → pyscf-2.8.0.dist-info}/top_level.txt +0 -0
pyscf/df/hessian/rhf.py
CHANGED
|
@@ -368,16 +368,8 @@ def make_h1(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None):
|
|
|
368
368
|
for ia, h1, vj1, vk1 in _gen_jk(hessobj, mo_coeff, mo_occ, chkfile,
|
|
369
369
|
atmlst, verbose, True):
|
|
370
370
|
h1 += vj1 - vk1 * .5
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
h1ao[ia] = h1
|
|
374
|
-
else:
|
|
375
|
-
key = 'scf_f1ao/%d' % ia
|
|
376
|
-
lib.chkfile.save(chkfile, key, h1)
|
|
377
|
-
if chkfile is None:
|
|
378
|
-
return h1ao
|
|
379
|
-
else:
|
|
380
|
-
return chkfile
|
|
371
|
+
h1ao[ia] = h1
|
|
372
|
+
return h1ao
|
|
381
373
|
|
|
382
374
|
def _gen_jk(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None,
|
|
383
375
|
verbose=None, with_k=True):
|
pyscf/df/hessian/rks.py
CHANGED
|
@@ -109,13 +109,7 @@ def make_h1(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None):
|
|
|
109
109
|
for ia, h1, vj1, vk1 in df_rhf_hess._gen_jk(
|
|
110
110
|
hessobj, mo_coeff, mo_occ, chkfile, atmlst, verbose):
|
|
111
111
|
h1ao[ia] -= .5 * (alpha - hyb) * vk1
|
|
112
|
-
|
|
113
|
-
if chkfile is None:
|
|
114
|
-
return h1ao
|
|
115
|
-
else:
|
|
116
|
-
for ia in atmlst:
|
|
117
|
-
lib.chkfile.save(chkfile, 'scf_f1ao/%d'%ia, h1ao[ia])
|
|
118
|
-
return chkfile
|
|
112
|
+
return h1ao
|
|
119
113
|
|
|
120
114
|
|
|
121
115
|
class Hessian(rks_hess.Hessian):
|
pyscf/df/hessian/uhf.py
CHANGED
|
@@ -398,19 +398,9 @@ def make_h1(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None):
|
|
|
398
398
|
for ia, h1, vj1, vk1 in _gen_jk(hessobj, mo_coeff, mo_occ, chkfile,
|
|
399
399
|
atmlst, verbose, True):
|
|
400
400
|
vk1a, vk1b = vk1
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
if chkfile is None:
|
|
405
|
-
h1aoa[ia] = h1a
|
|
406
|
-
h1aob[ia] = h1b
|
|
407
|
-
else:
|
|
408
|
-
lib.chkfile.save(chkfile, 'scf_f1ao/0/%d' % ia, h1a)
|
|
409
|
-
lib.chkfile.save(chkfile, 'scf_f1ao/1/%d' % ia, h1b)
|
|
410
|
-
if chkfile is None:
|
|
411
|
-
return (h1aoa,h1aob)
|
|
412
|
-
else:
|
|
413
|
-
return chkfile
|
|
401
|
+
h1aoa[ia] = h1 + vj1 - vk1a
|
|
402
|
+
h1aob[ia] = h1 + vj1 - vk1b
|
|
403
|
+
return (h1aoa,h1aob)
|
|
414
404
|
|
|
415
405
|
def _gen_jk(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None,
|
|
416
406
|
verbose=None, with_k=True):
|
pyscf/df/hessian/uks.py
CHANGED
|
@@ -121,14 +121,7 @@ def make_h1(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None):
|
|
|
121
121
|
vk1a, vk1b = vk1
|
|
122
122
|
h1aoa[ia] -= (alpha - hyb) * vk1a
|
|
123
123
|
h1aob[ia] -= (alpha - hyb) * vk1b
|
|
124
|
-
|
|
125
|
-
if chkfile is None:
|
|
126
|
-
return h1aoa, h1aob
|
|
127
|
-
else:
|
|
128
|
-
for ia in atmlst:
|
|
129
|
-
lib.chkfile.save(chkfile, 'scf_f1ao/0/%d'%ia, h1aoa[ia])
|
|
130
|
-
lib.chkfile.save(chkfile, 'scf_f1ao/1/%d'%ia, h1aob[ia])
|
|
131
|
-
return chkfile
|
|
124
|
+
return h1aoa, h1aob
|
|
132
125
|
|
|
133
126
|
|
|
134
127
|
class Hessian(uks_hess.Hessian):
|
pyscf/df/incore.py
CHANGED
|
@@ -38,22 +38,34 @@ format_aux_basis = addons.make_auxmol
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
def aux_e2(mol, auxmol_or_auxbasis, intor='int3c2e', aosym='s1', comp=None, out=None,
|
|
41
|
-
cintopt=None):
|
|
41
|
+
cintopt=None, shls_slice=None):
|
|
42
42
|
'''3-center AO integrals (ij|L), where L is the auxiliary basis.
|
|
43
43
|
|
|
44
44
|
Kwargs:
|
|
45
|
-
cintopt :
|
|
46
|
-
|
|
47
|
-
reduce the overhead of cintopt initialization repeatedly.
|
|
45
|
+
cintopt :
|
|
46
|
+
Precomputing certain pair-shell data. It can be created by
|
|
48
47
|
|
|
49
48
|
cintopt = gto.moleintor.make_cintopt(mol._atm, mol._bas, mol._env, 'int3c2e')
|
|
49
|
+
|
|
50
|
+
shls_slice : 6-element tuple
|
|
51
|
+
Label the start-stop shells for each index in the integral tensor.
|
|
52
|
+
For the (ij|aux) = intor('int3c2e'), the tuple should be given as
|
|
53
|
+
(ish_start, ish_end, jsh_start, jsh_end, aux_start, aux_end)
|
|
50
54
|
'''
|
|
51
55
|
if isinstance(auxmol_or_auxbasis, gto.MoleBase):
|
|
52
56
|
auxmol = auxmol_or_auxbasis
|
|
53
57
|
else:
|
|
54
58
|
auxbasis = auxmol_or_auxbasis
|
|
55
59
|
auxmol = addons.make_auxmol(mol, auxbasis)
|
|
56
|
-
shls_slice
|
|
60
|
+
if shls_slice is None:
|
|
61
|
+
shls_slice = (0, mol.nbas, 0, mol.nbas,
|
|
62
|
+
mol.nbas, mol.nbas+auxmol.nbas)
|
|
63
|
+
else:
|
|
64
|
+
assert len(shls_slice) == 6
|
|
65
|
+
assert shls_slice[5] < auxmol.nbas
|
|
66
|
+
shls_slice = list(shls_slice)
|
|
67
|
+
shls_slice[4] += mol.nbas
|
|
68
|
+
shls_slice[5] += mol.nbas
|
|
57
69
|
|
|
58
70
|
# Extract the call of the two lines below
|
|
59
71
|
# pmol = gto.mole.conc_mol(mol, auxmol)
|
|
@@ -143,7 +155,7 @@ def cholesky_eri(mol, auxbasis='weigend+etb', auxmol=None,
|
|
|
143
155
|
atm, bas, env = gto.mole.conc_env(mol._atm, mol._bas, mol._env,
|
|
144
156
|
auxmol._atm, auxmol._bas, auxmol._env)
|
|
145
157
|
ao_loc = gto.moleintor.make_loc(bas, int3c)
|
|
146
|
-
nao = ao_loc[mol.nbas]
|
|
158
|
+
nao = int(ao_loc[mol.nbas])
|
|
147
159
|
|
|
148
160
|
if aosym == 's1':
|
|
149
161
|
nao_pair = nao * nao
|
pyscf/df/outcore.py
CHANGED
|
@@ -146,8 +146,8 @@ def cholesky_eri_b(mol, erifile, auxbasis='weigend+etb', dataname='j3c',
|
|
|
146
146
|
atm, bas, env = gto.mole.conc_env(mol._atm, mol._bas, mol._env,
|
|
147
147
|
auxmol._atm, auxmol._bas, auxmol._env)
|
|
148
148
|
ao_loc = gto.moleintor.make_loc(bas, int3c)
|
|
149
|
-
nao = ao_loc[mol.nbas]
|
|
150
|
-
naoaux = ao_loc[-1] - nao
|
|
149
|
+
nao = int(ao_loc[mol.nbas])
|
|
150
|
+
naoaux = int(ao_loc[-1] - nao)
|
|
151
151
|
if aosym == 's1':
|
|
152
152
|
nao_pair = nao * nao
|
|
153
153
|
buflen = min(max(int(max_memory*.24e6/8/naoaux/comp), 1), nao_pair)
|
|
@@ -289,12 +289,12 @@ def general(mol, mo_coeffs, erifile, auxbasis='weigend+etb', dataname='eri_mo',
|
|
|
289
289
|
|
|
290
290
|
def _guess_shell_ranges(mol, buflen, aosym, start=0, stop=None):
|
|
291
291
|
from pyscf.ao2mo.outcore import balance_partition
|
|
292
|
-
|
|
292
|
+
ao_loc_long = mol.ao_loc_nr().astype(numpy.int64)
|
|
293
293
|
if 's2' in aosym:
|
|
294
|
-
return balance_partition(
|
|
294
|
+
return balance_partition(ao_loc_long*(ao_loc_long+1)//2, buflen, start, stop)
|
|
295
295
|
else:
|
|
296
|
-
nao =
|
|
297
|
-
return balance_partition(
|
|
296
|
+
nao = ao_loc_long[-1]
|
|
297
|
+
return balance_partition(ao_loc_long*nao, buflen, start, stop)
|
|
298
298
|
|
|
299
299
|
def _create_h5file(erifile, dataname):
|
|
300
300
|
if isinstance(getattr(erifile, 'name', None), str):
|
pyscf/dft/dks.py
CHANGED
pyscf/dft/gks.py
CHANGED
|
@@ -89,36 +89,40 @@ def get_veff(ks, mol=None, dm=None, dm_last=0, vhf_last=0, hermi=1):
|
|
|
89
89
|
logger.debug(ks, 'nelec with nlc grids = %s', n)
|
|
90
90
|
t0 = logger.timer(ks, 'vxc', *t0)
|
|
91
91
|
|
|
92
|
+
incremental_jk = (ks._eri is None and ks.direct_scf and
|
|
93
|
+
getattr(vhf_last, 'vj', None) is not None)
|
|
94
|
+
if incremental_jk:
|
|
95
|
+
_dm = numpy.asarray(dm) - numpy.asarray(dm_last)
|
|
96
|
+
else:
|
|
97
|
+
_dm = dm
|
|
92
98
|
if not ni.libxc.is_hybrid_xc(ks.xc):
|
|
93
99
|
vk = None
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
ddm = numpy.asarray(dm) - numpy.asarray(dm_last)
|
|
97
|
-
vj = ks.get_j(mol, ddm, hermi)
|
|
100
|
+
vj = ks.get_j(mol, _dm, hermi)
|
|
101
|
+
if incremental_jk:
|
|
98
102
|
vj += vhf_last.vj
|
|
99
|
-
else:
|
|
100
|
-
vj = ks.get_j(mol, dm, hermi)
|
|
101
103
|
vxc += vj
|
|
102
104
|
else:
|
|
103
105
|
omega, alpha, hyb = ni.rsh_and_hybrid_coeff(ks.xc, spin=mol.spin)
|
|
104
|
-
if
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
if omega == 0:
|
|
107
|
+
vj, vk = ks.get_jk(mol, _dm, hermi)
|
|
108
|
+
vk *= hyb
|
|
109
|
+
elif alpha == 0: # LR=0, only SR exchange
|
|
110
|
+
vj = ks.get_j(mol, _dm, hermi)
|
|
111
|
+
vk = ks.get_k(mol, _dm, hermi, omega=-omega)
|
|
108
112
|
vk *= hyb
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
elif hyb == 0: # SR=0, only LR exchange
|
|
114
|
+
vj = ks.get_j(mol, _dm, hermi)
|
|
115
|
+
vk = ks.get_k(mol, _dm, hermi, omega=omega)
|
|
116
|
+
vk *= alpha
|
|
117
|
+
else: # SR and LR exchange with different ratios
|
|
118
|
+
vj, vk = ks.get_jk(mol, _dm, hermi)
|
|
119
|
+
vk *= hyb
|
|
120
|
+
vklr = ks.get_k(mol, _dm, hermi, omega=omega)
|
|
121
|
+
vklr *= (alpha - hyb)
|
|
122
|
+
vk += vklr
|
|
123
|
+
if incremental_jk:
|
|
113
124
|
vj += vhf_last.vj
|
|
114
125
|
vk += vhf_last.vk
|
|
115
|
-
else:
|
|
116
|
-
vj, vk = ks.get_jk(mol, dm, hermi)
|
|
117
|
-
vk *= hyb
|
|
118
|
-
if omega != 0:
|
|
119
|
-
vklr = ks.get_k(mol, dm, hermi, omega=omega)
|
|
120
|
-
vklr *= (alpha - hyb)
|
|
121
|
-
vk += vklr
|
|
122
126
|
vxc += vj - vk
|
|
123
127
|
|
|
124
128
|
if ground_state:
|