asr.c2db.gw¶
Contents
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
Detailed description¶
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
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.
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.
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]¶
- 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.