/[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 819 by gross, Sun Aug 27 23:07:51 2006 UTC revision 820 by gross, Mon Aug 28 06:55:36 2006 UTC
# Line 27  class Domain(Model): Line 27  class Domain(Model):
27             initializes the object             initializes the object
28             """             """
29             super(Domain, self).__init__(debug=debug)             super(Domain, self).__init__(debug=debug)
30             self.declareParameter(displacement=None,\             self.declareParameter(domain=None,\
31                                     displacement=None,\
32                                   integrationOrder=-1)                                   integrationOrder=-1)
33    
            self.__updated=False  
34    
35        def doInitialization(self):        def doInitialization(self):
36           """           """
# Line 44  class Domain(Model): Line 44  class Domain(Model):
44           """           """
45           applies the final L{displacement} to mesh nodes.           applies the final L{displacement} to mesh nodes.
46           """           """
47           if self.displacement:           self.__updated=False
               self.domain.setX(self.__x+self.displacement)  
               self.__update=False  
48    
49        def doStep(self,dt):        def doStep(self,dt):
50           """           """
# Line 164  class ScalarConstrainer(Model): Line 162  class ScalarConstrainer(Model):
162                                   front=False, \                                   front=False, \
163                                   back=False, \                                   back=False, \
164                                   tol=1.e-8, \                                   tol=1.e-8, \
165                                   constraint_value = None,  \                                   value_of_constraint = None,  \
166                                   location_constrained_value=None)                                   location_of_constraint=None)
167             self._location_of_constraint=None             self.location_of_constraint=None
168    
169       def doInitialization(self):       def doInitialization(self):
170            """            """
171            Returns the mask of the location of constraint.            Returns the mask of the location of constraint.
172            """            """
173            x=self.domain.getX()            x=self.domain.getX()
174            self._location_of_constraint=Scalar(0,x.getFunctionSpace())            self.location_of_constraint=Scalar(0,x.getFunctionSpace())
175            if self.domain.getDim()==3:            if self.domain.getDim()==3:
176                  x0,x1,x2=x[0],x[1],x[2]                  x0,x1,x2=x[0],x[1],x[2]
177                  if self.left: self._location_of_constraint+=whereZero(x0-inf(x0),self.tol)                  if self.left: self.location_of_constraint+=whereZero(x0-inf(x0),self.tol)
178                  if self.right: self._location_of_constraint+=whereZero(x0-sup(x0),self.tol)                  if self.right: self.location_of_constraint+=whereZero(x0-sup(x0),self.tol)
179                  if self.front: self._location_of_constraint+=whereZero(x1-inf(x1),self.tol)                  if self.front: self.location_of_constraint+=whereZero(x1-inf(x1),self.tol)
180                  if self.back: self._location_of_constraint+=whereZero(x1-sup(x1),self.tol)                  if self.back: self.location_of_constraint+=whereZero(x1-sup(x1),self.tol)
181                  if self.bottom: self._location_of_constraint+=whereZero(x2-inf(x2),self.tol)                  if self.bottom: self.location_of_constraint+=whereZero(x2-inf(x2),self.tol)
182                  if self.top: self._location_of_constraint+=whereZero(x2-sup(x2),self.tol)                  if self.top: self.location_of_constraint+=whereZero(x2-sup(x2),self.tol)
183            else:            else:
184                  x0,x1=x[0],x[1]                  x0,x1=x[0],x[1]
185                  if self.left: self._location_of_constraint+=whereZero(x0-inf(x0),self.tol)                  if self.left: self.location_of_constraint+=whereZero(x0-inf(x0),self.tol)
186                  if self.right: self._location_of_constraint+=whereZero(x0-sup(x0),self.tol)                  if self.right: self.location_of_constraint+=whereZero(x0-sup(x0),self.tol)
187                  if self.bottom: self._location_of_constraint+=whereZero(x1-inf(x1),self.tol)                  if self.bottom: self.location_of_constraint+=whereZero(x1-inf(x1),self.tol)
188                  if self.top: self._location_of_constraint+=whereZero(x1-sup(x1),self.tol)                  if self.top: self.location_of_constraint+=whereZero(x1-sup(x1),self.tol)
189            self.constraint_value=self.location_constrained_value*self.value            self.value_of_constraint=self.location_of_constraint*self.value
190    
191  class VectorConstrainer(Model):  class VectorConstrainer(Model):
192        """        """
# Line 225  class VectorConstrainer(Model): Line 223  class VectorConstrainer(Model):
223                                   front=[0,0,0], \                                   front=[0,0,0], \
224                                   ack=[0,0,0], \                                   ack=[0,0,0], \
225                                   tol=1.e-8, \                                   tol=1.e-8, \
226                                   constraint_value = None,  \                                   value_of_constraint = None,  \
227                                   location_constrained_value=None)                                   location_of_constraint=None)
228             self._location_of_constraint=None             self.location_of_constraint=None
229        def doInitialization(self):        def doInitialization(self):
230            """            """
231            sets the location_constrained_value and constraint_value to be kept throughout the simulation.            sets the location_of_constraint and value_of_constraint to be kept throughout the simulation.
232            """            """
233            if self._location_of_constraint==None:            if self.location_of_constraint==None:
234               x=self.domain.getX()               x=self.domain.getX()
235               self._location_of_constraint=Vector(0,x.getFunctionSpace())               self.location_of_constraint=Vector(0,x.getFunctionSpace())
236               if self.domain.getDim()==3:               if self.domain.getDim()==3:
237                  x0,x1,x2=x[0],x[1],x[2]                  x0,x1,x2=x[0],x[1],x[2]
238                  left_mask=whereZero(x0-inf(x0),self.tol)                  left_mask=whereZero(x0-inf(x0),self.tol)
239                  if self.left[0]: self._location_of_constraint+=left_mask*[1.,0.,0.]                  if self.left[0]: self.location_of_constraint+=left_mask*[1.,0.,0.]
240                  if self.left[1]: self._location_of_constraint+=left_mask*[0.,1.,0.]                  if self.left[1]: self.location_of_constraint+=left_mask*[0.,1.,0.]
241                  if self.left[2]: self._location_of_constraint+=left_mask*[0.,0.,1.]                  if self.left[2]: self.location_of_constraint+=left_mask*[0.,0.,1.]
242                  right_mask=whereZero(x0-sup(x0),self.tol)                  right_mask=whereZero(x0-sup(x0),self.tol)
243                  if self.right[0]: self._location_of_constraint+=right_mask*[1.,0.,0.]                  if self.right[0]: self.location_of_constraint+=right_mask*[1.,0.,0.]
244                  if self.right[1]: self._location_of_constraint+=right_mask*[0.,1.,0.]                  if self.right[1]: self.location_of_constraint+=right_mask*[0.,1.,0.]
245                  if self.right[2]: self._location_of_constraint+=right_mask*[0.,0.,1.]                  if self.right[2]: self.location_of_constraint+=right_mask*[0.,0.,1.]
246                  front_mask=whereZero(x1-inf(x1),self.tol)                  front_mask=whereZero(x1-inf(x1),self.tol)
247                  if self.front[0]: self._location_of_constraint+=front_mask*[1.,0.,0.]                  if self.front[0]: self.location_of_constraint+=front_mask*[1.,0.,0.]
248                  if self.front[1]: self._location_of_constraint+=front_mask*[0.,1.,0.]                  if self.front[1]: self.location_of_constraint+=front_mask*[0.,1.,0.]
249                  if self.front[2]: self._location_of_constraint+=front_mask*[0.,0.,1.]                  if self.front[2]: self.location_of_constraint+=front_mask*[0.,0.,1.]
250                  back_mask=whereZero(x1-sup(x1),self.tol)                  back_mask=whereZero(x1-sup(x1),self.tol)
251                  if self.back[0]: self._location_of_constraint+=back_mask*[1.,0.,0.]                  if self.back[0]: self.location_of_constraint+=back_mask*[1.,0.,0.]
252                  if self.back[1]: self._location_of_constraint+=back_mask*[0.,1.,0.]                  if self.back[1]: self.location_of_constraint+=back_mask*[0.,1.,0.]
253                  if self.back[2]: self._location_of_constraint+=back_mask*[0.,0.,1.]                  if self.back[2]: self.location_of_constraint+=back_mask*[0.,0.,1.]
254                  bottom_mask=whereZero(x2-inf(x2),self.tol)                  bottom_mask=whereZero(x2-inf(x2),self.tol)
255                  if self.bottom[0]: self._location_of_constraint+=bottom_mask*[1.,0.,0.]                  if self.bottom[0]: self.location_of_constraint+=bottom_mask*[1.,0.,0.]
256                  if self.bottom[1]: self._location_of_constraint+=bottom_mask*[0.,1.,0.]                  if self.bottom[1]: self.location_of_constraint+=bottom_mask*[0.,1.,0.]
257                  if self.bottom[2]: self._location_of_constraint+=bottom_mask*[0.,0.,1.]                  if self.bottom[2]: self.location_of_constraint+=bottom_mask*[0.,0.,1.]
258                  top_mask=whereZero(x2-sup(x2),self.tol)                  top_mask=whereZero(x2-sup(x2),self.tol)
259                  if self.top[0]: self._location_of_constraint+=top_mask*[1.,0.,0.]                  if self.top[0]: self.location_of_constraint+=top_mask*[1.,0.,0.]
260                  if self.top[1]: self._location_of_constraint+=top_mask*[0.,1.,0.]                  if self.top[1]: self.location_of_constraint+=top_mask*[0.,1.,0.]
261                  if self.top[2]: self._location_of_constraint+=top_mask*[0.,0.,1.]                  if self.top[2]: self.location_of_constraint+=top_mask*[0.,0.,1.]
262               else:               else:
263                  x0,x1=x[0],x[1]                  x0,x1=x[0],x[1]
264                  left_mask=whereZero(x0-inf(x0),self.tol)                  left_mask=whereZero(x0-inf(x0),self.tol)
265                  if self.left[0]: self._location_of_constraint+=left_mask*[1.,0.]                  if self.left[0]: self.location_of_constraint+=left_mask*[1.,0.]
266                  if self.left[1]: self._location_of_constraint+=left_mask*[0.,1.]                  if self.left[1]: self.location_of_constraint+=left_mask*[0.,1.]
267                  right_mask=whereZero(x0-sup(x0),self.tol)                  right_mask=whereZero(x0-sup(x0),self.tol)
268                  if self.right[0]: self._location_of_constraint+=right_mask*[1.,0.]                  if self.right[0]: self.location_of_constraint+=right_mask*[1.,0.]
269                  if self.right[1]: self._location_of_constraint+=right_mask*[0.,1.]                  if self.right[1]: self.location_of_constraint+=right_mask*[0.,1.]
270                  bottom_mask=whereZero(x1-inf(x1),self.tol)                  bottom_mask=whereZero(x1-inf(x1),self.tol)
271                  if self.bottom[0]: self._location_of_constraint+=bottom_mask*[1.,0.]                  if self.bottom[0]: self.location_of_constraint+=bottom_mask*[1.,0.]
272                  if self.bottom[1]: self._location_of_constraint+=bottom_mask*[0.,1.]                  if self.bottom[1]: self.location_of_constraint+=bottom_mask*[0.,1.]
273                  top_mask=whereZero(x1-sup(x1),self.tol)                  top_mask=whereZero(x1-sup(x1),self.tol)
274                  if self.top[0]: self._location_of_constraint+=top_mask*[1.,0.]                  if self.top[0]: self.location_of_constraint+=top_mask*[1.,0.]
275                  if self.top[1]: self._location_of_constraint+=top_mask*[0.,1.]                  if self.top[1]: self.location_of_constraint+=top_mask*[0.,1.]
276            self.constraint_value=self.location_constrained_value*self.value            self.value_of_constraint=self.location_of_constraint*self.value
277    
278  # vim: expandtab shiftwidth=4:  # vim: expandtab shiftwidth=4:

Legend:
Removed from v.819  
changed lines
  Added in v.820

  ViewVC Help
Powered by ViewVC 1.1.26