Forte can handle different types of exact and approximate two-electron
integrals. This section describes the various options available and
their properties/limitations. The selection of different integral types
is controlled by the option INT_TYPE
Conventional integrals are the default choice for Forte. When this option is selected, Forte will compute and store the two-electron integrals in the molecular orbital (MO) basis \phi_p.
\langle pq | rs \rangle = \int dx_1 dx_2 \phi_p^*(x_1) \phi_q^*(x_2) r_{12}^{-1} \phi_r(x_1) \phi_s(x_2)
These integrals are computed with Psi4’s IntegralTrasform
class and
written to disk. Forte will store three copies of these integrals, the
antisymmetrized alpha-alpha and beta-beta integrals
\langle p_\alpha q_\alpha \| r_\alpha s_\alpha \rangle, \langle p_\beta q_\beta \| r_\beta s_\beta \rangle,
and the alpha-beta integrals (not antisymmetrized)
\langle p_\alpha q_\beta | r_\alpha s_\beta \rangle,
for all values of p, q, r, s. Storage of these integrals has a memory cost equal to 3 N^4, where N is the number of orbitals that are correlated (frozen core and virtual orbitals excluded). Therefore, conventional integrals are viable for computations with at most 100-200 orbitals. For larger bases, density Fitting and Cholesky decomposition are instead recommended.
The density fitting and Cholesky decomposition methods approximate two-electron integrals as products of three-index tensors b_{pr}^{P}
\langle pq | rs \rangle = \sum_P^M b_{pr}^{P} b_{qs}^{P}
where M is a quantity of the order 3 N.
Note: The equations reported here use physicist notation for the two-electron integrals, but the DF/CD literature usually adopts chemist’s notation. The main difference between DF and CD is in the way the B tensors are defined. In DF, the b tensor is defined as
b_{pq}^{Q} = \sum_p (pq | P)[(P | Q)^{-1/2}]_{PQ}
where the indices P and Q refer to the auxiliary basis set.
Two options control the type of density fitting basis used in forte.
The auxiliary basis used in the correlated computations is defined via
the Psi4 option DF_BASIS_MP2
. The auxiliary basis used in CASSCF is
defined via the Psi4 option DF_BASIS_SCF
. These two options can be
different, but this might lead to an unconsistent treatment of
correlation effects.
In the CD approach, the b tensor is formed via Cholesky
decomposition of the exact two-electron integrals in the atomic basis.
The accuracy of this decomposition (and the resulting two-electron
integrals) is determined by a user defined tolerance selected via the
option CHOLESKY_TOLERANCE
. Both the DF and CD algorithms store the
b tensor in memory, and therefore, they require
M N^2 \approx 3 N^3 memory for storage. On a single node with
128 GB of memory, DF and CD computations allow to treat up to 1000
orbitals.
Calculations with more than 1000 basis functions quickly become unfeasible as the memory requirements of density fitting grows as the cube of basis size. In this case, it is possible to switch to a disk-based implementation of DF, which assumes that the b tensor can be fully stored on disk.
Most of Forte computations can also be executed using integrals read
from a FCIDUMP file. To read integrals in the FCIDUMP format just use
the option INT_TYPE = FCIDUMP
. For example:
import forte set forte { active_space_solver fci int_type fcidump frozen_docc [2 ,0 ,0 ,0] restricted_docc [2 ,0 ,0 ,0] active [2 ,2 ,2 ,2] }
The default name of the FCIDUMP file is INTDUMP
, but it can be
changed via the option FCIDUMP_FILE
. Forte will read the number of
orbital, number of electrons, the multiplicity, and irrep from the
FCIDUMP file. This information is then used to build a StateInfo
object that contains all information regarding the electronic state that
will be computed. The user can, however, select a different state by
specifying the number of electrons (NEL
), multiplicity
(MULTIPLICITY
), and irrep (ROOT_SYM
) via the appropriate
options.
The following keywords control the integral class and affect all computations that run in Forte:
- INT_TYPE
INT_TYPE
selects the integral type used in the calculation- Type: string
- Default:
CONVENTIONAL
- Possible Values:
CONVENTIONAL
,DF
,CHOLESKY
,DISKDF
,FCIDUMP
- CHOLESKY_TOLERANCE The tolerance for the cholesky decomposition.
This keyword determines the accuracy of the computation. A smaller
tolerance is a more accurate computation. The tolerance for the
cholesky decomposition:
- Type: double in scientific notation (ie 1e-5 or 0.0001)
- Default:
1.0e-6
- DF_BASIS_MP2 The basis set used for density fitting the integrals
used in all correlated computations. This keyword needs to be placed
in the globals section of a Psi4 input. This basis should be one of
the RI basis sets designed for a given primary basis, for example,
when using
BASIS = cc-pVDZ
you should useDF_BASIS_MP2 = cc-pVDZ-RI
.- Type: string specifing basis set
- Default: none
- DF_BASIS_SCF The basis set used for density fitting the integrals
used in forte’s CASSCF computations. This keyword needs to be placed
in the globals section of a Psi4 input. This basis should be one of
the JK basis sets designed for a given primary basis, for example,
when using
BASIS = cc-pVDZ
you should useDF_BASIS_SCF = cc-pVDZ-JKfit
.- Type: string specifing basis set
- Default: none
- FCIDUMP_FILE
FCIDUMP_FILE
selects the file from which to read the integrals in the FCIDUMP format- Type: string
- Default:
INTDUMP