流体力学

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

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

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

格子ボルツマン法が何かはさておき、シミュレーションしてから理解するという所謂「形から入る」ということで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コードを実行

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

 

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

 

結果

まとめ

 

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

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

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

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

セルオートマトン法―複雑系の自己組織化と超並列処理

セルオートマトン法―複雑系の自己組織化と超並列処理

恭義, 加藤, 洋, 築山, 友孝, 光成
発売日: 1998/11/01
Amazonの情報を掲載しています

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。