5次精度有限差分MHDコード開発

最近になってようやく, 有限差分法と有限体積法の高次精度化について真面目に考えるようになりました.
流行りの5次精度で, 有限差分(だけどフラックス補間じゃない!)のコードを書いたので, そのメモ書きのページ.

コード概要

概要というか, 採用しているスキームの一覧みたいなもの.

プログラムの流れは以下の通り.
  1. メッシュの生成, 初期条件の設定
  2. 3次精度 TVD Runge-Kutta ループ開始
  3. CFL条件から時間ステップを決定
  4. Runge-Kutta サブサイクル開始
  5. cell-center から face-center へ基本量を補間 (WENO+MP5)
  6. face-center で HLL フラックスを計算
  7. face-center の電場を edge-center へ補間 (WENO+MP5+HLL)
  8. point value のフラックスと電場を numerical flux に変換
  9. 保存量を更新
  10. 保存量から基本量に変換
  11. face-center の磁場を更新
  12. 磁場を face-center から cell-center へ補間
  13. 境界条件
  14. サブループ終了. 2 または 4 に戻る

Error Convergence Check

1次元と2次元で精度チェックをした結果. ちゃんと5次精度出てるように見える. Fast Wave の精度が落ちているのは時間精度のせい(3次). 高解像度でフラットになっているところが丸め誤差レベル.

This page is under construction

少しずづ書き足します.
数式テスト:

\( e^{i\theta} = \cos\theta + i \sin\theta \)