Coverage for gpaw/test/spin/test_spinpol.py: 100%

18 statements  

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

1import pytest 

2from ase import Atom, Atoms 

3from gpaw import GPAW, FermiDirac 

4 

5 

6def test_spin_spinpol(): 

7 a = 4.0 

8 n = 16 

9 hydrogen = Atoms([Atom('H')], cell=(a, a, a), pbc=True) 

10 hydrogen.center() 

11 hydrogen.calc = GPAW( 

12 mode='fd', 

13 gpts=(n, n, n), 

14 nbands=1, 

15 convergence={'energy': 1e-5}, 

16 occupations=FermiDirac(0.0)) 

17 e1 = hydrogen.get_potential_energy() 

18 

19 hydrogen.calc = hydrogen.calc.new(hund=True) 

20 e2 = hydrogen.get_potential_energy() 

21 

22 de = e1 - e2 

23 print(de) 

24 assert de == pytest.approx(0.7871, abs=1.e-4) 

25 

26 energy_tolerance = 0.0006 

27 assert e1 == pytest.approx(-0.499854, abs=energy_tolerance) 

28 assert e2 == pytest.approx(-1.287, abs=energy_tolerance)