Coverage for gpaw/test/lcaotddft/test_fxc_is_xc.py: 100%
24 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-20 00:19 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-20 00:19 +0000
1import numpy as np
2import pytest
4from gpaw.lcaotddft import LCAOTDDFT
5from gpaw.lcaotddft.dipolemomentwriter import DipoleMomentWriter
6from gpaw.mpi import world
9@pytest.mark.rttddft
10def test_lcaotddft_fxc_is_xc(gpw_files, in_tmp_dir):
11 # Time-propagation calculation without fxc
12 td_calc = LCAOTDDFT(gpw_files['na2_tddft_dzp'], txt='td.out')
13 DipoleMomentWriter(td_calc, 'dm.dat')
14 td_calc.absorption_kick(np.ones(3) * 1e-5)
15 td_calc.propagate(20, 4)
16 world.barrier()
18 # Check dipole moment file
19 ref = np.loadtxt('dm.dat').ravel()
21 # Time-propagation calculation with fxc=xc
22 td_calc = LCAOTDDFT(gpw_files['na2_tddft_dzp'], fxc='LDA',
23 txt='td_fxc.out')
24 DipoleMomentWriter(td_calc, 'dm_fxc.dat')
25 td_calc.absorption_kick(np.ones(3) * 1e-5)
26 td_calc.propagate(20, 1)
27 td_calc.write('td_fxc.gpw', mode='all')
29 # Restart from the restart point
30 td_calc = LCAOTDDFT('td_fxc.gpw', txt='td_fxc2.out')
31 DipoleMomentWriter(td_calc, 'dm_fxc.dat')
32 td_calc.propagate(20, 3)
34 # Check dipole moment file
35 data = np.loadtxt('dm_fxc.dat')[[0, 1, 2, 4, 5, 6]].ravel()
37 tol = 1e-9
38 assert data == pytest.approx(ref, abs=tol)