/[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 398 by gross, Wed Dec 21 07:52:54 2005 UTC revision 406 by gross, Fri Dec 23 00:39:59 2005 UTC
# Line 14  class FinleyReader(ParameterSet): Line 14  class FinleyReader(ParameterSet):
14         @ivar domain:         @ivar domain:
15         """         """
16         def __init__(self,debug=False):         def __init__(self,debug=False):
17             Model.__init__(self,debug=debug)             super(FinleyReader,self).__init__(debug=debug)
18               ParameterSet.__init__(self,debug=debug)
19             self.declareParameter(source="none",\             self.declareParameter(source="none",\
20                                   integrationOrder=-1)                                   integrationOrder=-1)
21             self._domain=None             self._domain=None
22    
23         def domain(self):         def domain(self):
24            if self._domain==None:            if self._domain==None:
25                self._domain=finley.ReadMesh(self.source,integrationOrder)                self._domain=finley.ReadMesh(self.source,self.integrationOrder)
26                self.trace("mesh read from %s"%self.source)                          self.trace("mesh read from %s"%self.source)          
27            return self.domain            return self._domain
28                                                
29  class RectangularDomain(ParameterSet):  class RectangularDomain(ParameterSet):
30         """         """
# Line 38  class RectangularDomain(ParameterSet): Line 39  class RectangularDomain(ParameterSet):
39         @ivar domain:         @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 73  class RectangularDomain(ParameterSet): Line 74  class RectangularDomain(ParameterSet):
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.398  
changed lines
  Added in v.406

  ViewVC Help
Powered by ViewVC 1.1.26