# Interface to MRCC by M. Kállay

Code author: Justin M. Turney and Andrew C. Simmonett

Section author: Justin M. Turney

Module: Keywords, PSI Variables, MRCC, Samples

PSI4 contains code to interface to the MRCC program of M. Kállay and J. Gauss. The license and source code of the MRCC program must be obtained from Mihály Kállay (http://www.mrcc.hu/).

## Installation

Follow the instructions provided with the source to build the MRCC programs. To be used by PSI4, ensure that the program binary (`dmrcc`) can be found in your `PATH`. If PSI4 is unable to execute the binary, an error will be reported.

## Running MRCC

MRCC can be invoked in similar fashion as other theories provided in PSI4. For example, if you want to obtain the CCSDT energy for water with cc-pVDZ using MRCC simply provide the following:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    molecule h2o {
         O
         H 1 1.0
         H 1 1.0 2 104.5
    }
    set {
         basis cc-pVDZ
    }
    energy('mrccsdt')

`'mrccsdt'` in the call to `energy()` instructs PSI4 to first perform an RHF calculation and then call MRCC to compute the CCSDT energy. For a CCSDT(Q) energy, simply use `'mrccsdt(q)'` in the call to `energy()`. MRCC can be used to perform geometry optimization and frequency calculations for electronic ground states only.

At this time, PSI4 is only able to automatically generate the proper input file for MRCC for the methods listed in table below. To utilize any method described in the table, you must prefix the method name with `MR`. For other methods, you will be required to use the MRCC keywords described in Appendix MRCC. Perturbative methods (`ccsd(t)`, `ccsdtqp(h)_l`, etc.) are available with REFERENCE ROHF in versions of MRCC published at least after July 1, 2014.

When using ROHF-CCSDT(Q), MRCC will compute and report two variants: CCSDT(Q)/A and CCSDT(Q)/B.[Kallay:2008:144101]_ Psi4 will save both energies but will use the CCSDT(Q)/B as the CCSDT(Q) energy. CCSDT(Q)/B has been found to be more robust by Martin.[Martin:2014:785]_

> name | calls method in Kallay’s MRCC program [manual]
> --- | ---
> mrccsd | CC through doubles
> mrccsdt | CC through triples
> mrccsdtq | CC through quadruples
> mrccsdtqp | CC through quintuples
> mrccsdtqph | CC through sextuples
> mrccsd(t) | CC through doubles with perturbative triples
> mrccsdt(q) | CC through triples with perturbative quadruples
> mrccsdtq(p) | CC through quadruples with pertubative quintuples
> mrccsdtqp(h) | CC through quintuples with pertubative sextuples
> mrccsd(t)_l |
> mrccsdt(q)_l |
> mrccsdtq(p)_l |
> mrccsdtqp(h)_l |
> mrccsdt-1a | CC through doubles with iterative triples (cheapest terms)
> mrccsdtq-1a | CC through triples with iterative quadruples (cheapest terms)
> mrccsdtqp-1a | CC through quadruples with iterative quintuples (cheapest terms)
> mrccsdtqph-1a | CC through quintuples with iterative sextuples (cheapest terms)
> mrccsdt-1b | CC through doubles with iterative triples (cheaper terms)
> mrccsdtq-1b | CC through triples with iterative quadruples (cheaper terms)
> mrccsdtqp-1b | CC through quadruples with iterative quintuples (cheaper terms)
> mrccsdtqph-1b | CC through quintuples with iterative sextuples (cheaper terms)
> mrcc2 | approximate CC through doubles
> mrcc3 | approximate CC through triples
> mrcc4 | approximate CC through quadruples
> mrcc5 | approximate CC through quintuples
> mrcc6 | approximate CC through sextuples
> mrccsdt-3 | CC through doubles with iterative triples (all but the most expensive terms)
> mrccsdtq-3 | CC through triples with iterative quadruples (all but the most expensive terms)
> mrccsdtqp-3 | CC through quadruples with iterative quintuples (all but the most expensive terms)
> mrccsdtqph-3 | CC through quintuples with iterative sextuples (all but the most expensive terms)

Frozen-core approximation is also supported in the MRCC interface. To optimize CH4 with CCSDT freezing the 1s on carbon, run:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    molecule H2O {
        O
        H 1 r
        H 1 r 2 104.5

        r = 1.0
    }

    set {
        basis cc-pVDZ
        freeze_core true
    }

    optimize('mrccsdt')

## Interface Details

MRCC methods
MRCC_METHOD | Method | Description
--- | --- | ---
1 | CC |
2 | CC(n-1)[n] |
3 | CC(n-1)(n) | (CC(n-1)[n] energy is also calculated)
4 | CC(n-1)(n)_L | (CC(n-1)[n] and CC(n-1)(n) energies are also calculated)
5 | CC(n)-1a |
6 | CC(n)-1b |
7 | CCn |
8 | CC(n)-3 |