#!/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()