Coverage for gpaw/test/lrtddft/test_dielectric.py: 100%
31 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-14 00:18 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-14 00:18 +0000
1from pathlib import Path
2import pytest
3from ase import Atom, Atoms
4from gpaw import GPAW
5from gpaw.lrtddft import LrTDDFT
6from gpaw.lrtddft.dielectric import get_dielectric, dielectric
9@pytest.fixture
10def H2():
11 R = 0.7 # approx. experimental bond length
12 a = 3.0
13 c = 4.0
14 H2 = Atoms([Atom('H', (a / 2, a / 2, (c - R) / 2)),
15 Atom('H', (a / 2, a / 2, (c + R) / 2))],
16 cell=(a, a, c))
18 H2.calc = GPAW(mode='fd', h=0.25, nbands=3, spinpol=False, txt=None)
19 H2.get_potential_energy()
20 return H2
23@pytest.fixture
24def lrtddft(H2):
25 exlst = LrTDDFT(txt=None)
26 exlst.calculate(H2)
27 return exlst
30@pytest.mark.lrtddft
31def test_get(H2, lrtddft):
32 energies, eps1, eps2, N, K, R = get_dielectric(lrtddft, H2.get_volume())
33 for res in [eps1, eps2, N, K, R]:
34 assert energies.shape == res.shape
35 assert (energies >= 0).all()
38@pytest.mark.lrtddft
39def test_write(H2, lrtddft, in_tmp_dir):
40 fname = 'dielectric.dat'
41 dielectric(lrtddft, H2.get_volume(), fname)
42 assert Path(fname).is_file()