This plugin is DEPRECATED and UNMAINTAINED. `Psi4 <http://psicode.org/psi4manual/master/api/psi4.driver.fcidump.html>`_ can, as of version 1.2, natively write integrals to FCIDUMP format.
It is sometimes convenient to have a quick interface between |PSIfour| and another code. One such (albeit inefficient) way is to write out all one- and two-electron integrals to disk. A format (sadly modified in an ad hoc fashion by other codes, including this one!) for the filetype FCIDUMP is given in Comp. Phys. Commun. 54 75 (1989).
First, compile and install |PSIfour|. To compile the plugin, a makefile containing the necessary settings must first be produced. In this directory, run:
$ `psi4 --plugin-compile` $ make
The directory containing the fcidump plugin directory must reside either on PSIPATH (recommended) or PYTHONPATH, which can be conveniently set in the input file or in the ~/.psi4rc file. Note that your PSIPATH or PYTHONPATH must include the directory above the fcidump directory. Please see the |PSIfour| manual for further details about the plugin system and running standard SCF calculations.
Assuming this is met, the integral file can be generated by modifying a standard SCF input file for the desired system to start with
import fcidump
and replacing
energy('scf')
with
energy('fcidump')
For example, the input file:
import fcidump molecule { Ne 0 0 0 } set { basis 6-311g scf_type pk } energy('fcidump')
will run the requested SCF calculation and then write out an FCIDUMP file to the file INTDUMP.
NOTE: if psi4 is run in the same directory as the plugin, PYTHONPATH must be used instead of PSIPATH.
The above example can be found in the test
subdirectory.
The following options can be set either globally or scoped to the fcidump
module by
including
set fcidump keyword value
in your input file.
- integrals_file
- Filename to which the integrals are written. Default:
INTDUMP
. - print_eigenvalues
- Print out the single-particle eigenvalues to the integrals file. Disable for strict compatibility with the FCIDUMP format. Default: true.
The FCIDUMP format starts with a Fortran namelist (delimited by &FCI and &END) with the following options:
- NORB
- Integer. The number of orbitals.
- NELEC
- Integer. The number of electrons.
- MS2
- Integer. The spin polarization of the system, 2 \time M_s.
- ORBSYM
- Integer list. A comma-separated list containing the symmetry label of each orbital. See below for more details.
- UHF
Boolean. True if underlying SCF calculation is UHF and False if it is RHF.
Warning
This option is not included in the FCIDUMP format and so may need to be removed before the integrals can be used by some programs.
Note
The number of and indices of orbitals refer to molecular orbitals if generated by an RHF calculation and to spin orbitals if generated by a UHF calculation.
The integrals are printed (one per line) after the namelist in the following format:
x i a j b
The following cases are permitted:
- i, j, a, b are all zero
- x is the nuclear energy (plus the contribution from the frozen core orbitals, if applicable)
- a, j, b are both zero
x is the eigenvalue of the i-th orbital
Warning
This is an extension and to the FCIDUMP format and is not be accepted by all codes.
- j, b are both zero
- x is the one-body Hamiltonian operator integral between i and a, \langle i | h | a \rangle = x.
- i, a, j, b are all non-zero
- x is the Coulomb integral, ( i a | j b ) = x.
A symmetry label corresponds to an irreducible representation of the largest Abelian subgroup of the molecule, as given in Sec. :ref:`sec:symmetry` of the PSI4 manual.
In a zero-indexed scheme (i.e. subtract one from each label), the exclusive or between symmetry labels of two irreducible representations gives the label of irreducible representation which is the result of the direct product of the first two irreducible representations. This is extremely convenient as it avoids needing to know the ordering of the representations or indeed what representation each label corresponds to...
James Spencer
GNU General Public License v2 or later.