Coverage for gpaw/test/noncollinear/test_rad_pot.py: 100%

25 statements  

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

1import pytest 

2 

3from gpaw.new.density import atomic_occupation_numbers 

4from gpaw.setup import create_setup 

5from gpaw.spinorbit import soc, projected_soc 

6from gpaw.xc import XC 

7 

8 

9def test_rad_pot(): 

10 xc = XC('LDA', collinear=False) 

11 setup = create_setup('Cr', xc=xc) 

12 mz = 1.0 

13 f_si = atomic_occupation_numbers(setup, [0, 0, mz], 4) 

14 print(f_si) 

15 D_sp = setup.initialize_density_matrix(f_si) 

16 dv_vii = soc(setup, xc, D_sp) 

17 # Reversing magmom should give same potential 

18 D_sp[3] *= -1 

19 dv_vii -= soc(setup, xc, D_sp) 

20 assert abs(dv_vii).max() == pytest.approx(0.0, abs=1e-12) 

21 

22 

23def test_proj_soc(): 

24 xc = XC('LDA', collinear=False) 

25 setup = create_setup('Cr', xc=xc) 

26 mz = 1.0 

27 f_si = atomic_occupation_numbers(setup, [0, 0, mz], 4) 

28 D_sp = setup.initialize_density_matrix(f_si) 

29 dv_vii = projected_soc(soc(setup, xc, D_sp), 

30 theta=0, phi=0) 

31 # Reversing normal plane direction should give same potential 

32 dv_vii -= projected_soc(soc(setup, xc, D_sp), 

33 theta=180, phi=0) 

34 assert abs(dv_vii).max() == pytest.approx(0.0, abs=1e-12)