Description of MRCC interface to Cc4s
This section explains how to interface an MRCC
calculation with Cc4s
.
For details on the compilation and execution of MRCC
we refer to the
User manual of MRCC
.
The interface was tested with MRCC
released on March 18, 2022. For interfacing with Cc4s
no modifications of MRCC
are required.
1. MRCC
calculation
To obtain the necessary input files, start an MRCC
calculation using calc=DF-CCSD
or
calc=DF-CCSD(T)
.
Note that these calculations only need to reach the point at which the necessary input
files have been written.
An example MINP
input file for the C2H4 molecule in the cc-pVTZ basis set is provided below.
basis=cc-pvtz calc=DF-CCSD symm=off mem=50000MB geom=xyz 6 C 0.65578303 -0.11679284 2.54108880 H 1.04724381 -1.12391167 2.53662054 H 1.37085682 0.69327113 2.53658721 C -0.65577348 0.11678979 2.54109769 H -1.37084543 -0.69327473 2.53660160 H -1.04723659 1.12390869 2.53663949
symm=off
and mem=50000MB
are used as a safe default.
Running the driver program of MRCC
, dmrcc
, will execute the following sequence
of programs:
integ
(AO integrals).scf
(Hartree–Fock calculation).integ
(AO integrals).drpa
(MO integrals).ccsd
(CCSD calculation).
The program is executed in the directory where the MINP
file is located.
This procedure creates the following four binary files, which are needed as input for Cc4s
:
- FOCK
- Fock matrix.
- MOCOEF
- Molecular orbital coefficients.
- TEINT
- Three-center Coulomb integrals in AO representation (sparse format).
- TEDAT
- Index information for the
TEINT
file.
In addition, we recommend providing the standard output of the MRCC
calculation.
All required files are created in the second call of integ
.
This implies that the MRCC
calculation can safely be stopped at the beginning of the drpa
step.
An example for a minimal bash script that runs MRCC
and stops at the beginning the drpa
step
is given by.
#!/usr/bin/env bash # Check if the binary is in the PATH if ! which "dmrcc" > /dev/null 2>&1; then echo "Error: dmrcc not found in PATH." echo "Solution: Add dmrcc to the PATH using:" echo "export PATH=\$PATH:/some/default/path/to/a/mrcc/version" exit 1 fi # use openmp threading in MRCC export OMP_NUM_THREADS=24 echo "Starting dmrcc in the background now." dmrcc > mrcc_stdout & pid=$! echo "dmrc process with pid" $pid "will be killed when \"Executing drpa\" is written to mrcc_stdout." # Starting dmrcc while true; do grep -q "Executing drpa" mrcc_stdout && kill "$pid" && break sleep 5 done
2. Reading MRCC
input and running CCSD(T) calculation in Cc4s
The Cc4s
calculation will then process the files from the MRCC
calculation
using the algorithm MrccReader.
An example cc4s.in
file is given below
- name: MrccReader in: mrccStdOut: mrcc_stdout out: coulombVertex: CoulombVertex eigenEnergies: EigenEnergies - name: VertexCoulombIntegrals in: slicedCoulombVertex: CoulombVertex out: coulombIntegrals: CoulombIntegrals - name: CoupledCluster in: method: Ccsd integralsSliceSize: 100 slicedEigenEnergies: EigenEnergies coulombIntegrals: CoulombIntegrals slicedCoulombVertex: CoulombVertex maxIterations: 30 energyConvergence: 1.0E-8 amplitudesConvergence: 1.0E-8 mixer: type: DiisMixer maxResidua: 5 out: amplitudes: Amplitudes - name: PerturbativeTriples in: slicedEigenEnergies: EigenEnergies amplitudes: Amplitudes coulombIntegrals: CoulombIntegrals out: {}
Running Cc4s
with the above input file will perform a canonical CCSD(T) calculation.
The above Cc4s calculation requires the following input files produced by MRCC:
FOCK
, MOCOEF
, TEINT
, TEDAT
and mrcc_stdout
.
mrcc_stdout
contains the standard output of the MRCC calculation from the previous section.
For the given example of the C2H4 molecule in the cc-pVTZ basis, the following correlation energy contributions are obtained.
Contribution | Value |
---|---|
2nd-order correlation energy: | -0.335329069 |
Ccsd correlation energy: | -0.360100373 |
(T) correlation energy: | -0.014962119 |
Another full Cc4s
calculation can be found in the tests (H2O2 molecule).