Coverage for gpaw/test/response/test_gw_sg15.py: 100%
22 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-20 00:19 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-20 00:19 +0000
1from ase.build import molecule
2from gpaw import GPAW, PW
3from gpaw.response.g0w0 import G0W0
4from gpaw.mpi import world
5import pytest
8@pytest.mark.response
9def test_gw_sg15(in_tmp_dir, add_cwd_to_setup_paths):
10 from gpaw.test.pseudopotential.H_sg15 import pp_text
11 if world.rank == 0:
12 with open('H_ONCV_PBE-1.0.upf', 'w') as pp_file:
13 print(pp_text, file=pp_file)
14 world.barrier()
15 sys = molecule('H2', pbc=True)
16 sys.center(vacuum=2.5)
18 calc = GPAW(setups='sg15',
19 xc='PBE', mode=PW(ecut=300),
20 convergence={'bands': 40,
21 'density': 1e-6},
22 nbands=50, kpts=(2, 2, 2))
23 sys.calc = calc
24 sys.get_potential_energy()
25 calc.write('gs.gpw', mode='all')
27 gw = G0W0(calc='gs.gpw',
28 bands=(1, 6),
29 ecut=20,
30 nblocksmax=True,
31 filename='H2_g0w0_b11-15')
32 results = gw.calculate()
33 refs = pytest.approx([1.58177132, 3.33595453, 3.87312694, 4.95358262,
34 6.09555254], abs=2e-5)
35 assert results['qp'][0][0] == refs