Coverage for gpaw/test/pipekmezey/test_pm_Hchain.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-07-20 00:19 +0000

1import pytest 

2from ase import Atoms 

3from ase.dft.kpoints import monkhorst_pack 

4from gpaw import GPAW, PW, mpi 

5from gpaw.pipekmezey.pipek_mezey_wannier import PipekMezey 

6 

7 

8@pytest.mark.pipekmezey 

9def test_pipekmezey_chain(in_tmp_dir): 

10 

11 atoms = Atoms('H4', 

12 positions=[[0, 0, 0], 

13 [0, 0, 0.74], 

14 [0, 0, 1.48], 

15 [0, 0, 2.22]]) 

16 atoms.cell = [10, 10, 2.98] 

17 atoms.center() 

18 atoms.pbc = (False, False, True) 

19 

20 kpts = monkhorst_pack((1, 1, 4)) 

21 

22 calc = GPAW(mode=PW(200), 

23 h=0.24, 

24 kpts=kpts, 

25 convergence={'density': 1e-4, 

26 'eigenstates': 1e-4}, 

27 symmetry={'point_group': False, 

28 'time_reversal': False}, 

29 parallel={'domain': mpi.world.size}) 

30 

31 calc.atoms = atoms 

32 calc.calculate() 

33 

34 PM = PipekMezey(calc=calc, seed=42) 

35 PM.localize() 

36 

37 P = PM.get_function_value() 

38 

39 assert P == pytest.approx(0.6803, abs=0.002)