Пример #1
0
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)
Пример #2
0
#  ---------------------------------------------------------------------------
#  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]
#
Пример #3
0
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'),
Пример #4
0
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))
Пример #5
0
#  ---------------------------------------------------------------------------
#  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]
Пример #6
0
    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))
Пример #7
0

(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')
Пример #8
0
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,
Пример #9
0
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)