Coverage for gpaw/test/xc/test_qna_band.py: 100%

19 statements  

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

1import pytest 

2from ase.lattice.compounds import L1_2 

3 

4from gpaw import GPAW, PW 

5 

6 

7@pytest.mark.old_gpaw_only 

8def test_xc_qna_band(in_tmp_dir): 

9 """Cu3Au""" 

10 ecut = 300 

11 kpts = (2, 2, 2) 

12 

13 QNA = {'alpha': 2.0, 

14 'name': 'QNA', 

15 'orbital_dependent': False, 

16 'parameters': {'Au': (0.125, 0.1), 'Cu': (0.0795, 0.005)}, 

17 'setup_name': 'PBE', 

18 'type': 'qna-gga'} 

19 

20 atoms = L1_2(['Au', 'Cu'], latticeconstant=3.74) 

21 

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

23 xc=QNA, 

24 kpts=kpts, 

25 parallel={'domain': 1}, 

26 txt='gs.txt') 

27 

28 atoms.calc = calc 

29 atoms.get_potential_energy() 

30 eigs = calc.get_eigenvalues(kpt=0)[:24] 

31 calc.write('gs.gpw') 

32 

33 calc = GPAW('gs.gpw').fixed_density( 

34 parallel={'domain': 1}, 

35 kpts=[[-0.25, 0.25, -0.25]]) 

36 eigs_new = calc.get_eigenvalues(kpt=0)[:24] 

37 for eold, enew in zip(eigs, eigs_new): 

38 print(eold, enew, eold - enew) 

39 assert abs(eold - enew) < 27e-6