Examples for vtkview
Load package
using VTKView
Plot 2D rectangular grid
function rectgrid2d(;tend=5,n=50)
frame=VTKView.StaticFrame()
clear!(frame)
X=collect(-1.0:1.0/n:1.0)
N=length(X)
dataset=VTKView.DataSet()
rectilineargrid!(dataset,X,X)
gridview=VTKView.GridView()
data!(gridview,dataset)
addview!(frame,gridview)
display(frame)
end
Plot scalar function on 2D rectangular grid
function rectscalar2d(;tend=5,n=50)
frame=VTKView.StaticFrame()
X=collect(0:1.0/n:1.0)
Y=collect(0:1.0/n:1.0)
Z=zeros(Float64,length(X),length(Y))
F(x,y,t)=exp(-(x*x+y*y))*sin(t+9.0*x)*cos(11.0*y-2.0*t)
clear!(frame)
dataset=VTKView.DataSet()
scalarview=VTKView.ScalarView()
layout!(frame,1,1)
size!(frame,300,300)
rectilineargrid!(dataset,X,Y)
addpointscalar!(dataset,vec(Z),"V")
data!(scalarview,dataset,"V")
addview!(frame,scalarview,1)
for t in 0:0.1:tend
for i=1:length(X)
for j=1:length(Y)
Z[i,j] = F(X[i],Y[j],t)
end
end
addpointscalar!(dataset,vec(Z),"V")
display(frame)
end
end
Plot 2D simplex grid
function simplexgrid2d(;tend=5,n=20)
frame=VTKView.StaticFrame()
clear!(frame)
raster=100
npt=n*n
inpoints=hcat(unique([ Cdouble[rand(1:raster)/raster, rand(1:raster)/raster] for i in 1:npt])...)
(points,cells)=VTKView.delaunay(inpoints)
dataset=VTKView.DataSet()
simplexgrid!(dataset,points,cells)
gridview=VTKView.GridView()
data!(gridview,dataset)
addview!(frame,gridview)
display(frame)
end
Plot scalar function on 2D simplex grid
function simplexscalar2d(;tend=5,n=50)
frame=VTKView.StaticFrame()
clear!(frame)
raster=100
npt=n*n
inpoints=hcat(unique([ Cdouble[rand(1:raster)/raster, rand(1:raster)/raster] for i in 1:npt])...)
(points,cells)=VTKView.delaunay(inpoints)
npt=size(points,2)
Z=zeros(Float64,npt)
F(x,y,t)=exp(-(x*x+y*y))*sin(t+9.0*x)*cos(11.0*y-2.0*t)
dataset=VTKView.DataSet()
simplexgrid!(dataset,points,cells)
scalarview=VTKView.ScalarView()
layout!(frame,1,1)
size!(frame,300,300)
addpointscalar!(dataset,Z,"V")
data!(scalarview,dataset,"V")
addview!(frame,scalarview,1)
for t in 0:0.1:tend
for i=1:npt
Z[i]=F(points[:,i]..., t)
end
addpointscalar!(dataset,vec(Z),"V")
display(frame)
end
end
Plot 3D rectangular grid
function rectgrid3d(;tend=5,n=50)
frame=VTKView.StaticFrame()
clear!(frame)
X=collect(-1.0:1.0/n:1.0)
N=length(X)
dataset=VTKView.DataSet()
rectilineargrid!(dataset,X,X,X)
gridview=VTKView.GridView()
data!(gridview,dataset)
addview!(frame,gridview)
display(frame)
end
Plot scalar function on 3D rectangular grid
function rectscalar3d(;n=50,tend=5)
frame=VTKView.StaticFrame()
F(x,y,z,t)=sin((10+sin(t))*x-t)*cos(10y-t)*sin(3z-2t)
X=collect(-1.0:1.0/n:1.0)
N=length(X)
V=[F(X[i],X[j],X[k],0) for i=1:N,j=1:N,k=1:N]
clear!(frame)
dataset=VTKView.DataSet()
scalarview=VTKView.ScalarView()
size!(frame,500,500)
rectilineargrid!(dataset,X,X,X)
addpointscalar!(dataset,vec(V),"V")
data!(scalarview,dataset,"V")
show_isosurfaces!(scalarview,true)
isolevels!(scalarview,[0.1,0.9])
addview!(frame,scalarview)
for t in 0:0.1:tend
for i=1:N,j=1:N,k=1:N
V[i,j,k]=F(X[i],X[j],X[k],t)
end
frametitle!(frame,"t=$(t)")
addpointscalar!(dataset,vec(V),"V")
display(frame)
end
end
Plot 3D simplex grid
function simplexgrid3d(;tend=5,n=20)
frame=VTKView.StaticFrame()
clear!(frame)
raster=100
npt=n*n*n
inpoints=hcat(unique([ Cdouble[rand(1:raster)/raster, rand(1:raster)/raster,rand(1:raster)/raster] for i in 1:npt])...)
(points,cells)=VTKView.delaunay(inpoints)
dataset=VTKView.DataSet()
simplexgrid!(dataset,points,cells)
gridview=VTKView.GridView()
data!(gridview,dataset)
addview!(frame,gridview)
display(frame)
end
Plot scalar function on 3D simplex grid
function simplexscalar3d(;tend=5,n=20)
frame=VTKView.StaticFrame()
clear!(frame)
raster=100
npt=n*n*n
inpoints=hcat(unique([ Cdouble[rand(1:raster)/raster, rand(1:raster)/raster, rand(1:raster)/raster] for i in 1:npt])...)
(points,cells)=VTKView.delaunay(inpoints)
npt=size(points,2)
Z=zeros(Float64,npt)
F(x,y,z,t)=sin((10+sin(t))*x-t)*cos(10y-t)*sin(3z-2t)
dataset=VTKView.DataSet()
simplexgrid!(dataset,points,cells)
scalarview=VTKView.ScalarView()
layout!(frame,1,1)
size!(frame,500,500)
addpointscalar!(dataset,Z,"V")
data!(scalarview,dataset,"V")
addview!(frame,scalarview,1)
show_isosurfaces!(scalarview,true)
isolevels!(scalarview,[0.1,0.9])
for t in 0:0.1:tend
for i=1:npt
Z[i]=F(points[:,i]..., t)
end
addpointscalar!(dataset,vec(Z),"V")
display(frame)
end
end
Multiple views in one figure
function multifig(;tend=5,n=50)
frame=VTKView.StaticFrame()
F(x,y,t)=exp(-(x*x+y*y))*sin(t+9.0*x)*cos(11.0*y-2.0*t)
X=collect(0:1.0/n:1.0)
Y=collect(0:1.0/n:1.0)
clear!(frame)
h=0.01
X=collect(0:h:1.0)
Y=collect(0:h:1.2)
Z=zeros(Float64,length(X),length(Y))
dataset=VTKView.DataSet()
scalarview=VTKView.ScalarView()
layout!(frame,2,1)
size!(frame,600,300)
rectilineargrid!(dataset,X,Y)
addpointscalar!(dataset,vec(Z),"V")
data!(scalarview,dataset,"V")
addview!(frame,scalarview,1)
plot=VTKView.XYPlot()
addview!(frame,plot,2)
for t in 0:0.1:tend
for i=1:length(X)
for j=1:length(Y)
Z[i,j] = F(X[i],Y[j],t)
end
end
addpointscalar!(dataset,vec(Z),"V")
clear!(plot)
plotlegend!(plot,"j=1")
plotcolor!(plot,1,0,0)
addplot!(plot,X,Z[:,1])
plotcolor!(plot,0,0,1)
plotlegend!(plot,"i=1")
addplot!(plot,Y,Z[1,:])
display(frame)
end
writepng(frame,"multifig.png")
writevtk(dataset,"multifig.vtk")
end
Run all examples
function all()
rectgrid2d()
rectscalar2d()
simplexgrid2d()
simplexscalar2d()
rectgrid3d()
rectscalar3d()
simplexgrid3d()
simplexscalar3d()
multifig()
end
This page was generated using Literate.jl.