Coverage for gpaw/test/pseudopotential/test_sg15_hydrogen.py: 100%

18 statements  

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

1# Test loading of sg15 setups as setups='sg15' and that the calculation 

2# agrees with PAW for the H2 eigenvalue. 

3 

4from ase.build import molecule 

5from gpaw import GPAW, Davidson, Mixer 

6 

7 

8def test_pseudopotential_sg15_hydrogen(sg15_hydrogen): 

9 system = molecule('H2') 

10 system.center(vacuum=2.5) 

11 

12 def getkwargs(): 

13 return dict(mode='fd', 

14 eigensolver=Davidson(4), 

15 mixer=Mixer(0.8, 5, 10.0), 

16 xc='oldPBE') 

17 

18 calc1 = GPAW(setups={'H': sg15_hydrogen}, h=0.13, **getkwargs()) 

19 system.calc = calc1 

20 system.get_potential_energy() 

21 eps1 = calc1.get_eigenvalues() 

22 

23 calc2 = GPAW(h=0.2, **getkwargs()) 

24 system.calc = calc2 

25 system.get_potential_energy() 

26 eps2 = calc2.get_eigenvalues() 

27 

28 err = eps2[0] - eps1[0] 

29 

30 # It is not the most accurate calculation ever, let's just make sure things 

31 # are not completely messed up. 

32 print('sg15 vs paw error', err) 

33 assert abs(err) < 0.02 # 0.0055.... as of current test.