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
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-08 00:17 +0000
1import pytest
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
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)
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)