/[escript]/trunk/finley/test/python/run_utilOnFinley.py
ViewVC logotype

Diff of /trunk/finley/test/python/run_utilOnFinley.py

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

trunk/finley/test/python/test_utilOnFinley.py revision 595 by gross, Tue Mar 14 23:52:45 2006 UTC trunk/finley/test/python/run_utilOnFinley.py revision 2748 by gross, Tue Nov 17 07:32:59 2009 UTC
# Line 1  Line 1 
1  # $Id$  
2    ########################################################
3    #
4    # Copyright (c) 2003-2009 by University of Queensland
5    # Earth Systems Science Computational Center (ESSCC)
6    # http://www.uq.edu.au/esscc
7    #
8    # Primary Business: Queensland, Australia
9    # Licensed under the Open Software License version 3.0
10    # http://www.opensource.org/licenses/osl-3.0.php
11    #
12    ########################################################
13    
14    __copyright__="""Copyright (c) 2003-2009 by University of Queensland
15    Earth Systems Science Computational Center (ESSCC)
16    http://www.uq.edu.au/esscc
17    Primary Business: Queensland, Australia"""
18    __license__="""Licensed under the Open Software License version 3.0
19    http://www.opensource.org/licenses/osl-3.0.php"""
20    __url__="https://launchpad.net/escript-finley"
21    
22  import unittest  import unittest
23  from esys.escript.test_util import Test_util_no_tagged_data as Test_util  from test_util import Test_util as Test_util
24  # from esys.escript.test_util import Test_util_with_tagged_data as Test_util  from test_util import Test_Util_SpatialFunctions, Test_Util_SpatialFunctions_noGradOnBoundary, Test_Util_SpatialFunctions_noGradOnBoundary_noContact
25  # from esys.escript.test_util import Test_util as Test_util  from test_symbols import Test_symbols
 from esys.escript.test_util import Test_Util_SpatialFunctions  
 from esys.escript.test_symbols import Test_symbols  
26    
27  from esys.escript import FunctionOnBoundary  from esys.escript import *
28  from esys.finley import Rectangle,Brick,JoinFaces  from esys.finley import Rectangle,Brick,JoinFaces,ReadMesh
29  import sys  import sys
30    import os
31    
32    try:
33         FINLEY_TEST_DATA=os.environ['FINLEY_TEST_DATA']
34    except KeyError:
35         FINLEY_TEST_DATA='.'
36    
37    FINLEY_TEST_MESH_PATH=os.path.join(FINLEY_TEST_DATA,"data_meshes")
38    
39    
40    NE=4 # number elements, must be even
41    
42  class Test_UtilOnFinley(Test_util,Test_symbols):  class Test_UtilOnFinley(Test_util,Test_symbols):
43     def setUp(self):     def setUp(self):
44         self.domain =Rectangle(10,10,2)         self.domain =Rectangle(NE,NE+1,2)
45         self.functionspace = FunctionOnBoundary(self.domain) # due to a bug in escript python needs to hold a reference to the domain         self.functionspace = FunctionOnBoundary(self.domain) # due to a bug in escript python needs to hold a reference to the domain
46       def tearDown(self):
47           del self.functionspace
48           del self.domain
49    
50    class Test_Util_SpatialFunctionsOnFinleyTet2DOrder1(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
51        def setUp(self):
52            self.order=1
53            self.domain = ReadMesh(os.path.join(FINLEY_TEST_MESH_PATH,"tet_2D_order1.fly"),optimize=False)
54        def tearDown(self):
55            del self.order
56            del self.domain
57    
58    class Test_Util_SpatialFunctionsOnFinleyTet2DOrder2(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
59        def setUp(self):
60            self.order=2
61            self.domain = ReadMesh(os.path.join(FINLEY_TEST_MESH_PATH,"tet_2D_order2.fly"),optimize=False)
62        def tearDown(self):
63            del self.order
64            del self.domain
65    
66  class Test_Util_SpatialFunctionsOnFinley2DOrder1(Test_Util_SpatialFunctions):  class Test_Util_SpatialFunctionsOnFinleyTet2DMacro(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
67      def setUp(self):      def setUp(self):
68          self.order=1          self.order=1
69          d1 = Rectangle(n0=6,n1=12,l0=0.5,order=1,useElementsOnFace=True)          self.domain = ReadMesh(os.path.join(FINLEY_TEST_MESH_PATH,"tet_2D_macro.fly"),optimize=False)
70          d2 = Rectangle(n0=6,n1=12,l0=0.5,order=1,useElementsOnFace=True)      def tearDown(self):
71            del self.order
72            del self.domain
73    
74    class Test_Util_SpatialFunctionsOnFinleyTet3DOrder1(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
75        def setUp(self):
76            self.order=1
77            self.domain = ReadMesh(os.path.join(FINLEY_TEST_MESH_PATH,"tet_3D_order1.fly"),optimize=False)
78        def tearDown(self):
79            del self.order
80            del self.domain
81    
82    class Test_Util_SpatialFunctionsOnFinleyTet3DOrder2(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
83        def setUp(self):
84            self.order=2
85            self.domain = ReadMesh(os.path.join(FINLEY_TEST_MESH_PATH,"tet_3D_order2.fly"),optimize=False)
86        def tearDown(self):
87            del self.order
88            del self.domain
89    
90    class Test_Util_SpatialFunctionsOnFinleyTet3DMacro(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
91        def setUp(self):
92            self.order=1
93            self.domain = ReadMesh(os.path.join(FINLEY_TEST_MESH_PATH,"tet_3D_macro.fly"),optimize=False)
94        def tearDown(self):
95            del self.order
96            del self.domain
97    
98    class Test_Util_SpatialFunctionsOnFinleyHex2DOrder1(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
99        def setUp(self):
100            self.order=1
101            self.domain = Rectangle(n0=NE,n1=NE,order=1)
102        def tearDown(self):
103            del self.order
104            del self.domain
105    
106    class Test_Util_SpatialFunctionsOnFinleyHex2DOrder2(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
107        def setUp(self):
108            self.order=2
109            self.domain = Rectangle(n0=NE,n1=NE,order=2)
110        def tearDown(self):
111            del self.order
112            del self.domain
113    
114    class Test_Util_SpatialFunctionsOnFinleyHex2DMacro(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
115        def setUp(self):
116            self.order=1
117            self.domain = Rectangle(n0=NE,n1=NE,order=-1)
118        def tearDown(self):
119            del self.order
120            del self.domain
121    
122    class Test_Util_SpatialFunctionsOnFinleyHex3DOrder1(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
123        def setUp(self):
124            self.order=1
125            self.domain = Brick(n0=NE,n1=NE,n2=NE,order=1)
126        def tearDown(self):
127            del self.order
128            del self.domain
129    
130    class Test_Util_SpatialFunctionsOnFinleyHex3DOrder2(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
131        def setUp(self):
132            self.order=2
133            self.domain = Brick(n0=NE,n1=NE,n2=NE,order=2)
134        def tearDown(self):
135            del self.order
136            del self.domain
137    
138    class Test_Util_SpatialFunctionsOnFinleyHex3DMacro(Test_Util_SpatialFunctions_noGradOnBoundary_noContact):
139        def setUp(self):
140            self.order=1
141            self.domain = Brick(n0=NE,n1=NE,n2=NE,order=-1)
142        def tearDown(self):
143            del self.order
144            del self.domain
145    
146    class Test_Util_SpatialFunctionsOnFinleyHex2DOrder1withContact(Test_Util_SpatialFunctions_noGradOnBoundary):
147        def setUp(self):
148            self.order=1
149            d1 = Rectangle(n0=NE/2+1,n1=NE,l0=0.5,order=1)
150            d2 = Rectangle(n0=NE/2,n1=NE,l0=0.5,order=1)
151            d2.setX(d2.getX()+[0.5,0.])
152            self.domain = JoinFaces([d1,d2],optimize=False)
153        def tearDown(self):
154            del self.order
155            del self.domain
156    
157    class Test_Util_SpatialFunctionsOnFinleyHex2DOrder2withContact(Test_Util_SpatialFunctions_noGradOnBoundary):
158        def setUp(self):
159            self.order=2
160            d1 = Rectangle(n0=NE/2,n1=NE,l0=0.5,order=2)
161            d2 = Rectangle(n0=NE/2,n1=NE,l0=0.5,order=2)
162          d2.setX(d2.getX()+[0.5,0.])          d2.setX(d2.getX()+[0.5,0.])
163          self.domain = JoinFaces([d1,d2])          self.domain = JoinFaces([d1,d2],optimize=False)
164        def tearDown(self):
165            del self.order
166            del self.domain
167    
168  class Test_Util_SpatialFunctionsOnFinley2DOrder2(Test_Util_SpatialFunctions):  class Test_Util_SpatialFunctionsOnFinleyHex3DOrder1withContact(Test_Util_SpatialFunctions_noGradOnBoundary):
169        def setUp(self):
170            self.order=1
171            d1 = Brick(n0=NE/2+1,n1=NE,n2=NE,l0=0.5,order=1)
172            d2 = Brick(n0=NE/2,n1=NE,n2=NE,l0=0.5,order=1)
173            d2.setX(d2.getX()+[0.5,0.,0.])
174            self.domain = JoinFaces([d1,d2],optimize=False)
175        def tearDown(self):
176            del self.order
177            del self.domain
178    
179    class Test_Util_SpatialFunctionsOnFinleyHex3DOrder2withContact(Test_Util_SpatialFunctions_noGradOnBoundary):
180      def setUp(self):      def setUp(self):
181          self.order=2          self.order=2
182          d1 = Rectangle(n0=3,n1=6,l0=0.5,order=2,useElementsOnFace=True)          d1 = Brick(n0=NE/2+1,n1=NE,n2=NE,l0=0.5,order=2)
183          d2 = Rectangle(n0=3,n1=6,l0=0.5,order=2,useElementsOnFace=True)          d2 = Brick(n0=NE/2,n1=NE,n2=NE,l0=0.5,order=2)
184            d2.setX(d2.getX()+[0.5,0.,0.])
185            self.domain = JoinFaces([d1,d2],optimize=False)
186        def tearDown(self):
187            del self.order
188            del self.domain
189    
190    class Test_Util_SpatialFunctionsOnFinleyHex2DOrder1useElementsOnFacewithContact(Test_Util_SpatialFunctions):
191        def setUp(self):
192            self.order=1
193            d1 = Rectangle(n0=NE/2+1,n1=NE,l0=0.5,order=1,useElementsOnFace=True)
194            d2 = Rectangle(n0=NE/2,n1=NE,l0=0.5,order=1,useElementsOnFace=True)
195          d2.setX(d2.getX()+[0.5,0.])          d2.setX(d2.getX()+[0.5,0.])
196          self.domain = JoinFaces([d1,d2])          self.domain = JoinFaces([d1,d2],optimize=False)
197        def tearDown(self):
198            del self.order
199            del self.domain
200    
201  class Test_Util_SpatialFunctionsOnFinley3DOrder1(Test_Util_SpatialFunctions):  class Test_Util_SpatialFunctionsOnFinleyHex2DOrder2useElementsOnFacewithContact(Test_Util_SpatialFunctions):
202        def setUp(self):
203            self.order=2
204            d1 = Rectangle(n0=NE/2+1,n1=NE,l0=0.5,order=2,useElementsOnFace=True)
205            d2 = Rectangle(n0=NE/2,n1=NE,l0=0.5,order=2,useElementsOnFace=True)
206            d2.setX(d2.getX()+[0.5,0.])
207            self.domain = JoinFaces([d1,d2],optimize=False)
208        def tearDown(self):
209            del self.order
210            del self.domain
211    
212    class Test_Util_SpatialFunctionsOnFinleyHex3DOrder1useElementsOnFacewithContact(Test_Util_SpatialFunctions):
213      def setUp(self):      def setUp(self):
214          self.order=1          self.order=1
215          d1 = Brick(n0=6,n1=12,n2=12,l0=0.5,order=1,useElementsOnFace=True)          d1 = Brick(n0=NE/2,n1=NE,n2=NE,l0=0.5,order=1,useElementsOnFace=True)
216          d2 = Brick(n0=6,n1=12,n2=12,l0=0.5,order=1,useElementsOnFace=True)          d2 = Brick(n0=NE/2+1,n1=NE,n2=NE,l0=0.5,order=1,useElementsOnFace=True)
217          d2.setX(d2.getX()+[0.5,0.,0.])          d2.setX(d2.getX()+[0.5,0.,0.])
218          self.domain = JoinFaces([d1,d2])          self.domain = JoinFaces([d1,d2],optimize=False)
219        def tearDown(self):
220            del self.order
221            del self.domain
222    
223  class Test_Util_SpatialFunctionsOnFinley3DOrder2(Test_Util_SpatialFunctions):  class Test_Util_SpatialFunctionsOnFinleyHex3DOrder2useElementsOnFacewithContact(Test_Util_SpatialFunctions):
224      def setUp(self):      def setUp(self):
225          self.order=2          self.order=2
226          d1 = Brick(n0=3,n1=6,n2=6,l0=0.5,order=2,useElementsOnFace=True)          d1 = Brick(n0=NE/2,n1=NE,n2=NE,l0=0.5,order=2,useElementsOnFace=True)
227          d2 = Brick(n0=3,n1=6,n2=6,l0=0.5,order=2,useElementsOnFace=True)          d2 = Brick(n0=NE/2+1,n1=NE,n2=NE,l0=0.5,order=2,useElementsOnFace=True)
228          d2.setX(d2.getX()+[0.5,0.,0.])          d2.setX(d2.getX()+[0.5,0.,0.])
229          self.domain = JoinFaces([d1,d2])          self.domain = JoinFaces([d1,d2],optimize=False)
230        def tearDown(self):
231            del self.order
232            del self.domain
233    
234  if __name__ == '__main__':  if __name__ == '__main__':
235     suite = unittest.TestSuite()     suite = unittest.TestSuite()
236     suite.addTest(unittest.makeSuite(Test_UtilOnFinley))     if True:
237     suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinley2DOrder1))        suite.addTest(unittest.makeSuite(Test_UtilOnFinley))
238     suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinley2DOrder2))        suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyTet2DOrder1))
239     suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinley3DOrder1))        suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyTet2DOrder2))
240     suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinley3DOrder2))        suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyTet2DMacro))
241     s=unittest.TextTestRunner(verbosity=2).run(suite)        suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyTet3DOrder1))
242     if s.wasSuccessful():        suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyTet3DOrder2))
243       sys.exit(0)        suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyTet3DMacro))
244          suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex2DOrder1))
245          suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex2DOrder2))
246          suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex2DMacro))
247          suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex3DOrder1))
248          suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex3DOrder2))
249          suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex3DMacro))
250          # These tests use JoinFaces and are not MPI parallel
251          if getMPISizeWorld() == 1:
252            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex2DOrder1withContact))
253            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex2DOrder2withContact))
254            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex3DOrder1withContact))
255            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex3DOrder2withContact))
256            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex2DOrder1useElementsOnFacewithContact))
257            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex2DOrder2useElementsOnFacewithContact))
258            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex3DOrder1useElementsOnFacewithContact))
259            suite.addTest(unittest.makeSuite(Test_Util_SpatialFunctionsOnFinleyHex3DOrder2useElementsOnFacewithContact))
260     else:     else:
261       sys.exit(1)        pass
262         s=unittest.TextTestRunner(verbosity=2).run(suite)
263       if not s.wasSuccessful(): sys.exit(1)
264    

Legend:
Removed from v.595  
changed lines
  Added in v.2748

  ViewVC Help
Powered by ViewVC 1.1.26