BSE

Parameters for a calculation solving the Bethe-Salpeter equation (BSE) for electronic excitations. The full BSE \(\left( \begin{array}{cc}A & B\\B & A\end{array} \right)\) \(\left( \begin{array}{cc}\mathbf{X}^{(n)}\\\mathbf{Y}^{(n)}\end{array} \right) = \Omega^{(n)}\left(\begin{array}{cc}1&0\\0&-1\end{array}\right)\) \(\left(\begin{array}{cc}\mathbf{X}^{(n)}\\\mathbf{Y}^{(n)}\end{array}\right)\) enables, for example, the computation of electronic excitation energies \(\Omega^{(n)}\) as well as optical properties. The BSE can be solved by diagonalizing the full ABBA-matrix or by setting B=0, i.e. within the Tamm-Dancoff approximation (TDA). Reference: Eq. (8) (the full BSE), Eq. (10) (the matrix elements A and B with the singlet and triplet prefactors) and Eq. (18) (TDA) in PRB 113, 205152 (2026); https://doi.org/10.1103/38k2-d55h This section runs the BSE on the quasiparticle energies, the static screened interaction and the RI integrals of the low-scaling GW of PROPERTIES%BANDSTRUCTURE%GW (three-center RI integrals in the atomic-orbital basis; https://doi.org/10.1021/acs.jctc.0c01282), which must be present in the same input and must not use RI_RS; its CUTOFF_RADIUS_RI and RI basis set are convergence parameters of PROPERTIES%BSE as well. The same section under XC%WF_CORRELATION%RI_RPA%GW runs the BSE on the \(O(N^4)\)-scaling GW of RI_RPA%GW (molecular-orbital basis; https://doi.org/10.1021/acs.jctc.6b00380) instead. Both sections treat non-periodic systems only. [Edit on GitHub]

Mentions: ⭐GW + Bethe-Salpeter equation

Keywords

Keyword descriptions

SECTION_PARAMETERS

Type: logical
Default: F
Lone keyword: T
Usage: &BSE .TRUE.

Description: Activates BSE calculations. [Edit on GitHub]

BSE_DEBUG_PRINT

Type: logical
Default: F
Lone keyword: T
Usage: BSE_DEBUG_PRINT .TRUE.

Description: Activates debug print statements in the BSE calculation. [Edit on GitHub]

BSE_DIAG_METHOD

Type: enum
Default: FULLDIAG
Usage: BSE_DIAG_METHOD FULLDIAG

Description: Method for BSE calculations. Choose between full or iterative diagonalization. [Edit on GitHub]

Valid values:

  • FULLDIAG Fully diagonalizes the BSE matrices within the chosen level of approximation.

  • ITERDIAG Block Davidson iteration for the lowest NUM_EXC_EN excitations, applying the BSE matrices without forming them; settings in BSE_ITERAT.

ENERGY_CUTOFF_EMPTY

Type: real
Default: -2.72113839E+001 [eV]
Usage: ENERGY_CUTOFF_EMPTY 10.0

Description: Remove all orbitals with indices a,b from A_ia,jb and B_ia,jb with energy difference to LUMO level larger than the given energy cutoff, i.e. \(\varepsilon_a\in[\varepsilon_{a=\text{LUMO}}^{DFT},\varepsilon_{a=\text{LUMO}}^{DFT}+E_\text{cut}^\text{empty}]\). The cutoff is applied to the DFT eigenvalues, also when the BSE takes quasiparticle energies from the GW. Can be used to accelerate runtime and reduce memory consumption. [Edit on GitHub]

ENERGY_CUTOFF_OCC

Type: real
Default: -2.72113839E+001 [eV]
Usage: ENERGY_CUTOFF_OCC 10.0

Description: Remove all orbitals with indices i,j from A_ia,jb and B_ia,jb with energy difference to HOMO level larger than the given energy cutoff, i.e. \(\varepsilon_i\in[\varepsilon_{i=\text{HOMO}}^{DFT}-E_\text{cut}^\text{occ},\varepsilon_{i=\text{HOMO}}^{DFT}]\). The cutoff is applied to the DFT eigenvalues, also when the BSE takes quasiparticle energies from the GW. Can be used to accelerate runtime and reduce memory consumption. [Edit on GitHub]

EPS_X

Type: real
Default: 1.00000000E-001
Usage: EPS_X 0.1

Description: Threshold for printing contributions of singleparticle transitions, i.e. elements of the eigenvectors \(X_{ia}^{(n)}\) and \(Y_{ia}^{(n)}\). [Edit on GitHub]

MEMORY_PER_PROC

Type: real
Default: -1.00000000E+000
Usage: MEMORY_PER_PROC 8.0

Description: Memory per MPI rank in GB available to the BSE, the counterpart of MEMORY_PER_PROC in the GW section. -1: detected when the BSE first needs it, as the memory the rank holds plus 80 percent of the free memory of the node divided by its ranks. Every memory-heavy step takes what is left after the memory the rank holds at that moment: under PROPERTIES the three-center integrals are transformed in batches of RI atoms that fit, down to one atom per batch; with ITERDIAG the subspace ceiling and the matvec blocks are lowered to fit; with FULLDIAG the memory of the BSE matrices is fixed by the active window, and the run stops before the GW when it does not fit. [Edit on GitHub]

Mentions: ⭐GW + Bethe-Salpeter equation

NUM_PRINT_EXC

Type: integer
Default: 25
Usage: NUM_PRINT_EXC 25

Description: Number of printed excitation levels with respective energies and oscillator strengths. Does not affect computation time. [Edit on GitHub]

NUM_PRINT_EXC_DESCR

Type: integer
Default: 0
Usage: NUM_PRINT_EXC_DESCR 5

Description: Number of excitation levels for which the exciton descriptors are computed. Negative or too large NUM_PRINT_EXC_DESCR defaults to NUM_PRINT_EXC. [Edit on GitHub]

PRINT_DIRECTIONAL_CROSSCORRELATION

Type: logical
Default: T
Lone keyword: T
Usage: PRINT_DIRECTIONAL_CROSSCORRELATION .FALSE.

Description: Prints the electron-hole crosscorrelation matrix as part of the exciton descriptors per direction. Only active together with PRINT_DIRECTIONAL_EXC_DESCR. [Edit on GitHub]

PRINT_DIRECTIONAL_EXC_DESCR

Type: logical
Default: F
Lone keyword: T
Usage: PRINT_DIRECTIONAL_EXC_DESCR .TRUE.

Description: Activates printing of exciton descriptors per direction. [Edit on GitHub]

SPIN_CONFIG

Type: enum
Default: SINGLET
Usage: SPIN_CONFIG TRIPLET

Description: Choose between calculation of singlet or triplet excitation (cf. given Reference above). [Edit on GitHub]

Valid values:

  • SINGLET Computes singlet excitations.

  • TRIPLET Computes triplet excitations.

TDA

Type: enum
Default: ON
Usage: TDA ON

Description: Level of approximation applied to BSE calculations. Choose between Tamm Dancoff approximation (TDA) and/or diagonalization of the full ABBA-matrix. [Edit on GitHub]

Valid values:

  • ON The TDA is applied, i.e. B=0.

  • OFF The ABBA-matrix is diagonalized, i.e. the TDA is not applied.

  • TDA+ABBA The BSE is solved within the TDA (B=0) as well as for the full ABBA-matrix.

USE_KS_ENERGIES

Type: logical
Default: F
Lone keyword: T
Usage: USE_KS_ENERGIES .TRUE.

Description: Uses KS energies instead of GW quasiparticle energies. [Edit on GitHub]