C.1 write_grid_str.py

#!/usr/bin/env python
# User's Guide to CGNS - C.L.Rumsey et al. examples translation
#
import CGNS
from numarray import *

(imax,jmax,kmax)=(21,17,9)
x=array(ones((imax,jmax,kmax),Float))
y=array(ones((imax,jmax,kmax),Float))
z=array(ones((imax,jmax,kmax),Float))
isize=range(9)

for k in range(kmax):
    for j in range(jmax):
        for i in range(imax):
            x[i,j,k]=(i-1)*1.0
            y[i,j,k]=(j-1)*1.0
            z[i,j,k]=(k-1)*1.0

file=CGNS.pyCGNS('grid.cgns',CGNS.MODE_WRITE)
basename='Base'
icelldim,iphysdim=(3,3)
index_base=file.basewrite(basename,icelldim,iphysdim)
zonename='Zone  1'

isize[0]=21             # vertex size
isize[1]=17
isize[2]=9
isize[3]=isize[0]-1     # cell size
isize[4]=isize[1]-1
isize[5]=isize[2]-1
isize[6]=0              # boundary vertex size (zero for structured grids)
isize[7]=0
isize[8]=0

index_zone=file.zonewrite(index_base,zonename,isize,CGNS.Structured)
file.coordwrite(index_base,index_zone,CGNS.RealDouble,CGNS.CoordinateX,x)
file.coordwrite(index_base,index_zone,CGNS.RealDouble,CGNS.CoordinateY,y)
file.coordwrite(index_base,index_zone,CGNS.RealDouble,CGNS.CoordinateZ,z)

file.close()