LIGGGHTSの接触モデル(ガウス分布)
By M.Yamamoto
ガウス分布
前回の記事LIGGGHTSの接触モデルに続き、 今回は落下する粒子の粒径がガウス分布する場合を見てみます。
接触モデルの例題の実行
LIGGGHTSの例題の入力ファイルを見てみると、
LIGGGHTS-PUBLIC/examples/LIGGGHTS/Tutorials_public /ParScale/heatTransferBed_paScal
フォルダの入力ファイルin.liggghtsに
#particle distributions and insertion
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 1000 &
radius gaussian number 0.008 2.5e-3
fix pts2 all particletemplate/sphere 15485867 atom_type 1 density constant 1000 &
radius gaussian number 0.002 0.1e-3
fix pdd1 all particledistribution/discrete 32452843 2 pts1 0.98 pts2 0.02
fix ins all insert/pack seed 32452867 distributiontemplate pdd1 &
vel uniform 0 0 0 ${vFluct} ${vFluct} ${vFluct} &
insert_every once overlapcheck yes all_in yes particles_in_region ${nParticles} region PIR1
run 1 #insert the particles
とあり、ガウス分布が指定できるように見えます。
しかし、この例題を実行すると以下のエラーが出ます。
#particle distributions and insertion
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant
1000 radius gaussian number 0.008 2.5e-3
ERROR: Fix particletemplate/sphere (id pts1): invalid radius random style
(/build/liggghts-LzNUbp/liggghts-3.7.0+repack1/src/fix_template_sphere.cpp:183)
現バージョンliggghts-3.7.0では利用できないようです。
例題がありますので、過去には利用できたようなので、古いバージョンを試してみます。
精査できたわけではないですが、例えばバージョン3.5.0ではgaussianが利用できるようです。
可視化
バージョン3.5.0の計算結果出力に関して、
dump dmp all custom/vtk 350 post/packing_*.vtk id type type x y z ix iy iz vx vy vz fx fy fz
omegax omegay omegaz radius
はエラーとなり、
dump dmp all custom 350 post/dump*.packing id type type x y z ix iy iz vx vy vz fx fy fz
omegax omegay omegaz radius
の形式のdumpになる様です。このままではParaViewで処理できないようです。
Liggghtsのソースが存在する、
にLPPというものがあり、これによりdumpファイルをvtkに変換できるようです。
試みに、以下のガウス分布を与えた例では、
#particle distributions
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 2500 &
radius gaussian number 0.0025 0.5e-3
fix pdd1 all particledistribution/discrete 15485867 1 pts1 1.0
fix ins all insert/pack seed 32452843 distributiontemplate pdd1 vel constant 0. 0. -0.5 &
insert_every once overlapcheck yes all_in yes particles_in_region 1800 region bc
次のような可視化図を得ました。
次に、dumpのradiusとして出力されている1800の半径データ(ガウス分布;mu=0.0025,sigma=0.5e-3)をパラメタ推定しました。
結果は
mu =0.00249509 std=0.00048452
となりました。
データのヒストグラム、推定曲線、ガウス分布曲線は以下の図の通りです。
パッキングについて
以上、LIGGGHTSでのガウス分布粒子のパッキング例を見てきました。
たまたま、他に、GNU General Public LicenseのcemfDEMを見かけました。
このソフトは直径データを与えるようです。
パッキングの例は以下のようになります。
また、結果を半径として推定したものも示します。
このソフトはFortranで書かれています。
また、コードに関するアルゴリズムや物理モデルの詳細はソフト作成者たちの ”COUPLED CFD-DEM MODELING: FORMULATION, IMPLEMENTATION AND APPLICATION TO MULTIPHASE FLOWS”,Wiley(2016)にあるそうです。