Coverage for gpaw/test/test_ibzqpt.py: 100%
23 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-19 00:19 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-19 00:19 +0000
1import numpy as np
2from ase.build import bulk
3from gpaw import GPAW
4from ase.dft.kpoints import monkhorst_pack
7def test_ibzqpt():
8 for kpt in (3, 4):
9 kpts = (kpt, kpt, kpt)
10 bzk_kc = monkhorst_pack(kpts)
11 shift_c = []
12 for Nk in kpts:
13 if Nk % 2 == 0:
14 shift_c.append(0.5 / Nk)
15 else:
16 shift_c.append(0.)
17 bzk_kc += shift_c
19 atoms = bulk('Si', 'diamond', a=5.431)
20 calc = GPAW(mode='fd',
21 h=0.2,
22 kpts=bzk_kc)
24 atoms.calc = calc
25 atoms.get_potential_energy()
27 kd = calc.wfs.kd
28 bzq_qc = kd.get_bz_q_points()
29 ibzq_qc = kd.get_ibz_q_points(bzq_qc, calc.wfs.kd.symmetry.op_scc)[0]
31 assert np.abs(bzq_qc - kd.bzk_kc).sum() < 1e-8
32 assert np.abs(ibzq_qc - kd.ibzk_kc).sum() < 1e-8