Coverage for gpaw/lcaotddft/restartfilewriter.py: 62%

13 statements  

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

1from gpaw.lcaotddft.observer import TDDFTObserver 

2 

3 

4class RestartFileWriter(TDDFTObserver): 

5 """Observer for writing restart files periodically. 

6 

7 At the given interval, the calculator restart file is written and 

8 ``write_restart()`` of every attached observer is called. 

9 

10 The observer attaches to the TDDFT calculator during creation. 

11 

12 Parameters 

13 ---------- 

14 paw 

15 TDDFT calculator 

16 restart_filename 

17 File for writing the calculator object 

18 interval 

19 Update interval. The restart files are written every 

20 that many propagation steps. 

21 """ 

22 def __init__(self, paw, restart_filename, interval=100): 

23 TDDFTObserver.__init__(self, paw, interval) 

24 self.restart_filename = restart_filename 

25 

26 def _update(self, paw): 

27 if paw.niter == 0: 

28 return 

29 paw.log('%s activated' % self.__class__.__name__) 

30 for obs, n, args, kwargs in paw.observers: 

31 if isinstance(obs, TDDFTObserver): 

32 obs.write_restart() 

33 paw.write(self.restart_filename, mode='all')