# 10.20. mrpt — Multi-reference perturbation theory¶

The mrpt module implements the N-electron valence (multi-reference) perturbation theory.

## 10.20.1. DMRG-NEVPT2¶

In the calculations of DMRG-CASSCF followed by DMRG-NEVPT2, canonicalization and natorb of DMRG-CASSCF should be set. These settings ensure that DMRG-CASSCF orbitals are eigenvectors of general Fock matrix. Current NEVPT2 implementation is based on this assumption. (See also discussions in github issue https://github.com/pyscf/pyscf/issues/698)

## 10.20.2. Program reference¶

### 10.20.2.1. N-electron valance perturbation theory (NEVPT2)¶

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

Strongly contracted NEVPT2

Attributes:
rootint

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

compressed_mpsbool

compressed MPS perturber method for DMRG-SC-NEVPT2

Examples:

>>> 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()
-0.14058324991532101

compress_approx(maxM=500, nevptsolver=None, tol=1e-07, stored_integral=False)[source]

SC-NEVPT2 with compressed perturber

Kwargs :
maxMint

DMRG bond dimension

Examples:

>>> 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()
-0.14058324991532101


References:

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

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

kernel()[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.).

load_ci(root=None)[source]

Hack me to load CI wfn from disk