def makeCorrectTree(vertexsize, cellsize, ntris): T = CGL.newCGNSTree() b = CGL.newBase(T, 'Base', 3, 3) s = NPY.array([[vertexsize, cellsize, 0]], dtype='int32', order='F') z = CGL.newZone(b, 'Zone', s, CGK.Unstructured_s) g = CGL.newGridCoordinates(z, 'GridCoordinates') d = CGL.newDataArray(g, CGK.CoordinateX_s, NPY.ones((vertexsize), dtype='float64', order='F')) d = CGL.newDataArray(g, CGK.CoordinateY_s, NPY.ones((vertexsize), dtype='float64', order='F')) d = CGL.newDataArray(g, CGK.CoordinateZ_s, NPY.ones((vertexsize), dtype='float64', order='F')) tetras = CGL.newElements(z, 'TETRAS', CGK.TETRA_4_s, NPY.ones((cellsize * 4), dtype='int32'), NPY.array([[1, cellsize]], 'i', order='F')) tris = CGL.newElements( z, 'TRIS', CGK.TRI_3_s, NPY.ones((ntris * 3), dtype='int32'), NPY.array([[cellsize + 1, cellsize + ntris]], 'i', order='F')) zbc = CGL.newZoneBC(z) n = CGL.newBoundary(zbc, 'BC', [range(cellsize + 1, cellsize + ntris + 1)], btype=CGK.Null_s, family=None, pttype=CGK.PointList_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) return (T, b, z, zbc, n, g)
# --------------------------------------------------------------------------- # pyCGNS - Python package for CFD General Notation System - # See license.txt file in the root directory of this Python module source # --------------------------------------------------------------------------- # from __future__ import unicode_literals import CGNS.PAT.cgnslib as C import CGNS.PAT.cgnskeywords as K import CGNS.PAT.cgnserrors as E import numpy as N # # data = C.newArbitraryGridMotion(None, '{ArbitraryGridMotion}') C.newRind(data, N.array([0, 0, 0, 0, 1, 1])) C.newGridLocation(data) C.newDataArray(data, K.GridVelocityX_s) C.newDataArray(data, K.GridVelocityY_s) C.newDataArray(data, K.GridVelocityZ_s) C.newDataClass(data) C.newDimensionalUnits(data) C.newUserDefinedData(data, '{UserDefinedData}') C.newDescriptor(data, '{Descriptor}') # status = '11.3' comment = 'Full SIDS with all optionals' pattern = [data, status, comment] #
tag = 'indexrange on BC_t' diag = True (T, b, z) = makeCorrectTree(vertexsize, cellsize) tetras = CGL.newElements(z, 'TETRAS', CGK.TETRA_4_s, NPY.ones((cellsize * 4), dtype='int32'), NPY.array([[1, cellsize]], 'i', order='F')) ntris = 11 tris = CGL.newElements( z, 'TRIS', CGK.TRI_3_s, NPY.ones((ntris * 3), dtype='int32'), NPY.array([[cellsize + 1, cellsize + ntris]], 'i', order='F')) n = CGL.newBoundary(z, 'BC', [range(cellsize + 1, cellsize + ntris + 1)], btype=CGK.Null_s, family=None, pttype=CGK.PointList_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) CGU.removeChildByName(n, CGK.PointList_s) CGU.newNode(CGK.PointRange_s, NPY.array([[cellsize + 1, cellsize + ntris]], dtype=NPY.int32, order='F'), [], CGK.IndexRange_ts, parent=n) TESTS.append((tag, T, diag)) # ------------------------------------------------------------------------- tag = 'indexrange on BC_t PointRange index out of range #1' diag = False (T, b, z) = makeCorrectTree(vertexsize, cellsize) tetras = CGL.newElements(z, 'TETRAS', CGK.TETRA_4_s, NPY.ones((cellsize * 4), dtype='int32'),
ntris = 12 (T, b, z, zbc, n, g) = makeCorrectTree(vertexsize, cellsize, ntris) TESTS.append((tag, T, diag)) # ------------------------------------------------------------------------- tag = 'bc bad location' diag = False (T, b, z, zbc, n, g) = makeCorrectTree(vertexsize, cellsize, ntris) CGL.newPointRange(n, value=NPY.array([[1, cellsize]], 'i')) zbc[2] = [] 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) TESTS.append((tag, T, diag)) # ------------------------------------------------------------------------- tag = 'bc both PointList and PointRange' diag = False (T, b, z, zbc, n, g) = makeCorrectTree(vertexsize, cellsize, ntris) CGL.newPointRange(n, value=NPY.array([[cellsize + 1, cellsize + ntris]], 'i')) TESTS.append((tag, T, diag)) # ------------------------------------------------------------------------- tag = 'bc no PointList or PointRange' diag = False (T, b, z, zbc, n, g) = makeCorrectTree(vertexsize, cellsize, ntris) CGU.removeChildByName(n, CGK.PointList_s) TESTS.append((tag, T, diag))
# --------------------------------------------------------------------------- # pyCGNS - Python package for CFD General Notation System - # See license.txt file in the root directory of this Python module source # --------------------------------------------------------------------------- # import CGNS.PAT.cgnslib as C import CGNS.PAT.cgnserrors as E import CGNS.PAT.cgnskeywords as K import numpy as N data = C.newGridLocation(None) status = '-' comment = 'SIDS Leaf node' pattern = [data, status, comment]
tetras = CGL.newElements(z, 'TETRAS', CGK.TETRA_4_s, NPY.ones((cellsize * 4), dtype='int32'), NPY.array([[1, cellsize]], 'i', order='F')) zbc = CGL.newZoneBC(z) return (T, b, z, zbc) vertexsize = 20 cellsize = 7 (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) TESTS.append((tag, T, diag)) # ------------------------------------------------------------------------- tag = 'indexarray bad parent' 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) i = n[2][0] z[2].append(CGU.copyNode(i, 'PointList')) # unauthorized parent node TESTS.append((tag, T, diag))
(T, b, z) = makeCorrectTree() zgc = CGL.newZoneGridConnectivity(z[0]) gc = CGL.newGridConnectivity(zgc, 'join1_3', 'Zone3', ctype=CGK.Abutting1to1_s) CGL.newPointRange(gc, value=NPY.array([[1, 1], [1, 7], [1, 9]], order='F')) CGL.newPointRange(gc, name=CGK.PointRangeDonor_s, value=NPY.array([[1, 1], [1, 7], [1, 9]], order='F')) gc = CGL.newGridConnectivity(zgc, 'join1_2', 'Zone2', ctype=CGK.Abutting1to1_s) CGL.newPointRange(gc, value=NPY.array([[1, 5], [1, 1], [1, 9]], order='F')) CGL.newIndexArray(gc, CGK.PointListDonor_s, value=NPY.array([range(cellsize + 1, cellsize + ntris + 1)], order='F')) CGL.newGridLocation(gc, value=CGK.FaceCenter_s) TESTS.append((tag, T, diag)) # ------------------------------------------------------------------------- tag = 'gridconnectivity bad datatype' diag = False (T, b, z) = makeCorrectTree() zgc = CGL.newZoneGridConnectivity(z[0]) gc = CGL.newGridConnectivity(zgc, 'join1_2', 'Zone2', ctype=CGK.Abutting1to1_s) CGL.newPointRange(gc, value=NPY.array([[1, 5], [1, 1], [1, 9]], order='F')) CGL.newIndexArray(gc, CGK.PointListDonor_s, value=NPY.array([range(cellsize + 1, cellsize + ntris + 1)], order='F')) CGL.newGridLocation(gc, value=CGK.FaceCenter_s) gc[1] = NPY.array([1], order='F')
CGU.newNode(CGK.BCRegionName_s, CGU.setStringAsArray('BC'), [], CGK.Descriptor_ts, parent=zsr3) CGL.newDataArray(zsr3, 'var', value=NPY.ones(ntris, dtype='float64', order='Fortran')) zsr5 = CGU.newNode('SubRegion5', NPY.array([3], dtype=NPY.int32, order='Fortran'), [], CGK.ZoneSubRegion_ts, parent=z) CGU.newNode(CGK.PointRange_s, NPY.array([[1, cellsize]], dtype=NPY.int32, order='Fortran'), [], CGK.IndexRange_ts, parent=zsr5) CGL.newGridLocation(zsr5, value=CGK.CellCenter_s) CGL.newDataArray(zsr5, 'var', value=NPY.ones(cellsize, dtype='float64', order='Fortran')) zsr6 = CGU.newNode('SubRegion6', NPY.array([3], dtype=NPY.int32, order='Fortran'), [], CGK.ZoneSubRegion_ts, parent=z) CGU.newNode(CGK.PointList_s, NPY.array([range(1, cellsize + 1)], dtype=NPY.int32, order='Fortran'), [], CGK.IndexArray_ts, parent=zsr6) CGL.newGridLocation(zsr6, value=CGK.CellCenter_s) CGL.newDataArray(zsr6,
def makeStTree(): T = CGL.newCGNSTree() b = CGL.newBase(T, '{Base}', 3, 3) z1 = CGL.newZone(b, '{Zone1}', NPY.array([[5, 4, 0], [7, 6, 0], [9, 8, 0]], order='F')) g = CGL.newGridCoordinates(z1, 'GridCoordinates') d = CGL.newDataArray(g, CGK.CoordinateX_s, NPY.ones((5, 7, 9), dtype='float64', order='F')) d = CGL.newDataArray(g, CGK.CoordinateY_s, NPY.ones((5, 7, 9), dtype='float64', order='F')) d = CGL.newDataArray(g, CGK.CoordinateZ_s, NPY.ones((5, 7, 9), dtype='float64', order='F')) z2 = CGU.copyNode(z1, '{Zone2}') b[2].append(z2) zgc = CGL.newZoneGridConnectivity(z1) gc = CGL.newGridConnectivity1to1(zgc, 'join1_2', '{Zone2}', NPY.array([[1, 1], [1, 4], [1, 9]]), NPY.array([[5, 5], [3, 7], [1, 9]]), NPY.array([-1, +2, +3])) zgc = CGL.newZoneGridConnectivity(z2) gc = CGL.newGridConnectivity1to1(zgc, 'join2_1', '{Zone1}', NPY.array([[5, 5], [3, 7], [1, 9]]), NPY.array([[1, 1], [1, 4], [1, 9]]), NPY.array([-1, +2, +3])) zbc = CGL.newZoneBC(z1) n = CGL.newBoundary(zbc, '{BC1_1}', [[5, 5], [1, 7], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC1_2}', [[1, 5], [1, 1], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC1_3}', [[1, 5], [7, 7], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC1_4}', [[1, 5], [1, 7], [1, 1]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC1_5}', [[1, 5], [1, 7], [9, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC1_6}', [[1, 1], [4, 7], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) zbc = CGL.newZoneBC(z2) n = CGL.newBoundary(zbc, '{BC2_1}', [[1, 1], [1, 7], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC2_2}', [[1, 5], [1, 1], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC2_3}', [[1, 5], [7, 7], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC2_4}', [[1, 5], [1, 7], [1, 1]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC2_5}', [[1, 5], [1, 7], [9, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) n = CGL.newBoundary(zbc, '{BC2_6}', [[5, 5], [1, 3], [1, 9]], btype=CGK.Null_s, family=None, pttype=CGK.PointRange_s) g = CGL.newGridLocation(n, value=CGK.FaceCenter_s) z = [z1, z2] return (T, b, z)