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
« 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
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()
18 gw_kn = np.zeros((1, 4))
19 gw_kn[0] = [-10, 2, 2, 4]
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])
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)