26. 2次元への拡張
x方向2階偏微分
y方向を固定してx方向に偏微分
y方向2階偏微分
x方向を固定してy方向に偏微分
22
2
),(),(2),(
Δx
yΔxxfyxfyΔxxf
x
f
22
2
),(),(2),(
Δy
ΔyyxfyxfΔyyxf
y
f
GPGPU実践プログラミング27 2015/07/01
27. 時間積分
時間微分項の離散化
時間微分項を前進差分で離散化
右辺のt+tの項を移行
Δt
tyxfΔttyxf
t
f ),,(),,(
GPGPU実践プログラミング28 2015/07/01
f
t
f 2
t
f
ΔttyxfΔttyxf
),,(),,(
拡散方程式を代入
),,(),,(),,( 2
tyxfΔttyxfΔttyxf
f(x, y, t)の2階微分を計算できればf(x, y, t+t)が求められる
29. 離散化された拡散方程式
連続系
離散系
t秒後の値
2
2
2
2
),,(),,(),,(
y
tyxf
x
tyxf
t
tyxf
2
1,,1,
2
,1,,1,
1
, 22
Δy
fff
Δx
fff
Δt
ff n
ji
n
ji
n
ji
n
ji
n
ji
n
ji
n
ji
n
ji
2
1,,1,
2
,1,,1
,
1
,
22
Δy
fff
Δx
fff
Δtff
n
ji
n
ji
n
ji
n
ji
n
ji
n
jin
ji
n
ji
GPGPU実践プログラミング30 2015/07/01
53. gnuplotによる結果の表示
2015/07/01GPGPU実践プログラミング54
スクリプトanim.gplの内容
set xrange [‐0.5:0.5] x軸の表示範囲を‐0.5~0.5に固定
set yrange [‐0.5:0.5] y軸の表示範囲を‐0.5~0.5に固定
set zrange [0:1] z軸の表示範囲を0~1に固定
set ticslevel 0 xy平面とz軸の最小値表示位置の差
set hidden3d 隠線消去をする
set view 45,30 視点をx方向45°,y方向30°に設定
set size 1,0.75 グラフの縦横比を1:0.75
unset contour 2次元等高線は表示しない
set surface 3次元で等値面を表示
unset pm3d カラー表示はしない
以下でファイルを読み込み,3次元表示
splot 'f0.00.txt' using 1:2:3 with line title "t=0.00s"
...
splot 'f1.00.txt' using 1:2:3 with line title "t=1.00s"
55. gnuplotによる結果の表示
2015/07/01GPGPU実践プログラミング56
スクリプトanim_color.gplの内容
set xrange [‐0.5:0.5] x軸の表示範囲を‐0.5~0.5に固定
set yrange [‐0.5:0.5] y軸の表示範囲を‐0.5~0.5に固定
set zrange [0:1] z軸の表示範囲を0~1に固定
set ticslevel 0 xy平面とz軸の最小値表示位置の差
set hidden3d 隠線消去をする
set view 45,30 視点をx方向45°,y方向30°に設定
set size 1,0.75 グラフの縦横比を1:0.75
unset contour 2次元等高線は表示しない
set surface 3次元で等値面を表示
set pm3d カラー表示する
set cbrange[0:1] カラーバーの表示範囲を0~1に固定
以下でファイルを読み込み,3次元表示
splot 'f0.00.txt' using 1:2:3 with line title "t=0.00s"
...
splot 'f1.00.txt' using 1:2:3 with line title "t=1.00s"
57. gnuplotによる結果の表示
2015/07/01GPGPU実践プログラミング58
スクリプトanim_2d.gplの内容
set xrange [‐0.5:0.5] x軸の表示範囲を‐0.5~0.5に固定
set yrange [‐0.5:0.5] y軸の表示範囲を‐0.5~0.5に固定
set zrange [0:1] z軸の表示範囲を0~1に固定
set view 0,0 真上から見下ろす
set size 1,1 グラフの縦横比を1:1
set contour 2次元等高線を表示
unset surface 3次元で等値面を表示しない
unset pm3d カラー表示しない
set cntrparam levels incremental 0,0.1,1
等高線を0から1まで0.1刻みに設定
以下でファイルを読み込み,3次元表示
splot 'f0.00.txt' using 1:2:3 with line title "t=0.00s"
...
splot 'f1.00.txt' using 1:2:3 with line title "t=1.00s"