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

17 statements  

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

1from ase import Atoms 

2 

3from gpaw import GPAW, FermiDirac 

4import pytest 

5 

6 

7def test_spin_spinFe3plus(): 

8 h = 0.4 

9 q = 3 

10 

11 s = Atoms('Fe') 

12 s.center(vacuum=2.5) 

13 convergence = {'eigenstates': 0.01, 'density': 0.1, 'energy': 0.1} 

14 

15 # use Hunds rules 

16 

17 c = GPAW(mode='fd', charge=q, h=h, nbands=5, 

18 hund=True, 

19 eigensolver='rmm-diis', 

20 occupations=FermiDirac(width=0.1), 

21 convergence=convergence) 

22 s.calc = c 

23 assert s.get_magnetic_moment() == pytest.approx(5, abs=0.1) 

24 

25 # set magnetic moment 

26 

27 mm = [5] 

28 s.set_initial_magnetic_moments(mm) 

29 c = GPAW(mode='fd', charge=q, h=h, nbands=5, 

30 occupations=FermiDirac(width=0.1, fixmagmom=True), 

31 convergence=convergence) 

32 s.calc = c 

33 assert s.get_magnetic_moment() == pytest.approx(5, abs=0.1)