2
########################################################
4
# Copyright (c) 2003-2010 by University of Queensland
5
# Earth Systems Science Computational Center (ESSCC)
6
# http://www.uq.edu.au/esscc
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
12
########################################################
14
__copyright__="""Copyright (c) 2003-2010 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"
23
checks the mesh generators against the reference meshes in test_meshes and test the dudley integration schemes.
29
from esys.escript import *
30
from esys.dudley import Rectangle,Brick,JoinFaces, ReadGmsh, ReadMesh
33
DUDLEY_TEST_DATA=os.environ['DUDLEY_TEST_DATA']
38
DUDLEY_WORKDIR=os.environ['DUDLEY_WORKDIR']
42
DUDLEY_TEST_MESH_PATH=os.path.join(DUDLEY_TEST_DATA,"data_meshes")
44
# DUDLEY_TEST_MESH_PATH = os.path.join(DUDLEY_TEST_MESH_PATH,"win32")
45
DUDLEY_WORKDIR_PATH=DUDLEY_WORKDIR
48
class Test_Generators(unittest.TestCase):
50
def checker(self,dom,reference):
51
dom_file=os.path.join(DUDLEY_WORKDIR_PATH,TEST_FILE_PRE+reference)
53
# Uncomment this section to dump the files for regression testing
55
# dom.write(os.path.join(DUDLEY_TEST_MESH_PATH,reference))
56
dom_string=open(dom_file).read().splitlines()
57
ref_string=open(os.path.join(DUDLEY_TEST_MESH_PATH,reference)).read().splitlines()
58
self.failUnlessEqual(len(dom_string),len(ref_string),"number of lines in mesh files does not match reference")
59
for l in range(1,len(ref_string)):
60
line=dom_string[l].strip()
62
line=line.replace("e+00","e+0").replace("e-00","e-0")
63
self.failUnlessEqual(line,ref_string[l].strip(),"line %d (%s) in mesh files does not match reference (%s)"%(l,ref_string[l].strip(),line))
65
def test_hex_2D_order1(self):
66
file="hex_2D_order1.msh"
67
my_dom=Rectangle(1,1,1)
68
self.checker(my_dom,file)
70
def test_hex_2D_order1_onFace(self):
71
file="hex_2D_order1_onFace.msh"
72
my_dom=Rectangle(1,1,1,useElementsOnFace=1)
73
self.checker(my_dom,file)
75
def test_hex_2D_order2(self):
76
file="hex_2D_order2.msh"
77
my_dom=Rectangle(1,1,2)
78
self.checker(my_dom,file)
80
def test_hex_2D_order1_macro(self):
81
file="hex_2D_order1_macro.msh"
82
my_dom=Rectangle(1,1,-1)
83
self.checker(my_dom,file)
85
def test_hex_2D_order2_onFace(self):
86
file="hex_2D_order2_onFace.msh"
87
my_dom=Rectangle(1,1,2,useElementsOnFace=1)
88
self.checker(my_dom,file)
90
def test_hex_3D_order1(self):
91
file="hex_3D_order1.msh"
93
self.checker(my_dom,file)
95
def test_hex_3D_order1_onFace(self):
96
file="hex_3D_order1_onFace.msh"
97
my_dom=Brick(1,1,1,1,useElementsOnFace=1)
98
self.checker(my_dom,file)
100
def test_hex_3D_order2(self):
101
file="hex_3D_order2.msh"
102
my_dom=Brick(1,1,1,2)
103
self.checker(my_dom,file)
105
def test_hex_3D_order2(self):
106
file="hex_3D_order1_macro.msh"
107
my_dom=Brick(1,1,1,-1)
108
self.checker(my_dom,file)
110
def test_hex_3D_order2_onFace(self):
111
file="hex_3D_order2_onFace.msh"
112
my_dom=Brick(1,1,1,2,useElementsOnFace=1)
113
self.checker(my_dom,file)
115
def test_hex_contact_2D_order1(self):
116
file="hex_contact_2D_order1.msh"
117
ms1=Rectangle(1,1,1,l1=0.5,useElementsOnFace=False)
118
ms2=Rectangle(1,1,1,l1=0.5,useElementsOnFace=False)
119
ms2.setX(ms2.getX()+[0,0.5])
120
my_dom=JoinFaces([ms1,ms2],optimize=False)
121
self.checker(my_dom,file)
123
def test_hex_contact_2D_order1_onFace(self):
124
file="hex_contact_2D_order1_onFace.msh"
125
ms1=Rectangle(1,1,1,l1=0.5,useElementsOnFace=True)
126
ms2=Rectangle(1,1,1,l1=0.5,useElementsOnFace=True)
127
ms2.setX(ms2.getX()+[0,0.5])
128
my_dom=JoinFaces([ms1,ms2],optimize=False)
129
self.checker(my_dom,file)
131
def test_hex_contact_2D_order2(self):
132
file="hex_contact_2D_order2.msh"
133
ms1=Rectangle(1,1,2,l1=0.5,useElementsOnFace=False)
134
ms2=Rectangle(1,1,2,l1=0.5,useElementsOnFace=False)
135
ms2.setX(ms2.getX()+[0,0.5])
136
my_dom=JoinFaces([ms1,ms2],optimize=False)
137
self.checker(my_dom,file)
139
def test_hex_contact_2D_order2_onFace(self):
140
file="hex_contact_2D_order2_onFace.msh"
141
ms1=Rectangle(1,1,2,l1=0.5,useElementsOnFace=True)
142
ms2=Rectangle(1,1,2,l1=0.5,useElementsOnFace=True)
143
ms2.setX(ms2.getX()+[0,0.5])
144
my_dom=JoinFaces([ms1,ms2],optimize=False)
145
self.checker(my_dom,file)
147
def test_hex_contact_3D_order1(self):
148
file="hex_contact_3D_order1.msh"
149
ms1=Brick(1,1,1,1,l2=0.5,useElementsOnFace=False)
150
ms2=Brick(1,1,1,1,l2=0.5,useElementsOnFace=False)
151
ms2.setX(ms2.getX()+[0,0,0.5])
152
my_dom=JoinFaces([ms1,ms2],optimize=False)
153
self.checker(my_dom,file)
155
def test_hex_contact_3D_order1_onFace(self):
156
file="hex_contact_3D_order1_onFace.msh"
157
ms1=Brick(1,1,1,1,l2=0.5,useElementsOnFace=True)
158
ms2=Brick(1,1,1,1,l2=0.5,useElementsOnFace=True)
159
ms2.setX(ms2.getX()+[0,0,0.5])
160
my_dom=JoinFaces([ms1,ms2],optimize=False)
161
self.checker(my_dom,file)
163
def test_hex_contact_3D_order2(self):
164
file="hex_contact_3D_order2.msh"
165
ms1=Brick(1,1,1,2,l2=0.5,useElementsOnFace=False)
166
ms2=Brick(1,1,1,2,l2=0.5,useElementsOnFace=False)
167
ms2.setX(ms2.getX()+[0,0,0.5])
168
my_dom=JoinFaces([ms1,ms2],optimize=False)
169
self.checker(my_dom,file)
171
def test_hex_contact_3D_order2_onFace(self):
172
file="hex_contact_3D_order2_onFace.msh"
173
ms1=Brick(1,1,1,2,l2=0.5,useElementsOnFace=True)
174
ms2=Brick(1,1,1,2,l2=0.5,useElementsOnFace=True)
175
ms2.setX(ms2.getX()+[0,0,0.5])
176
my_dom=JoinFaces([ms1,ms2],optimize=False)
177
self.checker(my_dom,file)
179
class Test_GMSHReader(unittest.TestCase):
180
def compare(self, test_file, reference_file):
181
dom_string=open(test_file).read().splitlines()
182
ref_string=open(reference_file).read().splitlines()
183
self.failUnlessEqual(len(dom_string),len(ref_string),"number of lines in mesh files does not match reference")
184
for l in range(1,len(ref_string)):
185
line=dom_string[l].strip()
187
line=line.replace("e+00","e+0").replace("e-00","e-0")
188
self.failUnlessEqual(line,ref_string[l].strip(),"line %d (%s) in mesh files does not match reference (%s)"%(l,ref_string[l].strip(),line))
193
test = os.path.join(DUDLEY_WORKDIR,"tri3_test.fly")
194
dom = ReadGmsh(os.path.join(DUDLEY_TEST_MESH_PATH,file),2,optimize=False)
196
self.compare(test, os.path.join(DUDLEY_TEST_MESH_PATH,ref))
201
test = os.path.join(DUDLEY_WORKDIR,"tri6_test.fly")
202
dom = ReadGmsh(os.path.join(DUDLEY_TEST_MESH_PATH,file),2,optimize=False)
204
self.compare(test, os.path.join(DUDLEY_TEST_MESH_PATH,ref))
206
def test_Tri6_macro(self):
209
test = os.path.join(DUDLEY_WORKDIR,"tri6_macro_test.fly")
210
dom = ReadGmsh(os.path.join(DUDLEY_TEST_MESH_PATH,file),2,useMacroElements=True,optimize=False)
212
self.compare(test, os.path.join(DUDLEY_TEST_MESH_PATH,ref))
217
test = os.path.join(DUDLEY_WORKDIR,"tet4_test.fly")
218
dom = ReadGmsh(os.path.join(DUDLEY_TEST_MESH_PATH,file),3,optimize=False)
220
self.compare(test, os.path.join(DUDLEY_TEST_MESH_PATH,ref))
222
def test_Tet10(self):
223
file="tet10_gmsh.msh"
225
test = os.path.join(DUDLEY_WORKDIR,"tet10_test.fly")
226
dom = ReadGmsh(os.path.join(DUDLEY_TEST_MESH_PATH,file),3,optimize=False)
228
self.compare(test, os.path.join(DUDLEY_TEST_MESH_PATH,ref))
230
def test_Tet10_macro(self):
231
file="tet10_gmsh.msh"
232
ref="tet10_macro.fly"
233
test = os.path.join(DUDLEY_WORKDIR,"tet10_macro_test.fly")
234
dom = ReadGmsh(os.path.join(DUDLEY_TEST_MESH_PATH,file),3,useMacroElements=True,optimize=False)
236
self.compare(test, os.path.join(DUDLEY_TEST_MESH_PATH,ref))
238
class Test_Reader(unittest.TestCase):
239
def test_ReadWriteTagNames(self):
240
file="hex_2D_order2.msh"
241
test = os.path.join(DUDLEY_WORKDIR,"test.fly")
242
dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,file),3,optimize=False)
243
insertTagNames(dom,A=1,B=2)
245
dom2 = ReadMesh(test,3,optimize=False)
247
self.failUnless(len(t)==6)
248
self.failUnless("A" in t)
249
self.failUnless("B" in t)
250
self.failUnless(dom2.getTag("A") == 1)
251
self.failUnless(dom2.getTag("B") == 2)
252
self.failUnless(dom2.isValidTagName("A"))
253
self.failUnless(dom2.isValidTagName("B"))
255
class Test_Integration(unittest.TestCase):
257
def __test_2DQ(self,dom,order):
258
x=Function(dom).getX()
259
x_bound=FunctionOnBoundary(dom).getX()
260
for i in xrange(order+1):
261
for j in xrange(order+1):
262
res=integrate(x[0]**i*x[1]**j)
264
error=abs(res-ref)/abs(ref)
265
self.failUnless(error<=self.TOL,"integration for order (%s,%s) failed. True value = %s, calculated = %s"%(i,j,ref,res))
267
res=integrate(x_bound[0]**i*x_bound[1]**j)
277
error=abs(res-ref)/abs(ref)
278
self.failUnless(error<=self.TOL,"surface integration for order (%s,%s) failed. True value = %s, calculated = %s"%(i,j,ref,res))
280
def __test_2DT(self,dom,order,raise_tol=1.):
281
x=Function(dom).getX()
282
x_bound=FunctionOnBoundary(dom).getX()
283
for i in xrange(order+1):
284
for j in xrange(order+1):
286
res=integrate(x[0]**i*x[1]**j)
288
error=abs(res-ref)/abs(ref)
290
self.failUnless(error<=self.TOL*raise_tol,"integration for order (%s,%s) failed. True value = %s, calculated = %s"%(i,j,ref,res))
292
res=integrate(x_bound[0]**i*x_bound[1]**j)
302
error=abs(res-ref)/abs(ref)
303
self.failUnless(error<=self.TOL*raise_tol,"surface integration for order (%s,%s) failed. True value = %s, calculated = %s"%(i,j,ref,res))
306
def __test_3DQ(self,dom,order):
307
x=Function(dom).getX()
308
x_bound=FunctionOnBoundary(dom).getX()
309
for i in xrange(order+1):
310
for j in xrange(order+1):
311
for k in xrange(order+1):
312
res=integrate(x[0]**i*x[1]**j*x[2]**k)
313
ref=1./((i+1)*(j+1)*(k+1))
314
error=abs(res-ref)/abs(ref)
315
self.failUnless(error<=self.TOL,"integration for order (%s,%s,%s) failed. True value = %s, calculated = %s (error=%e)"%(i,j,k,ref,res, error))
317
res=integrate(x_bound[0]**i*x_bound[1]**j*x_bound[2]**k)
320
ref += 2./((j+1)*(k+1))
322
ref += 1./((j+1)*(k+1))
324
ref += 2./((i+1)*(k+1))
326
ref += 1./((i+1)*(k+1))
328
ref += 2./((i+1)*(j+1))
330
ref += 1./((i+1)*(j+1))
331
error=abs(res-ref)/abs(ref)
332
self.failUnless(error<=self.TOL,"surface integration for order (%s,%s,%s) failed. True value = %s, calculated = %s (error=%e)"%(i,j,k,ref,res, error))
334
def __test_3DT(self,dom,order,raise_tol=1.):
335
x=Function(dom).getX()
336
x_bound=FunctionOnBoundary(dom).getX()
337
for i in xrange(order+1):
338
for j in xrange(order+1):
339
for k in xrange(order+1):
341
res=integrate(x[0]**i*x[1]**j*x[2]**k)
342
ref=1./((i+1)*(j+1)*(k+1))
343
error=abs(res-ref)/abs(ref)
344
self.failUnless(error<=self.TOL*raise_tol,"integration for order (%s,%s,%s) failed. True value = %s, calculated = %s (error=%e)"%(i,j,k,ref,res,error))
346
res=integrate(x_bound[0]**i*x_bound[1]**j*x_bound[2]**k)
349
ref += 2./((j+1)*(k+1))
351
ref += 1./((j+1)*(k+1))
353
ref += 2./((i+1)*(k+1))
355
ref += 1./((i+1)*(k+1))
357
ref += 2./((i+1)*(j+1))
359
ref += 1./((i+1)*(j+1))
360
error=abs(res-ref)/abs(ref)
361
self.failUnless(error<=self.TOL*raise_tol,"surface integration for order (%s,%s,%s) failed. True value = %s, calculated = %s (error=%e)"%(i,j,k,ref,res,error))
363
#===================================================================================================
364
def test_hex2D_order1_integorder1(self):
366
my_dom=Rectangle(NE,NE,integrationOrder=1)
367
self.__test_2DQ(my_dom,1)
368
def test_hex2D_order1_integorder2(self):
370
my_dom=Rectangle(NE,NE,integrationOrder=2)
371
self.__test_2DQ(my_dom,2)
372
def test_hex2D_order1_integorder3(self):
374
my_dom=Rectangle(NE,NE,integrationOrder=3)
375
self.__test_2DQ(my_dom,3)
376
def test_hex2D_order1_integorder4(self):
378
my_dom=Rectangle(NE,NE,integrationOrder=4)
379
self.__test_2DQ(my_dom,4)
380
def test_hex2D_order1_integorder5(self):
382
my_dom=Rectangle(NE,NE,integrationOrder=5)
383
self.__test_2DQ(my_dom,5)
384
def test_hex2D_order1_integorder6(self):
386
my_dom=Rectangle(NE,NE,integrationOrder=6)
387
self.__test_2DQ(my_dom,6)
388
def test_hex2D_order1_integorder7(self):
390
my_dom=Rectangle(NE,NE,integrationOrder=7)
391
self.__test_2DQ(my_dom,7)
392
def test_hex2D_order1_integorder8(self):
394
my_dom=Rectangle(NE,NE,integrationOrder=8)
395
self.__test_2DQ(my_dom,8)
396
def test_hex2D_order1_integorder9(self):
398
my_dom=Rectangle(NE,NE,integrationOrder=9)
399
self.__test_2DQ(my_dom,9)
400
def test_hex2D_order1_integorder10(self):
402
my_dom=Rectangle(NE,NE,integrationOrder=10)
403
self.__test_2DQ(my_dom,10)
404
#===================================================================================================
405
def test_hex2D_order2_integorder1(self):
407
my_dom=Rectangle(NE,NE,order=2,integrationOrder=1)
408
self.__test_2DQ(my_dom,1)
409
def test_hex2D_order2_integorder2(self):
411
my_dom=Rectangle(NE,NE,order=2,integrationOrder=2)
412
self.__test_2DQ(my_dom,2)
413
def test_hex2D_order2_integorder3(self):
415
my_dom=Rectangle(NE,NE,order=2,integrationOrder=3)
416
self.__test_2DQ(my_dom,3)
417
def test_hex2D_order2_integorder4(self):
419
my_dom=Rectangle(NE,NE,order=2,integrationOrder=4)
420
self.__test_2DQ(my_dom,4)
421
def test_hex2D_order2_integorder5(self):
423
my_dom=Rectangle(NE,NE,order=2,integrationOrder=5)
424
self.__test_2DQ(my_dom,5)
425
def test_hex2D_order2_integorder6(self):
427
my_dom=Rectangle(NE,NE,order=2,integrationOrder=6)
428
self.__test_2DQ(my_dom,6)
429
def test_hex2D_order2_integorder7(self):
431
my_dom=Rectangle(NE,NE,order=2,integrationOrder=7)
432
self.__test_2DQ(my_dom,7)
433
def test_hex2D_order2_integorder8(self):
435
my_dom=Rectangle(NE,NE,order=2,integrationOrder=8)
436
self.__test_2DQ(my_dom,8)
437
def test_hex2D_order2_integorder9(self):
439
my_dom=Rectangle(NE,NE,order=2,integrationOrder=9)
440
self.__test_2DQ(my_dom,9)
441
def test_hex2D_order2_integorder10(self):
443
my_dom=Rectangle(NE,NE,order=2,integrationOrder=10)
444
self.__test_2DQ(my_dom,10)
445
#===================================================================================================
446
def test_hex2D_macro_integorder1(self):
448
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=1)
449
self.__test_2DQ(my_dom,1)
450
def test_hex2D_macro_integmacro(self):
452
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=2)
453
self.__test_2DQ(my_dom,2)
454
def test_hex2D_macro_integorder3(self):
456
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=3)
457
self.__test_2DQ(my_dom,3)
458
def test_hex2D_macro_integorder4(self):
460
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=4)
461
self.__test_2DQ(my_dom,4)
462
def test_hex2D_macro_integorder5(self):
464
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=5)
465
self.__test_2DQ(my_dom,5)
466
def test_hex2D_macro_integorder6(self):
468
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=6)
469
self.__test_2DQ(my_dom,6)
470
def test_hex2D_macro_integorder7(self):
472
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=7)
473
self.__test_2DQ(my_dom,7)
474
def test_hex2D_macro_integorder8(self):
476
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=8)
477
self.__test_2DQ(my_dom,8)
478
def test_hex2D_macro_integorder9(self):
480
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=9)
481
self.__test_2DQ(my_dom,9)
482
def test_hex2D_macro_integorder10(self):
484
my_dom=Rectangle(NE,NE,order=-1,integrationOrder=10)
485
self.__test_2DQ(my_dom,10)
486
#===================================================================================================
487
def test_Tet2D_order1_integorder1(self):
488
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=1)
489
self.__test_2DT(my_dom,1)
490
def test_Tet2D_order1_integorder2(self):
491
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=2)
492
self.__test_2DT(my_dom,2)
493
def test_Tet2D_order1_integorder3(self):
494
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=3)
495
self.__test_2DT(my_dom,3)
496
def test_Tet2D_order1_integorder4(self):
497
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=4)
498
self.__test_2DT(my_dom,4)
499
def test_Tet2D_order1_integorder5(self):
500
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=5)
501
self.__test_2DT(my_dom,5)
502
def test_Tet2D_order1_integorder6(self):
503
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=6)
504
self.__test_2DT(my_dom,6)
505
def test_Tet2D_order1_integorder7(self):
506
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=7)
507
self.__test_2DT(my_dom,7)
508
def test_Tet2D_order1_integorder8(self):
509
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=8)
510
self.__test_2DT(my_dom,8,1./sqrt(EPSILON))
511
def test_Tet2D_order1_integorder9(self):
512
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=9)
513
self.__test_2DT(my_dom,9,1./sqrt(EPSILON))
514
def test_Tet2D_order1_integorder10(self):
515
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri3.fly"),optimize=False,integrationOrder=10)
516
self.__test_2DT(my_dom,10)
517
#===================================================================================================
518
def test_Tet2D_order2_integorder2(self):
519
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=1)
520
self.__test_2DT(my_dom,1)
521
def test_Tet2D_order2_integorder2(self):
522
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=2)
523
self.__test_2DT(my_dom,2)
524
def test_Tet2D_order2_integorder3(self):
525
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=3)
526
self.__test_2DT(my_dom,3)
527
def test_Tet2D_order2_integorder4(self):
528
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=4)
529
self.__test_2DT(my_dom,4)
530
def test_Tet2D_order2_integorder5(self):
531
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=5)
532
self.__test_2DT(my_dom,5)
533
def test_Tet2D_order2_integorder6(self):
534
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=6)
535
self.__test_2DT(my_dom,6)
536
def test_Tet2D_order2_integorder7(self):
537
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=7)
538
self.__test_2DT(my_dom,7)
539
def test_Tet2D_order2_integorder8(self):
540
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=8)
541
self.__test_2DT(my_dom,8,1./sqrt(EPSILON))
542
def test_Tet2D_order2_integorder9(self):
543
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=9)
544
self.__test_2DT(my_dom,9,1./sqrt(EPSILON))
545
def test_Tet2D_order2_integorder10(self):
546
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6.fly"),optimize=False,integrationOrder=10)
547
self.__test_2DT(my_dom,10)
548
#===================================================================================================
549
def test_Tet2D_macro_integmacro(self):
550
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=1)
551
self.__test_2DT(my_dom,1)
552
def test_Tet2D_macro_integmacro(self):
553
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=2)
554
self.__test_2DT(my_dom,2)
555
def test_Tet2D_macro_integorder3(self):
556
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=3)
557
self.__test_2DT(my_dom,3)
558
def test_Tet2D_macro_integorder4(self):
559
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=4)
560
self.__test_2DT(my_dom,4)
561
def test_Tet2D_macro_integorder5(self):
562
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=5)
563
self.__test_2DT(my_dom,5)
564
def test_Tet2D_macro_integorder6(self):
565
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=6)
566
self.__test_2DT(my_dom,6)
567
def test_Tet2D_macro_integorder7(self):
568
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=7)
569
self.__test_2DT(my_dom,7)
570
def test_Tet2D_macro_integorder8(self):
571
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=8)
572
self.__test_2DT(my_dom,8,1./sqrt(EPSILON))
573
def test_Tet2D_macro_integorder9(self):
574
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=9)
575
self.__test_2DT(my_dom,9,1./sqrt(EPSILON))
576
def test_Tet2D_macro_integorder10(self):
577
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tri6_macro.fly"),optimize=False,integrationOrder=10)
578
self.__test_2DT(my_dom,10)
579
#===================================================================================================
580
def test_hex3D_order1_integorder1(self):
582
my_dom=Brick(NE,NE,NE,integrationOrder=1)
583
self.__test_3DQ(my_dom,1)
584
def test_hex3D_order1_integorder2(self):
586
my_dom=Brick(NE,NE,NE,integrationOrder=2)
587
self.__test_3DQ(my_dom,2)
588
def test_hex3D_order1_integorder3(self):
590
my_dom=Brick(NE,NE,NE,integrationOrder=3)
591
self.__test_3DQ(my_dom,3)
592
def test_hex3D_order1_integorder4(self):
594
my_dom=Brick(NE,NE,NE,integrationOrder=4)
595
self.__test_3DQ(my_dom,4)
596
def test_hex3D_order1_integorder5(self):
598
my_dom=Brick(NE,NE,NE,integrationOrder=5)
599
self.__test_3DQ(my_dom,5)
600
def test_hex3D_order1_integorder6(self):
602
my_dom=Brick(NE,NE,NE,integrationOrder=6)
603
self.__test_3DQ(my_dom,6)
604
def test_hex3D_order1_integorder7(self):
606
my_dom=Brick(NE,NE,NE,integrationOrder=7)
607
self.__test_3DQ(my_dom,7)
608
def test_hex3D_order1_integorder8(self):
610
my_dom=Brick(NE,NE,NE,integrationOrder=8)
611
self.__test_3DQ(my_dom,8)
612
def test_hex3D_order1_integorder9(self):
614
my_dom=Brick(NE,NE,NE,integrationOrder=9)
615
self.__test_3DQ(my_dom,9)
616
def test_hex3D_order1_integorder10(self):
618
my_dom=Brick(NE,NE,NE,integrationOrder=10)
619
self.__test_3DQ(my_dom,10)
620
#===================================================================================================
621
def test_hex3D_order2_integorder2(self):
623
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=1)
624
self.__test_3DQ(my_dom,1)
625
def test_hex3D_order2_integorder2(self):
627
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=2)
628
self.__test_3DQ(my_dom,2)
629
def test_hex3D_order2_integorder3(self):
631
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=3)
632
self.__test_3DQ(my_dom,3)
633
def test_hex3D_order2_integorder4(self):
635
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=4)
636
self.__test_3DQ(my_dom,4)
637
def test_hex3D_order2_integorder5(self):
639
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=5)
640
self.__test_3DQ(my_dom,5)
641
def test_hex3D_order2_integorder6(self):
643
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=6)
644
self.__test_3DQ(my_dom,6)
645
def test_hex3D_order2_integorder7(self):
647
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=7)
648
self.__test_3DQ(my_dom,7)
649
def test_hex3D_order2_integorder8(self):
651
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=8)
652
self.__test_3DQ(my_dom,8)
653
def test_hex3D_order2_integorder9(self):
655
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=9)
656
self.__test_3DQ(my_dom,9)
657
def test_hex3D_order2_integorder10(self):
659
my_dom=Brick(NE,NE,NE,order=2,integrationOrder=10)
660
self.__test_3DQ(my_dom,10)
661
#===================================================================================================
662
def test_hex3D_macro_integmacro(self):
664
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=1)
665
self.__test_3DQ(my_dom,1)
666
def test_hex3D_macro_integmacro(self):
668
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=2)
669
self.__test_3DQ(my_dom,2)
670
def test_hex3D_macro_integorder3(self):
672
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=3)
673
self.__test_3DQ(my_dom,3)
674
def test_hex3D_macro_integorder4(self):
676
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=4)
677
self.__test_3DQ(my_dom,4)
678
def test_hex3D_macro_integorder5(self):
680
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=5)
681
self.__test_3DQ(my_dom,5)
682
def test_hex3D_macro_integorder6(self):
684
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=6)
685
self.__test_3DQ(my_dom,6)
686
def test_hex3D_macro_integorder7(self):
688
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=7)
689
self.__test_3DQ(my_dom,7)
690
def test_hex3D_macro_integorder8(self):
692
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=8)
693
self.__test_3DQ(my_dom,8)
694
def test_hex3D_macro_integorder9(self):
696
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=9)
697
self.__test_3DQ(my_dom,9)
698
def test_hex3D_macro_integorder10(self):
700
my_dom=Brick(NE,NE,NE,order=-1,integrationOrder=10)
701
self.__test_3DQ(my_dom,10)
702
#==========================================================================================
703
def test_Tet3D_order1_integorder1(self):
704
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=1)
705
self.__test_3DT(my_dom,1)
706
def test_Tet3D_order1_integorder2(self):
707
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=2)
708
self.__test_3DT(my_dom,2)
709
def test_Tet3D_order1_integorder3(self):
710
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=3)
711
self.__test_3DT(my_dom,3)
712
def test_Tet3D_order1_integorder4(self):
713
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=4)
714
self.__test_3DT(my_dom,4)
715
def test_Tet3D_order1_integorder5(self):
716
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=5)
717
self.__test_3DT(my_dom,5)
718
def test_Tet3D_order1_integorder6(self):
719
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=6)
720
self.__test_3DT(my_dom,6,1./sqrt(EPSILON))
721
def test_Tet3D_order1_integorder7(self):
722
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=7)
723
self.__test_3DT(my_dom,7,1./sqrt(EPSILON))
724
def test_Tet3D_order1_integorder8(self):
725
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=8)
726
self.__test_3DT(my_dom,8,1./sqrt(EPSILON))
727
def test_Tet3D_order1_integorder9(self):
728
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=9)
729
self.__test_3DT(my_dom,9,1./sqrt(EPSILON))
730
def test_Tet3D_order1_integorder10(self):
731
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet4.fly"),optimize=False,integrationOrder=10)
732
self.__test_3DT(my_dom,10,1./sqrt(EPSILON))
733
#==========================================================================================
734
def test_Tet3D_order2_integorder2(self):
735
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=1)
736
self.__test_3DT(my_dom,1)
737
def test_Tet3D_order2_integorder2(self):
738
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=2)
739
self.__test_3DT(my_dom,2)
740
def test_Tet3D_order2_integorder3(self):
741
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=3)
742
self.__test_3DT(my_dom,3)
743
def test_Tet3D_order2_integorder4(self):
744
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=4)
745
self.__test_3DT(my_dom,4)
746
def test_Tet3D_order2_integorder5(self):
747
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=5)
748
self.__test_3DT(my_dom,5)
749
def test_Tet3D_order2_integorder6(self):
750
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=6)
751
self.__test_3DT(my_dom,6,1./sqrt(EPSILON))
752
def test_Tet3D_order2_integorder7(self):
753
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=7)
754
self.__test_3DT(my_dom,7,1./sqrt(EPSILON))
755
def test_Tet3D_order2_integorder8(self):
756
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=8)
757
self.__test_3DT(my_dom,8,1./sqrt(EPSILON))
758
def test_Tet3D_order2_integorder9(self):
759
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=9)
760
self.__test_3DT(my_dom,9,1./sqrt(EPSILON))
761
def test_Tet3D_order2_integorder10(self):
762
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10.fly"),optimize=False,integrationOrder=10)
763
self.__test_3DT(my_dom,10,1./sqrt(EPSILON))
764
#==========================================================================================
765
def test_Tet3D_macro_integmacro(self):
766
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=1)
767
self.__test_3DT(my_dom,1)
768
def test_Tet3D_macro_integmacro(self):
769
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=2)
770
self.__test_3DT(my_dom,2)
771
def test_Tet3D_macro_integorder3(self):
772
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=3)
773
self.__test_3DT(my_dom,3)
774
def test_Tet3D_macro_integorder4(self):
775
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=4)
776
self.__test_3DT(my_dom,4)
777
def test_Tet3D_macro_integorder5(self):
778
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=5)
779
self.__test_3DT(my_dom,5)
780
def test_Tet3D_macro_integorder6(self):
781
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=6)
782
self.__test_3DT(my_dom,6,1./sqrt(EPSILON))
783
def test_Tet3D_macro_integorder7(self):
784
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=7)
785
self.__test_3DT(my_dom,7,1./sqrt(EPSILON))
786
def test_Tet3D_macro_integorder8(self):
787
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=8)
788
self.__test_3DT(my_dom,8,1./sqrt(EPSILON))
789
def test_Tet3D_macro_integorder9(self):
790
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=9)
791
self.__test_3DT(my_dom,9,1./sqrt(EPSILON))
792
def test_Tet3D_macro_integorder10(self):
793
my_dom = ReadMesh(os.path.join(DUDLEY_TEST_MESH_PATH,"tet10_macro.fly"),optimize=False,integrationOrder=10)
794
self.__test_3DT(my_dom,10,1./sqrt(EPSILON))
796
if __name__ == '__main__':
797
suite = unittest.TestSuite()
799
if getMPISizeWorld() == 1:
800
suite.addTest(unittest.makeSuite(Test_Generators))
802
print "Test_Generators is dropped as number of processors >1"
804
if getMPISizeWorld() == 1:
805
suite.addTest(unittest.makeSuite(Test_GMSHReader))
807
print "Test_GMSHReader is dropped as number of processors >1"
809
if getMPISizeWorld() == 1:
810
suite.addTest(unittest.makeSuite(Test_Reader))
812
print "Test_Reader is dropped as number of processors >1"
814
suite.addTest(unittest.makeSuite(Test_Integration))
815
s=unittest.TextTestRunner(verbosity=2).run(suite)
816
if not s.wasSuccessful(): sys.exit(1)