1
2
3 from unittest import TestCase
4
6 import os
7 from ...conf import env
8 testfn = [env.datadir] + ['cubic_t200mm.g']
9 testfn = os.path.join(*testfn)
10
20
22 from ..genesis import Genesis
23 gn = Genesis(self.testfn)
24 nbc = gn.get_dim('num_side_sets')
25 slen = gn.get_dim('len_string')
26 lines = gn.get_lines('ss_names', (nbc, slen))
27 self.assertEqual(len(lines), 6)
28 self.assertEqual(lines[0], 'front')
29 self.assertEqual(gn.get_dim('num_side_ss1'), 62)
30 self.assertEqual(lines[1], 'rear')
31 self.assertEqual(gn.get_dim('num_side_ss2'), 62)
32 self.assertEqual(lines[2], 'lower')
33 self.assertEqual(gn.get_dim('num_side_ss3'), 60)
34 self.assertEqual(lines[3], 'left')
35 self.assertEqual(gn.get_dim('num_side_ss4'), 60)
36 self.assertEqual(lines[4], 'upper')
37 self.assertEqual(gn.get_dim('num_side_ss5'), 60)
38 self.assertEqual(lines[5], 'right')
39 self.assertEqual(gn.get_dim('num_side_ss6'), 60)
40 gn.close_file()
41
51
53 from ..genesis import Genesis
54 gn = Genesis(self.testfn)
55
56 nblk = gn.get_dim('num_el_blk')
57 slen = gn.get_dim('len_string')
58 blks = gn.get_lines('eb_names', (nblk, slen))
59 self.assertEqual(len(blks), 2)
60 self.assertEqual(blks[0], 'rear')
61 self.assertEqual(blks[1], 'front')
62
63 ncell = gn.get_dim('num_el_in_blk1')
64 clnnd = gn.get_dim('num_nod_per_el1')
65 clnds = gn.get_array('connect1', (ncell, clnnd), 'int32')
66 self.assertEqual(clnds.min(), 1)
67 self.assertEqual(clnds.max(), 181)
68 self.assertEqual(gn.get_attr_text('elem_type', 'connect1'), 'TETRA')
69
70 ncell = gn.get_dim('num_el_in_blk2')
71 clnnd = gn.get_dim('num_nod_per_el2')
72 clnds = gn.get_array('connect2', (ncell, clnnd), 'int32')
73 self.assertEqual(clnds.min(), 5)
74 self.assertEqual(clnds.max(), 316)
75 self.assertEqual(gn.get_attr_text('elem_type', 'connect2'), 'TETRA')
76 gn.close_file()
77
79 from numpy import arange
80 from ..genesis import Genesis
81
82 gn = Genesis(self.testfn)
83 gn.load()
84 gn.close_file()
85
86 self.assertEqual(gn.ndim, 3)
87 self.assertEqual(gn.nnode, 316)
88 self.assertEqual(gn.ncell, 1253)
89
90 self.assertEqual(len(gn.blks), 2)
91 self.assertEqual(gn.blks[0][0], 'rear')
92 self.assertEqual(gn.blks[0][1], 'TETRA')
93 self.assertEqual(gn.blks[0][2].shape, (635, 4))
94 self.assertEqual(gn.blks[1][0], 'front')
95 self.assertEqual(gn.blks[1][1], 'TETRA')
96 self.assertEqual(gn.blks[1][2].shape, (618, 4))
97
98 self.assertEqual(len(gn.bcs), 6)
99 self.assertEqual(gn.bcs[0][0], 'front')
100 self.assertEqual(gn.bcs[0][1].shape, (62,))
101 self.assertEqual(gn.bcs[0][2].shape, (62,))
102 self.assertEqual(gn.bcs[1][0], 'rear')
103 self.assertEqual(gn.bcs[1][1].shape, (62,))
104 self.assertEqual(gn.bcs[1][2].shape, (62,))
105 self.assertEqual(gn.bcs[2][0], 'lower')
106 self.assertEqual(gn.bcs[2][1].shape, (60,))
107 self.assertEqual(gn.bcs[2][2].shape, (60,))
108 self.assertEqual(gn.bcs[3][0], 'left')
109 self.assertEqual(gn.bcs[3][1].shape, (60,))
110 self.assertEqual(gn.bcs[3][2].shape, (60,))
111 self.assertEqual(gn.bcs[4][0], 'upper')
112 self.assertEqual(gn.bcs[4][1].shape, (60,))
113 self.assertEqual(gn.bcs[4][2].shape, (60,))
114 self.assertEqual(gn.bcs[5][0], 'right')
115 self.assertEqual(gn.bcs[5][1].shape, (60,))
116 self.assertEqual(gn.bcs[5][2].shape, (60,))
117
118 self.assertEqual(gn.ndcrd.shape, (316, 3))
119 self.assertTrue((gn.ndcrd >= -0.5).all())
120 self.assertTrue((gn.ndcrd <= 0.5).all())
121
122 self.assertTrue((gn.emap == arange(1253)+1).all())
123
125 from ...block import Block
126 from ..genesis import Genesis
127
128 gn = Genesis(self.testfn)
129 gn.load()
130 gn.close_file()
131
132 blk = Block(ndim=gn.ndim, nnode=gn.nnode, ncell=gn.ncell,
133 fpdtype='float64')
134 gn._convert_interior_to(blk)
135
136 self.assertTrue((blk.cltpn == 5).all())
137 self.assertTrue((blk.clnds[:,0] == 4).all())
138
139 self.assertEqual(blk.clnds[:,1:5].min(), 0)
140 self.assertEqual(blk.clnds[:,1:5].max(), 316-1)
141
142 self.assertEqual(len(blk.grpnames), 2)
143 self.assertEqual(blk.clgrp.min(), 0)
144 self.assertEqual((blk.clgrp==0).sum(), 635)
145 self.assertEqual(blk.clgrp.max(), 1)
146 self.assertEqual((blk.clgrp==1).sum(), 618)
147
149 from ..genesis import Genesis
150
151 gn = Genesis(self.testfn)
152 gn.load()
153 gn.close_file()
154
155 blk = gn.toblock()
156
157 self.assertEqual(len(blk.bclist), 6)
158 self.assertEqual(blk.bclist[0].name, 'front')
159 self.assertEqual(len(blk.bclist[0]), 62)
160 self.assertTrue((blk.fccnd[blk.bclist[0].facn[:,0],2] == 0.5).all())
161 self.assertAlmostEqual(blk.fcara[blk.bclist[0].facn[:,0]].sum(), 1.0,
162 15)
163 self.assertEqual(blk.bclist[1].name, 'rear')
164 self.assertEqual(len(blk.bclist[1]), 62)
165 self.assertTrue((blk.fccnd[blk.bclist[1].facn[:,0],2] == -0.5).all())
166 self.assertAlmostEqual(blk.fcara[blk.bclist[1].facn[:,0]].sum(), 1.0,
167 15)
168 self.assertEqual(blk.bclist[2].name, 'lower')
169 self.assertEqual(len(blk.bclist[2]), 60)
170 self.assertTrue((blk.fccnd[blk.bclist[2].facn[:,0],1] == -0.5).all())
171 self.assertAlmostEqual(blk.fcara[blk.bclist[2].facn[:,0]].sum(), 1.0,
172 15)
173 self.assertEqual(blk.bclist[3].name, 'left')
174 self.assertEqual(len(blk.bclist[3]), 60)
175 self.assertTrue((blk.fccnd[blk.bclist[3].facn[:,0],0] == -0.5).all())
176 self.assertAlmostEqual(blk.fcara[blk.bclist[3].facn[:,0]].sum(), 1.0,
177 15)
178 self.assertEqual(blk.bclist[4].name, 'upper')
179 self.assertEqual(len(blk.bclist[4]), 60)
180 self.assertTrue((blk.fccnd[blk.bclist[4].facn[:,0],1] == 0.5).all())
181 self.assertAlmostEqual(blk.fcara[blk.bclist[4].facn[:,0]].sum(), 1.0,
182 15)
183 self.assertEqual(blk.bclist[5].name, 'right')
184 self.assertEqual(len(blk.bclist[5]), 60)
185 self.assertTrue((blk.fccnd[blk.bclist[5].facn[:,0],0] == 0.5).all())
186 self.assertAlmostEqual(blk.fcara[blk.bclist[5].facn[:,0]].sum(), 1.0,
187 15)
188
189 self.assertEqual(blk.ndcrd.min(), -0.5)
190 self.assertEqual(blk.ndcrd.max(), 0.5)
191 self.assertAlmostEqual(blk.clvol.sum(), 1.0, 14)
192
194 import os
195 from ...conf import env
196 testfn = [env.datadir] + ['cubic_h200mm.g']
197 testfn = os.path.join(*testfn)
198
208
210 from ..genesis import Genesis
211 gn = Genesis(self.testfn)
212 nbc = gn.get_dim('num_side_sets')
213 slen = gn.get_dim('len_string')
214 lines = gn.get_lines('ss_names', (nbc, slen))
215 self.assertEqual(len(lines), 6)
216 self.assertEqual(lines[0], 'front')
217 self.assertEqual(gn.get_dim('num_side_ss1'), 25)
218 self.assertEqual(lines[1], 'rear')
219 self.assertEqual(gn.get_dim('num_side_ss2'), 25)
220 self.assertEqual(lines[2], 'lower')
221 self.assertEqual(gn.get_dim('num_side_ss3'), 30)
222 self.assertEqual(lines[3], 'left')
223 self.assertEqual(gn.get_dim('num_side_ss4'), 30)
224 self.assertEqual(lines[4], 'upper')
225 self.assertEqual(gn.get_dim('num_side_ss5'), 30)
226 self.assertEqual(lines[5], 'right')
227 self.assertEqual(gn.get_dim('num_side_ss6'), 30)
228 gn.close_file()
229
239
241 from ..genesis import Genesis
242 gn = Genesis(self.testfn)
243
244 nblk = gn.get_dim('num_el_blk')
245 slen = gn.get_dim('len_string')
246 blks = gn.get_lines('eb_names', (nblk, slen))
247 self.assertEqual(len(blks), 2)
248 self.assertEqual(blks[0], 'rear')
249 self.assertEqual(blks[1], 'front')
250
251 ncell = gn.get_dim('num_el_in_blk1')
252 clnnd = gn.get_dim('num_nod_per_el1')
253 clnds = gn.get_array('connect1', (ncell, clnnd), 'int32')
254 self.assertEqual(clnds.min(), 1)
255 self.assertEqual(clnds.max(), 144)
256 self.assertEqual(gn.get_attr_text('elem_type', 'connect1'), 'HEX8')
257
258 ncell = gn.get_dim('num_el_in_blk2')
259 clnnd = gn.get_dim('num_nod_per_el2')
260 clnds = gn.get_array('connect2', (ncell, clnnd), 'int32')
261 self.assertEqual(clnds.min(), 109)
262 self.assertEqual(clnds.max(), 252)
263 self.assertEqual(gn.get_attr_text('elem_type', 'connect2'), 'HEX8')
264 gn.close_file()
265
267 from numpy import arange
268 from ..genesis import Genesis
269
270 gn = Genesis(self.testfn)
271 gn.load()
272 gn.close_file()
273
274 self.assertEqual(gn.ndim, 3)
275 self.assertEqual(gn.nnode, 252)
276 self.assertEqual(gn.ncell, 150)
277
278 self.assertEqual(len(gn.blks), 2)
279 self.assertEqual(gn.blks[0][0], 'rear')
280 self.assertEqual(gn.blks[0][1], 'HEX8')
281 self.assertEqual(gn.blks[0][2].shape, (75, 8))
282 self.assertEqual(gn.blks[1][0], 'front')
283 self.assertEqual(gn.blks[1][1], 'HEX8')
284 self.assertEqual(gn.blks[1][2].shape, (75, 8))
285
286 self.assertEqual(len(gn.bcs), 6)
287 self.assertEqual(gn.bcs[0][0], 'front')
288 self.assertEqual(gn.bcs[0][1].shape, (25,))
289 self.assertEqual(gn.bcs[0][2].shape, (25,))
290 self.assertEqual(gn.bcs[1][0], 'rear')
291 self.assertEqual(gn.bcs[1][1].shape, (25,))
292 self.assertEqual(gn.bcs[1][2].shape, (25,))
293 self.assertEqual(gn.bcs[2][0], 'lower')
294 self.assertEqual(gn.bcs[2][1].shape, (30,))
295 self.assertEqual(gn.bcs[2][2].shape, (30,))
296 self.assertEqual(gn.bcs[3][0], 'left')
297 self.assertEqual(gn.bcs[3][1].shape, (30,))
298 self.assertEqual(gn.bcs[3][2].shape, (30,))
299 self.assertEqual(gn.bcs[4][0], 'upper')
300 self.assertEqual(gn.bcs[4][1].shape, (30,))
301 self.assertEqual(gn.bcs[4][2].shape, (30,))
302 self.assertEqual(gn.bcs[5][0], 'right')
303 self.assertEqual(gn.bcs[5][1].shape, (30,))
304 self.assertEqual(gn.bcs[5][2].shape, (30,))
305
306 self.assertEqual(gn.ndcrd.shape, (252, 3))
307 self.assertTrue((gn.ndcrd >= -0.5-1.e-15).all())
308 self.assertTrue((gn.ndcrd <= 0.5+1.e-15).all())
309
310 self.assertTrue((gn.emap == arange(150)+1).all())
311
313 from ...block import Block
314 from ..genesis import Genesis
315
316 gn = Genesis(self.testfn)
317 gn.load()
318 gn.close_file()
319
320 blk = Block(ndim=gn.ndim, nnode=gn.nnode, ncell=gn.ncell,
321 fpdtype='float64')
322 gn._convert_interior_to(blk)
323
324 self.assertTrue((blk.cltpn == 4).all())
325 self.assertTrue((blk.clnds[:,0] == 8).all())
326
327 self.assertEqual(blk.clnds[:,1:9].min(), 0)
328 self.assertEqual(blk.clnds[:,1:9].max(), 252-1)
329
330 self.assertEqual(len(blk.grpnames), 2)
331 self.assertEqual(blk.clgrp.min(), 0)
332 self.assertEqual((blk.clgrp==0).sum(), 75)
333 self.assertEqual(blk.clgrp.max(), 1)
334 self.assertEqual((blk.clgrp==1).sum(), 75)
335
337 from numpy import abs
338 from ..genesis import Genesis
339
340 gn = Genesis(self.testfn)
341 gn.load()
342 gn.close_file()
343
344 blk = gn.toblock()
345
346 self.assertEqual(len(blk.bclist), 6)
347 self.assertEqual(blk.bclist[0].name, 'front')
348 self.assertEqual(len(blk.bclist[0]), 25)
349 self.assertTrue((abs(blk.fccnd[blk.bclist[0].facn[:,0],2] - 0.5)
350 < 1.e-15).all())
351 self.assertAlmostEqual(blk.fcara[blk.bclist[0].facn[:,0]].sum(), 1.0,
352 15)
353 self.assertEqual(blk.bclist[1].name, 'rear')
354 self.assertEqual(len(blk.bclist[1]), 25)
355 self.assertTrue((abs(blk.fccnd[blk.bclist[1].facn[:,0],2] + 0.5)
356 < 1.e-15).all())
357 self.assertAlmostEqual(blk.fcara[blk.bclist[1].facn[:,0]].sum(), 1.0,
358 15)
359 self.assertEqual(blk.bclist[2].name, 'lower')
360 self.assertEqual(len(blk.bclist[2]), 30)
361 self.assertTrue((abs(blk.fccnd[blk.bclist[2].facn[:,0],1] + 0.5)
362 < 1.e-15).all())
363 self.assertAlmostEqual(blk.fcara[blk.bclist[2].facn[:,0]].sum(), 1.0,
364 15)
365 self.assertEqual(blk.bclist[3].name, 'left')
366 self.assertEqual(len(blk.bclist[3]), 30)
367 self.assertTrue((abs(blk.fccnd[blk.bclist[3].facn[:,0],0] + 0.5)
368 < 1.e-15).all())
369 self.assertAlmostEqual(blk.fcara[blk.bclist[3].facn[:,0]].sum(), 1.0,
370 15)
371 self.assertEqual(blk.bclist[4].name, 'upper')
372 self.assertEqual(len(blk.bclist[4]), 30)
373 self.assertTrue((abs(blk.fccnd[blk.bclist[4].facn[:,0],1] - 0.5)
374 < 1.e-15).all())
375 self.assertAlmostEqual(blk.fcara[blk.bclist[4].facn[:,0]].sum(), 1.0,
376 15)
377 self.assertEqual(blk.bclist[5].name, 'right')
378 self.assertEqual(len(blk.bclist[5]), 30)
379 self.assertTrue((abs(blk.fccnd[blk.bclist[5].facn[:,0],0] - 0.5)
380 < 1.e-15).all())
381 self.assertAlmostEqual(blk.fcara[blk.bclist[5].facn[:,0]].sum(), 1.0,
382 15)
383
384 self.assertAlmostEqual(blk.ndcrd.min(), -0.5, 15)
385 self.assertAlmostEqual(blk.ndcrd.max(), 0.5, 15)
386 self.assertAlmostEqual(blk.clvol.sum(), 1.0, 14)
387
389 import os
390 from ...conf import env
391 testfn = [env.datadir] + ['square_t200mm.g']
392 testfn = os.path.join(*testfn)
393
403
405 from ..genesis import Genesis
406 gn = Genesis(self.testfn)
407 nbc = gn.get_dim('num_side_sets')
408 slen = gn.get_dim('len_string')
409 lines = gn.get_lines('ss_names', (nbc, slen))
410 self.assertEqual(len(lines), 4)
411 self.assertEqual(lines[0], 'upper')
412 self.assertEqual(gn.get_dim('num_side_ss1'), 5)
413 self.assertEqual(lines[1], 'left')
414 self.assertEqual(gn.get_dim('num_side_ss2'), 5)
415 self.assertEqual(lines[2], 'lower')
416 self.assertEqual(gn.get_dim('num_side_ss3'), 5)
417 self.assertEqual(lines[3], 'right')
418 self.assertEqual(gn.get_dim('num_side_ss4'), 5)
419 gn.close_file()
420
430
432 from ..genesis import Genesis
433 gn = Genesis(self.testfn)
434
435 nblk = gn.get_dim('num_el_blk')
436 slen = gn.get_dim('len_string')
437 blks = gn.get_lines('eb_names', (nblk, slen))
438 self.assertEqual(len(blks), 1)
439
440 ncell = gn.get_dim('num_el_in_blk1')
441 clnnd = gn.get_dim('num_nod_per_el1')
442 clnds = gn.get_array('connect1', (ncell, clnnd), 'int32')
443 self.assertEqual(clnds.min(), 1)
444 self.assertEqual(clnds.max(), 41)
445 self.assertEqual(gn.get_attr_text('elem_type', 'connect1'), 'TRI3')
446 gn.close_file()
447
449 from numpy import arange
450 from ..genesis import Genesis
451
452 gn = Genesis(self.testfn)
453 gn.load()
454 gn.close_file()
455
456 self.assertEqual(gn.ndim, 2)
457 self.assertEqual(gn.nnode, 41)
458 self.assertEqual(gn.ncell, 60)
459
460 self.assertEqual(len(gn.blks), 1)
461 self.assertEqual(gn.blks[0][1], 'TRI3')
462 self.assertEqual(gn.blks[0][2].shape, (60, 3))
463
464 self.assertEqual(len(gn.bcs), 4)
465 self.assertEqual(gn.bcs[0][0], 'upper')
466 self.assertEqual(gn.bcs[0][1].shape, (5,))
467 self.assertEqual(gn.bcs[0][2].shape, (5,))
468 self.assertEqual(gn.bcs[1][0], 'left')
469 self.assertEqual(gn.bcs[1][1].shape, (5,))
470 self.assertEqual(gn.bcs[1][2].shape, (5,))
471 self.assertEqual(gn.bcs[2][0], 'lower')
472 self.assertEqual(gn.bcs[2][1].shape, (5,))
473 self.assertEqual(gn.bcs[2][2].shape, (5,))
474 self.assertEqual(gn.bcs[3][0], 'right')
475 self.assertEqual(gn.bcs[3][1].shape, (5,))
476 self.assertEqual(gn.bcs[3][2].shape, (5,))
477
478 self.assertEqual(gn.ndcrd.shape, (41, 2))
479 self.assertTrue((gn.ndcrd >= -0.5-1.e-15).all())
480 self.assertTrue((gn.ndcrd <= 0.5+1.e-15).all())
481
482 self.assertTrue((gn.emap == arange(60)+1).all())
483
485 from ...block import Block
486 from ..genesis import Genesis
487
488 gn = Genesis(self.testfn)
489 gn.load()
490 gn.close_file()
491
492 blk = Block(ndim=gn.ndim, nnode=gn.nnode, ncell=gn.ncell,
493 fpdtype='float64')
494 gn._convert_interior_to(blk)
495
496 self.assertTrue((blk.cltpn == 3).all())
497 self.assertTrue((blk.clnds[:,0] == 3).all())
498
499 self.assertEqual(blk.clnds[:,1:4].min(), 0)
500 self.assertEqual(blk.clnds[:,1:4].max(), 41-1)
501
502 self.assertEqual(len(blk.grpnames), 1)
503 self.assertEqual(blk.clgrp.min(), 0)
504 self.assertEqual((blk.clgrp==0).sum(), 60)
505
507 from numpy import abs
508 from ..genesis import Genesis
509
510 gn = Genesis(self.testfn)
511 gn.load()
512 gn.close_file()
513
514 blk = gn.toblock()
515
516 self.assertEqual(len(blk.bclist), 4)
517 self.assertEqual(blk.bclist[0].name, 'upper')
518 self.assertEqual(len(blk.bclist[0]), 5)
519 self.assertTrue((abs(blk.fccnd[blk.bclist[0].facn[:,0],1] - 0.5)
520 < 1.e-15).all())
521 self.assertAlmostEqual(blk.fcara[blk.bclist[0].facn[:,0]].sum(), 1.0,
522 15)
523 self.assertEqual(blk.bclist[1].name, 'left')
524 self.assertEqual(len(blk.bclist[1]), 5)
525 self.assertTrue((abs(blk.fccnd[blk.bclist[1].facn[:,0],0] + 0.5)
526 < 1.e-15).all())
527 self.assertAlmostEqual(blk.fcara[blk.bclist[1].facn[:,0]].sum(), 1.0,
528 15)
529 self.assertEqual(blk.bclist[2].name, 'lower')
530 self.assertEqual(len(blk.bclist[2]), 5)
531 self.assertTrue((abs(blk.fccnd[blk.bclist[2].facn[:,0],1] + 0.5)
532 < 1.e-15).all())
533 self.assertAlmostEqual(blk.fcara[blk.bclist[2].facn[:,0]].sum(), 1.0,
534 15)
535 self.assertEqual(blk.bclist[3].name, 'right')
536 self.assertEqual(len(blk.bclist[3]), 5)
537 self.assertTrue((abs(blk.fccnd[blk.bclist[3].facn[:,0],0] - 0.5)
538 < 1.e-15).all())
539 self.assertAlmostEqual(blk.fcara[blk.bclist[3].facn[:,0]].sum(), 1.0,
540 15)
541
542 self.assertAlmostEqual(blk.ndcrd.min(), -0.5, 15)
543 self.assertAlmostEqual(blk.ndcrd.max(), 0.5, 15)
544 self.assertAlmostEqual(blk.clvol.sum(), 1.0, 14)
545
547 import os
548 from ...conf import env
549 testfn = [env.datadir] + ['square_q200mm.g']
550 testfn = os.path.join(*testfn)
551
561
563 from ..genesis import Genesis
564 gn = Genesis(self.testfn)
565 nbc = gn.get_dim('num_side_sets')
566 slen = gn.get_dim('len_string')
567 lines = gn.get_lines('ss_names', (nbc, slen))
568 self.assertEqual(len(lines), 4)
569 self.assertEqual(lines[0], 'upper')
570 self.assertEqual(gn.get_dim('num_side_ss1'), 5)
571 self.assertEqual(lines[1], 'left')
572 self.assertEqual(gn.get_dim('num_side_ss2'), 5)
573 self.assertEqual(lines[2], 'lower')
574 self.assertEqual(gn.get_dim('num_side_ss3'), 5)
575 self.assertEqual(lines[3], 'right')
576 self.assertEqual(gn.get_dim('num_side_ss4'), 5)
577 gn.close_file()
578
588
590 from ..genesis import Genesis
591 gn = Genesis(self.testfn)
592
593 nblk = gn.get_dim('num_el_blk')
594 slen = gn.get_dim('len_string')
595 blks = gn.get_lines('eb_names', (nblk, slen))
596 self.assertEqual(len(blks), 1)
597
598 ncell = gn.get_dim('num_el_in_blk1')
599 clnnd = gn.get_dim('num_nod_per_el1')
600 clnds = gn.get_array('connect1', (ncell, clnnd), 'int32')
601 self.assertEqual(clnds.min(), 1)
602 self.assertEqual(clnds.max(), 36)
603 self.assertEqual(gn.get_attr_text('elem_type', 'connect1'), 'SHELL4')
604 gn.close_file()
605
607 from numpy import arange
608 from ..genesis import Genesis
609
610 gn = Genesis(self.testfn)
611 gn.load()
612 gn.close_file()
613
614 self.assertEqual(gn.ndim, 2)
615 self.assertEqual(gn.nnode, 36)
616 self.assertEqual(gn.ncell, 25)
617
618 self.assertEqual(len(gn.blks), 1)
619 self.assertEqual(gn.blks[0][1], 'SHELL4')
620 self.assertEqual(gn.blks[0][2].shape, (25, 4))
621
622 self.assertEqual(len(gn.bcs), 4)
623 self.assertEqual(gn.bcs[0][0], 'upper')
624 self.assertEqual(gn.bcs[0][1].shape, (5,))
625 self.assertEqual(gn.bcs[0][2].shape, (5,))
626 self.assertEqual(gn.bcs[1][0], 'left')
627 self.assertEqual(gn.bcs[1][1].shape, (5,))
628 self.assertEqual(gn.bcs[1][2].shape, (5,))
629 self.assertEqual(gn.bcs[2][0], 'lower')
630 self.assertEqual(gn.bcs[2][1].shape, (5,))
631 self.assertEqual(gn.bcs[2][2].shape, (5,))
632 self.assertEqual(gn.bcs[3][0], 'right')
633 self.assertEqual(gn.bcs[3][1].shape, (5,))
634 self.assertEqual(gn.bcs[3][2].shape, (5,))
635
636 self.assertEqual(gn.ndcrd.shape, (36, 2))
637 self.assertTrue((gn.ndcrd >= -0.5-1.e-15).all())
638 self.assertTrue((gn.ndcrd <= 0.5+1.e-15).all())
639
640 self.assertTrue((gn.emap == arange(25)+1).all())
641
643 from ...block import Block
644 from ..genesis import Genesis
645
646 gn = Genesis(self.testfn)
647 gn.load()
648 gn.close_file()
649
650 blk = Block(ndim=gn.ndim, nnode=gn.nnode, ncell=gn.ncell,
651 fpdtype='float64')
652 gn._convert_interior_to(blk)
653
654 self.assertTrue((blk.cltpn == 2).all())
655 self.assertTrue((blk.clnds[:,0] == 4).all())
656
657 self.assertEqual(blk.clnds[:,1:5].min(), 0)
658 self.assertEqual(blk.clnds[:,1:5].max(), 36-1)
659
660 self.assertEqual(len(blk.grpnames), 1)
661 self.assertEqual(blk.clgrp.min(), 0)
662 self.assertEqual((blk.clgrp==0).sum(), 25)
663
665 from numpy import abs
666 from ..genesis import Genesis
667
668 gn = Genesis(self.testfn)
669 gn.load()
670 gn.close_file()
671
672 blk = gn.toblock()
673
674 self.assertEqual(len(blk.bclist), 4)
675 self.assertEqual(blk.bclist[0].name, 'upper')
676 self.assertEqual(len(blk.bclist[0]), 5)
677 self.assertTrue((abs(blk.fccnd[blk.bclist[0].facn[:,0],1] - 0.5)
678 < 1.e-15).all())
679 self.assertAlmostEqual(blk.fcara[blk.bclist[0].facn[:,0]].sum(), 1.0,
680 15)
681 self.assertEqual(blk.bclist[1].name, 'left')
682 self.assertEqual(len(blk.bclist[1]), 5)
683 self.assertTrue((abs(blk.fccnd[blk.bclist[1].facn[:,0],0] + 0.5)
684 < 1.e-15).all())
685 self.assertAlmostEqual(blk.fcara[blk.bclist[1].facn[:,0]].sum(), 1.0,
686 15)
687 self.assertEqual(blk.bclist[2].name, 'lower')
688 self.assertEqual(len(blk.bclist[2]), 5)
689 self.assertTrue((abs(blk.fccnd[blk.bclist[2].facn[:,0],1] + 0.5)
690 < 1.e-15).all())
691 self.assertAlmostEqual(blk.fcara[blk.bclist[2].facn[:,0]].sum(), 1.0,
692 15)
693 self.assertEqual(blk.bclist[3].name, 'right')
694 self.assertEqual(len(blk.bclist[3]), 5)
695 self.assertTrue((abs(blk.fccnd[blk.bclist[3].facn[:,0],0] - 0.5)
696 < 1.e-15).all())
697 self.assertAlmostEqual(blk.fcara[blk.bclist[3].facn[:,0]].sum(), 1.0,
698 15)
699
700 self.assertAlmostEqual(blk.ndcrd.min(), -0.5, 15)
701 self.assertAlmostEqual(blk.ndcrd.max(), 0.5, 15)
702 self.assertAlmostEqual(blk.clvol.sum(), 1.0, 14)
703
716