# asr.c2db.gw¶

## Summary¶

This is the documentation for `asr.c2db.gw`-recipe. This recipe is comprised of 4 instructions, namely:

Run this recipe through the CLI interface

```\$ asr run asr.c2db.gw
```

or as a python module

```\$ python -m asr.c2db.gw
```

DFT GW.

## Steps¶

### asr.c2db.gw:empirical_mean_z¶

asr.c2db.gw.empirical_mean_z(atoms, calculator={'charge': 0, 'convergence': {'bands': 'CBM+3.0'}, 'kpts': {'density': 12.0, 'gamma': True}, 'mode': {'ecut': 800, 'name': 'pw'}, 'name': 'gpaw', 'nbands': '200%', 'occupations': {'name': 'fermi-dirac', 'width': 0.05}, 'txt': 'gs.txt', 'xc': 'PBE'}, kptdensity=5.0, ecut=200.0, mode='G0W0', correctgw=True, empz=0.75)[source]

Apply the empirical-Z method.

Implements the method described in https://arxiv.org/abs/2009.00314.

This method consists of replacing the G0W0 Z-value with the empirical mean of Z-values (calculated from C2DB GW calculations) whenever the G0W0 is “quasiparticle-inconsistent”, i.e. the G0W0 Z is outside the interval [0.5, 1.0]. The empirical mean Z was found to be

Z0 = 0.75.

Pseudocode:

For all states:
if Z not in [0.5, 1.0]:

set GW energy = E_KS + Z0 * (Sigma_GW - vxc + exx)

The last line can be implemented as

new GW energy = E_KS + (Old GW - E_KS) * Z0 / Z

Parameters
• atoms (ase.atoms.Atoms) –

• calculator (dict) –

• kptdensity (float) –

• ecut (float) –

• mode (str) –

• correctgw (bool) –

• empz (float) –

Return type

dict

### asr.c2db.gw:gs¶

asr.c2db.gw.gs(atoms, calculator={'charge': 0, 'convergence': {'bands': 'CBM+3.0'}, 'kpts': {'density': 12.0, 'gamma': True}, 'mode': {'ecut': 800, 'name': 'pw'}, 'name': 'gpaw', 'nbands': '200%', 'occupations': {'name': 'fermi-dirac', 'width': 0.05}, 'txt': 'gs.txt', 'xc': 'PBE'}, kptdensity=5.0, ecut=200.0)[source]

Calculate GW underlying ground state.

Parameters
• atoms (ase.atoms.Atoms) –

• calculator (dict) –

• kptdensity (float) –

• ecut (float) –

Return type

asr.core.results.ASRResult

### asr.c2db.gw:gw¶

asr.c2db.gw.gw(atoms, calculator={'charge': 0, 'convergence': {'bands': 'CBM+3.0'}, 'kpts': {'density': 12.0, 'gamma': True}, 'mode': {'ecut': 800, 'name': 'pw'}, 'name': 'gpaw', 'nbands': '200%', 'occupations': {'name': 'fermi-dirac', 'width': 0.05}, 'txt': 'gs.txt', 'xc': 'PBE'}, kptdensity=5.0, ecut=200.0, mode='G0W0')[source]

Calculate GW corrections.

Parameters
• atoms (ase.atoms.Atoms) –

• calculator (dict) –

• kptdensity (float) –

• ecut (float) –

• mode (str) –

Return type

dict

### asr.c2db.gw¶

asr.c2db.gw.main(atoms, calculator={'charge': 0, 'convergence': {'bands': 'CBM+3.0'}, 'kpts': {'density': 12.0, 'gamma': True}, 'mode': {'ecut': 800, 'name': 'pw'}, 'name': 'gpaw', 'nbands': '200%', 'occupations': {'name': 'fermi-dirac', 'width': 0.05}, 'txt': 'gs.txt', 'xc': 'PBE'}, bsrestart={'charge': 0, 'convergence': {'bands': 'CBM+3.0'}, 'kpts': {'density': 12.0, 'gamma': True}, 'mode': {'ecut': 800, 'name': 'pw'}, 'name': 'gpaw', 'nbands': '200%', 'occupations': {'name': 'fermi-dirac', 'width': 0.05}, 'txt': 'gs.txt', 'xc': 'PBE'}, kptpath=None, npoints=400, kptdensity=5.0, ecut=200.0, mode='G0W0', correctgw=True, empz=0.75)[source]
Parameters
• atoms (ase.atoms.Atoms) –

• calculator (dict) –

• bsrestart (dict) –

• kptpath (dict) –

• npoints (dict) –

• kptdensity (float) –

• ecut (float) –

• mode (str) –

• correctgw (bool) –

• empz (float) –

Return type

asr.c2db.gw.Result

class asr.c2db.gw.Result(gap_dir_gw_nosoc, vbm_gw_nosoc, gap_dir_gw, efermi_gw_soc, gap_gw, efermi_gw_nosoc, kcbm, kvbm_nosoc, kcbm_nosoc, kvbm, bandstructure, cbm_gw, gap_gw_nosoc, vbm_gw, cbm_gw_nosoc)[source]
Parameters
property bandstructure: ase.spectrum.band_structure.BandStructure

GW bandstructure.

property cbm_gw: float

Conduction band minimum (G₀W₀) [eV]

property cbm_gw_nosoc: float

Conduction band minimum w/o soc. (G₀W₀) [eV]

property efermi_gw_nosoc: float

Fermi level w/o soc. (G₀W₀) [eV]

property efermi_gw_soc: float

Fermi level (G₀W₀) [eV]

property gap_dir_gw: float

Direct band gap (G₀W₀) [eV]

property gap_dir_gw_nosoc: float

Direct gap w/o soc. (G₀W₀) [eV]

property gap_gw: float

Band gap (G₀W₀) [eV]

property gap_gw_nosoc: float

Gap w/o soc. (G₀W₀) [eV]

property kcbm: List[float]

k-point of G₀W₀ conduction band minimum

property kcbm_nosoc: List[float]

k-point of G₀W₀ conduction band minimum w/o soc

property kvbm: List[float]

k-point of G₀W₀ valence band maximum

property kvbm_nosoc: List[float]

k-point of G₀W₀ valence band maximum w/o soc

property vbm_gw: float

Valence band maximum (G₀W₀) [eV]

property vbm_gw_nosoc: float

Valence band maximum w/o soc. (G₀W₀) [eV]