Skip to content
This repository has been archived by the owner on May 28, 2021. It is now read-only.

Latest commit

 

History

History
164 lines (110 loc) · 4.57 KB

doc.rst

File metadata and controls

164 lines (110 loc) · 4.57 KB

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.

fcidump: PSI4 plugin to produce FCIDUMP files

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).

Compilation

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

Running

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.

Basic keywords

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.

FCIDUMP format

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.

Symmetry labels

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...

Author

James Spencer

License

GNU General Public License v2 or later.