7
$\begingroup$

Complementary to this question: How do the various programs read or write integrals in FCIDUMP format? which attempts to list all electronic structure packages that support the FCIDUMP format for 1- and 2-electron integrals, I wonder which programs do not support FCIDUMP files, how such programs store their integrals, and what ways (if any) exist to get around the lack of support for for FCIDUMP files?

There's some programs that print integrals in binary format only (rather than in the ASCII format of FCIDUMP):

  • GAUSSIAN
  • ORCA
  • CFOUR
  • anything else you may add

There's other programs that print in ASCII but not exactly the FCIDUMP format, for example:

  • MRCC
  • anything else you may add

I will answer below about how one can "hack" MRCC to read FCIDUMP formatted integrals, and I am very curious to see how it can be done for other programs!

$\endgroup$
3
  • $\begingroup$ I find it hard to believe that there isn't an iop (in g16) for that, which can be coupled with cheminformatics to produce the file needed. $\endgroup$ Commented Jul 28, 2020 at 14:11
  • $\begingroup$ @Martin-マーチン I was always under the impression that Gaussian writes integrals only in binary, and someone told me that they're not going to make the integrals "readable" because they don't want people using other software, but I admit I know very little about Gaussian. If it's possible to get an FCIDUMP from Gaussian, then I'd be chuffed to see how it's done (as I've shown for MRCC for example). $\endgroup$ Commented Jul 28, 2020 at 14:16
  • $\begingroup$ GAMESS(US) has this facility implemented, but this feature may not be available in the public release. $\endgroup$ Commented Sep 10, 2020 at 18:19

1 Answer 1

6
$\begingroup$

MRCC

MRCC stores 1- and 2-electron integrals in an ASCII file called fort.55 which is formatted very similarly to FCIDUMP.

The fort.55 file stores the integral values and integral indices in exactly the same way as in FCIDUMP, but has a different header. One has to delete the header of the FCIDUMP file and replace it with something like this (here my example is for the frozen-core carbon atom with an aug-cc-pVDZ basis set):

                    22                     4
                     1                     2                     3
                     5                     1                     2
                     3                     5                     1
                     4                     6                     7
                     1                     2                     3
                     5                     1                     1
                     4                     6                     7
                     1
 0
  0.43849259240468241305E+00   1   1   2   2
  0.43849259240468135834E+00   1   1   3   3
  0.48783372394503787817E+00   2   2   3   3
  0.51270165447111978874E-01   1   2   2   5

In the fort.55 header shown above, the 22 is the number of spatial orbitals, the 4 is the number of correlated electrons, and the 22 following numbers are the irreps for the spatial orbitals (in this case the carbon atom is being treated with $D_{2h}$ and you can use my Quantum Chemistry Cheat Sheet to convert between the numbering conventions of some of the most popular quantum chemistry codes (for example my cheat sheet tells you that the $B_{1u}$ irrep is 5 in MOLPRO but 6 in MRCC).

Once you have converted your FCIDUMP file into a fort.55 file, you now have to "trick" MRCC into reading it (because by default MRCC is not meant to be reading in other program's integrals except in the specific cases where an interface has been written to communicate with a program).

This can be done by using the keyword iface=cfour, which makes MRCC think that it's getting a fort.55 file printed from the CFOUR-MRCC interface, when really it came from an FCIDUMP!

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .