17.2. The EA module with various CC reference functions

Please, first read the Quick Guide on all available EA-CC methods here.

Since most of the EA-CC flavors implemented in PyBEST offer similar functionality, all features mentioned below are applicable to all EA-CC methods if not mentioned otherwise. All modules support only the Davidson diagonalization of the EOM Hamiltonian.

In addition to the IOData container attributes mentioned in the Quick Guide above, the RREACC containers include the following information

orb_a

A copy of the orbitals used in the CC reference calculation

olp

The overlap integrals used in the CC reference calculation

e_ref

The total energy of the CC reference function

17.2.1. Summary of keyword arguments

The REACC module supports various keyword arguments that allow us to optimize electron-attached states (electron affinities and the eigenvectors). In the following, all supported keyword arguments are listed together with their default values. Please note that for most cases, the default values should be sufficient to reach convergence.

nparticle

(int) the number of particle operators to describe the (electron-attached) states (default 2 for EA, 3 for DEA)

nroot

(int) the number of targeted (electron-attached) states (default 1)

indextrans

(str) 4-index transformation. The choice between cupy, tensordot (default) and einsum. tensordot is faster than einsum. If DenseLinalgFactory is used, the memory requirement scales roughly as \(3N^4\). Due to the storage of the two-electron integrals, the total amount of memory increases to \(4N^4\)

Note

If CuPy is not available or unsuccessful, td is selected instead.

threshold

(float) printing threshold for the eigenvectors. If a (row) element of civ_ea is larger than the threshold in absolute value, the corresponding electron attachment contribution is printed (default 0.1)

dump_cache

(boolean) effective Hamiltonian elements are loaded and dumped to the disk whenever needed. Since large arrays are dumped to/read from disk, this implementation is slower but more memory-effective (default True if the number of active orbitals exceeds 300).

Some keyword arguments are working together with the Davidson solver:

tolerance

(float) convergence threshold for each electron affinities (default 1e-6)

tolerancev

(float) convergence threshold for each eigenvector optimization (default 1e-5)

maxiter

(int) maximum number of total Davidson diagonalization steps (default 200)

nguessv

(int) total number of guess vectors (default nroots*10, that is, 10 vectors per electron-attached state)

maxvectors

(int) maximum number of Davidson vectors. If additional vectors are added, a subspace collapse is performed (default nroots*20, that is, 20 vectors per excited state)

todisk

(boolean) if set to True, all intermediates are stored to disk. This reduces memory requirements. However, due to the intensive I/O operations, the code is slowed down significantly (default False).