熱対流問題を計算するプログラム

熱対流の数値計算を行なうプログラムです。 性懲りも無くまたやってしまいました。 とりあえず作ってみたんですが、こういう分野は未だ FORTRAN が現役で、C言語で記述されたものは意外と 公開されていない(?)ので公開しました。とはいっても 解法はいちばん単純なFTCSのオイラー陽解法です。 研究などで利用される方、分かる方は使ってください。 実装はかなりプリリミナリですが、そこらへんの 数値計算の書籍に付録してあるプログラム より多少はマシかもしれません(と願いつつ...)。

アーカイブを展開するときは、フォルダを1つ作って、その中で展開してください。

熱対流問題を計算するプログラム(170KB)

熱対流問題を計算するプログラム その2(30KB)

熱対流問題を計算しつつアニメーション表示するプログラム(154KB)

ついでにキャビティ問題を計算するプログラム(71KB)

上のプログラムには実行ファイルが含まれています。 トレンドマイクロ社の オンラインスキャンではウイルスは検出されませんでしたが、不安な方は アーカイブ展開後実行ファイルを削除し、ご自分でコンパイルを行なってください。 なお、開発環境はGCCです。

トップへ戻る


以下、熱対流(自然対流)問題について簡単に説明します。

扱う問題はこんな感じです。非圧縮粘性流体を考えています。

基礎方程式は無次元化するとこんな風になります。

さらに、2次元で計算する場合は渦度−流れ関数法に基づいて、ポアソン方程式:

および渦度輸送方程式:

を用いて解く手法が多く使われています。あと熱対流なので、温度に関する式が必要です:

まとめると、ポアソン方程式で流れ関数、渦度輸送方程式で渦度、エネルギ方程式 で温度場を計算します。詳しくはプログラムを見てください。


(等高線表示に AV似非 (C)おりいる氏 を使用させていただきました)

以下、Ra=15000, Pr=7.1 で計算したアニメーション表示のスクリーンショットです。 縦横比が1:1になっていませんが、正方形での計算です (いつものクセでうっかり画面の width と height を変えてしまいました)。 上でダウンロードできるアニメーションプログラムは width : height = 1 : 1 に修正しました。


計算しはじめ。2つの渦がたがいに逆向きにまわる。


少し渦がくずれてきた。


渦がだいぶくずれてきた。


片方の渦がもう片方に負けてしまうかんじ。


完全に1つの渦になってしまった。


(C) Ki 2002, 2003