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

Diff of /trunk/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 149 by jgs, Thu Sep 1 03:31:39 2005 UTC
# Line 1  Line 1 
1  # $Id$  # $Id$
2    
3    from esys.escript.modelframe import Model,ParameterSet
4    from esys.escript.util import exp
5    import numarray
6    
7  from esys.modelframe import Model  class GravityForce(ParameterSet):
8           """
9           Sets a gravity force of given direction in given domain:
10    
11  class MaterialTable(Model):         @ivar domain (in): domain of interest
12         """@brief a simple matrial table which allows setting physical parameters of a model         @ivar density (in): density
13           @ivar direction (in): density
14           @ivar gravity_force(out): gravity force
15           """
16           def __init__(self,debug=False):
17               ParameterSet.__init__(self,debug=debug)
18               self.declareParameter(domain=None,
19                                     gravity=9.81, \
20                                     density=1., \
21                                     direction=[1.,0.,0.])
22    
23                @param density (in/out) - density         def gravity_force(self):
24                @param c_p (in/out)  - c_p              if isinstance(self.direction,list):
25                @param thermal_permabilty (in/out) - permabilty                 dir=numarray.array(self.direction[:self.domain.getDim()])
26                @param viscosity (in/out)  - viscosity              else:
27                @param radiation_coefficient (in/out) -                 dir=self.direction[:self.domain.getDim()]
28                return self.gravity*self.density*dir
29        
30    
31        
32    class MaterialTable(ParameterSet):
33           """
34           A simple matrial table which allows setting physical ivar of a model
35    
36           @ivar density (in/out): density
37           @ivar heat_capacity (in/out):  heat_capacity
38           @ivar thermal_permabilty (in/out): permabilty
39           @ivar viscosity (in/out): viscosity
40           @ivar radiation_coefficient (in/out):
41         """         """
42         def __init__(self,debug=False):         def __init__(self,debug=False):
43             Model.__init__(self,debug=debug)             ParameterSet.__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 SimpleSolidMaterial(MaterialTable):  class SimpleEarthModel(ParameterSet):
51         """@brief a simple matrial table which allows setting physical parameters of a model         """
52           B simple matrial table run convection models::
53    
54                @param density (in/out) - density             density=density0*(1-rayleigh_number*(temperature-reference_temperature))
55                @param c_p (in/out)  - c_p             viscocity=viscocity0*(exp(alpha*(1/reference_temperature - 1/temperature))
               @param thermal_permabilty (in/out) - permabilty  
               @param viscosity (in/out)  - viscosity  
               @param radiation_coefficient (in/out) -  
56    
57           @ivar gravity (in): gravity constants (9.81)
58           @ivar reference_temperature (in): reference temperature
59           @ivar density0 (in): density at reference temperature
60           @ivar viscosity0 (in): viscosity0 at reference temperature
61           @ivar alpha (in): viscosity contrast
62           @ivar rayleigh_number (in): Raleigh number
63           @ivar heat_capacity (in): heat capacity
64           @ivar thermal_permabilty (in): permabilty
65           @ivar temperature (in): temperature
66           @ivar viscosity (out): viscosity
67           @ivar density (out): density
68           """
69           def __init__(self,debug=False):
70               ParameterSet.__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):
87           """
88           A simple matrial table which allows setting physical parameters of
89           a model.
90    
91           @ivar density (in/out): density
92           @ivar heat_capacity (in/out): heat_capacity
93           @ivar thermal_permabilty (in/out): permabilty
94           @ivar viscosity (in/out): viscosity
95           @ivar radiation_coefficient (in/out):
96         """         """
97         def __init__(self,debug=False):         def __init__(self,debug=False):
98             MaterialTable.__init__(self,debug=debug)             MaterialTable.__init__(self,debug=debug)
# Line 37  class SimpleSolidMaterial(MaterialTable) Line 100  class SimpleSolidMaterial(MaterialTable)
100                                   lame_my=1.)                                   lame_my=1.)
101    
102  class SimpleFluidMaterial(MaterialTable):  class SimpleFluidMaterial(MaterialTable):
103         """@brief a simple matrial table which allows setting physical parameters of a model         """
104           A simple matrial table which allows setting physical ivar of a model.
               @param density (in/out) - density  
               @param c_p (in/out)  - c_p  
               @param thermal_permabilty (in/out) - permabilty  
               @param viscosity (in/out)  - viscosity  
               @param radiation_coefficient (in/out) -  
105    
106           @ivar density (in/out): density
107           @ivar heat_capacity (in/out): heat_capacity
108           @ivar thermal_permabilty (in/out): permabilty
109           @ivar viscosity (in/out): viscosity
110           @ivar radiation_coefficient (in/out):
111         """         """
112         def __init__(self,debug=False):         def __init__(self,debug=False):
113             MaterialTable.__init__(self,debug=debug)             MaterialTable.__init__(self,debug=debug)
114             self.declareParameter(viscosity=1., \             self.declareParameter(viscosity=1., \
115                                   hydraulic_conductivity=1.e-4)                                   hydraulic_conductivity=1.e-4)
116    
117    # vim: expandtab shiftwidth=4:

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

  ViewVC Help
Powered by ViewVC 1.1.26