/[escript]/trunk/modellib/test/python/run_convection.py
ViewVC logotype

Annotation of /trunk/modellib/test/python/run_convection.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 938 - (hide annotations)
Thu Jan 25 03:40:54 2007 UTC (15 years, 10 months ago) by gross
File MIME type: text/x-python
File size: 3069 byte(s)
the FinleyReade accepts now gmsh files (use format="gmsh")
and
Simulations are accepting Models only. Moreover, there is a test now
if a all Models targeted by a model in the simulation or a subsimulation
are included in  simulation or a subsimulation. 


1 jgs 147 # $Id$
2    
3     #
4     #
5     # a very simple convection model in model frame:
6     #
7    
8 elspeth 628 __copyright__=""" Copyright (c) 2006 by ACcESS MNRF
9     http://www.access.edu.au
10     Primary Business: Queensland, Australia"""
11     __license__="""Licensed under the Open Software License version 3.0
12     http://www.opensource.org/licenses/osl-3.0.php"""
13    
14 gross 706 import os
15 jgs 149 from esys.escript.modelframe import Link,Simulation
16 gross 911 from esys.modellib.geometry import RectangularDomain,ScalarConstrainerOverBox,VectorConstrainerOverBox
17 jgs 149 from esys.modellib.input import Sequencer,InterpolateOverBox,GaussianProfile,LinearCombination
18     from esys.modellib.flow import SteadyIncompressibleFlow
19     from esys.modellib.temperature import TemperatureAdvection
20     from esys.modellib.materials import SimpleEarthModel,GravityForce
21     from esys.modellib.visualization import WriteVTK
22 jgs 147
23 gross 728 try:
24     WORKDIR=os.environ['MODELLIB_WORKDIR']
25     except KeyError:
26     WORKDIR='.'
27    
28    
29 jgs 147 dom=RectangularDomain()
30     dom.order=2
31    
32 gross 820 temp_val=InterpolateOverBox()
33     temp_val.domain=Link(dom,"domain")
34     temp_val.value_left_bottom_front=1.
35     temp_val.value_right_bottom_front=1.
36     temp_val.value_left_top_front=0.
37     temp_val.value_right_top_front=0.
38     temp_val.value_left_bottom_back=1.
39     temp_val.value_right_bottom_back=1.
40     temp_val.value_left_top_back=0.
41     temp_val.value_right_top_back=0.
42    
43 gross 911 temp_constraints=ScalarConstrainerOverBox()
44 jgs 147 temp_constraints.domain=Link(dom)
45     temp_constraints.top=1
46     temp_constraints.bottom=1
47    
48 gross 911 vel_constraints=VectorConstrainerOverBox()
49 jgs 147 vel_constraints.domain=Link(dom)
50     vel_constraints.left=[1,0,0]
51     vel_constraints.right=[1,0,0]
52     vel_constraints.top=[0,1,0]
53     vel_constraints.bottom=[0,1,0]
54     vel_constraints.front=[0,0,1]
55     vel_constraints.back=[0,0,1]
56    
57     mat=SimpleEarthModel()
58     mat.density0=1.
59     mat.viscocity0=1.
60     mat.rayleigh_number=10000.
61     mat.alpha=0.001
62    
63     temp=TemperatureAdvection(debug=True)
64     temp.domain=Link(dom)
65     temp.density=Link(mat,"density0")
66     temp.heat_capacity=Link(mat,"heat_capacity")
67     temp.location_fixed_temperature=Link(temp_constraints,"location_of_constraint")
68     temp.fixed_temperature=Link(temp_val,"out")
69     temp.safety_factor=0.01
70     mat.temperature=Link(temp,"temperature")
71    
72    
73     grav=GravityForce()
74     grav.domain=Link(dom,"domain")
75     grav.direction=[0.,-1.,0.]
76     grav.density=Link(mat,"density")
77     grav.gravity=Link(mat,"gravity")
78    
79    
80     vel=SteadyIncompressibleFlow(debug=True)
81     vel.domain=Link(dom)
82     vel.internal_force=Link(grav,"gravity_force")
83     vel.viscosity=Link(mat,"viscosity")
84     vel.location_prescribed_velocity=Link(vel_constraints,"location_of_constraint")
85     vel.rel_tol=1.e-6
86     temp.velocity=Link(vel,"velocity")
87    
88     sq=Sequencer()
89 gross 820 sq.t_end=0.001
90 jgs 147
91     vis=WriteVTK()
92     vis.t=Link(sq)
93 gross 912 vis.data0=Link(temp,"temperature")
94     vis.data1=Link(vel,"velocity")
95 gross 820 vis.dt=0.0001
96 gross 728 vis.filename=WORKDIR+"/temp.xml"
97 jgs 147
98 jgs 148 per=GaussianProfile()
99 jgs 147 per.domain=Link(dom)
100     per.x_c=[0.5,0.5,0.5]
101     per.A=0.0001
102     per.width=0.01
103     per.r=0
104    
105     lc=LinearCombination()
106     lc.f0=1.
107     lc.v0=Link(per,"out")
108     lc.f1=1.
109     lc.v1=Link(temp_val,"out")
110     temp.temperature=Link(lc,"out")
111    
112 gross 938 s=Simulation([sq,vel_constraints, temp_constraints,Simulation([vel],debug=True),temp,vis],debug=True)
113 jgs 147 s.writeXML()
114     s.run()

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26