BSE: update references (#5515)

This commit is contained in:
Max Graml 2026-07-03 11:19:09 +02:00 committed by GitHub
parent 1f9fd2c165
commit bfcb1ea1d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 46 additions and 27 deletions

View file

@ -1,10 +1,11 @@
# *GW* + Bethe-Salpeter equation
The Bethe-Salpeter equation (BSE) is a method for computing electronic excitation energies and
optical absorption spectra. We describe in Sec. [1](#header-theory) the theory and implementation of
BSE, in Sec. [2](#header-input) the BSE input keywords and in Sec. [3](#header-example) a full CP2K
input file of a BSE calculation and the corresponding output. For reviews on BSE, see
\[[](#Blase2018), [](#Blase2020), [](#Bruneval2015), [](#Sander2015)\].
optical absorption spectra. We repeat the theory and implementation of BSE from \[[](#Graml2026)\]
in Sec. [1](#header-theory), in Sec. [2](#header-input) the BSE input keywords and in Sec.
[3](#header-example) a full CP2K input file of a BSE calculation and the corresponding output. For
further references on BSE, see \[[](#Blase2018), [](#Blase2020), [](#Bruneval2015),
[](#Sander2015)\].
(header-theory)=
@ -52,7 +53,7 @@ where $p,q,r,s \in [ 1, N_\mathrm{occ}+N_\mathrm{empty}]$ are KS orbital indices
the screened Coulomb interaction is always computed from DFT quantitites, i.e. $W_{0}(\omega=0)$
enters the BSE. $(\mathbf{X}^{(n)},\mathbf{Y}^{(n)})$ with elements $X_{ia}^{(n)}$ and
$Y_{ia}^{(n)}$ are the eigenvectors of the excitation $n$, which relate to the wave function of the
electronic excitation \[[](#Blase2020)\],
electronic excitation,
$$
\begin{align}
@ -237,8 +238,7 @@ where we drop the excitation index $n$ from now on for better readability.
For each excitation level $n$, we have then several quantities, which allow us to quantify the
spatial extent of the electron, the hole and their combined two-particle character as combined
electron-hole pair, i.e. as an exciton. By that, we can often determine the type of the excited
state, i.e. distinguish between, e.g., valence, Rydberg or charge-transfer states
\[[](#Mewes2018)\].
state, i.e. distinguish between, e.g., valence, Rydberg or charge-transfer states.
First, we define the distance between electron and hole as
@ -352,7 +352,7 @@ In the upper GW/BSE section, the following keywords have been used:
Setting a small `ENERGY_CUTOFF_OCC` drastically reduces the computation time and the memory
consumption, but also might affect the computed excitation energies $\Omega^{(n)}$. Recommended to
use for large systems with more than 30 atoms, but we recommend a careful convergence test by
increasing `ENERGY_CUTOFF_OCC` and observing the effect on $\Omega^{(n)}$ \[[](#Liu2020)\].
increasing `ENERGY_CUTOFF_OCC` and observing the effect on $\Omega^{(n)}$ \[[](#Graml2026)\].
- [ENERGY_CUTOFF_EMPTY](#CP2K_INPUT.FORCE_EVAL.DFT.XC.WF_CORRELATION.RI_RPA.GW.BSE.ENERGY_CUTOFF_EMPTY)
$E_\text{cut}^\text{empty}$: Analogous to `ENERGY_CUTOFF_OCC`, but for the empty states, i.e. only
@ -394,8 +394,8 @@ optical properties:
- [XC_FUNCTIONAL](#CP2K_INPUT.FORCE_EVAL.DFT.XC.XC_FUNCTIONAL): Choose between one of the available
xc-functionals. The starting point can have a profound influence on the excitation energies
\[[](#Knysh2024)\]. Motivated by the discussion in \[[](#Schambeck2024)\], we strongly recommend
to use BSE@ev*GW*<sub>0</sub>@PBE, i.e. the PBE functional as DFT starting point (see also
\[[](#Graml2026)\]. Motivated by the discussion in \[[](#Graml2026)\], we strongly recommend to
use BSE@ev*GW*<sub>0</sub>@PBE, i.e. the PBE functional as DFT starting point (see also
[SELF_CONSISTENCY](#CP2K_INPUT.FORCE_EVAL.DFT.XC.WF_CORRELATION.RI_RPA.GW.SELF_CONSISTENCY)).
- [BASIS_SET](#CP2K_INPUT.FORCE_EVAL.SUBSYS.KIND.BASIS_SET): Specify the basis set, which affects
$N_\mathrm{empty}$ and thus the size of the matrices $A_{ia,jb}$ and $B_{ia,jb}$. The
@ -410,11 +410,11 @@ $100 \cdot N_\mathrm{occ}^2 N_\mathrm{empty}^2$ Bytes. You can see $N_\mathrm{oc
$N_\mathrm{empty}$ and the estimated memory consumption from the BSE output. The BSE implementation
is well parallelized, i.e. you can use several nodes that can provide the memory.
We have benchmarked the numerical precision of our BSE implementation and compared its results to
the BSE implementation in FHI aims \[[](#Liu2020)\]. For our recommended settings, i.e.
BSE@ev*GW*<sub>0</sub>@PBE with the aug-cc-pVDZ basis set, we have found excellent agreement with
less than 5 meV mean absolute deviation averaged over the first 10 excitation levels and the 28
molecules in *Thiel's set* for Singlet excitations.
We have benchmarked the numerical precision of our BSE implementation in \[[](#Graml2026)\] and
compared its results to the BSE implementation in FHI aims \[[](#Liu2020)\]. For our recommended
settings, i.e. BSE@ev*GW*<sub>0</sub>@PBE with the aug-cc-pVDZ basis set, we have found excellent
agreement with less than 5 meV mean absolute deviation averaged over the first 10 excitation levels
and the 28 molecules in *Thiel's set* for Singlet excitations.
The current BSE implementation in CP2K works for molecules. The inclusion of periodic boundary
conditions in a Γ-only approach and with full *k*-point sampling is work in progress.

View file

@ -13,6 +13,8 @@
MODULE bse_print
USE atomic_kind_types, ONLY: get_atomic_kind
USE bibliography, ONLY: Graml2026,&
cite_reference
USE bse_properties, ONLY: compute_and_print_absorption_spectrum,&
exciton_descr_type
USE bse_util, ONLY: filter_eigvec_contrib
@ -59,6 +61,7 @@ CONTAINS
INTEGER :: handle
CALL timeset(routineN, handle)
CALL cite_reference(Graml2026)
IF (unit_nr > 0) THEN
WRITE (unit_nr, *) ' '
@ -126,8 +129,8 @@ CONTAINS
WRITE (unit_nr, '(T2,A4)') 'BSE|'
WRITE (unit_nr, '(T2,A4,T7,A41)') 'BSE|', 'sum_jb ( A_ia,jb X_jb^n ) = Ω^n X_ia^n'
WRITE (unit_nr, '(T2,A4)') 'BSE|'
WRITE (unit_nr, '(T2,A4,T7,A30)') 'BSE|', 'prelim Ref.: Eq. (36) with B=0'
WRITE (unit_nr, '(T2,A4,T7,A71)') 'BSE|', 'in PRB 92,045209 (2015); http://dx.doi.org/10.1103/PhysRevB.92.045209 .'
WRITE (unit_nr, '(T2,A4,T7,A14)') 'BSE|', 'Ref.: Eq. (18)'
WRITE (unit_nr, '(T2,A4,T7,A61)') 'BSE|', 'in PRB 113,205152 (2026); https://doi.org/10.1103/38k2-d55h .'
ELSE
WRITE (unit_nr, '(T2,A4,T7,A74)') 'BSE|', '**************************************************************************'
WRITE (unit_nr, '(T2,A4,T7,A74)') 'BSE|', '* Full ("ABBA") Bethe Salpeter equation (BSE) (i.e. without TDA) *'
@ -143,6 +146,9 @@ CONTAINS
WRITE (unit_nr, '(T2,A4)') 'BSE|'
WRITE (unit_nr, '(T2,A4,T7,A62)') 'BSE|', ' sum_jb ( A_ia,jb X_jb^n + B_ia,jb Y_jb^n ) = Ω^n X_ia^n'
WRITE (unit_nr, '(T2,A4,T7,A62)') 'BSE|', '- sum_jb ( B_ia,jb X_jb^n + A_ia,jb Y_jb^n ) = Ω^n Y_ia^n'
WRITE (unit_nr, '(T2,A4)') 'BSE|'
WRITE (unit_nr, '(T2,A4,T7,A13)') 'BSE|', 'Ref.: Eq. (8)'
WRITE (unit_nr, '(T2,A4,T7,A61)') 'BSE|', 'in PRB 113,205152 (2026); https://doi.org/10.1103/38k2-d55h .'
END IF
WRITE (unit_nr, '(T2,A4)') 'BSE|'
WRITE (unit_nr, '(T2,A4)') 'BSE|'
@ -164,8 +170,8 @@ CONTAINS
WRITE (unit_nr, '(T2,A4,T7,A)') 'BSE|', 'B_ia,jb = α * v_ia,jb'
END IF
WRITE (unit_nr, '(T2,A4)') 'BSE|'
WRITE (unit_nr, '(T2,A4,T7,A35)') 'BSE|', 'prelim Ref.: Eqs. (24-27),(30),(35)'
WRITE (unit_nr, '(T2,A4,T7,A71)') 'BSE|', 'in PRB 92,045209 (2015); http://dx.doi.org/10.1103/PhysRevB.92.045209 .'
WRITE (unit_nr, '(T2,A4,T7,A14)') 'BSE|', 'Ref.: Eq. (10)'
WRITE (unit_nr, '(T2,A4,T7,A61)') 'BSE|', 'in PRB 113,205152 (2026); https://doi.org/10.1103/38k2-d55h .'
END IF
IF (.NOT. flag_TDA) THEN
WRITE (unit_nr, '(T2,A4)') 'BSE|'
@ -382,10 +388,10 @@ CONTAINS
WRITE (unit_nr, '(T2,A4,T9,A2,T14,A18)') &
'BSE|', "r:", "position operator."
WRITE (unit_nr, '(T2,A4)') 'BSE|'
WRITE (unit_nr, '(T2,A4,T7,A28)') &
'BSE|', "prelim Ref.: Eqs. (23), (24)"
WRITE (unit_nr, '(T2,A4,T7,A71)') &
'BSE|', "in J. Chem. Phys. 152, 044105 (2020); https://doi.org/10.1063/1.5123290"
WRITE (unit_nr, '(T2,A4,T7,A21)') &
'BSE|', "Ref.: Eqs. (21), (D3)"
WRITE (unit_nr, '(T2,A4,T7,A69)') &
'BSE|', "in Phys. Rev. B 113, 205152 (2026); https://doi.org/10.1103/38k2-d55h"
WRITE (unit_nr, '(T2,A4)') 'BSE|'
IF (flag_TDA) THEN
WRITE (unit_nr, '(T2,A4,T7,A55)') 'BSE|', &
@ -596,10 +602,10 @@ CONTAINS
prefix_output, "r:", "position operator."
WRITE (unit_nr, '(T2,A4)') prefix_output
WRITE (unit_nr, '(T2,A4,T7,A)') prefix_output, &
'prelim Ref.: Eqs. (15)-(22)'
'Ref.: Eqs. (28)-(32)'
WRITE (unit_nr, '(T2,A4,T7,A,A)') prefix_output, &
'JCTC 2018, 14, 710-725; ', &
'http://doi.org/10.1021/acs.jctc.7b01145'
'Phys. Rev. B 113, 205152 (2026); ', &
'https://doi.org/10.1103/38k2-d55h'
WRITE (unit_nr, '(T2,A4)') prefix_output
WRITE (unit_nr, '(T2,A4)') prefix_output
IF (exc_descr(1)%flag_TDA) THEN
@ -660,6 +666,12 @@ CONTAINS
WRITE (unit_nr, '(T2,A4,T15,A)') prefix_output, &
"R_eh^{μμ'} = COV_eh^{μμ'}/(σ^μ_e σ^μ_h) "
WRITE (unit_nr, '(T2,A4)') prefix_output
WRITE (unit_nr, '(T2,A4,T7,A)') prefix_output, &
'Ref.: Eqs. (33)-(36)'
WRITE (unit_nr, '(T2,A4,T7,A,A)') prefix_output, &
'Phys. Rev. B 113, 205152 (2026); ', &
'https://doi.org/10.1103/38k2-d55h'
WRITE (unit_nr, '(T2,A4)') prefix_output
WRITE (unit_nr, '(T2,A4)') prefix_output
IF (exc_descr(1)%flag_TDA) THEN
WRITE (unit_nr, '(T2,A4,T7,A,A,A)') prefix_output, &

View file

@ -93,7 +93,7 @@ MODULE bibliography
Sander2015, Schreiber2008, vanSetten2015, Setyawan2010, Ahart2024, Knysh2024, &
Schambeck2024, Mewes2018, Sertcan2024, Drautz2019, Lysogorskiy2021, Bochkarev2024, &
VazdaCruz2021, Chen2025, Hernandez2025, Marek2025, Hehn2022, Hehn2024, Pasquier2025, &
Hanasaki2025, Tan2025, Broyden1965, Johnson1988, Kerker1981, &
Hanasaki2025, Graml2026, Tan2025, Broyden1965, Johnson1988, Kerker1981, &
FuHo1983, MethfesselPaxton1989, Marzari1999, dosSantos2023, Mermin1965, &
KuhneHeskeProdan2020, Schreder2021, Schreder2024_1, Schreder2024_2, &
Shiga2022, Lindh1995, Chai2024a, Rullan2026, Sundararaman2017, Andreussi2019, &
@ -2093,6 +2093,13 @@ CONTAINS
source="Phys. Rev. B", volume="112", pages="205130", &
year=2025, doi="10.1103/v4zv-1pf9")
CALL add_reference(key=Graml2026, &
authors=s2a("M. Graml", "J. Wilhelm"), &
title="Optical excitations in nanographenes from the Bethe-Salpeter equation "// &
"and time-dependent density functional theory: Absorption spectra and spatial descriptors", &
source="Phys. Rev. B", volume="113", pages="205152", &
year=2026, doi="10.1103/38k2-d55h")
CALL add_reference(key=Hanasaki2025, &
authors=s2a("K. Hanasaki", "T. Futaii de Jong", "K. Komarov", "R. Kumar", "M. Malis", &
"J. Mattiat", "L. I. Hernandez-Segura", "L. Schreder", "A. Sinyavskiy", "S. Luber"), &