Coverage for gpaw/test/test_kpt_refine.py: 94%

16 statements  

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

1import pytest 

2from ase.lattice.hexagonal import Graphene 

3from ase.parallel import parprint 

4 

5from gpaw import GPAW, PW, FermiDirac 

6 

7 

8def test_kpt_refine(gpaw_new): 

9 if gpaw_new: 

10 pytest.skip('Not implemented') 

11 system = Graphene(symbol='C', 

12 latticeconstant={'a': 2.467710, 'c': 1.0}, 

13 size=(1, 1, 1)) 

14 system.pbc = (1, 1, 0) 

15 system.center(axis=2, vacuum=4.0) 

16 

17 kpt_refine = { 

18 'center': [1 / 3, 1 / 3, 0], 

19 'size': [3, 3, 1], 

20 'reduce_symmetry': False} 

21 # kpt_refine={"center":[[1./3,1./3,0.],[-1./3,-1./3,0.]], "size":[3,3,1], 

22 # "reduce_symmetry":True} 

23 

24 calc = GPAW(mode=PW(ecut=400), 

25 xc=dict(name='PBE', stencil=1), 

26 kpts={'size': [9, 9, 1], 'gamma': True}, 

27 experimental={'kpt_refine': kpt_refine}, 

28 occupations=FermiDirac(0.026)) 

29 

30 system.calc = calc 

31 energy = system.get_potential_energy() 

32 

33 parprint('Energy', energy) 

34 

35 assert abs(energy - -18.27) < 0.02