1 """Implements a trigger that manipulates the controlDict in
2 such a way that every time-step is written to disk"""
3
4 import re
5 from os import path
6 from PyFoam.RunDictionary.ParsedParameterFile import ParsedParameterFile
7 from PyFoam.Error import warning
8
10 """ The class that does the actual triggering
11 """
12
14 self.ensureGeneralOptions()
15 self.generalOpts.add_option("--write-all-timesteps",
16 action="store_true",
17 dest="writeAll",
18 default=False,
19 help="Write all the timesteps to disk")
20
26
27
30 self.control=ParsedParameterFile(path.join(sol.systemDir(),"controlDict"),backup=True)
31
32 self.fresh=True
33
34 try:
35 self.control["writeControl"]="timeStep"
36 self.control["writeInterval"]="1"
37
38 self.control.writeFile()
39 except Exception,e:
40 warning("Restoring defaults")
41 self.control.restore()
42 raise e
43
45 if self.fresh:
46 warning("Trigger called: Resetting the controlDict")
47 self.control.restore()
48 self.fresh=False
49