1 |
# $Id$ |
2 |
|
3 |
|
4 |
from esys.modelframe import Model |
5 |
|
6 |
class Visualization(Model): |
7 |
""" |
8 |
|
9 |
generic visualization of scalar, vector and tensorial data (not implemeted yet) |
10 |
|
11 |
scalar: scalar data set |
12 |
vector: vector data set |
13 |
tensor: tensor data set |
14 |
stride: visulaization is done every strides time step |
15 |
filename: name of the movie file |
16 |
|
17 |
""" |
18 |
def __init__(self,debug=False): |
19 |
Model.__init__(self,debug=debug) |
20 |
self.declareParameter(scalar=None,vector=None,tensor=None,stride=1,filename="movie.mpg") |
21 |
|
22 |
def doInitialization(self,t): |
23 |
self.__tn=t |
24 |
self.__n=0 |
25 |
self.__scene=None |
26 |
|
27 |
def doStep(self,dt): |
28 |
self.__tn+=dt |
29 |
self.__n+=1 |
30 |
if self.__n%self.stride: |
31 |
data=self.scalar |
32 |
if data!=None: |
33 |
pass |
34 |
data=self.vector |
35 |
if data!=None: |
36 |
pass |
37 |
data=self.tensor |
38 |
if data!=None: |
39 |
pass |
40 |
|
41 |
def doFinalization(self): |
42 |
# make the movie into self.filename |
43 |
pass |
44 |
|
45 |
class WriteVTK(Visualization): |
46 |
""" writes data into a VTK file for further processing. Currently data are written in several files for |
47 |
each data type. This may change in the future. |
48 |
|
49 |
scalar: scalar data set |
50 |
vector: vector data set |
51 |
tensor: tensor data set |
52 |
stride: file is written every stride-th time step |
53 |
filename: name of the data files. use %s for indication of data type (s,v,t) and time step id. |
54 |
|
55 |
""" |
56 |
def __init__(self,debug=False): |
57 |
Visualization.__init__(self,debug=debug) |
58 |
self.declareParameter(scalar=None,vector=None,tensor=None,stride=1,filename="data.%s.vtk",counter=0) |
59 |
|
60 |
def doInitialization(self,t): |
61 |
self.__tn=t |
62 |
|
63 |
def doStep(self,dt): |
64 |
self.__tn+=dt |
65 |
self.counter+=1 |
66 |
print self.counter,self.stride,self.counter%self.stride |
67 |
if self.counter%self.stride==0: |
68 |
n=self.counter/self.stride |
69 |
data=self.scalar |
70 |
if hasattr(data,"saveVTK"): data.saveVTK(self.filename%("s%d"%n)) |
71 |
data=self.vector |
72 |
if hasattr(data,"saveVTK"): data.saveVTK(self.filename%("v%d"%n)) |
73 |
data=self.tensor |
74 |
if hasattr(data,"saveVTK"): data.saveVTK(self.filename%("t%d"%n)) |