工学系大学院生のブログ

2人の大学院生による雑記ブログ

第11-2回 Local Time Stepping 法(内部反復)[julia]



第11-2回では、Local Time Stepping 法について説明します。



そもそも内部反復って何?という方は以前の記事を見てください。




一般座標系にかかわらず、内部反復の方法は変わりません。



ここで、説明するlocal time steppingは疑似時間刻み幅\(\Delta \tau\)を決める方法になります。


実際の計算では、内部反復を進めていった結果収束するならば疑似時間刻み幅は何でも問題ありません。


つまり、収束しやすい値の方がお得なわけです。


加えて、セルの大きさが大きければ、疑似時間刻み幅も大きい方が収束性があがります。



そのため、それぞれのセルに適した疑似時間刻み幅を設定する必要があります。





では、セル事に適切な値を設定する方法を紹介します。


参考論文は、最後に記載しています。



結論は次の通りです。

$$\Delta \tau_{i,j,k} = \frac{C_{cfl} V_{i,j,k}}{\lambda_{max}|_{i,j,k}}$$


ここで、\(C_{cfl},V\)はクーラン数、体積になります。


ただし、クーラン数\(C_{cfl}\)を自身で設定します。



また、\(\lambda\)は境界で定義される値で速度の情報を格納しています。

$$\lambda = |Z| + c + \frac{2 \mu}{\rho \Delta l}$$

$$Z=U \ or \ V \ or \ W$$

$$\Delta l = \Delta x \ or \ \Delta y \ or \ \Delta z$$


\(\lambda\)はそれぞれの方向により、決まります。\(c, \mu, \rho\)はそれぞれ音速、粘性係数、密度になります。



具体例を示します。



セル\(i\)と\(i+1\)の境界における\(\lambda\)を求めます。

$$\lambda_{i+1/2,j,k} = |U_{i+1/2,j,k}| + c_{i+1/2,j,k} + \frac{2 \mu_{i+1/2,j,k}}{\rho_{i+1/2,j,k} \Delta x_{i+1/2,j,k}}$$

$$\Delta x_{i+1/2,j,k} = x_1 + x_2$$

\(x_1, x_2\)は境界と中心の距離になります。その他の値は、算術平均で求めます。


以上をまとめて、疑似時間刻み幅をセル事に求めたらlocal time stepping法となります。




クーラン数\(C_{cfl}\)は経験的に使用されており、50~0.1程度なイメージがあります。


クーラン数を小さくすると計算は回ってくれますが、収束しないので注意してください。



0.1でも発散するなら物理時間刻み幅\(\Delta t\)を小さくするというイメージで計算しています。



次回はコードに落とし込みたいと思います。


*コードは第11-3回にあります。


by hide


Reference

L.P. Zhang, Z.J. Wang, A block LU-SGS implicit dual time-stepping algorithm for hybrid dynamic meshes, Computers & Fluids, Volume 33, Issue 7, 2004, Pages 891-916, ISSN 0045-7930,doi:https://doi.org/10.1016/j.compfluid.2003.10.004

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トラックバックURL: https://teru-hide.com/local-time-stepping-inner-iteration/trackback/
にほんブログ村 英語ブログへ
にほんブログ村