@@ -503,36 +503,38 @@ def _extract55(block_data):
503
503
['freq' , '' , '' , '' , '' , '' ]))
504
504
# Body
505
505
split_data = '' .join (split_data [10 :])
506
- values = np .asarray ([float (str ) for str in split_data .split ()], 'd' )
506
+ node_nums = np .asarray ([int (str ) for str in split_data .splitlines (True )[::2 ]])
507
+ node_vals = np .array ([[str [i * 13 :(i + 1 )* 13 ] for i in range (len (str )// 13 ) ] for str in split_data .splitlines (True )[1 ::2 ]], 'd' ).flatten ()
507
508
if dset ['data_type' ] == 2 :
508
509
# real data
509
510
if dset ['n_data_per_node' ] == 3 :
510
- dset ['node_nums' ] = values [: - 3 : 4 ] .copy ()
511
- dset ['r1' ] = values [ 1 : - 2 : 4 ].copy ()
512
- dset ['r2' ] = values [ 2 : - 1 : 4 ].copy ()
513
- dset ['r3' ] = values [ 3 :: 4 ].copy ()
511
+ dset ['node_nums' ] = node_nums .copy ()
512
+ dset ['r1' ] = node_vals [ 0 :: 3 ].copy ()
513
+ dset ['r2' ] = node_vals [ 1 :: 3 ].copy ()
514
+ dset ['r3' ] = node_vals [ 2 :: 3 ].copy ()
514
515
else :
515
- dset ['node_nums' ] = values [: - 6 : 7 ] .copy ()
516
- dset ['r1' ] = values [ 1 : - 5 : 7 ].copy ()
517
- dset ['r2' ] = values [ 2 : - 4 : 7 ].copy ()
518
- dset ['r3' ] = values [ 3 : - 3 : 7 ].copy ()
519
- dset ['r4' ] = values [ 4 : - 2 : 7 ].copy ()
520
- dset ['r5' ] = values [ 5 : - 1 : 7 ].copy ()
521
- dset ['r6' ] = values [ 6 :: 7 ].copy ()
516
+ dset ['node_nums' ] = node_nums .copy ()
517
+ dset ['r1' ] = node_vals [ 0 :: 6 ].copy ()
518
+ dset ['r2' ] = node_vals [ 1 :: 6 ].copy ()
519
+ dset ['r3' ] = node_vals [ 2 :: 6 ].copy ()
520
+ dset ['r4' ] = node_vals [ 3 :: 6 ].copy ()
521
+ dset ['r5' ] = node_vals [ 4 :: 6 ].copy ()
522
+ dset ['r6' ] = node_vals [ 5 :: 6 ].copy ()
522
523
elif dset ['data_type' ] == 5 :
523
524
# complex data
524
525
if dset ['n_data_per_node' ] == 3 :
525
- dset ['node_nums' ] = values [: - 6 : 7 ] .copy ()
526
- dset ['r1' ] = values [ 1 : - 5 : 7 ] + 1.j * values [ 2 : - 4 : 7 ]
527
- dset ['r2' ] = values [ 3 : - 3 : 7 ] + 1.j * values [ 4 : - 2 : 7 ]
528
- dset ['r3' ] = values [ 5 : - 1 : 7 ] + 1.j * values [ 6 :: 7 ]
526
+ dset ['node_nums' ] = node_nums .copy ()
527
+ dset ['r1' ] = node_vals [ 0 :: 6 ]. copy () + 1.j * node_vals [ 1 :: 6 ]. copy ()
528
+ dset ['r2' ] = node_vals [ 2 :: 6 ]. copy () + 1.j * node_vals [ 3 :: 6 ]. copy ()
529
+ dset ['r3' ] = node_vals [ 4 :: 6 ]. copy () + 1.j * node_vals [ 5 :: 6 ]. copy ()
529
530
else :
530
531
raise Exception ('Cannot handle 6 points per node and complex data when reading data-set #55' )
531
532
else :
532
533
raise Exception ('Error reading data-set #55' )
533
534
except :
534
535
raise Exception ('Error reading data-set #55' )
535
- del values
536
+ del node_nums
537
+ del node_vals
536
538
return dset
537
539
538
540
0 commit comments