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

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

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

revision 952 by gross, Tue Jan 30 08:57:37 2007 UTC revision 953 by gross, Fri Feb 9 08:55:28 2007 UTC
# Line 202  class InterpolatedTimeProfile(ParameterS Line 202  class InterpolatedTimeProfile(ParameterS
202    
203  class ScalarDistributionFromTags(ParameterSet):  class ScalarDistributionFromTags(ParameterSet):
204      """      """
205      creates a scalar distribution on a domain from tags      creates a scalar distribution on a domain from tags, If tag_map is given
206        the tags can be given a names and tag_map is used to map it into domain tags.
207                            
208      @ivar domain: domain      @ivar domain: domain
209      @type domain: L{esys.escript.Domain}      @type domain: L{esys.escript.Domain}
210        @ivar tag_map: maping from names to tags
211        @type tag_map: L{esys.pycad.TagMap}
212      @ivar default: default value      @ivar default: default value
213      @ivar tag0: tag 0      @ivar tag0: tag 0
214      @type tag0: C{int}      @type tag0: C{int}
# Line 251  class ScalarDistributionFromTags(Paramet Line 254  class ScalarDistributionFromTags(Paramet
254      def __init__(self,**kwargs):      def __init__(self,**kwargs):
255          super(ScalarDistributionFromTags, self).__init__(**kwargs)          super(ScalarDistributionFromTags, self).__init__(**kwargs)
256          self.declareParameter(domain=None,          self.declareParameter(domain=None,
257                                  tag_map=None,
258                                default=0.,                                default=0.,
259                                tag0=None,                                tag0=None,
260                                value0=0.,                                value0=0.,
# Line 280  class ScalarDistributionFromTags(Paramet Line 284  class ScalarDistributionFromTags(Paramet
284          Link against this method to get the output of this model.          Link against this method to get the output of this model.
285          """          """
286          d=Scalar(self.default,Function(self.domain))          d=Scalar(self.default,Function(self.domain))
287          if not self.tag0 == None: d.setTaggedValue(self.tag0,self.value0)          if self.tag_map == None:
288          if not self.tag1 == None: d.setTaggedValue(self.tag1,self.value1)              if not self.tag0 == None: d.setTaggedValue(self.tag0,self.value0)
289          if not self.tag2 == None: d.setTaggedValue(self.tag2,self.value2)              if not self.tag1 == None: d.setTaggedValue(self.tag1,self.value1)
290          if not self.tag3 == None: d.setTaggedValue(self.tag3,self.value3)              if not self.tag2 == None: d.setTaggedValue(self.tag2,self.value2)
291          if not self.tag4 == None: d.setTaggedValue(self.tag4,self.value4)              if not self.tag3 == None: d.setTaggedValue(self.tag3,self.value3)
292          if not self.tag5 == None: d.setTaggedValue(self.tag5,self.value5)              if not self.tag4 == None: d.setTaggedValue(self.tag4,self.value4)
293          if not self.tag6 == None: d.setTaggedValue(self.tag6,self.value6)              if not self.tag5 == None: d.setTaggedValue(self.tag5,self.value5)
294          if not self.tag7 == None: d.setTaggedValue(self.tag7,self.value7)              if not self.tag6 == None: d.setTaggedValue(self.tag6,self.value6)
295          if not self.tag8 == None: d.setTaggedValue(self.tag8,self.value8)              if not self.tag7 == None: d.setTaggedValue(self.tag7,self.value7)
296          if not self.tag9 == None: d.setTaggedValue(self.tag9,self.value9)              if not self.tag8 == None: d.setTaggedValue(self.tag8,self.value8)
297          print d              if not self.tag9 == None: d.setTaggedValue(self.tag9,self.value9)
298            else:
299                args={}
300                if not self.tag0 == None: args[self.tag0]=self.value0
301                if not self.tag1 == None: args[self.tag1]=self.value1
302                if not self.tag2 == None: args[self.tag2]=self.value2
303                if not self.tag3 == None: args[self.tag3]=self.value3
304                if not self.tag4 == None: args[self.tag4]=self.value4
305                if not self.tag5 == None: args[self.tag5]=self.value5
306                if not self.tag6 == None: args[self.tag6]=self.value6
307                if not self.tag7 == None: args[self.tag7]=self.value7
308                if not self.tag8 == None: args[self.tag8]=self.value8
309                if not self.tag9 == None: args[self.tag9]=self.value9
310                self.tag_map.insert(d,**args)
311          return d          return d
312    
313  class SmoothScalarDistributionFromTags(ParameterSet):  class SmoothScalarDistributionFromTags(ParameterSet):
# Line 299  class SmoothScalarDistributionFromTags(P Line 316  class SmoothScalarDistributionFromTags(P
316                            
317      @ivar domain: domain      @ivar domain: domain
318      @type domain: L{esys.escript.Domain}      @type domain: L{esys.escript.Domain}
319        @ivar tag_map: maping from names to tags
320        @type tag_map: L{esys.pycad.TagMap}
321      @ivar default: default value      @ivar default: default value
322      @ivar tag0: tag 0      @ivar tag0: tag 0
323      @type tag0: C{int}      @type tag0: C{int}
# Line 371  class SmoothScalarDistributionFromTags(P Line 390  class SmoothScalarDistributionFromTags(P
390          if self.__pde==None:          if self.__pde==None:
391             self.__pde=LinearPDE(self.domain,numSolutions=1)             self.__pde=LinearPDE(self.domain,numSolutions=1)
392          mask=Scalar(0.,Function(self.domain))          mask=Scalar(0.,Function(self.domain))
393          mask.setTaggedValue(tag,1.)          if self.tag_map == None:
394               mask.setTaggedValue(tag,1.)
395            else:
396               self.tag_map.insert(mask,**{tag:tag_value})
397          self.__pde.setValue(Y=mask)          self.__pde.setValue(Y=mask)
398          mask=wherePositive(abs(self.__pde.getRightHandSide()))          mask=wherePositive(abs(self.__pde.getRightHandSide()))
399          value*=(1.-mask)          value*=(1.-mask)

Legend:
Removed from v.952  
changed lines
  Added in v.953

  ViewVC Help
Powered by ViewVC 1.1.26