Coverage for gpaw/test/test_coreeig.py: 100%

21 statements  

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

1import pytest 

2from gpaw.mpi import world 

3from ase import Atoms 

4from gpaw import GPAW, restart 

5from gpaw.utilities.kspot import CoreEigenvalues 

6 

7pytestmark = pytest.mark.skipif(world.size > 1, 

8 reason='world.size > 1') 

9 

10 

11@pytest.mark.old_gpaw_only 

12def test_coreeig(in_tmp_dir): 

13 a = 7.0 

14 calc = GPAW(mode='fd', h=0.1) 

15 system = Atoms('Ne', calculator=calc) 

16 system.center(vacuum=a / 2) 

17 e0 = system.get_potential_energy() 

18 calc.write('Ne.gpw') 

19 

20 del calc, system 

21 

22 atoms, calc = restart('Ne.gpw') 

23 calc.converge_wave_functions() 

24 e_j = CoreEigenvalues(calc).get_core_eigenvalues(0) 

25 assert abs(e_j[0] - (-30.344066)) * \ 

26 27.21 < 0.1 # Error smaller than 0.1 eV 

27 

28 energy_tolerance = 0.002 

29 assert e0 == pytest.approx(-0.0107707223, abs=energy_tolerance)