6 |
__license__="""Licensed under the Open Software License version 3.0 |
__license__="""Licensed under the Open Software License version 3.0 |
7 |
http://www.opensource.org/licenses/osl-3.0.php""" |
http://www.opensource.org/licenses/osl-3.0.php""" |
8 |
|
|
9 |
from esys.escript.modelframe import Model |
from esys.escript.modelframe import Model, Link |
10 |
from esys.escript import saveVTK, Data |
from esys.escript import saveVTK, Data |
11 |
import os |
import os |
12 |
|
|
13 |
class Visualization(Model): |
class Visualization(Model): |
14 |
""" |
""" |
15 |
Generic visualization of scalar, vector and tensorial data |
Generic visualization Model |
|
(not implemeted yet) |
|
16 |
|
|
17 |
@ivar t: current time (in) |
@ivar t: current time (in) |
18 |
@ivar n: frame counter (in) |
@ivar n: frame counter (in) |
|
@ivar scalar: scalar data set (in) |
|
|
@ivar vector: vector data set (in) |
|
|
@ivar tensor: tensor data set (in) |
|
19 |
@ivar dt: increment for output (in) |
@ivar dt: increment for output (in) |
20 |
@ivar filename: name of the output file (in) |
@ivar filename: name of the output file (in) |
21 |
""" |
""" |
29 |
super(Visualization,self).__init__(debug=debug) |
super(Visualization,self).__init__(debug=debug) |
30 |
self.declareParameter(t=0., |
self.declareParameter(t=0., |
31 |
n=0, |
n=0, |
|
scalar=None, |
|
|
vector=None, |
|
|
tensor=None, |
|
32 |
dt=1, |
dt=1, |
33 |
filename="movie.mpg") |
filename="movie.mpg") |
34 |
|
|
37 |
does some kind of initialisation |
does some kind of initialisation |
38 |
""" |
""" |
39 |
self.__last_t=self.t |
self.__last_t=self.t |
40 |
|
fnc=self.filename.split('.') |
41 |
|
if len(fnc)==0: |
42 |
|
self.__frame_filename="data.%s.xml" |
43 |
|
else: |
44 |
|
n=fnc[0] |
45 |
|
for i in range(1,len(fnc)-1): |
46 |
|
n+="."+fnc[i] |
47 |
|
if len(fnc)==1: |
48 |
|
self.__frame_filename=n+".%s" |
49 |
|
else: |
50 |
|
self.__frame_filename=n+".%s."+fnc[-1] |
51 |
|
self.trace("output filename is %s."%self.__frame_filename) |
52 |
|
|
53 |
|
def getFrameFileName(self): |
54 |
|
return self.__frame_filename%self.getFrameCounter() |
55 |
|
|
56 |
def writeFrame(self): |
def writeFrame(self): |
57 |
""" |
""" |
80 |
""" |
""" |
81 |
return self.__last_t+self.dt-self.t |
return self.__last_t+self.dt-self.t |
82 |
|
|
83 |
def doStepPostprocessing(self, dt): |
class Movie(Visualization): |
|
""" |
|
|
renders the scene |
|
|
|
|
|
@note: to be overwritten |
|
|
""" |
|
|
if self.writeFrame(): |
|
|
if self.debug(): |
|
|
self.trace("%s-th frame at time %s"%(self.getFrameCounter(),self.t)) |
|
|
if isinstance(self.scalar,Data): |
|
|
self.trace("scalar data: (min,max) =(%s,%s)"%(inf(self.scalar),sup(self.scalar))) |
|
|
if isinstance(self.vector,Data): |
|
|
self.trace("vector data: (min,max) =(%s,%s)"%(inf(self.vector),sup(self.vector))) |
|
|
if isinstance(self.tensor,Data): |
|
|
self.trace("tensor data: (min,max) =(%s,%s)"%(inf(self.tensor),sup(self.tensor))) |
|
|
|
|
|
class WriteVTK(Visualization): |
|
84 |
""" |
""" |
85 |
Writes data into VTK files for further processing. |
Generic visualization of scalar, vector and/or tensorial data |
86 |
|
|
87 |
|
@ivar scalar: scalar data set (in) |
88 |
|
@ivar vector: vector data set (in) |
89 |
|
@ivar tensor: tensor data set (in) |
90 |
""" |
""" |
91 |
|
|
92 |
def __init__(self, debug=False): |
def __init__(self, debug=False): |
93 |
""" |
""" |
94 |
Initialisation of the WriteVTK object |
Initialisation of the visualisation model object |
95 |
|
|
96 |
@param debug: Debugging flag |
@param debug: Debugging flag |
|
@type debug: C{bool} |
|
97 |
""" |
""" |
98 |
super(WriteVTK,self).__init__(debug=debug) |
super(Movie,self).__init__(debug=debug) |
99 |
|
self.declareParameter(scalar=None, |
100 |
def doInitialization(self): |
vector=None, |
101 |
""" |
tensor=None) |
|
does some kind of initialisation |
|
|
""" |
|
|
super(WriteVTK,self).doInitialization() |
|
|
fnc=self.filename.split('.') |
|
|
if len(fnc)==0: |
|
|
self.__filename="data.%s.xml" |
|
|
else: |
|
|
n=fnc[0] |
|
|
for i in range(1,len(fnc)-1): |
|
|
n+="."+fnc[i] |
|
|
if len(fnc)==1: |
|
|
self.__filename=n+".%s" |
|
|
else: |
|
|
self.__filename=n+".%s."+fnc[-1] |
|
|
self.trace("output filename is %s."%self.__filename) |
|
|
|
|
|
def doInitialPostprocessing(self): |
|
|
kwargs={} |
|
|
if isinstance(self.scalar,Data): kwargs["scalar"] = self.scalar |
|
|
if isinstance(self.vector,Data): kwargs["vector"] = self.vector |
|
|
if isinstance(self.tensor,Data): kwargs["tensor"] = self.tensor |
|
|
saveVTK(self.__filename%self.getFrameCounter(),**kwargs) |
|
|
self.trace("%s-th frame at time %s is writen to %s"%(self.getFrameCounter(),self.t,self.__filename%self.getFrameCounter())) |
|
102 |
|
|
103 |
def doStepPostprocessing(self, dt): |
def doStepPostprocessing(self, dt): |
104 |
""" |
""" |
105 |
writes |
renders the scene |
|
do any necessary postprocessing operations after a timestep. |
|
|
|
|
|
@param dt: current time increment |
|
|
@type dt: C{float} |
|
106 |
""" |
""" |
107 |
|
super(Movie, self).doStepPostprocessing(dt) |
108 |
if self.writeFrame(): |
if self.writeFrame(): |
109 |
kwargs={} |
if self.debug(): |
110 |
if isinstance(self.scalar,Data): kwargs["scalar"] = self.scalar |
self.trace("%s-th frame at time %s"%(self.getFrameCounter(),self.t)) |
111 |
if isinstance(self.vector,Data): kwargs["vector"] = self.vector |
if isinstance(self.scalar,Data): |
112 |
if isinstance(self.tensor,Data): kwargs["tensor"] = self.tensor |
self.trace("scalar data: (min,max) =(%s,%s)"%(inf(self.scalar),sup(self.scalar))) |
113 |
saveVTK(self.__filename%self.getFrameCounter(),**kwargs) |
if isinstance(self.vector,Data): |
114 |
self.trace("%s-th frame at time %s is writen to %s"%(self.getFrameCounter(),self.t,self.__filename%self.getFrameCounter())) |
self.trace("vector data: (min,max) =(%s,%s)"%(inf(self.vector),sup(self.vector))) |
115 |
|
if isinstance(self.tensor,Data): |
116 |
|
self.trace("tensor data: (min,max) =(%s,%s)"%(inf(self.tensor),sup(self.tensor))) |
117 |
|
|
118 |
class ShadePlot(Visualization): |
class ShadePlot(Movie): |
119 |
""" |
""" |
120 |
Shaded contour plots |
Shaded contour plots |
121 |
""" |
""" |
124 |
""" |
""" |
125 |
Initialisation |
Initialisation |
126 |
""" |
""" |
127 |
Visualization.__init__(self, debug) |
Movie.__init__(self, debug) |
128 |
self.declareParameter(filename="shadePlot.%s.png") |
self.declareParameter(filename="shadePlot.%s.png") |
129 |
|
|
130 |
def doStepPostprocessing(self, dt): |
def doStepPostprocessing(self, dt): |
154 |
scene.save(fname="shadePlot.%05d.png" % n, format="png") |
scene.save(fname="shadePlot.%05d.png" % n, format="png") |
155 |
|
|
156 |
|
|
157 |
class ArrowPlot(Visualization): |
class ArrowPlot(Movie): |
158 |
""" |
""" |
159 |
Arrow/vector/quiver plots |
Arrow/vector/quiver plots |
160 |
""" |
""" |
163 |
""" |
""" |
164 |
Initialisation |
Initialisation |
165 |
""" |
""" |
166 |
Visualization.__init__(self, debug) |
Movie.__init__(self, debug) |
167 |
self.declareParameter(filename="arrowPlot.%s.png") |
self.declareParameter(filename="arrowPlot.%s.png") |
168 |
|
|
169 |
def doStepPostprocessing(self, dt): |
def doStepPostprocessing(self, dt): |
193 |
|
|
194 |
|
|
195 |
|
|
196 |
class EllipsoidPlot(Visualization): |
class EllipsoidPlot(Movie): |
197 |
""" |
""" |
198 |
Ellipsoid plots |
Ellipsoid plots |
199 |
""" |
""" |
202 |
""" |
""" |
203 |
Initialisation |
Initialisation |
204 |
""" |
""" |
205 |
Visualization.__init__(self, debug) |
Movie.__init__(self, debug) |
206 |
|
|
207 |
|
|
208 |
|
class WriteVTK(Visualization): |
209 |
|
""" |
210 |
|
Writes data into a VTK file. |
211 |
|
|
212 |
|
The Model can handel up to 20 data sets that are written into a single file tagged with the given name. If no name is given and |
213 |
|
the data are defined by a L{Link} the name of the target attribute is used as a tag. |
214 |
|
|
215 |
|
@ivar data0: data set 0 to be written |
216 |
|
@type data0: L{escript.Data} |
217 |
|
@ivar name0: name tag for data set 0 |
218 |
|
@type name0: C{str} or C{None} |
219 |
|
@ivar data1: data set 1 to be written |
220 |
|
@type data1: L{escript.Data} |
221 |
|
@ivar name1: name tag for data set 1 |
222 |
|
@type name1: C{str} or C{None} |
223 |
|
@ivar data2: data set 2 to be written |
224 |
|
@type data2: L{escript.Data} |
225 |
|
@ivar name2: name tag for data set 2 |
226 |
|
@type name2: C{str} or C{None} |
227 |
|
@ivar data3: data set 3 to be written |
228 |
|
@type data3: L{escript.Data} |
229 |
|
@ivar name3: name tag for data set 3 |
230 |
|
@type name3: C{str} or C{None} |
231 |
|
@ivar data4: data set 4 to be written |
232 |
|
@type data4: L{escript.Data} |
233 |
|
@ivar name4: name tag for data set 4 |
234 |
|
@type name4: C{str} or C{None} |
235 |
|
@ivar data5: data set 5 to be written |
236 |
|
@type data5: L{escript.Data} |
237 |
|
@ivar name5: name tag for data set 5 |
238 |
|
@type name5: C{str} or C{None} |
239 |
|
@ivar data6: data set 6 to be written |
240 |
|
@type data6: L{escript.Data} |
241 |
|
@ivar name6: name tag for data set 6 |
242 |
|
@type name6: C{str} or C{None} |
243 |
|
@type data7: L{escript.Data} |
244 |
|
@ivar name7: name tag for data set 7 |
245 |
|
@type name7: C{str} or C{None} |
246 |
|
@ivar data8: data set 8 to be written |
247 |
|
@type data8: L{escript.Data} |
248 |
|
@ivar name8: name tag for data set 8 |
249 |
|
@type name8: C{str} or C{None} |
250 |
|
@ivar data9: data set 9 to be written |
251 |
|
@type data9: L{escript.Data} |
252 |
|
@ivar name9: name tag for data set 9 |
253 |
|
@type name9: C{str} or C{None} |
254 |
|
@ivar data10: data set 10 to be written |
255 |
|
@type data10: L{escript.Data} |
256 |
|
@ivar name10: name tag for data set 10 |
257 |
|
@type name10: C{str} or C{None} |
258 |
|
@ivar data11: data set 11 to be written |
259 |
|
@type data11: L{escript.Data} |
260 |
|
@ivar name11: name tag for data set 11 |
261 |
|
@type name11: C{str} or C{None} |
262 |
|
@ivar data12: data set 12 to be written |
263 |
|
@type data12: L{escript.Data} |
264 |
|
@ivar name12: name tag for data set 12 |
265 |
|
@type name12: C{str} or C{None} |
266 |
|
@ivar data13: data set 13 to be written |
267 |
|
@type data13: L{escript.Data} |
268 |
|
@ivar name13: name tag for data set 13 |
269 |
|
@type name13: C{str} or C{None} |
270 |
|
@ivar data14: data set 14 to be written |
271 |
|
@type data14: L{escript.Data} |
272 |
|
@ivar name14: name tag for data set 14 |
273 |
|
@type name14: C{str} or C{None} |
274 |
|
@ivar data15: data set 15 to be written |
275 |
|
@type data15: L{escript.Data} |
276 |
|
@ivar name15: name tag for data set 15 |
277 |
|
@type name15: C{str} or C{None} |
278 |
|
@ivar data16: data set 16 to be written |
279 |
|
@type data16: L{escript.Data} |
280 |
|
@ivar name16: name tag for data set 16 |
281 |
|
@type name16: C{str} or C{None} |
282 |
|
@ivar data17: data set 17 to be written |
283 |
|
@type data17: L{escript.Data} |
284 |
|
@ivar name17: name tag for data set 17 |
285 |
|
@type name17: C{str} or C{None} |
286 |
|
@ivar data18: data set 18 to be written |
287 |
|
@type data18: L{escript.Data} |
288 |
|
@ivar name18: name tag for data set 18 |
289 |
|
@type name18: C{str} or C{None} |
290 |
|
@ivar data19: data set 19 to be written |
291 |
|
@type data19: L{escript.Data} |
292 |
|
@ivar name19: name tag for data set 19 |
293 |
|
@type name19: C{str} or C{None} |
294 |
|
""" |
295 |
|
def __init__(self, debug=False): |
296 |
|
""" |
297 |
|
Initialisation of the WriteVTK object |
298 |
|
|
299 |
|
@param debug: debugging flag |
300 |
|
@type debug: C{bool} |
301 |
|
""" |
302 |
|
super(WriteVTK,self).__init__(debug=debug) |
303 |
|
self.declareParameter(data0=None,name0=None, |
304 |
|
data1=None,name1=None, |
305 |
|
data2=None,name2=None, |
306 |
|
data3=None,name3=None, |
307 |
|
data4=None,name4=None, |
308 |
|
data5=None,name5=None, |
309 |
|
data6=None,name6=None, |
310 |
|
data7=None,name7=None, |
311 |
|
data8=None,name8=None, |
312 |
|
data9=None,name9=None, |
313 |
|
data10=None,name10=None, |
314 |
|
data11=None,name11=None, |
315 |
|
data12=None,name12=None, |
316 |
|
data13=None,name13=None, |
317 |
|
data14=None,name14=None, |
318 |
|
data15=None,name15=None, |
319 |
|
data16=None,name16=None, |
320 |
|
data17=None,name17=None, |
321 |
|
data18=None,name18=None, |
322 |
|
data19=None,name19=None) |
323 |
|
def collectData(self): |
324 |
|
kwargs={} |
325 |
|
if not self.data0 == None: |
326 |
|
if self.name0 == None: |
327 |
|
if isinstance(self.getAttributeObject("data0"),Link): |
328 |
|
kwargs[self.getAttributeObject("data0").getAttributeName()]=self.data0 |
329 |
|
else: |
330 |
|
kwargs["data0"]=self.data0 |
331 |
|
else: |
332 |
|
kwargs[str(self.name0)]=self.data0 |
333 |
|
|
334 |
|
|
335 |
|
if not self.data1 == None: |
336 |
|
if self.name1 == None: |
337 |
|
if isinstance(self.getAttributeObject("data1"),Link): |
338 |
|
kwargs[self.getAttributeObject("data1").getAttributeName()]=self.data1 |
339 |
|
else: |
340 |
|
kwargs["data1"]=self.data1 |
341 |
|
else: |
342 |
|
kwargs[str(self.name1)]=self.data1 |
343 |
|
|
344 |
|
|
345 |
|
if not self.data2 == None: |
346 |
|
if self.name2 == None: |
347 |
|
if isinstance(self.getAttributeObject("data2"),Link): |
348 |
|
kwargs[self.getAttributeObject("data2").getAttributeName()]=self.data2 |
349 |
|
else: |
350 |
|
kwargs["data2"]=self.data2 |
351 |
|
else: |
352 |
|
kwargs[str(self.name2)]=self.data2 |
353 |
|
|
354 |
|
|
355 |
|
if not self.data3 == None: |
356 |
|
if self.name3 == None: |
357 |
|
if isinstance(self.getAttributeObject("data3"),Link): |
358 |
|
kwargs[self.getAttributeObject("data3").getAttributeName()]=self.data3 |
359 |
|
else: |
360 |
|
kwargs["data3"]=self.data3 |
361 |
|
else: |
362 |
|
kwargs[str(self.name3)]=self.data3 |
363 |
|
|
364 |
|
|
365 |
|
if not self.data4 == None: |
366 |
|
if self.name4 == None: |
367 |
|
if isinstance(self.getAttributeObject("data4"),Link): |
368 |
|
kwargs[self.getAttributeObject("data4").getAttributeName()]=self.data4 |
369 |
|
else: |
370 |
|
kwargs["data4"]=self.data4 |
371 |
|
else: |
372 |
|
kwargs[str(self.name4)]=self.data4 |
373 |
|
|
374 |
|
|
375 |
|
if not self.data5 == None: |
376 |
|
if self.name5 == None: |
377 |
|
if isinstance(self.getAttributeObject("data5"),Link): |
378 |
|
kwargs[self.getAttributeObject("data5").getAttributeName()]=self.data5 |
379 |
|
else: |
380 |
|
kwargs["data5"]=self.data5 |
381 |
|
else: |
382 |
|
kwargs[str(self.name5)]=self.data5 |
383 |
|
|
384 |
|
|
385 |
|
if not self.data6 == None: |
386 |
|
if self.name6 == None: |
387 |
|
if isinstance(self.getAttributeObject("data6"),Link): |
388 |
|
kwargs[self.getAttributeObject("data6").getAttributeName()]=self.data6 |
389 |
|
else: |
390 |
|
kwargs["data6"]=self.data6 |
391 |
|
else: |
392 |
|
kwargs[str(self.name6)]=self.data6 |
393 |
|
|
394 |
|
|
395 |
|
if not self.data7 == None: |
396 |
|
if self.name7 == None: |
397 |
|
if isinstance(self.getAttributeObject("data7"),Link): |
398 |
|
kwargs[self.getAttributeObject("data7").getAttributeName()]=self.data7 |
399 |
|
else: |
400 |
|
kwargs["data7"]=self.data7 |
401 |
|
else: |
402 |
|
kwargs[str(self.name7)]=self.data7 |
403 |
|
|
404 |
|
|
405 |
|
if not self.data8 == None: |
406 |
|
if self.name8 == None: |
407 |
|
if isinstance(self.getAttributeObject("data8"),Link): |
408 |
|
kwargs[self.getAttributeObject("data8").getAttributeName()]=self.data8 |
409 |
|
else: |
410 |
|
kwargs["data8"]=self.data8 |
411 |
|
else: |
412 |
|
kwargs[str(self.name8)]=self.data8 |
413 |
|
|
414 |
|
|
415 |
|
if not self.data9 == None: |
416 |
|
if self.name9 == None: |
417 |
|
if isinstance(self.getAttributeObject("data9"),Link): |
418 |
|
kwargs[self.getAttributeObject("data9").getAttributeName()]=self.data9 |
419 |
|
else: |
420 |
|
kwargs["data9"]=self.data9 |
421 |
|
else: |
422 |
|
kwargs[str(self.name9)]=self.data9 |
423 |
|
|
424 |
|
|
425 |
|
if not self.data10 == None: |
426 |
|
if self.name10 == None: |
427 |
|
if isinstance(self.getAttributeObject("data10"),Link): |
428 |
|
kwargs[self.getAttributeObject("data10").getAttributeName()]=self.data10 |
429 |
|
else: |
430 |
|
kwargs["data10"]=self.data10 |
431 |
|
else: |
432 |
|
kwargs[str(self.name10)]=self.data10 |
433 |
|
|
434 |
|
|
435 |
|
if not self.data11 == None: |
436 |
|
if self.name11 == None: |
437 |
|
if isinstance(self.getAttributeObject("data11"),Link): |
438 |
|
kwargs[self.getAttributeObject("data11").getAttributeName()]=self.data11 |
439 |
|
else: |
440 |
|
kwargs["data11"]=self.data11 |
441 |
|
else: |
442 |
|
kwargs[str(self.name11)]=self.data11 |
443 |
|
|
444 |
|
|
445 |
|
if not self.data12 == None: |
446 |
|
if self.name12 == None: |
447 |
|
if isinstance(self.getAttributeObject("data12"),Link): |
448 |
|
kwargs[self.getAttributeObject("data12").getAttributeName()]=self.data12 |
449 |
|
else: |
450 |
|
kwargs["data12"]=self.data12 |
451 |
|
else: |
452 |
|
kwargs[str(self.name12)]=self.data12 |
453 |
|
|
454 |
|
|
455 |
|
if not self.data13 == None: |
456 |
|
if self.name13 == None: |
457 |
|
if isinstance(self.getAttributeObject("data13"),Link): |
458 |
|
kwargs[self.getAttributeObject("data13").getAttributeName()]=self.data13 |
459 |
|
else: |
460 |
|
kwargs["data13"]=self.data13 |
461 |
|
else: |
462 |
|
kwargs[str(self.name13)]=self.data13 |
463 |
|
|
464 |
|
|
465 |
|
if not self.data14 == None: |
466 |
|
if self.name14 == None: |
467 |
|
if isinstance(self.getAttributeObject("data14"),Link): |
468 |
|
kwargs[self.getAttributeObject("data14").getAttributeName()]=self.data14 |
469 |
|
else: |
470 |
|
kwargs["data14"]=self.data14 |
471 |
|
else: |
472 |
|
kwargs[str(self.name14)]=self.data14 |
473 |
|
|
474 |
|
|
475 |
|
if not self.data15 == None: |
476 |
|
if self.name15 == None: |
477 |
|
if isinstance(self.getAttributeObject("data15"),Link): |
478 |
|
kwargs[self.getAttributeObject("data15").getAttributeName()]=self.data15 |
479 |
|
else: |
480 |
|
kwargs["data15"]=self.data15 |
481 |
|
else: |
482 |
|
kwargs[str(self.name15)]=self.data15 |
483 |
|
|
484 |
|
|
485 |
|
if not self.data16 == None: |
486 |
|
if self.name16 == None: |
487 |
|
if isinstance(self.getAttributeObject("data16"),Link): |
488 |
|
kwargs[self.getAttributeObject("data16").getAttributeName()]=self.data16 |
489 |
|
else: |
490 |
|
kwargs["data16"]=self.data16 |
491 |
|
else: |
492 |
|
kwargs[str(self.name16)]=self.data16 |
493 |
|
|
494 |
|
|
495 |
|
if not self.data17 == None: |
496 |
|
if self.name17 == None: |
497 |
|
if isinstance(self.getAttributeObject("data17"),Link): |
498 |
|
kwargs[self.getAttributeObject("data17").getAttributeName()]=self.data17 |
499 |
|
else: |
500 |
|
kwargs["data17"]=self.data17 |
501 |
|
else: |
502 |
|
kwargs[str(self.name17)]=self.data17 |
503 |
|
|
504 |
|
|
505 |
|
if not self.data18 == None: |
506 |
|
if self.name18 == None: |
507 |
|
if isinstance(self.getAttributeObject("data18"),Link): |
508 |
|
kwargs[self.getAttributeObject("data18").getAttributeName()]=self.data18 |
509 |
|
else: |
510 |
|
kwargs["data18"]=self.data18 |
511 |
|
else: |
512 |
|
kwargs[str(self.name18)]=self.data18 |
513 |
|
|
514 |
|
|
515 |
|
if not self.data19 == None: |
516 |
|
if self.name19 == None: |
517 |
|
if isinstance(self.getAttributeObject("data19"),Link): |
518 |
|
kwargs[self.getAttributeObject("data19").getAttributeName()]=self.data19 |
519 |
|
else: |
520 |
|
kwargs["data19"]=self.data19 |
521 |
|
else: |
522 |
|
kwargs[str(self.name19)]=self.data19 |
523 |
|
return kwargs |
524 |
|
|
525 |
|
def doInitialPostprocessing(self): |
526 |
|
""" |
527 |
|
writes vtk file at the end of initial iteration |
528 |
|
""" |
529 |
|
super(WriteVTK,self).doInitialPostprocessing() |
530 |
|
kwargs=self.collectData() |
531 |
|
if len(kwargs)>0: |
532 |
|
saveVTK(self.getFrameFileName(),**kwargs) |
533 |
|
self.trace("%s-th frame at time %s is writen to %s"%(self.getFrameCounter(),self.t,self.getFrameFileName())) |
534 |
|
|
535 |
|
def doStepPostprocessing(self, dt): |
536 |
|
""" |
537 |
|
writes vtk file at the end of time iteration |
538 |
|
""" |
539 |
|
super(WriteVTK,self).doStepPostprocessing(dt) |
540 |
|
if self.writeFrame(): |
541 |
|
kwargs=self.collectData() |
542 |
|
if len(kwargs)>0: |
543 |
|
saveVTK(self.getFrameFileName(),**kwargs) |
544 |
|
self.trace("%s-th frame at time %s is writen to %s"%(self.getFrameCounter(),self.t,self.getFrameFileName())) |
545 |
|
|
546 |
# vim: expandtab shiftwidth=4: |
# vim: expandtab shiftwidth=4: |