Coverage for gpaw/test/response/test_bse_h_spinpol.py: 100%

18 statements  

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

1import pytest 

2import numpy as np 

3from ase import Atoms 

4from gpaw import GPAW, PW 

5from gpaw.response.bse import BSE 

6 

7 

8@pytest.mark.response 

9@pytest.mark.serial 

10def test_bse_spinpol(in_tmp_dir): 

11 atoms = Atoms('H', magmoms=[1], pbc=True) 

12 atoms.center(vacuum=1.5) 

13 atoms.calc = GPAW(mode=PW(180, force_complex_dtype=True), 

14 nbands=6, 

15 convergence={'bands': 4}) 

16 atoms.get_potential_energy() 

17 

18 gw_kn = np.zeros((1, 4)) 

19 gw_kn[0] = [-10, 2, 2, 4] 

20 

21 bse = BSE(atoms.calc, 

22 ecut=10, 

23 nbands=2, 

24 gw_kn=gw_kn, 

25 valence_bands=[0], 

26 conduction_bands=[1, 2, 3]) 

27 

28 bsematrix = bse.get_bse_matrix() 

29 w_T, _, _ = bse.diagonalize_bse_matrix(bsematrix) 

30 assert w_T[0] == pytest.approx(0.013, abs=0.001)