平林孝太@東京大学研究のはなし、個人的なメモ書きなどのページになる予定です。。。 |
5次精度有限差分MHDコード開発
最近になってようやく, 有限差分法と有限体積法の高次精度化について真面目に考えるようになりました.
流行りの5次精度で, 有限差分(だけどフラックス補間じゃない!)のコードを書いたので, そのメモ書きのページ.
コード概要
概要というか, 採用しているスキームの一覧みたいなもの.
- 5th-order WENO interpolation (NOT reconstruction)
- Monotonicity preserving limiter
- HLL approximate Riemann solver
- HLL upwind CT (combined with flux-CT)
- Conversion from point value to numerical flux
- 3rd-order TVD Runge-Kutta integration
- メッシュの生成, 初期条件の設定
- 3次精度 TVD Runge-Kutta ループ開始
- CFL条件から時間ステップを決定
- Runge-Kutta サブサイクル開始
- cell-center から face-center へ基本量を補間 (WENO+MP5)
- face-center で HLL フラックスを計算
- face-center の電場を edge-center へ補間 (WENO+MP5+HLL)
- point value のフラックスと電場を numerical flux に変換
- 保存量を更新
- 保存量から基本量に変換
- face-center の磁場を更新
- 磁場を face-center から cell-center へ補間
- 境界条件
- サブループ終了. 2 または 4 に戻る
Error Convergence Check
1次元と2次元で精度チェックをした結果. ちゃんと5次精度出てるように見える. Fast Wave の精度が落ちているのは時間精度のせい(3次). 高解像度でフラットになっているところが丸め誤差レベル.
This page is under construction
少しずづ書き足します.
数式テスト:
\( e^{i\theta} = \cos\theta + i \sin\theta \)