pyscf.mrpt package


pyscf.mrpt.nevpt2 module

class pyscf.mrpt.nevpt2.NEVPT(mc, root=0)[source]

Bases: StreamObject

Strongly contracted NEVPT2


To control which state to compute if multiple roots or state-average wfn were calculated in CASCI/CASSCF


compressed MPS perturber method for DMRG-SC-NEVPT2


>>> mf = gto.M('N 0 0 0; N 0 0 1.4', basis='6-31g').apply(scf.RHF).run()
>>> mc = mcscf.CASSCF(mf, 4, 4).run()
>>> NEVPT(mc).kernel()
canonicalize(mo_coeff=None, ci=None, eris=None, sort=False, cas_natorb=False, casdm1=None, verbose=3)[source]
compress_approx(maxM=500, nevptsolver=None, tol=1e-07, stored_integral=False)[source]

SC-NEVPT2 with compressed perturber

Kwargs :

DMRG bond dimension


>>> mf = gto.M('N 0 0 0; N 0 0 1.4', basis='6-31g').apply(scf.RHF).run()
>>> mc = dmrgscf.DMRGSCF(mf, 4, 4).run()
>>> NEVPT(mc, root=0).compress_approx(maxM=100).kernel()


  1. Chem. Theory Comput. 12, 1583 (2016), doi:10.1021/acs.jctc.5b01225

  1. Chem. Phys. 146, 244102 (2017), doi:10.1063/1.4986975


Some preprocess for dmrg-nevpt

get_veff(mol=None, dm=None, hermi=1)[source]
h1e_for_cas(mo_coeff=None, ncas=None, ncore=None)[source]

Kernel function is the main driver of a method. Every method should define the kernel function as the entry of the calculation. Note the return value of kernel function is not strictly defined. It can be anything related to the method (such as the energy, the wave-function, the DFT mesh grids etc.).


Hack me to load CI wfn from disk

pyscf.mrpt.nevpt2.Si(mc, ci, dms, eris=None, verbose=None)[source]
pyscf.mrpt.nevpt2.Sij(mc, dms, eris, verbose=None)[source]
pyscf.mrpt.nevpt2.Sijr(mc, dms, eris, verbose=None)[source]
pyscf.mrpt.nevpt2.Sijrs(mc, eris, verbose=None)[source]
pyscf.mrpt.nevpt2.Sir(mc, dms, eris, verbose=None)[source]
pyscf.mrpt.nevpt2.Sr(mc, ci, dms, eris=None, verbose=None)[source]
pyscf.mrpt.nevpt2.Srs(mc, dms, eris=None, verbose=None)[source]
pyscf.mrpt.nevpt2.Srsi(mc, dms, eris, verbose=None)[source]
pyscf.mrpt.nevpt2.kernel(mc, *args, **kwargs)[source]
pyscf.mrpt.nevpt2.make_a12(h1e, h2e, dm1, dm2, dm3)[source]
pyscf.mrpt.nevpt2.make_a13(h1e, h2e, dm1, dm2, dm3)[source]
pyscf.mrpt.nevpt2.make_a16(h1e, h2e, dms, civec, norb, nelec, link_index=None)[source]
pyscf.mrpt.nevpt2.make_a17(h1e, h2e, dm2, dm3)[source]
pyscf.mrpt.nevpt2.make_a19(h1e, h2e, dm1, dm2)[source]
pyscf.mrpt.nevpt2.make_a22(h1e, h2e, dms, civec, norb, nelec, link_index=None)[source]
pyscf.mrpt.nevpt2.make_a23(h1e, h2e, dm1, dm2, dm3)[source]
pyscf.mrpt.nevpt2.make_a25(h1e, h2e, dm1, dm2)[source]
pyscf.mrpt.nevpt2.make_a3(h1e, h2e, dm1, dm2, hdm1)[source]
pyscf.mrpt.nevpt2.make_a7(h1e, h2e, dm1, dm2, dm3)[source]
pyscf.mrpt.nevpt2.make_a9(h1e, h2e, hdm1, hdm2, hdm3)[source]
pyscf.mrpt.nevpt2.make_hdm2(dm1, dm2)[source]
pyscf.mrpt.nevpt2.make_hdm3(dm1, dm2, dm3, hdm1, hdm2)[source]
pyscf.mrpt.nevpt2.make_k27(h1e, h2e, dm1, dm2)[source]
pyscf.mrpt.nevpt2.sc_nevpt(mc, ci=None, verbose=None)[source]
pyscf.mrpt.nevpt2.trans_e1_incore(mc, mo)[source]
pyscf.mrpt.nevpt2.trans_e1_outcore(mc, mo, max_memory=None, ioblk_size=256, tmpdir=None, verbose=0)[source]

Module contents