Selecting two-electron integral types#
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#
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\).
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
and the alpha-beta integrals (not antisymmetrized)
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.
Density Fitting (DF) and Cholesky Decomposition (CD)#
The density fitting and Cholesky decomposition methods approximate two-electron integrals as products of three-index tensors \(b_{pr}^{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
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.
Disk-based Density Fitting (DiskDF)#
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.
Integrals from a FCIDUMP file#
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.
Integral Selection Keywords#
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 calculationType: 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 formatType: string
Default:
INTDUMP