/[escript]/trunk/esys2/modellib/py_src/materials.py
ViewVC logotype

Diff of /trunk/esys2/modellib/py_src/materials.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 127 by jgs, Fri Jul 22 05:11:29 2005 UTC revision 147 by jgs, Fri Aug 12 01:45:47 2005 UTC
# Line 1  Line 1 
1  # $Id$  # $Id$
2    
3    from escript.modelframe import Model
4    from escript.util import exp
5    import numarray
6    
7    class GravityForce(Model):
8           """@brief sets a gravity force of given direction in given domain:
9    
10                  @param domain (in) - domain of interest
11                  @param density (in) - density
12                  @param direction (in) - density
13                  @param gravity_force(out)  - gravity force
14    
15  from esys.modelframe import Model         """
16           def __init__(self,debug=False):
17               Model.__init__(self,debug=debug)
18               self.declareParameter(domain=None,
19                                     gravity=9.81, \
20                                     density=1., \
21                                     direction=[1.,0.,0.])
22    
23           def gravity_force(self):
24                if isinstance(self.direction,list):
25                   dir=numarray.array(self.direction[:self.domain.getDim()])
26                else:
27                   dir=self.direction[:self.domain.getDim()]
28                return self.gravity*self.density*dir
29        
30    
31        
32  class MaterialTable(Model):  class MaterialTable(Model):
33         """@brief a simple matrial table which allows setting physical parameters of a model         """@brief a simple matrial table which allows setting physical parameters of a model
34    
35                @param density (in/out) - density                @param density (in/out) - density
36                @param c_p (in/out)  - c_p                @param heat_capacity (in/out)  - heat_capacity
37                @param thermal_permabilty (in/out) - permabilty                @param thermal_permabilty (in/out) - permabilty
38                @param viscosity (in/out)  - viscosity                @param viscosity (in/out)  - viscosity
39                @param radiation_coefficient (in/out) -                @param radiation_coefficient (in/out) -
# Line 15  class MaterialTable(Model): Line 41  class MaterialTable(Model):
41         """         """
42         def __init__(self,debug=False):         def __init__(self,debug=False):
43             Model.__init__(self,debug=debug)             Model.__init__(self,debug=debug)
44             self.declareParameter(g=9.81, \             self.declareParameter(gravity=9.81, \
45                                   density=1., \                                   density=1., \
46                                   c_p=1., \                                   heat_capacity=1., \
47                                   thermal_permabilty=1., \                                   thermal_permabilty=1., \
48                                   radiation_coefficient=0.)                                   radiation_coefficient=0.)
49    
50    class SimpleEarthModel(Model):
51           """@brief a simple matrial table run convection models:
52    
53                  density=density0*(1-rayleigh_number*(temperature-reference_temperature))
54                  viscocity=viscocity0*(exp(alpha*(1/reference_temperature - 1/temperature))
55    
56                  @param gravity  (in) - gravity constants (9.81)
57                  @param reference_temperature  (in) - reference temperature
58                  @param density0  (in) - density at reference temperature
59                  @param viscosity0  (in) - viscosity0 at reference temperature
60                  @param alpha  (in) - viscosity contrast
61                  @param rayleigh_number (in)  - Raleigh number
62                  @param heat_capacity (in)  - heat capacity
63                  @param thermal_permabilty (in) - permabilty
64                  @param temperature (in) - temperature
65                  @param viscosity (out)  - viscosity
66                  @param density (out)  - density
67    
68           """
69           def __init__(self,debug=False):
70               Model.__init__(self,debug=debug)
71               self.declareParameter(reference_temperature=1.,
72                                     gravity=9.81, \
73                                     density0=1., \
74                                     rayleigh_number=0., \
75                                     viscosity0=1., \
76                                     alpha=0., \
77                                     heat_capacity=1., \
78                                     thermal_permabilty=1.)
79          
80           def density(self):
81               return self.density0*(1-self.rayleigh_number*(self.temperature-self.reference_temperature))
82    
83           def viscosity(self):
84               return self.viscosity0*exp(self.alpha*(1/self.reference_temperature - 1/(self.temperature+1.e-15)))
85    
86  class SimpleSolidMaterial(MaterialTable):  class SimpleSolidMaterial(MaterialTable):
87         """@brief a simple matrial table which allows setting physical parameters of a model         """@brief a simple matrial table which allows setting physical parameters of a model
88    
89                @param density (in/out) - density                @param density (in/out) - density
90                @param c_p (in/out)  - c_p                @param heat_capacity (in/out)  - heat_capacity
91                @param thermal_permabilty (in/out) - permabilty                @param thermal_permabilty (in/out) - permabilty
92                @param viscosity (in/out)  - viscosity                @param viscosity (in/out)  - viscosity
93                @param radiation_coefficient (in/out) -                @param radiation_coefficient (in/out) -
# Line 40  class SimpleFluidMaterial(MaterialTable) Line 102  class SimpleFluidMaterial(MaterialTable)
102         """@brief a simple matrial table which allows setting physical parameters of a model         """@brief a simple matrial table which allows setting physical parameters of a model
103    
104                @param density (in/out) - density                @param density (in/out) - density
105                @param c_p (in/out)  - c_p                @param heat_capacity (in/out)  - heat_capacity
106                @param thermal_permabilty (in/out) - permabilty                @param thermal_permabilty (in/out) - permabilty
107                @param viscosity (in/out)  - viscosity                @param viscosity (in/out)  - viscosity
108                @param radiation_coefficient (in/out) -                @param radiation_coefficient (in/out) -

Legend:
Removed from v.127  
changed lines
  Added in v.147

  ViewVC Help
Powered by ViewVC 1.1.26