OpenFOAM

【粒子追跡ソルバで粒子径を正規分布に!】OpenFOAMのMPPICFoam粒子追跡の設定

こんにちは(@t_kun_kamakiri

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

今回は粒子直径の大きさが一様な設定ではなく、粒子径分布を持たせたい場合の設定について解説します。
例えば、粒子直径をある平均値まわりで正規分布にさせたい場合などがあります。そういった場合に役に立つ記事となります。

今回の記事

OpenFOAMの粒子追跡において粒子径分布を持たせた設定にする方法を解説

OpenFOAM v2412(WSL2)

チュートリアルの確認

今回はMPPICFoamを例に粒子径分布の設定を確認します。

MPPICFoamは粒子間相互作用をマクロで近似する手法で通常の粒子間衝突の計算よりは高速です。
チュートリアルを作業フォルダにコピーします。

$FOAM_TUTORIALS = /usr/lib/openfoam/openfoam2412

OpenFOAMの粒子追跡はMPPICFoam以外にも以下のソルバがあります。

ソルバ名 主な用途・特徴
DPMFoam 単相流体中の粒子の運動を解く(Discrete Phase Model)
MPPICFoam 多数粒子の相互作用を扱う連続体近似粒子法(MP-PIC 法)
MPPICDyMFoam MPPICFoamに移動メッシュ(Dynamic Mesh)を加えたバージョン
coalChemistryFoam 石炭燃焼と粒子の化学反応を扱うソルバ
icoUncoupledKinematicParcelFoam 非圧縮流体中の運動粒子(運動の影響を流体に与えない)の解法
icoUncoupledKinematicParcelDyMFoam 上記に動的メッシュ(DyM)機能を追加
kinematicParcelFoam 運動粒子と流体との双方向連成を含むモデル
uncoupledKinematicParcelDyMFoam 粒子運動は流体に影響を与えない+動的メッシュ
reactingParcelFoam 粒子が化学反応・蒸発するモデル(例えば液滴燃焼)
reactingHeterogenousParcelFoam 表面反応などの異種反応を含む粒子の化学反応モデル
simpleReactingParcelFoam 簡易モデルによる粒子反応(例えば簡略化した燃焼モデル)
sprayFoam スプレー(粒子の噴霧)と蒸発・反応などを考慮した燃焼モデル

粒子に関係するファイルを確認します。

まずは粒子の初期配置の設定を確認します。

constant/kinematicCloudPositions

上記の設定を以下のファイルで設定します。

constant/kinematicCloudProperties

粒子径分布はsizeDistributiontype fixedValue;の部分で設定しています。
チュートリアルのデフォルトでは一定値0.0025[m]の粒子径が設定されています。

ちなみにpositionsFile "kinematicCloudPositions"; で先ほどの粒子の初期配置の設定ファイルを指定しています。

チュートリアルの計算を実行し、粒子径分布を確認してみましょう。

計算結果は以下のようになります。

ちなみに粒子径の分布各時刻で出力されており、例えば0.01/lagrangian/kinematicCloud/dを確認すると以下のように書かれています。

これは全ての粒子直径が0.0025 [m]となっているという意味です。

粒子径がすべての粒子で同じなので、粒子径のコンタの色は同じ色になっています。

いろいろな粒子直径分布

粒子直径の設定はこちらに書かれております。

クラス名 分布の種類 数式(PDFなど) 説明
binned 離散分布 —(個別のサイズと確率ペア) (サイズ, 確率)の離散データからサンプリング
exponential 両側切断指数分布 $f(x) = \frac{\lambda e^{-\lambda x}}{e^{-\lambda x_{\min}} – e^{-\lambda x_{\max}}} \quad (x_{\min} \le x \le x_{\max})$ 切断付きの指数分布
fixedValue 定値 単一サイズの粒子
general 任意分布(PDF/CDF) 任意の関数形で与えた分布 (補間で定義)
massRosinRammler 質量補正Rosin-Rammler $f(x) = \frac{n}{x} \left( \frac{x}{x_0} \right)^n \exp\left( -\left( \frac{x}{x_0} \right)^n \right)
$(補正あり)
固定質量パーセルに対応した補正付き分布
multiNormal 正規分布の混合 $f(x) = \sum_{i=1}^k w_i \cdot \frac{1}{\sqrt{2\pi \sigma_i^2}} \exp\left(-\frac{(x – \mu_i)^2}{2\sigma_i^2} \right)$ 複数の正規分布の加重和
normal 両側切断正規分布 ※ $$z = \frac{x – \mu}{\sigma}$$ 切断正規分布、正規化あり
RosinRammler 両側切断Rosin-Rammler $f(x) = \frac{n}{x} \left( \frac{x}{x_0} \right)^n \exp\left( -\left( \frac{x}{x_0} \right)^n \right) \quad (x_{\min} \le x \le x_{\max})
$
粒子サイズ分布で一般的な関数
uniform 両側切断一様分布 $f(x) = \frac{1}{x_{\max} – x_{\min}} \quad (x_{\min} \le x \le x_{\max})$ 等確率の単純な分布

全てを解説しきれませんので、今回は粒子径分布が正気分に従う場合を見てみます。

粒子径分布が正規分布に従う場合

  • 平均値:$\mu=0.00025$
  • 標準偏差:$\sigma=0.00025$
  • 最大・最小:0.001、0.005

\begin{align*}
f(x) = \frac{1}{\sigma \sqrt{2\pi}} \cdot \frac{\exp\left(-\frac{(x – \mu)^2}{2\sigma^2} \right)}{\Phi(z_{\max}) – \Phi(z_{\min})} \quad (x_{\min} \le x \le x_{\max})
\end{align*}

constant/kinematicCloudProperties

再度計算すると粒子径分布のコンタの色が変わります。

粒子径の分布各時刻で出力されており、例えば0.01/lagrangian/kinematicCloud/dを確認すると以下のように書かれています。

こちらをPythonスクリプトでヒストグラムにしますと以下のような正規分布に近い形になります。

うまく粒子径分布の設定ができていますね。

参考までにヒストグラムにした際に使用したプログラムを書いておきます。

まとめ

今回はMPPICFoamで粒子径分布を正規分布にする方法を解説しました。
MPPICFoamに限らず他のソルバでも共通してconstant/kinematicCloudPropertiesnのような設定が必要ですので、その他の粒子追跡用のソルバにも適用できるでしょう。

粒子追跡に関する詳しい解説はこちらの書籍にのっています。
Foundation版のOpenFOAMの解説ですので、本書で解説したESI版とは少し設定が異なりますが、全く参考にならないのかというとそうではなく、むしろ重宝しています。

OpenFOAMライブラリリファレンス

OpenFOAMライブラリリファレンス

株式会社テラバイト, 人見 大輔
16,500円(07/02 04:04時点)
Amazonの情報を掲載しています

計算力学技術者のための問題アプリ

計算力学技術者熱流体2級、1級対策アプリをリリースしました。

  • 下記をクリックしてホームページでダウンロードできます。
  • LINE公式に登録すると無料で問題の一部を閲覧できます
    ※LINEの仕様で数式がずれていますが、アプリでは問題ありません。

OpenFOAMに関する技術書を販売中!

OpenFOAMを自宅で学べるシリーズを販売中です。
OpenFOAM初学者から中級者向けの技術書となっていますので、ぜひよろしくお願いいたします。

次回の技術書典18に向けて内容を考え中です。
乞うご期待!!

見出し画像

おすすめ参考図書

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

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

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

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

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

OpenFOAMプログラミング

OpenFOAMプログラミング

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

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

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

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

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

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

関連記事もどうぞ

COMMENT