# 4.2.34. MCPDFT¶

The MCPDFT program in OpenMolcas performs multiconfiguration pair-density functional theory (MC-PDFT) calculations, as described in [105, 106]. The MC-PDFT method involves two steps: (i) a CASSCF, RASSCF, GASSCF, DMRG-SCF, CASCI, RASCI, or DMRG wave function calculation to obtain the kinetic energy, classical Coulomb energy, total electron density, and on-top pair-density; (ii) a post-SCF calculation of the remaining energy using an on-top pair-density functional. In the current implementation, the on-top pair-density functionals are translated (t) or fully translated (ft) [107] LSDA-type or GA-type exchange correlation functionals. For example: tLSDA, tPBE, tBLYP, trevPBE and tOPBE for translated functionals, and ftLSDA, ftPBE, ftBLYP, ftrevPBE and ftOPBE for fully-translated functionals. Hybrid functionals (see keyword LAMBda) and functionals with scaled exchange and correlation (see keyword DFCF) are also available. As multiconfigurational wave functions are used as input quantities, spin and space symmetry are correctly conserved.

The molecular orbitals and one- and two-body density matrices are read from the JOBIPH (or JOBOLD) file generated during a RASSCF run. In the DMRG-SCF case, the one- and two-body density matrices are read from an .h5 file generated during a DMRGSCF run.

## 4.2.34.1. Dependencies¶

To start the MCPDFT module, the one-electron and two-electron integrals generated by SEWARD are required. For MC-PDFT calculations it is suggested to use a fine or ultrafine grid via the following input specifications (see the SEWARD section for further details):

```
&SEWARD
grid input
grid=ultrafine
end of grid input
```

Additionally, a JOBIPH (or wavefunction.h5) file must be supplied to provide the molecular orbitals and one- and two-body density matrices.

## 4.2.34.2. Files¶

### 4.2.34.2.1. Input files¶

MCPDFT will use the following input files: ONEINT, ORDINT, RUNFILE, JOBOLD, JOBIPH, wavefunction.h5.

If Cholesky options are selected, additional Cholesky-related files will also be used. Only JOBIPH or JOBOLD or wavefunction.h5 is needed; the code will first look for JOBOLD first and JOBIPH second. To switch to the HDF5 wavefunction.h5 file mandatory for a DMRGSCF reference wave function, use the keyword FILEORB.

### 4.2.34.2.2. Output files¶

- JOBPDFT
This file is written in binary format and has the same structue of the JOBIPH file.

- wavefunction.h5 (optional)
This file is written in HDF5 format and updates the content (state energies) of the input wavefunction.h5 file.

- RUNFILE
The RUNFILE is updated with information from the MC-PDFT calculation.

## 4.2.34.3. Input¶

This section describes the input to the MCPDFT program in OpenMolcas. The input starts with the program name

```
&MCPDFT
```

The KSDFT is the only required keyword.

- KSDFT
The functional choice follows. Specify the functional by prefixing

`T:`

or`FT:`

to the standard DFT functionals (see keyword KSDFT of SCF). Note that hybrid functional names (e.g. PBE0 or B3LYP) should not be used after`KSDFT=T:`

or`KSDFT=FT:`

in this module. See keyword LAMBda for a description on how to run hybrid MC-PDFT calculations. Also note that the format of a number \(N\) followed by \(N\) lines, each of them containing a weight factor and a Libxc functional name, is not supported in this module. Examples of this keyword:KSDFT=T:PBE * A functional keyword, can be used for MC-PDFT calculations.

KSDFT=T:GGA_X_PBE * A Libxc functional name, can be used for MC-PDFT calculations.

However, the following syntax should not be used.

KSDFT=T: 2 * two components with their weights, CANNOT be used for MC-PDFT calculations. 1.00 GGA_X_PBE * Libxc functional names 1.00 GGA_C_PBE * Libxc functional names

- DFCF
Use this keyword to scale the exchange terms and/or correlation terms of the functional requested. This keyword should be followed by the scaling factor for the exchange terms and the scaling factor for the correlation terms, separated by a space. If the values are 1.0 (default), then the original functional is used. For an HLE-type functional, use 1.25 (for exchange) and 0.5 (for correlation). Example:

`DFCF=1.25 0.5`

- GRAD
The keyword is needed to calculate potentials for analytical gradients. This keyword can be used with state-specific and state-averaged CASSCF reference wavefunctions and with the CMS-PDFT method.

- MSPDft
This keyword allows one to run Multi-State Pair-Density Functional Theory (MS-PDFT). This keyword is only effective when a file named H0_Rotate.txt is present in the scratch directory, otherwise only state-specific MC-PDFT calculations will be performed. With the MSPD keyword, the program reads the Hamiltonian matrix from H0_Rotate.txt, replaces the diagonal elements with the MC-PDFT energies of the intermediate states (presumably obtained from a previous RASSCF module in which the keyword ROST, XMSI or CMSI is used), and diagonalizes the Hamiltonian matrix in the intermediate basis (called the effective Hamiltonian matrix) to obtain the MS-PDFT states and energies. An input example is shown below. More details regarding the theory, the input, and the output can be found on the Minnesota OpenMolcas page1.

XMS-PDFT and CMS-PDFT are two MS-PDFT options in the code.

- WJOB
This keyword allows one to write the energies and eigenstates of MC-PDFT or MS-PDFT into JOBIPH (or wavefunction.h5). For MC-PDFT, only the energy of each state is written into JOBIPH (or wavefunction.h5), since an MC-PDFT calculation is based on a previous wave function (CASSCF, SA-CASSCF, RASSCF, GASSCF, DMRG-SCF, CASCI, RASCI…); for MS-PDFT, both the energy and the CI coefficients of the eigenstates are written into JOBIPH, because an MS calculation changes the wave functions. The latter option is not yet available for DMRG-SCF reference wave functions.

- LAMBda
This keyword is used to run a hybrid MC-PDFT or hybrid MS-PDFT calculation. In hybrid MC-PDFT calculations, the total energy is a weighted sum of the MC-PDFT energy and the wave function energy. In hybrid MS-PDFT calculations, the intermediate state energies (the diagonal elements of the model-space Hamiltonian) are weighted sums of the MC-PDFT energy and the wave function energy. The weight of the wave function energy is given by the variable \(\lambda\) (which is set by the LAMBda keyword), and the weight of the PDFT energy \((1 - \lambda)\); for example, to run MC-PDFT with tPBE0, the value for \(\lambda\) should be 0.25. The default is \(\lambda\) = 0.0.

Example of running tPBE0:

KSDFT = T:PBE LAMB = 0.25

However, the following two examples will NOT give tPBE0 results:

KSDFT = T:PBE0

or:

KSDFT = T:PBE0 LAMB = 0.25

because hybrid functional names (e.g. PBE0 or B3LYP) should not be used after

`KSDFT=T:`

in this module.- FILEORB
This keyword allows one to set a reference wave function file to be used instead of the default, which is the JOBIPH file; in particular, one can use an HDF5 file. If a MC-PDFT calculation is to be followed by an MPSSI calculation for a reference DMRG wave function, please also add the keyword WJOB. Example:

`FileOrb = wavefunction.h5`

- NAC
This keyword is used to request the computation of nonadiabatic coupling vectors (which are often called NACs). It must be followed by two integers on the next line, specifying the states between which the coupling is required. Note that, unlike SALA, the numbering here is absolute, regardless of which roots are included in the state average.

- MECI
The keyword is needed to calculate potentials for analytical gradients when calculating minimum energy conical intersections (MECIs) This calculates the first derivative of the effective Hamiltonian matrix element rather than the NAC.

### 4.2.34.3.1. Input example¶

The following example shows the input to the RASSCF and MCPDFT programs for a calculation on the water molecule. The tPBE functional is used. The calculation is performed in \(C_{2v}\) symmetry (symmetries: \(a_1\), \(b_2\), \(b_1\), \(a_2\), where the two last species are antisymmetric with respect to the molecular plane). Inactive orbitals are 1\(a_1\) (oxygen 1s), 2\(a_1\) (oxygen 2s), and 1\(b_1\) (the \(\pi\) lone-pair orbital). Two bonding and two anti-bonding \(\ce{OH}\) orbitals are active, \(a_1\) and \(b_2\) symmetries. The calculation is performed for the \(^1A_1\) ground state. Note that no information about basis set, geometry, etc. has to be given. Such information is supplied by the SEWARD integral program via the one-electron integral file ONEINT.

```
&RASSCF
Title= Water molecule. Active orbitals OH and OH* in both symmetries
Spin = 1
Symmetry = 1
Inactive = 2 0 1 0
Ras2 = 2 2 0 0
&MCPDFT
KSDFT=T:PBE
```

The first RASSCF run is a standard CASSCF calculation that leads to variationally optimized orbitals and CI coefficients. The MC-PDFT run will use the orbitals and density matrices optimized during the preceding RASSCF run.

The following example shows a part of the input to run a CMS-PDFT calculation. For XMS-PDFT calculations, one simply replaces CMSI with XMSI. The system is \(\ce{LiF}\) and the point group used is \(C_{2v}\).

```
&RASSCF
Spin=1
Symmetry=1
CIRoot= 2 2 1
Inactive=2 0 0 0
Ras2=4 1 0 1
Nactel=8 0 0
>>COPY $CurrDir/LiF.RasOrb $CurrDir/UseOrb
&RASSCF
CIOnly
Spin=1
Symmetry=1
CIRoot= 2 2 1
Inactive=2 0 0 0
Ras2=4 1 0 1
Nactel=8 0 0
CMSI
&MCPDFT
KSDFT=T:PBE
MSPDft
```

The following example shows a part of the input to run CMS-PDFT geometry optimization. The additional keywords are RLXR in RASSCF and GRAD in MCPDFT. The additional modules include MCLR, ALASKA and SLAPAF.

```
&GATEWAY
Coord
2
angstrom
Li 0.0 0.0 1.3
F 0.0 0.0 -1.3
Group=XY Y
Basis=STO-3G
>>> DO WHILE
&Seward
&RASSCF
Spin=1
Symmetry=1
CIRoot= 2 2 1
Inactive=2 0 0 0
Ras2=4 1 0 1
Nactel=8 0 0
CMSI
RLXRoot=2
&MCPDFT
KSDFT=T:PBE
Grad
MSPDft
&MCLR
&ALASKA
&SLAPAF
>>> EndDo
```