mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 22:25:32 -04:00
BSE: update references (#5515)
This commit is contained in:
parent
1f9fd2c165
commit
bfcb1ea1d6
3 changed files with 46 additions and 27 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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, &
|
||||
|
|
|
|||
|
|
@ -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"), &
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue