@@ -227,24 +227,26 @@ def isChild2(start, node):
227
227
def setValue (node , value = None ):
228
228
"""Set given value in node."""
229
229
if node [3 ] == 'CGNSLibraryVersion_t' :
230
- if isinstance (value , int ) or isinstance ( value , float ): node [1 ] = numpy .array ([value ], 'f' )
230
+ if isinstance (value , ( int , float ) ): node [1 ] = numpy .array ([value ], 'f' )
231
231
elif isinstance (value , numpy .ndarray ): node [1 ] = numpy .array (value , 'f' )
232
232
else : raise TypeError ("setValue: CGNSLibraryVersion node value should be a float." )
233
233
else :
234
234
if value is None : node [1 ] = None
235
235
elif isinstance (value , numpy .ndarray ):
236
236
if value .flags .f_contiguous : node [1 ] = value
237
237
else : node [1 ] = numpy .asfortranarray (value )
238
- elif isinstance (value , int ) or isinstance (value , numpy .int32 ) or isinstance (value ,numpy .int64 ) or isinstance (value ,numpy .intc ): node [1 ] = numpy .array ([value ], dtype = E_NpyInt )
239
- elif isinstance (value , float ) or isinstance (value , numpy .float32 ) or isinstance (value , numpy .float64 ): node [1 ] = numpy .array ([value ], dtype = numpy .float64 )
238
+ elif isinstance (value , (int , numpy .integer )):
239
+ node [1 ] = numpy .array ([value ], dtype = E_NpyInt )
240
+ elif isinstance (value , (float , numpy .floating )):
241
+ node [1 ] = numpy .array ([value ], dtype = numpy .float64 )
240
242
elif isinstance (value , str ):
241
243
node [1 ] = numpy .array ([c for c in value ], 'c' )
242
244
elif isinstance (value , list ):
243
245
testValue = value
244
246
while isinstance (testValue , list ): testValue = testValue [0 ]
245
- if isinstance (testValue , float ) or isinstance ( testValue , numpy .float32 ) or isinstance ( testValue , numpy . float64 ):
247
+ if isinstance (testValue , ( float , numpy .floating ) ):
246
248
node [1 ] = numpy .array (value , dtype = numpy .float64 , order = 'F' )
247
- elif isinstance (testValue , int ) or isinstance ( testValue , numpy .int32 ) or isinstance ( testValue , numpy . int64 ) or isinstance ( testValue , numpy . intc ):
249
+ elif isinstance (testValue , ( int , numpy .integer ) ):
248
250
node [1 ] = numpy .array (value , dtype = E_NpyInt , order = 'F' )
249
251
elif isinstance (testValue , str ):
250
252
if isinstance (value [0 ], str ):
@@ -271,9 +273,9 @@ def setValue(node, value=None):
271
273
elif isinstance (value , tuple ):
272
274
testValue = value
273
275
while isinstance (testValue , tuple ): testValue = testValue [0 ]
274
- if isinstance (testValue , float ) or isinstance ( testValue , numpy .float32 ) or isinstance ( testValue , numpy . float64 ):
276
+ if isinstance (testValue , ( float , numpy .floating ) ):
275
277
node [1 ] = numpy .array (value , dtype = numpy .float64 , order = 'F' )
276
- elif isinstance (testValue , int ) or isinstance ( testValue , numpy .int32 ) or isinstance ( testValue , numpy . int64 ):
278
+ elif isinstance (testValue , ( int , numpy .integer ) ):
277
279
node [1 ] = numpy .array (value , dtype = E_NpyInt , order = 'F' )
278
280
elif isinstance (testValue , str ):
279
281
if isinstance (value [0 ], str ):
@@ -439,7 +441,7 @@ def _createNodesFromPath(t, path):
439
441
440
442
# -- Create a CGNS version node
441
443
def createCGNSVersionNode ():
442
- version = numpy .array ([4.0 ], dtype = numpy .float32 )
444
+ version = numpy .array ([4.0 ], dtype = numpy .float32 ) # force R4
443
445
return ['CGNSLibraryVersion' , version , [], 'CGNSLibraryVersion_t' ]
444
446
445
447
# -- Cree le noeud root de l'arbre
@@ -450,8 +452,7 @@ def createRootNode(name='CGNSTree', children=None):
450
452
# -- Create base node named name with dim
451
453
# cellDim=2 (cells surfaciques), cellDim=3 (cells volumiques)
452
454
def createBaseNode (name , cellDim ):
453
- a = numpy .empty ((2 ), dtype = E_NpyInt )
454
- #a = numpy.empty((2), dtype=numpy.int32)
455
+ a = numpy .empty ((2 ), dtype = numpy .int32 ) # force I4
455
456
a [0 ] = cellDim ; a [1 ] = 3
456
457
return [name , a , [], 'CGNSBase_t' ]
457
458
@@ -639,6 +640,7 @@ def newOrdinal(value=0, parent=None):
639
640
node = createNode ('Ordinal' , 'Ordinal_t' , value = value )
640
641
else : node = createUniqueChild (parent , 'Ordinal' ,
641
642
'Ordinal_t' , value = value )
643
+ node [1 ] = node [1 ].astype (numpy .int32 ) # force I4
642
644
return node
643
645
644
646
# -- newDiscreteData
@@ -668,6 +670,7 @@ def newElements(name='Elements', etype='UserDefined',
668
670
node = createNode (name , 'Elements_t' , value = [etp ,eboundary ])
669
671
else :
670
672
node = createUniqueChild (parent , name , 'Elements_t' , value = [etp ,eboundary ])
673
+ #node[1] = node[1].astype(numpy.int32) # force I4
671
674
newDataArray ('ElementConnectivity' , econnectivity , parent = node )
672
675
#if erange is None: erange = numpy.ones(2, dtype=numpy.int32)
673
676
newPointRange ('ElementRange' , erange , parent = node )
@@ -865,7 +868,7 @@ def newAverageInterface(value='Null', parent=None):
865
868
866
869
# -- newZoneSubRegion
867
870
def newZoneSubRegion (name = 'SubRegion' , pointRange = None , pointList = None ,
868
- bcName = None , gcName = None , gridLocation = None , parent = None ):
871
+ bcName = None , gcName = None , gridLocation = None , parent = None ):
869
872
"""Create a new ZoneSubRegion node."""
870
873
if parent is None :
871
874
node = createNode (name , 'ZoneSubRegion_t' )
@@ -1072,7 +1075,8 @@ def newBaseIterativeData(name='BaseIterativeData', nsteps=0,
1072
1075
node = createNode (name , 'BaseIterativeData_t' , value = nsteps )
1073
1076
else : node = createUniqueChild (parent , name , 'BaseIterativeData_t' ,
1074
1077
value = nsteps )
1075
- newDataArray (itype , value = numpy .arange (1 ,nsteps + 1 , dtype = E_NpyInt ), parent = node )
1078
+ newDataArray (itype , value = numpy .arange (1 ,nsteps + 1 , dtype = numpy .int32 ),
1079
+ parent = node ) # force I4
1076
1080
return node
1077
1081
1078
1082
# -- newZoneIterativeData
@@ -1125,6 +1129,7 @@ def newConvergenceHistory(name='GlobalConvergenceHistory',
1125
1129
node = createNode (name , 'ConvergenceHistory_t' , value = value )
1126
1130
else : node = createUniqueChild (parent , name , 'ConvergenceHistory_t' ,
1127
1131
value = value )
1132
+ node [1 ] = node [1 ].astype (numpy .int32 ) # force I4
1128
1133
return node
1129
1134
1130
1135
# -- newFamily (zones)
@@ -2615,7 +2620,7 @@ def getSizeOf(a):
2615
2620
# -- Conversion zones, bases, listes de zones <-> tree + noms + ranges --
2616
2621
#==============================================================================
2617
2622
2618
- # -- Converti un noeud zone, liste de zones, base, liste de bases,
2623
+ # -- Convertit un noeud zone, liste de zones, base, liste de bases,
2619
2624
# tree en pyTree (avec les memes adresses)
2620
2625
# Retourne (t, ntype) avec ntype=1 (zone), 2 (liste de zones), 3 (tree),
2621
2626
# 4 (base), 5 (liste de bases)
@@ -2642,7 +2647,7 @@ def node2PyTree(node):
2642
2647
else : t = node
2643
2648
return t , ntype
2644
2649
2645
- # -- Converti un pyTree en noeud de type fourni (avec les memes adresses)
2650
+ # -- Convertit un pyTree en noeud de type fourni (avec les memes adresses)
2646
2651
# IN: type=1 (zone), 2 (liste de zones), 3 (tree), 4 (base), 5 (liste de bases)
2647
2652
def pyTree2Node (t , type ):
2648
2653
if type == 1 : # zone: renvoie une zone ou une liste de zones
@@ -2971,6 +2976,7 @@ def createZoneNode(name, array, array2=[],
2971
2976
neltstot = 0
2972
2977
for c in range (len (etype )):
2973
2978
i = numpy .empty ((2 ), dtype = E_NpyInt ); i [0 ] = etype [c ]; i [1 ] = 0
2979
+ #i = numpy.empty((2), dtype=numpy.int32); i[0] = etype[c]; i[1] = 0 # force I4
2974
2980
if etype [c ] == 22 : # Faces->Nodes and Elements->Faces connectivities (NGON array)
2975
2981
if isinstance (array [2 ], list ): # Array2 or array3
2976
2982
setElementConnectivity2 (zone , array )
@@ -3962,6 +3968,7 @@ def setElementConnectivity(z, array):
3962
3968
etype , stype = eltName2EltNo (array [3 ])
3963
3969
GENodes = getElementNodes (z )
3964
3970
i = numpy .empty ((2 ), dtype = E_NpyInt ); i [0 ] = etype ; i [1 ] = 0
3971
+ #i = numpy.empty((2), dtype=numpy.int32); i[0] = etype; i[1] = 0 # force I4
3965
3972
if GENodes == []:
3966
3973
if etype != 22 and etype != 23 : # Elements->Nodes connectivities
3967
3974
z [2 ].append (['GridElements' , i , [], 'Elements_t' ])
@@ -3993,6 +4000,7 @@ def setElementConnectivity(z, array):
3993
4000
# Creation du noeud NFACE_n: connectivite Elements->Faces
3994
4001
etype ,stype = eltName2EltNo ('NFACE' )
3995
4002
i2 = numpy .empty ((2 ), E_NpyInt ); i2 [0 ] = etype ; i2 [1 ] = 0
4003
+ #i2 = numpy.empty((2), numpy.int32); i2[0] = etype; i2[1] = 0 # force I4
3996
4004
info .append (['NFaceElements' , i2 , [], 'Elements_t' ])
3997
4005
info2 = info [len (info )- 1 ][2 ]
3998
4006
# Size of ElementRange
@@ -4045,6 +4053,7 @@ def setElementConnectivity(z, array):
4045
4053
# Creation du noeud NFACE_n : connectivite Elements->Faces
4046
4054
etype , stype = eltName2EltNo ('NFACE' )
4047
4055
i2 = numpy .empty ((2 ), E_NpyInt ); i2 [0 ] = etype ; i2 [1 ] = 0
4056
+ #i2 = numpy.empty((2), numpy.int32); i2[0] = etype; i2[1] = 0 # force I4
4048
4057
info .append (['NFaceElements' , i2 , [], 'Elements_t' ])
4049
4058
info2 = info [len (info )- 1 ][2 ]
4050
4059
# Size of ElementRange
@@ -4074,6 +4083,7 @@ def setElementConnectivity2(z, array):
4074
4083
for nc , gc in enumerate (array [2 ]):
4075
4084
etype , stype = eltName2EltNo (estring [nc ])
4076
4085
i = numpy .empty ((2 ), E_NpyInt ); i [0 ] = etype ; i [1 ] = 0
4086
+ #i = numpy.empty((2), numpy.int32); i[0] = etype; i[1] = 0 # force I4
4077
4087
if nc in cnames : cname = cnames [nc ]
4078
4088
elif nc == 0 : cname = 'GridElements'
4079
4089
else : cname = 'GridElements%d' % nc
@@ -4085,6 +4095,7 @@ def setElementConnectivity2(z, array):
4085
4095
_updateElementRange (z )
4086
4096
else : # Faces->Nodes and Elements->Faces connectivities (NGON or NFACE)
4087
4097
i = numpy .empty ((2 ), E_NpyInt ); i [0 ] = etype0 ; i [1 ] = 0
4098
+ #i = numpy.empty((2), numpy.int32); i[0] = etype0; i[1] = 0 # force I4
4088
4099
info = z [2 ]
4089
4100
# Creation du noeud NGON_n: connectivite Faces->Noeuds
4090
4101
info .append (['NGonElements' , i , [], 'Elements_t' ])
@@ -4105,6 +4116,7 @@ def setElementConnectivity2(z, array):
4105
4116
# Creation du noeud NFACE_n: connectivite Elements->Faces
4106
4117
etype ,stype = eltName2EltNo ('NFACE' )
4107
4118
i2 = numpy .empty ((2 ), E_NpyInt ); i2 [0 ] = etype ; i2 [1 ] = 0
4119
+ #i2 = numpy.empty((2), numpy.int32); i2[0] = etype; i2[1] = 0 # force I4
4108
4120
info .append (['NFaceElements' , i2 , [], 'Elements_t' ])
4109
4121
info2 = info [len (info )- 1 ][2 ]
4110
4122
# Size of ElementRange
@@ -4275,6 +4287,7 @@ def _adaptPE2NFace(t, remove=True):
4275
4287
cFE = parentElt [1 ]
4276
4288
cNFace , off , nelts = converter .adaptPE2NFace (cFE , api )
4277
4289
p = createUniqueChild (z , 'NFaceElements' , 'Elements_t' , value = [23 ,0 ])
4290
+ #p[1] = p[1].astype(numpy.int32) # force I4
4278
4291
createUniqueChild (p , 'ElementRange' , 'IndexRange_t' , value = [1 ,nelts ])
4279
4292
createUniqueChild (p , 'ElementConnectivity' , 'DataArray_t' , value = cNFace )
4280
4293
if api < 3 : createUniqueChild (p , 'ElementIndex' , 'DataArray_t' , value = off )
@@ -4465,16 +4478,19 @@ def _adaptBCFace2BCC(t, remove=True):
4465
4478
(BAR ,TRI ,QUAD ) = converter .adaptBCFace2BCC (a1 [1 ], connect [1 ], dims [3 ])
4466
4479
if BAR .size > 0 :
4467
4480
n = createNode ('Bnd_BAR' , 'Elements_t' , value = [2 ,BAR .size ])
4481
+ #n[1] = n[1].astype(numpy.int32) # force I4
4468
4482
_addChild (z , n )
4469
4483
createChild (n , 'ElementRange' , 'IndexRange_t' , value = [1 ,BAR .size ])
4470
4484
createChild (n , 'ElementConnectivity' , 'DataArray_t' , value = BAR )
4471
4485
if TRI .size > 0 :
4472
4486
n = createNode ('Bnd_TRI' , 'Elements_t' , value = [3 ,TRI .size ])
4487
+ #n[1] = n[1].astype(numpy.int32) # force I4
4473
4488
_addChild (z , n )
4474
4489
createChild (n , 'ElementRange' , 'IndexRange_t' , value = [1 ,TRI .size ])
4475
4490
createChild (n , 'ElementConnectivity' , 'DataArray_t' , value = TRI )
4476
4491
if QUAD .size > 0 :
4477
4492
n = createNode ('Bnd_QUAD' , 'Elements_t' , value = [4 ,QUAD .size ])
4493
+ #n[1] = n[1].astype(numpy.int32) # force I4
4478
4494
_addChild (z , n )
4479
4495
createChild (n , 'ElementRange' , 'IndexRange_t' , value = [1 ,QUAD .size ])
4480
4496
createChild (n , 'ElementConnectivity' , 'DataArray_t' , value = QUAD )
@@ -4627,6 +4643,7 @@ def _fixNGon(t, remove=False, breakBE=True, convertMIXED=True, addNFace=True):
4627
4643
cFE = cFE .reshape ((sh [0 ]// 2 ,2 ), order = 'F' ); parentElt [1 ] = cFE
4628
4644
cNFace , off , nelts = converter .adaptPE2NFace (cFE , api )
4629
4645
p = createUniqueChild (z , 'NFaceElements' , 'Elements_t' , value = [23 ,0 ])
4646
+ #p[1] = p[1].astype(numpy.int32) # force I4
4630
4647
createUniqueChild (p , 'ElementRange' , 'IndexRange_t' , value = [1 ,nelts ])
4631
4648
createUniqueChild (p , 'ElementConnectivity' , 'DataArray_t' , value = cNFace )
4632
4649
if api < 3 : createUniqueChild (p , 'ElementIndex' , 'DataArray_t' , value = off )
@@ -5489,6 +5506,12 @@ def getGlob2Loc(z):
5489
5506
if b is not None : b = getValue (b )
5490
5507
return b , a
5491
5508
5509
+ # Edit the type of the value for each node
5510
+ def _adaptValueType (nodes , newType ):
5511
+ if nodes is not None :
5512
+ for n in nodes :
5513
+ n [1 ] = n [1 ].astype (newType )
5514
+
5492
5515
# change les numpy R4 en R8 et les numpy i8 en i4
5493
5516
# dans FlowSolution/Coordinates et Elements_t
5494
5517
def _adaptTypes (t , convertR42R8 = True , convertI82I4 = True , convertR82R4 = False , convertI42I8 = False ):
@@ -5561,7 +5584,8 @@ def _adaptTypes(t, convertR42R8=True, convertI82I4=True, convertR82R4=False, con
5561
5584
pt2 [:] = pt1 [:]
5562
5585
nodes = getNodesFromType1 (z , 'Elements_t' )
5563
5586
for no in nodes :
5564
- if no [1 ] is not None and no [1 ].dtype == numpy .int32 :
5587
+ # Elements_t forced to I4
5588
+ if no [1 ] is not None and no [1 ].dtype == numpy .int32 : # TODO comment out this paragraph
5565
5589
pt1 = no [1 ].ravel ('k' )
5566
5590
no [1 ] = numpy .empty (no [1 ].shape , dtype = numpy .int64 , order = 'F' )
5567
5591
pt2 = no [1 ].ravel ('k' )
0 commit comments