高校物理、大学受験、大学物理、プログラミングの記事を書きます。

Pythonを用いて格子ボルツマン法 流体の数値計算

2019/09/16
 
この記事を書いている人 - WRITER -

格子ボルツマン法って何でしょうか?

僕は詳しくありません(笑)

 

格子ボルツマン法が何かはさておき、シミュレーションしてから理解するという所謂「形から入る」ということでPythonを用いてシミュレーションのソースコードを走らせてみました。

こちらのURLを参考にしています。
>>格子ボルツマン法のソースコード入手先

 

スポンサーリンク

目的

 

とりあえずPythonを用いて格子ボルツマン法で流体の数値計算を実行してみます。

>>こちらにドキュメントもありますので詳しく知りたい方はどうぞ。(英文だが)

やることは、

>>格子ボルツマン法のソースコード入手先よりPythonのソースコードを入手。

Pythonのソースコード(Python2系)をPyhon3系に修正

外部モジュール(numpy、matplotlib)のインストール

Pythonの実行

環境

 

Windows10
Python3.6.4
(コマンドプロンプトからpythonを起動)

Pythonのインストール

Pythonはこちらからインストールできます。
https://qiita.com/taiponrock/items/f574dd2cddf8851fb02c

 

外部ライブラリのインストール

本記事のソースコードをPythonで実行するには以下の2つの外部モジュール(numpy、matplotlib)がインストールされている必要があります。

以下にインストールするにあたってわかりやすいサイトを添付しておきますので、これを参考に外部モジュールをインストールすることでコマンドプロンプトからPythonの計算が実行できます。

numpyのインストール

https://qiita.com/kenichi-t/items/7319b3876ae7f0d3817c

matplotlibのインストール

https://qiita.com/Morio/items/d75159bac916174e7654

 

Pythonコードの修正(Python2系→Python3系)

 

Pythonのソースコードを走らせてみたいと思うのですが、http://physics.weber.edu/schroeder/fluids/のPythonコードは2系で書かれています。

最近のPythonはバージョンアップされているため、例えばPython3.6.4(Python3系)で実行するためには、少し修正が必要となります。

Python2系を扱ったことがないので、詳しくは知りませんが以下の修正を行うことでPython3系でも正常に計算実行できます。

 

修正その1

【修正前】

これでは配列部分が実数になるので、以下のように整数型になるように修正する必要があります。

【修正後】

 

修正その2

 

【修正前】

これはpython2系の書き方である。python3系では以下ののように()でくくる必要があります。

【修正後】

 

修正が終わったので、コマンドプロンプトを起動して、以下をタイプして計算実行してみましょう。
※ファイルの保存の際は、文字コードはUTF-8を選択

 

格子ボルツマン法のPythonコードを実行

 

コマンドプロンプトを立ち上げて以下を打ち込みます。

 

サンプルコードは以下に示します。(余計なコメントが多かったので、シンプルにしました。)

 

結果

 

 

まとめ

 

雛形のコードを修正するだけですぐに実行できました。

格子ボルツマン法の理解はまだできていないので、ドキュメントを読んで別途投稿しようと思います。

速度空間という考え方がキーになると思われます。

また、もともとはセルオートマトン法という考え方から来ていると思われますが勉強しないとわかりません(- -)

この記事を書いている人 - WRITER -

コメントを残す

Copyright© 宇宙に入ったカマキリ , 2018 All Rights Reserved.