OpenFOAM

【OpenFOAMで流速と粒子直径のパラスタ】キャビティ流れをマッピングして粒子追跡

こんにちは(@t_kun_kamakiri

前回の記事では粒子追跡の設定について解説しました。

今回は流速と粒子直径をパラメータとしたパラメータスタディをPythonを用いて実行する方法を解説します。

今回の記事

Pythonを用いて粒子追跡解析(OpenFOAM)のパラメータスタディを行う

この記事を読むことでPythonを使ったOpenFOAMのパラメータスタディの基礎がわかるでしょう。

本記事のケースフォルダはgithubに公開しています。

OpenFOAM v2412(WSL2)

解析の対象

解析の対象はキャビティ流れで作った流れに乗って粒子が運動する粒子追跡解析モデルです。

キャビティ流れは流速を求めるための非定常解析を行い、得られた最終時刻の流速に乗って粒子が運動するというone-wayカップリングです。

パラスタのフォルダ構成

最終的なフォルダ構成は以下となっています。

 

  • orgCase:オリジナルのフォルダ
  • 001_cavity:キャビティ流れ
  • 002_particle:粒子追跡

このようにオリジナルのフォルダにはキャビティ流れ解析用と粒子追跡解析用の2つのフォルダを用意して別々で解析する構成にしています。

オリジナルモデルの作成

パラメータスタディするにあたっては、オリジナルのフォルダを計算できる状態に整えておく必要があります。

詳細は以下の記事に書いておりますが、本記事でも復習として簡単に流れを書いておきます。

パラメータスタディ用のフォルダを作成し、フォルダ移動を行います。

オリジナルフォルダを作成し、フォルダ移動を行います。

次にキャビティ流れと粒子追跡用のチュートリアルをコピーします。

キャビティ流れの計算

まずはキャビティ流れの計算実行ができる状態にします。
フォルダ移動を行いblockMeshでメッシュ作成だけを行います。

キャビティ流れのAllrun.icoFoamスクリプトを作成します。

Allrun.icoFoam

これでキャビティ流れができる状態になります。

粒子追跡の計算

粒子追跡の方にフォルダ移動します。

メッシュ情報が異なるのでキャビティ流れのメッシュ情報をコピーします。

またキャビティ流れの境界条件もコピーします。

キャビティ流れの0.5秒での流速分布と圧力分布をマッピングします。

mapFieldsによってキャビティ流れの最終状態を今から解析する粒子追跡の流速分布の初期状態として使うことができます。

ParaViewで初期状態の流速分布を見てみましょう。

キャビティ流れの流速分布が初期状態としてマッピングされています。
次に粒子の配置について設定を行います。

constant/kinematicCloudPositions

続いて粒子の設定についてです。
ここでは、粒子の密度や力の種類、壁との接触の定義などを行います。細かい設定内容についてはこだわらずほとんどデフォルトのままいきます。

constant/kinematicCloudProperties

設定が終わりましたので、計算実行します。
※必要に応じて「system/controlDict」で計算時間の設定を変えれば良いです。

Allrun.icoUncoupledKinematicParcelFoamのスクリプトを以下とします。

Allrun.icoUncoupledKinematicParcelFoam

以上でキャビティ流れの流速に乗って運動する粒子追跡の計算が実行できるようになりました。

Allrunスクリプト

では、001_cavityと002_particleを連続で実行できるようにします。
orgCaseフォルダに移動します。

そして、Allrunスクリプトを以下とします。

試しにAllrunを実行して正常に動作するかを確かめてください。
ParaViewは確認すると以下のようになっているでしょう。

PyFoamによるパラメータスタディ

ここからPythonを使ったOpenFOAMのパラメータスタディを行います。

全体のプログラムは以下としています。

ここでは、キャビティ流れの流速U_list = [0.5, 1.0, 2.0, 3.0, 4.0, 5.0]と粒子直径 d_mean_list = [0.005, 0.01, 0.02, 0.03, 0.04, 0.05]をパラメータにしています。

本記事ではjupyter labを起動して実行しています。

技術書典でパラメータスタディ用の解説あり

技術書典17で出典でもOpenFOAMのパラスタの解説を行っていますので、是非手に取ってみてください。

内容はブログ書いているOpenFOAMの内容を元に、対象を「2次元円柱内流れ」として、

  • カルマン渦の生成
  • レイノルズ数と抗力係数の関係
  • レイノルズ数とストローハル数
  • ポテンシャル流れと粘性流体の圧力係数の違い
  • 力学的相似性
  • Pythonを使ったパラメータスタディ

などなど、モデル作成からグラフ作成までの一連の流れをまとめたものになります。
ページ数は140ページです。

↓内容のチラ見せ

まとめ

今回の記事では、OpenFOAM を用いた粒子追跡解析において、流速と粒子直径という2つのパラメータを変化させたパラメータスタディの実施方法を、PythonとPyFoamを使って自動化する手法を解説しました。

本記事のケースフォルダはgithubに公開しています。

次回の記事では、PyVistaを用いて、生成された VTK ファイルから解析結果の画像を自動生成するプログラムについて解説する予定です。

おすすめ参考図書

☟こちらは、OpenFOAMの日本語書籍が無い中唯一わかりやすい参考書だと思います。

OpenFOAMによる熱移動と流れの数値解析(第2版)

OpenFOAMによる熱移動と流れの数値解析(第2版)

3,520円(02/21 15:46時点)
Amazonの情報を掲載しています

☟こちらもOpenFOMの古いバージョンでの和訳になります。さすがにこちらはバージョンに対する日本語でのケアはしていないので、OpenFOAMに慣れている方は購入しても良いかと思います。僕は「日本語でまとまっている内容」なので少し重宝しています。

OpenFOAMプログラミング

OpenFOAMプログラミング

Mari´c,Tomislav, H¨opken,Jens, Mooney,Kyle
8,250円(02/21 18:03時点)
Amazonの情報を掲載しています

☟以下に、もっと初心者向けの同人誌を紹介しておきます。
初心者は「ってか、まずどうやってOpenFOAMをインストールするの?」というところからつまずきがちです。
そんな時は、以下の書籍をおすすめします。

改訂新版 OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

改訂新版 OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

川畑 真一
1,320円(02/21 17:58時点)
発売日: 2022/04/15
Amazonの情報を掲載しています

インストール方法とチュートリアルで流体解析を体験・・・ちょっと高度な解析まで解説があります。著者曰くOpenFOAMのバージョンの追跡を行いながら、書籍をアップデートするようなので安心ですね。

関連記事もどうぞ

COMMENT