Coverage for gpaw/test/tddft/test_fxc_linearize.py: 100%
19 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
4from gpaw.tddft import TDDFT, DipoleMomentWriter
5from gpaw.mpi import world
8@pytest.mark.gllb
9@pytest.mark.libxc
10def test_tddft_fxc_linearize(in_tmp_dir, gpw_files):
12 fxc = 'LDA'
13 # Time-propagation calculation with linearize_to_fxc()
14 td_calc = TDDFT(gpw_files['sih4_xc_gllbsc_fd'], txt='td.out')
15 td_calc.linearize_to_xc(fxc)
16 DipoleMomentWriter(td_calc, 'dm.dat')
17 td_calc.absorption_kick(np.ones(3) * 1e-5)
18 td_calc.propagate(20, 4)
19 world.barrier()
21 # Test the absolute values
22 data = np.loadtxt('dm.dat').ravel()
23 if 0:
24 from gpaw.test import print_reference
25 print_reference(data, 'ref', '%.12le')
27 ref = [0.000000000000e+00,
28 -1.578005120000e-15,
29 -7.044387182078e-15,
30 -1.863704251170e-14,
31 5.661102599682e-15,
32 0.000000000000e+00,
33 5.675065320000e-16,
34 1.468753200587e-10,
35 1.579510728549e-10,
36 1.480745858862e-10,
37 8.268274700000e-01,
38 9.001411310000e-16,
39 5.997264413918e-05,
40 5.996562448975e-05,
41 5.996489353702e-05,
42 1.653654930000e+00,
43 -3.560336050000e-15,
44 1.059270665342e-04,
45 1.059358921818e-04,
46 1.059367170602e-04,
47 2.480482400000e+00,
48 3.100362540000e-15,
49 1.338025167034e-04,
50 1.338146631769e-04,
51 1.338165200102e-04,
52 3.307309870000e+00,
53 3.279248870000e-15,
54 1.423796525306e-04,
55 1.423871979410e-04,
56 1.423890659304e-04]
58 tol = 1e-7
59 assert data == pytest.approx(ref, abs=tol)