예제 #1
0
 def test_09NodeDelete(self):
     import CGNS.PAT.cgnsutils as CGU
     import CGNS.PAT.cgnserrors as CGE
     import CGNS.PAT.cgnskeywords as CGK
     import numpy
     n = CGU.nodeCreate('Base', numpy.array([3, 3]), [], CGK.CGNSBase_ts)
     r = CGU.nodeCreate('ReferenceState', None, [], CGK.ReferenceState_ts, parent=n)
     d = CGU.nodeCreate('Data', numpy.array([3.14]), [], CGK.DataArray_ts, parent=r)
     self.assertIsNotNone(CGU.hasChildName(r, 'Data'))
     CGU.nodeDelete(n, d)
     self.assertIsNone(CGU.hasChildName(r, 'Data'))
     d = CGU.nodeCreate('DataZ', numpy.array([3.14]), [], CGK.DataArray_ts, parent=r)
     self.assertIsNotNone(CGU.hasChildName(r, 'DataZ'))
     CGU.nodeDelete(r, d)
     self.assertIsNone(CGU.hasChildName(r, 'DataZ'))
     CGU.nodeDelete(r, d)
     self.assertIsNone(CGU.hasChildName(r, 'DataZ'))
     n = CGU.nodeCreate('Base', numpy.array([3, 3]), [], CGK.CGNSBase_ts)
     r = CGU.nodeCreate('ReferenceState', None, [], CGK.ReferenceState_ts, parent=n)
     d = CGU.nodeCreate('Data', numpy.array([3.14]), [], CGK.DataArray_ts, parent=r)
     self.assertIsNotNone(CGU.getNodeByPath(n, '/Base/ReferenceState/Data'))
     CGU.nodeDelete(n, d)
     self.assertIsNone(CGU.hasChildName(r, 'Data'))
     n = CGU.nodeCreate('Base', numpy.array([3, 3]), [], CGK.CGNSBase_ts)
     r = CGU.nodeCreate('ReferenceState', None, [], CGK.ReferenceState_ts, parent=n)
     d = CGU.nodeCreate('Data', numpy.array([3.14]), [], CGK.DataArray_ts, parent=r)
     self.assertIsNotNone(CGU.getNodeByPath(n, '/Base/ReferenceState/Data'))
     CGU.removeChildByName(r, 'Data')
     self.assertIsNone(CGU.hasChildName(r, 'Data'))
예제 #2
0
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'indexarray InwardNormalList bad shape #3'
diag = False
(T, b, z, zbc) = makeCorrectTree(vertexsize, cellsize)
n = CGL.newBoundary(zbc,
                    'BC', [range(1, cellsize + 1)],
                    btype=CGK.Null_s,
                    family=None,
                    pttype=CGK.PointList_s)
g = CGL.newGridLocation(n, value=CGK.CellCenter_s)
inl = CGL.newIndexArray(n, CGK.InwardNormalList_s, value=NPY.ones([cellsize]))
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'indexarray InwardNormalList bad shape #4'
diag = False
(T, b, z, zbc) = makeCorrectTree(vertexsize, cellsize)
n = CGL.newBoundary(zbc,
                    'BC', [range(1, cellsize + 1)],
                    btype=CGK.Null_s,
                    family=None,
                    pttype=CGK.PointList_s)
g = CGL.newGridLocation(n, value=CGK.CellCenter_s)
CGU.nodeDelete(T, CGU.getNodeByPath(n, 'BC/' + CGK.PointList_s))
inl = CGL.newIndexArray(n,
                        CGK.InwardNormalList_s,
                        value=NPY.ones([2, cellsize]))
TESTS.append((tag, T, diag))
예제 #3
0
p_arr = var_mat[:,8]

# For now, skip the elem connectivity section. Because I do not need it.

##############################
# Write to CGNS file
##############################
import CGNS.PAT.cgnsutils as CGU
import CGNS.PAT.cgnslib as CGL
import CGNS.PAT.cgnskeywords as CK
import CGNS.MAP as CGM

T=CGL.newCGNSTree()
B=CGL.newBase(T,'hpMusic_base',2,2)
# The shape (3,1) is critical
zone_size = np.array([[n_node, n_elem, 0]])
Z=CGL.newZone(B,'Solution',zone_size,CK.Unstructured_s,'')
GC=CGL.newGridCoordinates(Z,name='GridCoordinates')
FS=CGL.newFlowSolution(Z,name='FlowSolution',gridlocation='Vertex')
GL=CGU.getNodeByPath(FS,'GridLocation')
CGU.nodeDelete(FS,GL)

coordinatex_node = CGL.newDataArray(GC,'CoordinateX',value=x_arr)
coordinatey_node = CGL.newDataArray(GC,'CoordinateY',value=y_arr)
density_node = CGL.newDataArray(FS,'Density',value=rho_arr)
velocityx_node = CGL.newDataArray(FS,'VelocityX',value=u_arr)
velocityy_node = CGL.newDataArray(FS,'VelocityY',value=v_arr)
p_node = CGL.newDataArray(FS,'Pressure',value=p_arr)

CGM.save("sol_tec.cgns",T)