#
# map3d5.rb
# $Id: map3d5.rb,v 1.1 2000/11/18 19:03:40 keiko Exp $
#
require "narray"
require "numru/dcl"
include NumRu
include Math
nx = 21
ny = 21
xmin = -10
xmax = 10
ymin = -10
ymax = 10
vxmin = 0.2
vxmax = 0.8
vymin = 0.1
vymax = 0.5
zmin = 0.0
zmax = 20
vzmin = 0.0
vzmax = 0.6
xvp3 = -0.7
yvp3 = -0.7
zvp3 = 1.2
xfc3 = (vxmax-vxmin)/2
yfc3 = (vymax-vymin)/2
zfc3 = (vzmax-vzmin)/2
dx1 = 1
dx2 = 5
dy1 = 1
dy2 = 4
dz1 = 1
dz2 = 5
kmax = 5
pmin = 0
pmax = 1
u = NArray.sfloat(nx, ny)
v = NArray.sfloat(nx, ny)
p = NArray.sfloat(nx, ny)
#-- data ---
for j in 0..ny-1
for i in 0..nx-1
x = xmin + (xmax-xmin)*i/(nx-1).to_f
y = ymin + (ymax-ymin)*j/(ny-1).to_f
u[i,j] = x
v[i,j] = -y
p[i,j] = exp(-x**2/64 -y**2/25)
end
end
#-- graph ---
iws = (ARGV[0] || (puts ' WORKSTATION ID (I) ? ;'; DCL::sgpwsn; gets)).to_i
DCL::sgopn iws
DCL::sgfrm
#-- X-Y 平面: 下レベル ----
DCL::sgswnd(xmin, xmax, ymin, ymax)
DCL::sgsvpt(vxmin, vxmax, vymin, vymax)
DCL::sgstrn(1)
DCL::sgstrf
DCL::scspln(1, 2, vzmin)
DCL::scseye(xvp3, yvp3, zvp3)
DCL::scsobj(xfc3, yfc3, zfc3)
DCL::scsprj
DCL::uxaxdv('B', dx1, dx2)
DCL::uxaxdv('T', dx1, dx2)
DCL::uxsttl('B', 'X-axis', 0.0)
DCL::uyaxdv('L', dy1, dy2)
DCL::uyaxdv('R', dy1, dy2)
DCL::uysttl('L', 'Y-axis', 0.0)
DCL::ugrset('RSIZET', 0.014)
DCL::ugvect(u, v)
#-- X-Y 平面: 上レベル ----
vzlev = vzmin + (vzmax-vzmin)*0.6
DCL::scspln(1, 2, vzlev)
DCL::scsprj
dp = (pmax-pmin)/kmax.to_f
for k in 1..kmax
tlev1 = (k-1)*dp
tlev2 = tlev1 + dp
ipat = 600 + k - 1
DCL::uestlv(tlev1, tlev2, ipat)
end
DCL::uetone(p)
DCL::udlset('LMSG', false)
DCL::udgclb(p, 0.1)
DCL::udcntr(p)
DCL::slpvpr(1)
#-- X-Z 平面 ----
DCL::sgswnd(xmin, xmax, zmin, zmax)
DCL::sgsvpt(vxmin, vxmax, vzmin, vzmax)
DCL::sgstrn(1)
DCL::sgstrf
DCL::scspln(1, 3, vymax)
DCL::scsprj
DCL::uzinit
DCL::uyaxdv('L', dz1, dz2)
DCL::uysttl('L', 'Z-axis', 0.0)
DCL::sgcls
syntax highlighted by Code2HTML, v. 0.9.1