# 4.2.42. NEVPT2¶

NEVPT2 is a second-order perturbation theory with a CAS (or a CAS-like) reference wavefunction originally developed by Angeli et al. [21, 22, 23, 24] In contrast to CASPT2, it uses a Dyall Hamiltonian [25] as the zeroth-order Hamiltonian and is therefore inherently free of intruder states and parameters such as the IPEA shift. NEVPT2 exists in two formulations – the strongly- (SC-) and the partially-contracted NEVPT2 (PC-NEVPT2), which differ in the basis of the first-order wavefunction expansion.

The implementation in the NEVPT2 program is based on the original NEVPT2 implementation by Angeli et al. [23, 24], with the implementation of the QCMaquis DMRG reference wave function and Cholesky decomposition for the two-electron integrals [26]. For excited states both single-state and multi-state calculations with the QD-NEVPT2 approach [24] are supported.

## 4.2.42.1. Dependencies¶

The NEVPT2 program needs the JOBIPH file (or its HDF5 equivalent) with a reference wavefunction a from a RASSCF/DMRGSCF calculation. Currently, **only DMRG reference wavefunctions calculated with QCMaquis** are supported. Additionally, transformed MO integrals or Cholesky vectors from MOTRA are required.

Optionally, four-particle reduced density matrices (and transition three-particle reduced density matrices for QD-NEVPT2 calculations) can be precalculated with QCMaquis in a massively parallel fashion and stored on disk. These QCMaquis calculations may be prepared and executed with the help of two scripts found in $MOLCAS/Tools/distributed-4rdm directory, namely jobmanager.py and prepare_rdm_template.sh. The distributed RDM evaluation is strongly recommended for active spaces larger than 10-11 orbitals and is described in detail in Section 3.3.9.2.

## 4.2.42.2. Input files¶

- JobIph or dmrgscf.h5
File containing information about the reference wavefunction.

- ijkl.h5
Transformed integrals or Cholesky vectors, calculated by the MOTRA program.

## 4.2.42.3. Output files¶

- nevpt2.h5
File in HDF5 format, similar to RASSCF/DMRGSCF dmrgscf.h5 files, containing the effective Hamiltonian for QD-NEVPT2 calculations (both strongly- and partially-contracted).

## 4.2.42.4. NEVPT2 input¶

The NEVPT2 program is activated by

```
&NEVPT2
```

The optional keywords supported by NEVPT2 are listed below.

- STATES
Number of electronic states to calculate. Default: 1

- NOMS
Omit the QD-NEVPT2 calculation and perform single-state NEVPT2 calculations instead.

- MULT
Select specific states to perform QD-NEVPT2 calculation. Followed by a list of whitespace-separated state numbers, preceded by their total amount. Example:

`MULT=3 1 2 4`

for states 1, 2, 4 of a preceeding DMRG-SCF calculation of 4 roots (or more).`MULT=ALL`

includes all states and is the default.- FILE
Specify the path to a JobIph or .h5 file with the reference wavefunction. By default, the reference wavefunction is read from JOBIPH.

- FROZEN
Specify the number of frozen orbitals. The number of frozen orbitals may be specified in two ways: if only one number \(n\) is specified, then all orbitals from 1 to \(n\) are frozen. Otherwise, it is possible to freeze specific orbitals with the SELECT keyword which follows the FROZEN keyword. In this case, the total number of frozen orbitals followed by the space-separated list of frozen orbitals must be entered. Note that if symmetry is used, the orbital numbering for all symmetries is still consecutive, e.g. the 1st orbital of symmetry 2 is has the number \(m+1\) if there are \(m\) orbitals in symmetry 1.

If frozen orbitals are specified in MOTRA input, they will be autodetected in NEVPT2 and there is no need to input them separately, so that this keyword is not needed.

- NOPC
Disable the PC-NEVPT2 calculation. If the option is not present (default), both SC-NEVPT2 and PC-NEVPT2 calculations are performed.

- SKIPK
Skip the calculation of Koopmans’ matrices. Requires a file named nevpt.h5 obtained from a previous calculation in the scratch directory. May be useful to restart a previous crashed calculation if it crashed past the calculation of Koopmans’ matrices, and may save some computational time, especially for large active spaces.

- RDMRead
Do not calculate the 4-RDM, but rather read it from QCMaquis result files $Project.results_state.X.h5 for state

`X`

. Useful if the previous calculation crashed but the 4-RDM evaluation step has succeeded. Do NOT use it if you are using the distributed 4-RDM calculation.- DISTributedRDM
Enable reading of the RDMs calculated with the distributed RDM evaluation script. This keyword should be followed by another line, which specifies the path to the folder with the calculation results. The 4-RDM will then be read from QCMaquis HDF5 files found in <path>/4rdm-scratch.<state>/parts/part-*/$Project.results_state.<state>.h5. The distributed \(n\)-RDM evaluation is described in the NEVPT2 program-based tutorial. If the tutorial is followed, the path should be $WorkDir.

## 4.2.42.5. Input example¶

An input example for NEVPT2 may be found in Section 3.3.9.1.