OpenFOAMのパーセルを使った粒子追跡計算

OpenFOAMのパーセルを使った粒子追跡計算

OpenFOAMのパーセルを使った粒子追跡計算





 OpenFOAMには、DEM(個別要素法)を使用した粒子追跡の機能があります。粒子追跡計算は粒子数が増えると計算時間が膨大になるため、複数粒子を1つの粒子(パーセル)として近似計算を行う、計算時間を短縮する機能が用意されています。

DEMにおける計算時間短縮の方法

 以前の記事、「流れの中の粒子を解く」でも紹介しましたが、DEMでは粒子数が多いと計算時間がかかります。これを回避する方法として、以下の対策があります。

1. GPUマシン等、高スペックのマシンを使用する
2. 粒子径を大きくした近似計算を行う

 2.に関して、OpenFOAMでは、複数粒子を1つの粒子(パーセル)として近似計算を行う機能があり(図1 )、これを使うことで計算時間の短縮が図れます。粒子数が多い場合に、粒子全体としてのふるまいを近似的に解析できる手法となっています。



パーセル径の決定方法

 OpenFOAMのパーセルの設定では、パーセル径はユーザが指定するのではなく、実粒子の径と空隙率、パーセル内の粒子数で決定されます。実粒子径と空隙率は計算対象によって決まるため、パーセル径の大きさはパーセル内の粒子数で調整します。図2にパーセル径と実粒子径、空隙率、パーセル内の粒子数の関係を示します。パーセル径を大きくすればするほど計算粒子数が少なくなり、計算時間の短縮が見込めますが、そのぶん解析精度は落ちるため、解析精度と計算時間の兼ね合いでパーセル径を決定します。

 ヤング率や反発係数、摩擦係数などのパラメータは実験結果と比較し、粒子のふるまいが実験結果と合うようにパラメータ調整を行う必要があります。この作業は、パーセルを使用して計算する、しないに関わらず、必要です。



パーセルを使った計算の設定

 OpenFOAMの粒子追跡計算は、constant/kinematicPropertiesファイルで設定します。前章で取り上げたパーセル径に関連する実粒子径、パーセル内の粒子数、空隙率のパラメータの設定項目を中心に解説します。

 実粒子径はinjectionMoldels内のsizeDistributionで設定します。一様分布や正規分布などの粒子径分布を設定することができます。

 パーセル内の粒子数は、同じくinjectionMoldels内のnParticleで設定します。もしくは、全投入粒子の質量(massTotal)と粒子の総発生体積、パーセルの発生数から、nParticleが計算されます。粒子の総発生体積の計算方法は、injectionModelのタイプごとに異なります。

 以下にinjectionMoldelsの設定例を示します。

injectionModels
    {
      model1
        {
            type            patchInjection;		//パッチから流入
            parcelBasisType fixed;
            patchName       inlet; 		//流入パッチ名
            U0              (0 0 -1); 		//初期粒子速度
            flowRateProfile constant 1; 		//投入粒子の体積流量
            SOI 0; 			//粒子投入開始時間
            duration 3; 			//粒子投入時間
            nParticle       10; 			//パーセル内の粒子数                              
            massTotal       0;			//fixedの場合はダミーの設定項目
            parcelsPerSecond 400;		//単位時間当たりのパーセル発生数
            sizeDistribution			//実粒子径の設定
            {
                type        fixedValue;		//粒子径一定
                fixedValueDistribution
                {
                    value   0.001;
                }
            }
        }
    }

 空隙率に関連するパラメータは、volumeFactorです。これをVFとすると、空隙率εとのあいだに次の関係式が成り立ちます。



 なお、 volumeFactorはCollisionModelで設定します。

パーセルを使用した計算例:ホッパー内を通過する粉体

 パーセルを使用した計算例として、ホッパー内を通過する粉体の例を紹介します。ホッパー内に同じ質量の粉体を投入する解析を行い、パーセルの設定ありとなしで結果を比較しました。ホッパーの流路が狭くなる個所で流速が小さくなるという結果が両方で得られています(図3)。

 パーセルの設定は、粒子径がおよそ2.4倍、粒子数が10分の1で、計算時間は40倍早くなりました。短時間に、ほぼ同じ粒子挙動の解析結果が得られました。



 図4の断面を通過した粒子の総質量の時間変化を比較すると(図5)、パーセルの設定を行った計算と行っていない計算で誤差は最大4%程度でした。パーセルを使用した近似計算が十分可能な範囲と考えられます。






関連記事/関連ページ


流れの中の粒子を解く
OpenFOAM 解説書『OpenFOAMライブラリリファレンス』
OpenFOAM コンサルティングサービス