# GW

Parameters influencing GW calculations on molecules, see also ‘Electronic band structure from GW’, https://manual.cp2k.org/trunk/methods/properties/bandstructure_gw.html. [Edit on GitHub]

Subsections

- BSE
- IC
- KPOINT_SET
- PERIODIC_CORRECTION
- PRINT

## Keywords

- SECTION_PARAMETERS

- ANALYTIC_CONTINUATION

- CORR_MOS_OCC

- CORR_MOS_VIRT

- CROSSING_SEARCH

- EPS_ITER

- EV_GW_ITER

- FERMI_LEVEL_OFFSET

- GAMMA_ONLY_SIGMA

- HEDIN_SHIFT

- IC_CORR_LIST

- IC_CORR_LIST_BETA

- IMAGE_CHARGE_MODEL

- KPOINTS_SELF_ENERGY

- NPARAM_PADE

- NUMB_POLES

- OMEGA_MAX_FIT

- PERIODIC_CORRECTION

- PRINT_EXX

- PRINT_SELF_ENERGY

- REGULARIZATION_MINIMAX

- RI_SIGMA_X

- SC_GW0_ITER

- SELF_CONSISTENCY

- SOC

- SOC_ENERGY_WINDOW

- UPDATE_XC_ENERGY

## Keyword descriptions

SECTION_PARAMETERS: logical = F

  Lone keyword: `T`

  Usage: &GW .TRUE.

  Activates GW calculations. [Edit on GitHub]

ANALYTIC_CONTINUATION: enum = PADE

  Usage: ANALYTIC_CONTINUATION

  Valid values:

  - `TWO_POLE` Use ‘two-pole’ model.

  - `PADE` Use Pade approximation.

  Defines which type of analytic continuation for the self energy is used [Edit on GitHub]

CORR_MOS_OCC: integer = 10

  Aliases: CORR_OCC

  Usage: CORR_OCC 3

  Number of occupied MOs whose energies are corrected in GW. Counting beginning from HOMO, e.g. 3 corrected occ. MOs correspond to correction of HOMO, HOMO-1 and HOMO-2. Numerical effort and storage of RI-G0W0 increase linearly with this number. In case you want to correct all occ. MOs, insert either a negative number or a number larger than the number of occ. MOs. Invoking CORR_MOS_OCC -2 together with a BSE cutoff, sets a sufficiently large CORR_MOS_OCC for the given BSE cutoff deduced from DFT eigenvalues. [Edit on GitHub]

CORR_MOS_VIRT: integer = 10

  Aliases: CORR_VIRT

  Usage: CORR_VIRT 3

  Number of virtual MOs whose energies are corrected by GW. Counting beginning from LUMO, e.g. 3 corrected occ. MOs correspond to correction of LUMO, LUMO+1 and LUMO+2. Numerical effort and storage of RI-G0W0 increase linearly with this number. In case you want to correct all virt. MOs, insert either a negative number or a number larger than the number of virt. MOs. Invoking CORR_MOS_VIRT -2 together with a BSE cutoff, sets a sufficiently large CORR_MOS_VIRT for the given BSE cutoff deduced from DFT eigenvalues. [Edit on GitHub]

CROSSING_SEARCH: enum = NEWTON

  Usage: CROSSING_SEARCH Z_SHOT

  Valid values:

  - `Z_SHOT` Calculate the derivative of Sigma and out of it Z. Then extrapolate using Z.

  - `NEWTON` Make a Newton-Raphson fix point iteration.

  - `BISECTION` Make a bisection fix point iteration.

  Determines, how the self_energy is evaluated on the real axis. [Edit on GitHub]

EPS_ITER: real = 1.36000000E-003 [eV]

  Usage: EPS_ITER 0.00005

  Target accuracy for the eigenvalue self-consistency. If the G0W0 HOMO-LUMO gap differs by less than the target accuracy during the iteration, the eigenvalue self-consistency cycle stops. Unit: Hartree. [Edit on GitHub]

EV_GW_ITER: integer = 1

  Usage: EV_GW_ITER 3

  Maximum number of iterations for eigenvalue self-consistency cycle. The computational effort of GW scales linearly with this number. In case of choosing GW_SELF_CONSISTENCY EVGW, the code sets EV_GW_ITER 10. [Edit on GitHub]

FERMI_LEVEL_OFFSET: real = 2.00000000E-002

  Usage: FERMI_LEVEL_OFFSET 1.0E-2

  Fermi level for occ. orbitals: e_HOMO + FERMI_LEVEL_OFFSET; Fermi level for virt. orbitals: e_LUMO - FERMI_LEVEL_OFFSET. In case e_homo + FERMI_LEVEL_OFFSET < e_lumo - FERMI_LEVEL_OFFSET, we set Fermi level = (e_HOMO+e_LUMO)/2. For cubic-scaling GW, the Fermi level is always equal to (e_HOMO+e_LUMO)/2 regardless of FERMI_LEVEL_OFFSET. [Edit on GitHub]

GAMMA_ONLY_SIGMA: logical = F

  Aliases: GAMMA

  Lone keyword: `T`

  Usage: GAMMA TRUE

  If true, the correlation self-energy is only computed at the Gamma point. The Gamma point itself is obtained by averaging over all kpoints of the DFT mesh. [Edit on GitHub]

HEDIN_SHIFT: logical = F

  Lone keyword: `T`

  Usage: HEDIN_SHIFT

  If true, use Hedin’s shift in G0W0, evGW and evGW0 (aka scGW0). Details see in Li et al. JCTC 18, 7570 (2022), Figure 1. G0W0 with Hedin’s shift should give similar GW eigenvalues as evGW0; at a lower computational cost. [Edit on GitHub]

IC_CORR_LIST: real[ ] = -2.72113839E+001 [eV]

  Usage: IC_CORR_LIST <REAL> … <REAL>

  List of image charge correction from a previous calculation to be applied in G0W0 or evGW. Keyword is active, if the first entry is positive (since IC corrections are positive occupied MOs. The start corresponds to the first corrected GW level. [Edit on GitHub]

IC_CORR_LIST_BETA: real[ ] = -2.72113839E+001 [eV]

  Usage: IC_CORR_LIST_BETA <REAL> … <REAL>

  IC_CORR_LIST for beta spins in case of open shell calculation. [Edit on GitHub]

IMAGE_CHARGE_MODEL: logical = F

  Aliases: IC

  Lone keyword: `T`

  Usage: IC TRUE

  If true, an image charge model is applied to mimic the renormalization of electronic levels of a molecule at a metallic surface. For this calculation, the molecule has to be reflected on the desired xy image plane. The coordinates of the reflected molecule have to be added to the coord file as ghost atoms. For the ghost atoms, identical basis sets the normal atoms have to be used. [Edit on GitHub]

KPOINTS_SELF_ENERGY: integer[3] = 0 0 0

  Keyword can be repeated.

  Usage: KPOINTS_SELF_ENERGY nx ny nz

  Specify number of k-points for the k-point grid of the self-energy. Internally, a Monkhorst-Pack grid is used. A dense k-point grid may be necessary to compute an accurate density of state from GW. Large self-energy k-meshes do not cost much more computation time. [Edit on GitHub]

NPARAM_PADE: integer = 16

  Usage: NPARAM_PADE 16

  Number of parameters for the Pade approximation when using the latter for the analytic continuation of the self energy. 16 parameters (corresponding to 8 poles) are are recommended. [Edit on GitHub]

NUMB_POLES: integer = 2

  Usage: NUMB_POLES 2

  Number of poles for the fitting. Usually, two poles are sufficient. [Edit on GitHub]

OMEGA_MAX_FIT: real = 7.34996000E-001

  Usage: OMEGA_MAX_FIT 0.5

  Determines fitting range for the self-energy on the imaginary axis: [0, OMEGA_MAX_FIT] for virt orbitals, [-OMEGA_MAX_FIT,0] for occ orbitals. Unit: Hartree. Default: 0.734996 H = 20 eV. [Edit on GitHub]

PERIODIC_CORRECTION: logical = F

  Lone keyword: `T`

  Usage: PERIODIC_CORRECTION

  If true, the periodic correction scheme is used employing k-points. Method is not recommended to use, use instead PERIODIC_LOW_SCALING which much more accurate than the periodic correction. [Edit on GitHub]

PRINT_EXX: enum = FALSE

  Usage: PRINT_EXX TRUE

  Valid values:

  - `TRUE` Please, put TRUE for Gamma only calculation to get the exchange self-energy. If ‘SIGMA_X’ and the corresponding values for the exchange-energy are written, the writing has been successful

  - `FALSE` FALSE is needed if you want to do nothing here.

  - `READ` Please, put READ for the k-point GW calculation to read the exact exchange. You have to provide an output file including the exact exchange. This file has to be named ‘exx.dat’.

  - `SKIP_FOR_REGTEST` SKIP_FOR_REGTEST is only used for the GW k-point regtest where no exchange self-energy is computed.

  Print exchange self-energy minus exchange correlation potential for Gamma-only calculation (PRINT). For a GW calculation with k-points we use this output as exchange self-energy (READ). This is a temporary solution because the hybrid MPI/OMP parallelization in the HFX by Manuel Guidon conflicts with the parallelization in low-scaling GW k-points which is most efficient with maximum number of MPI tasks and minimum number of OMP threads. For HFX by M. Guidon, the density matrix is fully replicated on every MPI rank which necessitates a high number of OMP threads per MPI rank for large systems to prevent out of memory. Such a high number of OMP threads would slow down the GW calculation severely. Therefore, it was decided to temporarily divide the GW k-point calculation in a Gamma-only HF calculation with high number of OMP threads to prevent out of memory and a GW k-point calculation with 1 OMP thread per MPI rank reading the previousHF output. [Edit on GitHub]

PRINT_SELF_ENERGY: logical = F

  Lone keyword: `T`

  Usage: PRINT_SELF_ENERGY

  If true, print the self-energy for all levels for real energy together with the straight line to see the quasiparticle energy as intersection. In addition, prints the self-energy for imaginary frequencies together with the Pade fit. [Edit on GitHub]

REGULARIZATION_MINIMAX: real = 0.00000000E+000

  Usage: REGULARIZATION_MINIMAX 1.0E-6

  Tikhonov regularization for computing weights of the Fourier transform from imaginary time to imaginary frequency and vice versa. Needed for large minimax grids with 20 or more points and a small range. [Edit on GitHub]

RI_SIGMA_X: logical = T

  Lone keyword: `T`

  Usage: RI_SIGMA_X

  If true, the exchange self-energy is calculated approximatively with RI. If false, the Hartree-Fock implementation in CP2K is used. [Edit on GitHub]

SC_GW0_ITER: integer = 1

  Usage: SC_GW0_ITER 3

  Maximum number of iterations for GW0 self-consistency cycle. The computational effort of GW is not much affected by the number of scGW0 cycles. In case of choosing GW_SELF_CONSISTENCY EVGW0, the code sets SC_GW0_ITER 10. [Edit on GitHub]

SELF_CONSISTENCY: enum = G0W0

  Usage: SELF_CONSISTENCY evGW0

  Valid values:

  - `G0W0` Use DFT eigenvalues; not update.

  - `EVGW0` Update DFT eigenvalues in G, not in W.

  - `EVGW` Update DFT eigenvalues in G and W.

  Decide the level of self-consistency of eigenvalues (= quasiparticle energies = single-electron energies) in GW. Updates of Kohn-Sham orbitals (for example qsGW) are not implemented. For details which type of eigenvalue self-consistency might be good, please consult Golze, Dvorak, Rinke, Front. Chem. 2019. [Edit on GitHub]

SOC: enum = NONE

  Usage: SOC

  Valid values:

  - `NONE` No SOC.

  - `LDA` Use parameters from LDA (PADE) pseudopotential.

  - `PBE` Use parameters from PBE pseudopotential.

  Calculate the spin-orbit splitting of the eigenvalues/band structure using the spin-orbit part of the GTH pseudos parametrized in Hartwigsen, Goedecker, Hutter, Phys. Rev. B 58, 3641 (1998), Eq. 19, parameters in Table I. [Edit on GitHub]

SOC_ENERGY_WINDOW: real = 5.00000000E+001 [eV]

  Usage: SOC_ENERGY_WINDOW 20.0_eV

  For perturbative SOC calculation, only take frontier levels in an energy window [E_HOMO - SOC_ENERGY_WINDOW/2 , E_LUMO + SOC_ENERGY_WINDOW/2 into account for the diagonalization of H^GW,SOC. [Edit on GitHub]

UPDATE_XC_ENERGY: logical = F

  Lone keyword: `T`

  Usage: UPDATE_XC_ENERGY

  If true, the Hartree-Fock and RPA total energy are printed and the total energy is corrected using exact exchange and the RPA correlation energy. [Edit on GitHub]