Exemplo n.º 1
0
def makeCorrectTree(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'))
    return (T, b, z)
Exemplo 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], [5, 4, 0]], order='F'))
    g = CGL.newGridCoordinates(z1, 'GridCoordinates')
    d = CGL.newDataArray(g, CGK.CoordinateX_s, NPY.ones((5, 7, 5), dtype='float64', order='F'))
    d = CGL.newDataArray(g, CGK.CoordinateY_s, NPY.ones((5, 7, 5), dtype='float64', order='F'))
    d = CGL.newDataArray(g, CGK.CoordinateZ_s, NPY.ones((5, 7, 5), dtype='float64', order='F'))
    s = NPY.array([[vertexsize, cellsize, 0]], dtype='int32', order='F')
    z2 = CGU.copyNode(z1, 'Zone2')
    b[2].append(z2)
    z = [z1, z2]
    return (T, b, z)
Exemplo n.º 3
0
def genTrees():
    tree = CGL.newCGNSTree()
    b = CGL.newBase(tree, '{Base}', 2, 3)
    z = CGL.newZone(b, '{Zone}', numpy.array([[5, 4, 0], [7, 6, 0]],
                                             order='F'))
    g = CGL.newGridCoordinates(z, 'GridCoordinates')
    d = CGL.newDataArray(g, CGK.CoordinateX_s,
                         numpy.ones((5, 7), dtype='d', order='F'))
    d = CGL.newDataArray(g, CGK.CoordinateY_s,
                         numpy.ones((5, 7), dtype='d', order='F'))
    d = CGL.newDataArray(g, CGK.CoordinateZ_s,
                         numpy.ones((5, 7), dtype='d', order='F'))
    return (tree, )
Exemplo n.º 4
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)
Exemplo n.º 5
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)
Exemplo n.º 6
0
def makeStTree(vertexsize, cellsize):
    T = CGL.newCGNSTree()
    b = CGL.newBase(T, '{Base}', 3, 3)
    z = CGL.newZone(
        b, '{Zone}',
        NPY.array(
            [[vertexsize[0], cellsize[0], 0], [vertexsize[1], cellsize[1], 0],
             [vertexsize[2], cellsize[2], 0]],
            order='F'))
    g = CGL.newGridCoordinates(z, 'GridCoordinates')
    d = CGL.newDataArray(
        g, CGK.CoordinateX_s,
        NPY.ones(tuple(vertexsize), dtype='float64', order='F'))
    d = CGL.newDataArray(
        g, CGK.CoordinateY_s,
        NPY.ones(tuple(vertexsize), dtype='float64', order='F'))
    d = CGL.newDataArray(
        g, CGK.CoordinateZ_s,
        NPY.ones(tuple(vertexsize), dtype='float64', order='F'))
    return (T, b, z)
Exemplo n.º 7
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)
Exemplo n.º 8
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 CGL
import CGNS.PAT.cgnsutils as CGU
import CGNS.PAT.cgnskeywords as CGK
import numpy as NPY

TESTS = []

#  -------------------------------------------------------------------------
tag = 'flow equation set'
diag = True
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base#001}', 3, 3)
f = CGL.newFlowEquationSet(b)
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'governing equations'
diag = True
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base#001}', 3, 3)
f = CGL.newFlowEquationSet(b)
g = CGL.newGoverningEquations(f)
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'diffusion model'
diag = True
Exemplo n.º 9
0
#!/usr/bin/env python
# -------------------------------------------------------------------------
# pyCGNS.PAT - CFD General Notation System -
# See license.txt file in the root directory of this Python module source
# -------------------------------------------------------------------------
#
from __future__ import print_function
import CGNS.PAT.cgnslib as CGL
import CGNS.PAT.cgnsutils as CGU

T = CGL.newCGNSTree()
B = CGL.newBase(T, 'Base', 3, 3)
Z = CGL.newZone(B, 'Zone1')
Z = CGL.newZone(B, 'Zone2')
Z = CGL.newZone(B, 'Zone3')
Z = CGL.newZone(B, 'Zone4')

l1 = CGU.getAllNodesByTypeList(T, ['CGNSTree_t', 'CGNSBase_t', 'Zone_t'])
l2 = CGU.getAllNodesByTypeSet(T, ['Zone_t', 'IndexArray_t'])

print(l1)
print(l2)

print(CGU.getNodeByPath(l1[0], T))

l3 = CGU.getAllNodesByTypeList(B, ['CGNSBase_t', 'Zone_t'])
l4 = CGU.getAllNodesByTypeSet(B, ['Zone_t'])

print(l3)
print(l4)
Exemplo n.º 10
0
#  See license.txt file in the root directory of this Python module source
#  -------------------------------------------------------------------------
#
import CGNS.PAT.cgnslib as CGL
import CGNS.PAT.cgnsutils as CGU
import CGNS.PAT.cgnskeywords as CGK
import numpy as NPY

TESTS = []

#  -------------------------------------------------------------------------
tag = 'multi bases'
diag = True
T = CGL.newCGNSTree()
for i in range(10):
    CGL.newBase(T, '{Base#%.2d}' % i, 3, 3)
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'bad base dims #1'
diag = False
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base}', 3, 3)
b[1] = None
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'bad base dims #2'
diag = False
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base#1}', 3, 3)
Exemplo n.º 11
0
v[1] = NPY.array([6.8], dtype='float32')
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'bad version #2'
diag = False
T = CGL.newCGNSTree()
v = CGU.hasChildName(T, CGK.CGNSLibraryVersion_s)
v[1] = NPY.array([3])
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'bad struct #1'
diag = False
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base#1}', 3, 3)
b.append(None)
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'bad struct #2'
diag = False
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base#1}', 3, 3)
b[2] = {}
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'bad name #1'
diag = False
T = CGL.newCGNSTree()
Exemplo n.º 12
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.newBase(None, '{Base}', 3, 3)
C.newZone(data, '{Zone}', N.array([[5, 4, 0], [7, 6, 0], [9, 8, 0]],
                                  order='F'))
C.newSimulationType(data)
C.newIntegralData(data, '{IntegralData}')
C.newBaseIterativeData(data, '{BaseIterativeData}')
C.newConvergenceHistory(data)
C.newFamily(data, '{Family}')
C.newFlowEquationSet(data)
C.newReferenceState(data)
C.newAxisymmetry(data)
C.newRotatingCoordinates(data)
C.newGravity(data)
C.newDataClass(data)
C.newDimensionalUnits(data)
C.newUserDefinedData(data, '{UserDefinedData}')
C.newDescriptor(data, '{Descriptor}')

status = '6.2'
comment = 'Full SIDS with all optionals children'
pattern = [data, status, comment]
Exemplo n.º 13
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 CGL
import CGNS.PAT.cgnsutils as CGU
import CGNS.PAT.cgnskeywords as CGK
import numpy as NPY

TESTS = []

#  -------------------------------------------------------------------------
tag = 'grid 1D'
diag = True
T = CGL.newCGNSTree()
b = CGL.newBase(T, '{Base}', 1, 1)
z = CGL.newZone(b, '{Zone}', NPY.array([[5, 4, 0]], order='F'))
g = CGL.newGridCoordinates(z, 'GridCoordinates')
d = CGL.newDataArray(g, CGK.CoordinateX_s,
                     NPY.ones((5, ), dtype='float64', order='F'))
g = CGL.newGridCoordinates(z, '{Grid#002}')
d = CGL.newDataArray(g, CGK.CoordinateR_s,
                     NPY.ones((5, ), dtype='float64', order='F'))
g = CGL.newGridCoordinates(z, '{Grid#003}')
d = CGL.newDataArray(g, CGK.CoordinateXi_s,
                     NPY.ones((5, ), dtype='float64', order='F'))
TESTS.append((tag, T, diag))

#  -------------------------------------------------------------------------
tag = 'grid 2D'
diag = True
Exemplo n.º 14
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)
Exemplo n.º 15
0
u_arr = var_mat[:,6]
v_arr = var_mat[:,7]
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)