/[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 2881 by jfenwick, Thu Jan 28 02:03:15 2010 UTC revision 3259 by jfenwick, Mon Oct 11 01:48:14 2010 UTC
# Line 21  __url__="https://launchpad.net/escript-f Line 21  __url__="https://launchpad.net/escript-f
21    
22  from esys.escript import *  from esys.escript import *
23  from esys.escript.modelframe import Model,ParameterSet  from esys.escript.modelframe import Model,ParameterSet
24  from esys import finley  import esys.finley
25    
26  class FinleyReader(ParameterSet):  class DomainReader(ParameterSet):
27    #class DudleyReader(ParameterSet):
28         """         """
        reads finley mesh file.  
   
        :ivar source: mesh file in finley or gmsh format  
        :type source: ``DataSource``  
        :ivar intergrationOrder: integration order, default -1 (in).  
        :type intergrationOrder: ``int``  
        :ivar reducedIntegrationOrder: reduced integration order, default -1 (in).  
        :type reducedIntegrationOrder: ``int``  
        :ivar optimizeLabeling: switches on optimization of the labeling of the nodes  
        :type optimizeLabeling: ``bool``  
29         """         """
30         def __init__(self,**kwargs):         def __init__(self,domainmodule=None, **kwargs):
31            """            """
32            initializes the object            initializes the object
33            """            """
34            super(FinleyReader,self).__init__(**kwargs)            super(DudleyReader,self).__init__(**kwargs)
35            self.declareParameter(source="none",            self.declareParameter(source="none",
36                                  dim=None,                                  dim=None,
37                                  optimizeLabeling=True,                                  optimizeLabeling=True,
38                                  reducedIntegrationOrder=-1,                                  reducedIntegrationOrder=-1,
39                                  integrationOrder=-1)                                  integrationOrder=-1)
40          if domainmodule==None:
41            domainmodule=esys.finley
42          self.__domainModule=domainmodule
43            self.__domain=None            self.__domain=None
44    
45    
# Line 58  class FinleyReader(ParameterSet): Line 52  class FinleyReader(ParameterSet):
52            """            """
53            if self.__domain == None:            if self.__domain == None:
54               if  self.source.fileformat == "fly":               if  self.source.fileformat == "fly":
55                  self.__domain=finley.ReadMesh(self.source.getLocalFileName(),self.integrationOrder)                  self.__domain=self.__domainmodule.ReadMesh(self.source.getLocalFileName(),self.integrationOrder)
56               elif self.source.fileformat == "gmsh":               elif self.source.fileformat == "gmsh":
57                  if self.dim==None:                  if self.dim==None:
58                     dim=3                     dim=3
59                  else:                  else:
60                     dim=self.dim                     dim=self.dim
61                  self.__domain=finley.ReadGmsh(self.source.getLocalFileName(),dim,self.integrationOrder,self.reducedIntegrationOrder, self.optimizeLabeling)                  self.__domain=self.__domainmodule.ReadGmsh(self.source.getLocalFileName(),dim,self.integrationOrder,self.reducedIntegrationOrder, self.optimizeLabeling)
62               else:               else:
63                  raise TypeError("unknown mesh file format %s."%self.source.fileformat)                  raise TypeError("unknown mesh file format %s."%self.source.fileformat)
64               self.trace("mesh read from %s in %s format."%(self.source.getLocalFileName(), self.source.fileformat))                         self.trace("mesh read from %s in %s format."%(self.source.getLocalFileName(), self.source.fileformat))          
65            return self.__domain            return self.__domain
66            
67    class FinleyReader(DomainReader):
68        def __init__(self, **kw):
69            super().__init__(esys.finley, kw)
70            
71  class RectangularDomain(ParameterSet):  class RectangularDomain(ParameterSet):
72         """         """
73         Generates a mesh over a rectangular domain finley.         Generates a mesh over a rectangular domain.
74    
75         :ivar dim: spatial dimension, default =2 (in).         :ivar dim: spatial dimension, default =2 (in).
76         :type dim: spatial dimension         :type dim: spatial dimension
# Line 86  class RectangularDomain(ParameterSet): Line 85  class RectangularDomain(ParameterSet):
85         :ivar intergrationOrder: integration order, default -1 (in).         :ivar intergrationOrder: integration order, default -1 (in).
86         :type intergrationOrder: ``int``         :type intergrationOrder: ``int``
87         """         """
88         def __init__(self,**kwargs):         def __init__(self,domainmodule=None,**kwargs):
89             """             """
90             initializes the object             initializes the object
91             """             """
# Line 98  class RectangularDomain(ParameterSet): Line 97  class RectangularDomain(ParameterSet):
97                                   periodic=[False,False,False],                                   periodic=[False,False,False],
98                                   integrationOrder=-1)                                   integrationOrder=-1)
99             self.__domain=None             self.__domain=None
100           self.__domainModule=domainmodule
101           if self.__domainModule==None:
102            self.__domainModule=esys.finley
103    
104         def domain(self):         def domain(self):
105             """             """
# Line 108  class RectangularDomain(ParameterSet): Line 110  class RectangularDomain(ParameterSet):
110             """             """
111             if self.__domain==None:             if self.__domain==None:
112                if self.dim==2:                if self.dim==2:
113                     self.__domain=finley.Rectangle(n0=self.n[0],\                     self.__domain=self.__domainModule.Rectangle(n0=self.n[0],\
114                                                  n1=self.n[2],\                                                  n1=self.n[2],\
115                                                  l0=self.l[0],\                                                  l0=self.l[0],\
116                                                  l1=self.l[2],\                                                  l1=self.l[2],\
# Line 117  class RectangularDomain(ParameterSet): Line 119  class RectangularDomain(ParameterSet):
119                                                  periodic1=self.periodic[2], \                                                  periodic1=self.periodic[2], \
120                                                  integrationOrder=self.integrationOrder)                                                  integrationOrder=self.integrationOrder)
121                else:                else:
122                     self.__domain=finley.Brick(n0=self.n[0],\                     self.__domain=self__domainModule.Brick(n0=self.n[0],\
123                                              n1=self.n[1],\                                              n1=self.n[1],\
124                                              n2=self.n[2],\                                              n2=self.n[2],\
125                                              l0=self.l[0],\                                              l0=self.l[0],\

Legend:
Removed from v.2881  
changed lines
  Added in v.3259

  ViewVC Help
Powered by ViewVC 1.1.26