# asr.gw¶

## Summary¶

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

Run this recipe through the CLI interface

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

or as a python module

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

DFT GW.

## Steps¶

### asr.gw:empirical_mean_z¶

asr.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
Return type

`dict`

### asr.gw:gs¶

asr.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
Return type

`asr.core.results.ASRResult`

### asr.gw:gw¶

asr.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
Return type

`dict`

### asr.gw¶

asr.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
Return type

`asr.gw.Result`

class asr.gw.Result(kvbm, cbm_gw_nosoc, vbm_gw_nosoc, efermi_gw_nosoc, kcbm_nosoc, gap_dir_gw_nosoc, gap_dir_gw, kcbm, cbm_gw, gap_gw_nosoc, gap_gw, vbm_gw, bandstructure, kvbm_nosoc, efermi_gw_soc)[source]
Parameters
• kvbm (List[float]) –

• cbm_gw_nosoc (float) –

• vbm_gw_nosoc (float) –

• efermi_gw_nosoc (float) –

• kcbm_nosoc (List[float]) –

• gap_dir_gw_nosoc (float) –

• gap_dir_gw (float) –

• kcbm (List[float]) –

• cbm_gw (float) –

• gap_gw_nosoc (float) –

• gap_gw (float) –

• vbm_gw (float) –

• bandstructure (ase.spectrum.band_structure.BandStructure) –

• kvbm_nosoc (List[float]) –

• efermi_gw_soc (float) –

property bandstructure: ase.spectrum.band_structure.BandStructure

GW bandstructure.

Return type

`ase.spectrum.band_structure.BandStructure`

property cbm_gw: float

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

Return type

`float`

property cbm_gw_nosoc: float

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

Return type

`float`

property efermi_gw_nosoc: float

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

Return type

`float`

property efermi_gw_soc: float

Fermi level (G₀W₀) [eV]

Return type

`float`

property gap_dir_gw: float

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

Return type

`float`

property gap_dir_gw_nosoc: float

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

Return type

`float`

property gap_gw: float

Band gap (G₀W₀) [eV]

Return type

`float`

property gap_gw_nosoc: float

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

Return type

`float`

property kcbm: List[float]

k-point of G₀W₀ conduction band minimum

Return type
property kcbm_nosoc: List[float]

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

Return type
property kvbm: List[float]

k-point of G₀W₀ valence band maximum

Return type
property kvbm_nosoc: List[float]

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

Return type
property vbm_gw: float

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

Return type

`float`

property vbm_gw_nosoc: float

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

Return type

`float`