二次元流体シミュレーターVer-314を開発しました
こんにちは,UMUです.
今日は定例会ですね.新歓などの関係もあって3月下旬の発表から何も作ってないなと思い,二次元流体シミュレータを作ってみました.
矩形内に流体の速度を固定したりすることで流体感が出ます.
計算誤差とか何も考えずに差分法で実装しましたが,意外に綺麗になりました.以下,いろいろ計算結果の動画です.
グラフの見方:
左図:X方向の流体速度 右図:Y方向の流体速度
色は,赤ほど正,青ほど負となるようになっています.
たとえば,左図の赤い所は,X正方向に強い流れがあることを示します.
(左と右が両方青い時は左上に流れているということですね.)
▽動画
最後のやついいかんじ
理論
数値計算の理論は(割とテキトーなので)省きます
この流体シミュレータで用いた式は無次元化されたナビエストークス方程式(以下)です.
\[\frac{\partial v}{\partial t} + (v \cdot \nabla)v = -\nabla p + Re^{-1} \nabla ^2 v \]
左から,慣性項,移流項,圧力項,粘性項です(Reはレイノズル数)が,誤差お関係から粘性項がなくても拡散が起こってしまいます(数値拡散).次回があれば,数値拡散を抑える方法をやってみたいと思います.
おしまい.
余談
定例会のために何かひねり出した結果がこれ.22時に帰ってきてその後の作業はきついということがわかった.