Ejemplo n.º 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)
Ejemplo n.º 2
0
def makeCorrectTree():
    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'))
    s = NPY.array([[vertexsize, cellsize, 0]], dtype='int32', order='F')
    z2 = CGL.newZone(b, 'Zone2', s, CGK.Unstructured_s)
    g = CGL.newGridCoordinates(z2, '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(z2, 'TETRAS', CGK.TETRA_4_s,
                             NPY.ones((cellsize * 4), dtype='int32'),
                             NPY.array([[1, cellsize]], 'i', order='F'))
    tris = CGL.newElements(
        z2, 'TRIS', CGK.TRI_3_s, NPY.ones((ntris * 3), dtype='int32'),
        NPY.array([[cellsize + 1, cellsize + ntris]], 'i', order='F'))
    z3 = CGU.copyNode(z1, 'Zone3')
    b[2].append(z3)
    z4 = CGU.copyNode(z2, 'Zone4')
    b[2].append(z4)
    z = [z1, z2, z3, z4]
    return (T, b, z)
Ejemplo n.º 3
0
def makeUnstTree(vertexsize, cellsize):
    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'))
    return (T, b, z)
Ejemplo n.º 4
0
    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'))
    return (T, b, z)


vertexsize = 20
cellsize = 7
(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'))
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'indexrange index bad ordered'  # this raises a warning, not an error
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([[cellsize, 1]], 'i', order='F'))
# element range not ordered
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'indexrange bad node shape'
Ejemplo n.º 5
0
(T, b, z, zbc) = makeCorrectTree(vertexsize, cellsize)
n = CGL.newBoundary(zbc,
                    'BC', [[1, 2, 0, 4, vertexsize + 1]],
                    btype=CGK.Null_s,
                    family=None,
                    pttype=CGK.PointList_s)  # element index out of range
g = CGL.newGridLocation(n, value=CGK.Vertex_s)
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'indexarray gridlocation face'
diag = True
(T, b, z, zbc) = makeCorrectTree(vertexsize, cellsize)
ntris = 12
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(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)
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'indexarray gridlocation face index out of range #1'
diag = False
(T, b, z, zbc) = makeCorrectTree(vertexsize, cellsize)
ntris = 12
tris = CGL.newElements(
Ejemplo n.º 6
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.cgnserrors as E
import CGNS.PAT.cgnskeywords as K
import numpy as N

#
data = C.newElements(None, '{Elements_t}')
C.newDataArray(data, K.ParentData_s)
C.newRind(data, N.array([0, 0, 0, 0, 1, 1]))
C.newUserDefinedData(data, '{UserDefinedData}')
C.newDescriptor(data, '{Descriptor}')
#
status = '7.3'
comment = 'Full SIDS with all optionals'
pattern = [data, status, comment]
#
Ejemplo n.º 7
0
    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'))
    return (T, b, z)


vertexsize = 20
cellsize = 7
(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'))
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'elements bad elementsizeboundary'
diag = False
(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'))
tetras[1][1] = cellsize
zbc = CGL.newZoneBC(z)
n = CGL.newBoundary(zbc,
                    'BC', [range(1, cellsize + 1)],
                    btype=CGK.Null_s,
Ejemplo n.º 8
0
diag = False
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base}', 3, 3)
z = CGL.newZone(b, '{Zone}',
                NPY.array([[5, 4, 0], [7, 6, 0], [9, 8, 0]], order='F'))
g = CGL.newGridCoordinates(z, 'GridCoordinates')
d = CGL.newDataArray(g, CGK.CoordinateX_s,
                     NPY.ones(5, dtype='float64', order='F'))
d = CGL.newDataArray(g, CGK.CoordinateY_s,
                     NPY.ones(5, dtype='float64', order='F'))
d = CGL.newDataArray(g, CGK.CoordinateZ_s,
                     NPY.ones(5, dtype='float64', order='F'))
zt = CGU.hasChildName(z, CGK.ZoneType_s)
zt[1] = CGU.setStringAsArray(CGK.Unstructured_s)
tetras = CGL.newElements(z, 'TETRAS', CGK.TETRA_4_s,
                         NPY.ones((4 * 4), dtype='int32'),
                         NPY.array([[1, 4]], 'i', order='F'))
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'zone unstructured bad dims'
diag = False
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base}', 3, 3)
z = CGL.newZone(b, '{Zone}', NPY.array([[4, 5, 0]], order='F'))
g = CGL.newGridCoordinates(z, 'GridCoordinates')
d = CGL.newDataArray(g, CGK.CoordinateX_s,
                     NPY.ones(4, dtype='float64', order='F'))
d = CGL.newDataArray(g, CGK.CoordinateY_s,
                     NPY.ones(4, dtype='float64', order='F'))
d = CGL.newDataArray(g, CGK.CoordinateZ_s,