Coverage for gpaw/test/lcaotddft/test_fxc_rpa.py: 100%

17 statements  

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

1import numpy as np 

2import pytest 

3 

4from gpaw.lcaotddft import LCAOTDDFT 

5from gpaw.lcaotddft.dipolemomentwriter import DipoleMomentWriter 

6from gpaw.mpi import world 

7 

8 

9@pytest.mark.rttddft 

10def test_lcaotddft_fxc_rpa(gpw_files, in_tmp_dir): 

11 # Time-propagation calculation with fxc 

12 td_calc = LCAOTDDFT(gpw_files['na2_tddft_poisson'], fxc='RPA', 

13 txt='td.out') 

14 DipoleMomentWriter(td_calc, 'dm.dat') 

15 td_calc.absorption_kick(np.ones(3) * 1e-5) 

16 td_calc.propagate(20, 3) 

17 world.barrier() 

18 

19 # Check dipole moment file 

20 data = np.loadtxt('dm.dat')[:, 2:].ravel() 

21 if 0: 

22 from gpaw.test import print_reference 

23 print_reference(data, 'ref', '%.12le') 

24 

25 ref = [-9.383700894739e-16, 

26 -9.338586948130e-16, 

27 2.131582675483e-14, 

28 8.679923327633e-15, 

29 7.529517689096e-15, 

30 2.074867751820e-14, 

31 1.960742702185e-05, 

32 1.960742702128e-05, 

33 1.804030746475e-05, 

34 3.761997205571e-05, 

35 3.761997205562e-05, 

36 3.596681520068e-05, 

37 5.257367158160e-05, 

38 5.257367158104e-05, 

39 5.366663490365e-05] 

40 

41 tol = 1e-8 

42 assert data == pytest.approx(ref, abs=tol)