5月度その16:太陽磁極の逆転を追う ➡ MHDシミュレータ ➡ 一次元問題とは何か?を問う!
太陽磁極の逆転を追う ➡ MHDシミュレータ ➡ 一次元問題とは何か?を問う!
* という訳で、OpenMHDのリーマン問題にて、一次元問題の取扱をソースレベルで調べる。
OpenMHD開発元・神戸大学・銭谷先生によれば、セルの基本量とは:
密度ρ(ローと読む)、速度v、全圧力p(これはピー)、磁束B、の4個となっていて、ここで、速度vと磁束Bがベクトル。
前回の記事、5月度その15:にて、
* 圧力pのシミュレーション結果は、
* 密度ρのシミュレーション結果は、
* 速度vのシミュレーション結果は、
・ x成分のVxについて:
・ y成分のVyについて:
・ z成分のVzはゼロ。
* 磁束Bでのシミュレーション結果は、
・ x成分のBxはゼロ
・ y成分のByは:
・ z成分のBzはゼロ
* 私は、一次元の意味を取り違えていました! 流体力学における有限体積法の要素であるセルとは、体積・三次元であり、これを一列に並べるモデルの事を一次元モデルと称していたのか!
OpenMHDのリーマン問題ソースを見ると:
ix = 300 + 2 ⬅ 一次元の長さ、+2 は境界条件設定用の袖
jx = 1 ⬅ 二次元の長さ
これを二重ループさせているので、一次元配列のセルとなっている(fortranの配列はゼロでなく1から始まる、知りませんでした)。
* 初期条件はどうなのだろうか?
上記のgifを見れば:
・ 圧力に関しては、t=0にて、Xマイナス側で1.0、Xプラス側で0.1
・ 密度に関しても、t=0にて、Xマイナス側で1.0、Xプラス側で0.1
・ 速度に関しては、t=0にて、x,y,z成分オール・ゼロ
・ 磁束に関しては、t=0にて、y成分について、観測者にとって、Xマイナス左側でN極性1.0、Xプラス右側でS極性1.0
となっている。
OpenMHDはMHDとしては汎用シミュレータなので、上記の初期条件を与えれば、X=0近傍でリーマン応答をする、というのは私にとって驚き、です。
* 圧力、密度に見られる「膨張波と接触不連続が後方に、衝撃波が前方に伝搬する動き」や速度、磁束に見られる「独特な動き」は何なのだろうか?
これは中間状態を取り入れた複雑なリーマンファンを理解する必要がありそうで、ブログに載せるには複雑に成り過ぎるので、ブログ掲載は止めます。
* 境界条件は以前にも述べたように、対象境界で、かつ袖の長さは1。
* シミュレーションを進める時間ピッチ dt はどうなのだろうか?
dt = cfl * dx / vmax
で与えられており、cflは1より小さいクーラン数(無次元)、dxはセルの長さだろう、vmaxは速度上限だろう、これで次元は時間となる。 ダンプ等して確認した所:
clf : 0.8 ソースにて設定
vmax : 3.6585... 先頭初期設定後のダンプ値
dx : 0.003333... 先頭初期設定後のダンプ値
dt : 0.0007288... 先頭初期設定後のダンプ値
clfは別として、他の値は実行時にダイナミックに変更しているだろう(未調査)。
クーラン数とは、Wiki [CFL条件 - Wikipedia] より:
CFL条件またはクーラン条件とは、コンピュータシミュレーションの計算(数値解析)において、「情報が伝播する速さ」を「実際の現象で波や物理量が伝播する速さ」よりも早くしなければならないという必要条件のことである。
とあり、
離散格子系において波動を扱う場合に、その運動方程式の数値解を求める際に用いる時間ステップΔt の値は、実際の波動が隣り合う格子に伝達するまでの時間よりも小さくなければならない。もしΔt の値がその時間の上限を超えると、計算上の情報伝達速度が実現象の速さに追従できずに数値発散が生じてしまい、物理的に意味の無い解を得てしまう。格子の間隔Δx が小さくなると、時間ステップΔt の上限値も減少する。
であって、
情報が伝播する速さはΔx /Δt、実際の波の速さはCであるから
がCFL条件となる。この式を無限次元であるクーラン数 C Δt /Δx を使って、「クーラン数は1より小さくなければならない」と表現することもある。
cfl条件の設定には陽解法と陰解放とがあるそうで、ソースを見る限りは陰解放のように見えるが、現時点で自信はない。
* まだまだ調べなければならない事は数多くあるが、次回は二次元問題へと移動しよう。
最後までお読み頂きまして、誠にありがとう御座いました。