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

Diff of /trunk/modellib/py_src/geometry.py

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

revision 323 by gross, Tue Dec 6 06:18:00 2005 UTC revision 406 by gross, Fri Dec 23 00:39:59 2005 UTC
# Line 5  from esys.escript import * Line 5  from esys.escript import *
5  from esys.escript.modelframe import Model,ParameterSet  from esys.escript.modelframe import Model,ParameterSet
6  from esys import finley  from esys import finley
7    
8  class RectangularDomain(Model):  class FinleyReader(ParameterSet):
9           """
10           Generates a mesh over a rectangular domain finley.
11    
12           @ivar filename:
13           @ivar intergrationOrder
14           @ivar domain:
15           """
16           def __init__(self,debug=False):
17               super(FinleyReader,self).__init__(debug=debug)
18               ParameterSet.__init__(self,debug=debug)
19               self.declareParameter(source="none",\
20                                     integrationOrder=-1)
21               self._domain=None
22    
23           def domain(self):
24              if self._domain==None:
25                  self._domain=finley.ReadMesh(self.source,self.integrationOrder)
26                  self.trace("mesh read from %s"%self.source)          
27              return self._domain
28                          
29    class RectangularDomain(ParameterSet):
30         """         """
31         Generates a mesh over a rectangular domain finley.         Generates a mesh over a rectangular domain finley.
32    
# Line 15  class RectangularDomain(Model): Line 36  class RectangularDomain(Model):
36         @ivar order:         @ivar order:
37         @ivar periodic:         @ivar periodic:
38         @ivar intergration order:         @ivar intergration order:
39         @ivar domain (callable):         @ivar domain:
40         """         """
41         def __init__(self,debug=False):         def __init__(self,debug=False):
42             Model.__init__(self,debug=debug)             super(RectangularDomain,self).__init__(debug=debug)
43             self.declareParameter(dim=2,\             self.declareParameter(dim=2,\
44                                   l=[1.,1.,1.],\                                   l=[1.,1.,1.],\
45                                   n=[10,10,10], \                                   n=[10,10,10], \
# Line 53  class RectangularDomain(Model): Line 74  class RectangularDomain(Model):
74    
75            return self._domain            return self._domain
76    
77    class ConstrainValue(Model):
78           """
79           selects values for a given distribution to be used as a constrain. the location of the
80           constrain are he faces of a rectangular domain. This Model is typically used in
81           time dependend problems to fix the values in a given initial condition.
82           """
83           def __init__(self,debug=False):
84               Model.__init__(self,debug=debug)
85               self.declareParameter(domain=None, \
86                                     value=0,  \
87                                     top=True,  \
88                                     bottom=True,\
89                                     front=False, \
90                                     back=False,\
91                                     left=False,\
92                                     right=False,\
93                                     constrain_value = None,  \
94                                     location_constrained_value=None)
95           def doInitialization(self):
96               """
97               initialize time stepping
98               """
99               x=self.domain.getX()
100               d=self.domain.getDim()
101               self.location_constrained_value=0
102               x0=x[0]
103               if self.left:
104                   self.location_constrained_value=self.location_constrained_value+whereZero(x0-inf(x0))
105               if self.right:
106                   self.location_constrained_value=self.location_constrained_value+whereZero(x0-sup(x0))
107               x0=x[d-1]
108               if self.buttom:
109                   self.location_constrained_value=self.location_constrained_value+whereZero(x0-inf(x0))
110               if self.top:
111                   self.location_constrained_value=self.location_constrained_value+whereZero(x0-sup(x0))
112               if d>2:
113                  x0=x[1]
114                  if self.front:
115                     self.location_constrained_value=self.location_constrained_value+whereZero(x0-inf(x0))
116                  if self.back:
117                     self.location_constrained_value=self.location_constrained_value+whereZero(x0-sup(x0))          
118               self.constrain_value=self.value*self.location_constrained_value
119              
120  class ScalarConstrainer(ParameterSet):  class ScalarConstrainer(ParameterSet):
121       """       """
122       Creates a characteristic function for the location of constraints       Creates a characteristic function for the location of constraints

Legend:
Removed from v.323  
changed lines
  Added in v.406

  ViewVC Help
Powered by ViewVC 1.1.26