Coverage for gpaw/test/response/test_gw_mpa_C.py: 100%
13 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-08 00:17 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-08 00:17 +0000
1import numpy as np
2from ase.units import Hartree as Ha
4from gpaw.response.g0w0 import G0W0
7def test_diamond_mpa(in_tmp_dir, gpw_files):
8 ref_results_mp1 = np.array([[[11.48389, 18.685187]]])
9 ref_results_mp8 = np.array([[[11.239777, 18.591851]]])
10 ref_results = {1: ref_results_mp1, 8: ref_results_mp8}
12 for npols in [1, 8]:
13 gw = G0W0(calc=gpw_files['c2_gw_more_bands'],
14 kpts=[0],
15 bands=(3, 5),
16 ecut=200,
17 ecut_extrapolation=True,
18 integrate_gamma='WS',
19 mpa={'npoles': npols, 'wrange': [0, 200 if npols > 1 else 0],
20 'varpi': Ha, 'eta0': 1e-10, 'eta_rest': 0.1 * Ha,
21 'alpha': 1},
22 filename=f'C-g0w0_mp{npols}')
24 results = gw.calculate()
25 direct_gap = results['qp'][0, 0, 1] - results['qp'][0, 0, 0]
26 print(f'Direct gap mp{npols}:', direct_gap)
27 np.testing.assert_allclose(results['qp'], ref_results[npols],
28 rtol=1e-02)