ITPASS実習レポート2
馬殿彩奈
joho11
問題1
問題1.A 風上差分への書き換え
■実習で用いたRubyスクリプトから、書き換えた点は以下のとおりです。
116~117行目
# du / dx (2 次の中心差分)
dudx = (u.sft(1) - u.sft(-1)) / (2*dx)
↓ ↓ ↓
116~122行目
# du / dx (2 次の風上差分)
# c>=0の場合
if ( c >= 0 )
then dudx = (u.sft(0) - u.sft(-1)) / (dx)
# c<0の場合
else dudx = (u.sft(1) - u.sft(0)) / (dx)
end
■スクリプトのURL
qa.txt
■スクリプトの使い方の解説
ruby qa.rbを実行する。
■実行結果へのリンク
cの値が正の場合
cの値が負の場合
■参考資料
7/27の実習資料を参考に致しました。
■共同作業した人の名前
特になし。
■工夫したこと、感想
初めcの値がマイナスの時の結果が上手くいきませんでした。
()が[]になっていることにもっと早く気づくべきでした。
問題1.B 安定なパラメータ条件の確認
・dtの値がdx/cよりわずかに大きい場合
m = 32 * 11 # 格子点数
l = 2 * Math::PI # 系の大きさ
c = 1 # 移流速度
dx = l / m # 格子の間隔
dt = dx / c + 0.001 # 時間ステップ
nt = 100
nt_out = 5
実行結果
・dtの値がdx/cよりわずかに小さい場合
m = 32 * 11 # 格子点数
l = 2 * Math::PI # 系の大きさ
c = 1 # 移流速度
dx = l / m # 格子の間隔
dt = dx / c - 0.001 # 時間ステップ
nt = 9000
nt_out = 300
実行結果
■参考資料
パラメータを決定する際に、他の実習生のレポートを参考に致しました。
■共同作業した人の名前
特になし。
■工夫したこと、感想
dtの値が、dx/cよりもわずかに小さいということが安定なパラメータの条件であるという予想が視覚的にできました。