/[escript]/trunk/doc/examples/pyvisi/diffusion_with_pyvisi.py
ViewVC logotype

Contents of /trunk/doc/examples/pyvisi/diffusion_with_pyvisi.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1191 - (show annotations)
Tue Jun 12 05:54:41 2007 UTC (11 years, 10 months ago) by jongui
File MIME type: text/x-python
File size: 1594 byte(s)
A movie can now be generated within the python script itself by creating an instace of 'Movie'. The 'Movie' instance will in turn execute the 'ppmtompeg' command. The corresponding tests and examples have also been added.
1 # Import the necessary modules.
2 from esys.escript import *
3 from esys.escript.linearPDEs import LinearPDE
4 from esys.finley import Rectangle
5 from esys.pyvisi import Scene, DataCollector, Map, Camera
6 from esys.pyvisi.constant import *
7 import os
8
9 PYVISI_EXAMPLE_IMAGES_PATH = "data_sample_images"
10 X_SIZE = 400
11 Y_SIZE = 400
12 JPG_RENDERER = Renderer.ONLINE_JPG
13
14 #... set some parameters ...
15 xc=[0.02,0.002]
16 r=0.001
17 qc=50.e6
18 Tref=0.
19 rhocp=2.6e6
20 eta=75.
21 kappa=240.
22 tend=5.
23 # ... time, time step size and counter ...
24 t=0
25 h=0.1
26 i=0
27
28 #... generate domain ...
29 mydomain = Rectangle(l0=0.05,l1=0.01,n0=250, n1=50)
30 #... open PDE ...
31 mypde=LinearPDE(mydomain)
32 mypde.setSymmetryOn()
33 mypde.setValue(A=kappa*kronecker(mydomain),D=rhocp/h,d=eta,y=eta*Tref)
34 # ... set heat source: ....
35 x=mydomain.getX()
36 qH=qc*whereNegative(length(x-xc)-r)
37 # ... set initial temperature ....
38 T=Tref
39
40 # Create a Scene.
41 s = Scene(renderer = JPG_RENDERER, x_size = X_SIZE, y_size = Y_SIZE)
42
43 # Create a DataCollector reading directly from escript objects.
44 dc = DataCollector(source = Source.ESCRIPT)
45
46 # Create a Map.
47 m = Map(scene = s, data_collector = dc, \
48 viewport = Viewport.SOUTH_WEST, lut = Lut.COLOR, \
49 cell_to_point = False, outline = True)
50
51 # Create a Camera.
52 c = Camera(scene = s, viewport = Viewport.SOUTH_WEST)
53
54 # ... start iteration:
55 while t<0.4:
56 i+=1
57 t+=h
58 mypde.setValue(Y=qH+rhocp/h*T)
59 T=mypde.getSolution()
60
61 dc.setData(temp = T)
62
63 # Render the object.
64 s.render(image_name = os.path.join(PYVISI_EXAMPLE_IMAGES_PATH, \
65 "diffusion%02d.jpg") % i)
66

  ViewVC Help
Powered by ViewVC 1.1.26