Transcript j=1

■ 陰解法による計算結果
基礎方程式
x
第14回
プログラミング実習
2007.07.30
■ 達成目標と学習・教育目標
v差分法を用いた初歩的な数値計算について,
FORTRANによるプログラミングができる(目標H)
■ 差分スキームの補足
▼ Friedrichs-Lax 法
▼ Fromm 法
■ プログラムの流れ
変数の設定,型宣言
必要な変数は書き出しておく
クーラン数の設定
初期条件の設定
クーラン数は変更できるように
差分法による計算
配列を使って繰り返し計算
計算結果の出力
まずは最終結果を!
■ 課題の提出について
• プログラムリスト
• 結果のグラフ
• 課題に対する解答
以上をまとめてファイルで提出
※ファイル名:半角英数字で学籍番号
※提 出 先:計算力学のシェアフォルダ
※期日までに提出されたレポートのみ受け取る
■ 風上差分法のプログラム
n:時間ステップ, j:空間刻み, v:クーラン数 として,
do 10 n=1, nmax
do 20 j=1, jmax
f(j,n+1)=f(j,n)-v*(f(j,n)-f(j-1,n))
20
continue
10 continue
このプログラムで正しく計算できるか?
■ 境界条件について
ex. 風上差分
j=1
j=1
j=1
j=0
計算領域の左端(x軸上の最初の格子点)における f の値
は計算しない. → 境界条件として与えてしまう.
※初期分布として設定した f1 の値を使えばよい.
■ 風上差分法のプログラム(改良版)
n:時間ステップ, j:空間刻み, v:クーラン数 として,
do 10 n=1, nmax
do 20 j=2, jmax
f(j,n+1)=f(j,n)-v*(f(j,n)-f(j-1,n))
20
continue
10 continue
※ 境界条件( j = 1)を考慮する
■ ファイル出力
2次元の配列 : f(j,n),j=1~5,n=1~3
について,その値をファイル出力する場合
open(1,file=’out.dat’,status=’new’)
do 10 n=1, 3
write(1,100)( f(j,n),j=1,5 )
10 continue
close(1)
100 format( 5(f6.2) )
■ ファイル出力
j=1
n=1
n=2
n=3
j=2
j=3
j=4
j=5
f(1,1) f(2,1) f(3,1) f(4,1) f(5,1)
f(1,2) f(2,2) f(3,2) f(4,2) f(5,2)
f(1,3) f(2,3) f(3,3) f(4,3) f(5,3)
format( 5(f6.2) )
f6.2 : xxx.xx
5f6.2 : xxx.xxxxx.xxxxx.xxxxx.xxxxx.xx
■ 講義のまとめ
■ 期末試験について(8月6日実施)
v 試験範囲
第11回までの授業範囲.プリントの演習問題,
提出した課題を中心に復習しておくこと
v 注意事項
1.参考書,プリント等の参照は禁止
2.英和辞典 使用不可
3.計算機 使用不可
4.携帯電話 使用禁止
5.学習チェックシートを持参すること
(試験終了後に回収します)