Fortran 数値計算 流体力学

【数値計算】二次元キャビティ流れのCFDコード構築

2020年7月21日

 

 

こんにちは、ぴよ工房を運営しているぴよ(@piy0_gadget)です!

この記事では、

  • 二次元キャビティ流れの概要
  • CFDコードの構築
  • 結果の比較

について話していきます。

 

本記事では過去の記事である『二次元チャネル流のCFDコード構築』で作成したプログラムコードを用いて、二次元キャビティ流れを計算していきます。

このチャネル流のコードを基にして二次元キャビティ流れを計算するので、先にチャネル流の記事を見てから取り組むと理解がしやすいかと思います。

【即実装】二次元チャネル流のCFDコード構築【コード例付き】

  こんにちは、ぴよ工房を運営しているぴよ(@piy0_gadget)です! この記事では、 二次元チャネル流のCFDコード構築 の解説をしていきます。 本記事の一番の目的は『即実装』です! ...

続きを見る

とは言ってもやることは凄く単純なので、チャネル流のコードが出来ていれば10分程度で計算できると思います。

計算した結果について妥当性の検証もしているので、ぜひ自分で計算した結果も検証してみて下さい。

なお、本記事のコードはFortranで作っています。

それではやっていこー!!

キャビティ流れとは

まずはキャビティ流れの概要図を載せておきます。

 

図を見て分かるように、左右と下側が壁で覆われており、上側を流体が左から右へと流れていきます。

キャビティ流れはCFDにおいて基本的な流れとして扱われることが多く、身の回りによくある流れらしいです。

キャビティ流れの例を考えていたんですけど、住宅地とかもキャビティ流れの一つになるかなーと思いました。本記事のアイキャッチみたいな雰囲気です。

本当にそうなのかは知りませんが・・・笑

CFDコードの構築

それではCFDコードを構築していきます。

とは言っても計算領域や格子、初期条件と境界条件をちょこっと変更するだけなので簡単です。

基本となるコードはGithubからダウンロード出来るので、もしコードが無い場合はここから入手して下さい。

 

 

計算領域と格子数

計算領域と格子数は下記のようにして下さい。

領域は計算の検証をしたく、検証の結果と条件を合わせるためにこの領域にしました。

格子数は適当ですが、だいたいこの程度かなって感じです。(多いと計算負荷が大きくなるので・・・)

 

初期条件と境界条件

初期条件は、初めは流れが無い状態にしたく下記のように定義しました。

 

また境界条件に関しては、壁面では速度が0となり、上側だけ流体が流れるように与えます。

これにて計算の準備が出来ました!

さて計算を回して結果を見てましょう!!

と言いたいですが、パラメータを少しいじります。
このままだと不十分ですので・・・。

計算打ち切りステップ数を5000、レイノルズ数を100、刻み時間を0.001にします。
変更するパラメータは以下の通りです。

ステップ数は刻み時間が小さいため、定常状態に至るまでには時間がかかるため計算打ち切りステップ数を大きめにしました。

刻み時間を変更したのは、大きいと計算が発散してしまうためです。
実際、刻み時間を0.01で計算したところ発散してしまいました・・・。

レイノルズ数を100としたのは比較する結果と計算条件を合わせたかったからです。

 

それでは計算を回してみましょう!!

計算結果

定常状態になったときの流れ方向速度Uの可視化を載せます。

 

いやー、やはり可視化すると綺麗で気持ちいいですね。

可視化はParaviwを使っています。フリーですが多機能で非常に便利です。とてもお世話になってます。

妥当性の検証

結果は出てきましたが、妥当性の検証をしないと正しいかどうか分からず夜も寝れませんよね。

妥当性の検証として下記のサイトを参考にして結果を比較しました。

 

結果の比較は領域中心のおける主流方向速度の鉛直分布で行いました。

 

良い感じに一致をしていますね!
yが小さいところで若干ずれているのは気になりますが、大体の傾向は捉えられているので良さそうです。

より精度をよくしようとするなら、流れを三次元的にしたり時間積分をルンゲクッタ法を使ったりですかね。

兎にも角にも、これで結果の妥当性の検証が出来ました!!

まとめ

本記事では『二次元キャビティ流れのCFDコード構築』を行いました。

過去の記事で雛型のコードは作ってあったので、実装自体は簡単に出来たと思います。

今回のように雛型のコードさえあれば境界条件を変えて遊ぶことが出来ます。
他にも格子をスタガード格子に変更してみたりと、自分なりにカスタマイズ出来る箇所は幾つもあります。

【数値計算】スタガード格子の差分法【サンプルコード付】

  こんにちは、ぴよ工房を運営しているぴよ(@piy0_gadget)です! この記事では、 格子のメリット・デメリット スタガード格子の差分法 計算コードの構築 について話していきます。 ...

続きを見る

ぜひ、たくさん遊んでみて下さいね。

 

僕も色々と画策中ですので、今後の記事をお楽しみに!

Twitter(piy0_gadget)もやっているので是非フォローしてね!
疑問があればリプやDMで気軽にどうぞ!

https://twitter.com/piy0_gadget/status/1263602395478495237?s=20

 

-Fortran, 数値計算, 流体力学

© 2020 ぴよ工房 Powered by AFFINGER5