はたらく力と粒子の接触

はたらく力は基本的には粒子間や粒子―壁面間のように2つの物体間で考えられるものであり、接触しているかどうかで考える力が変わります。

では、接触しているかどうかはどのように判定しているのでしょうか。もし愚直に全粒子に対して判定を行っていると、膨大な数の判定が必要になりそうです…そこで今回は接触判定の方法・工夫点、さらに接触判定と計算時間の関連性について解説していきます!

そもそも接触判定とは?

接触判定とは、「ある粒子が別の粒子(または壁面)と触れているかどうか」をコンピューター上で確認する処理のことです。
粉体シミュレーションでは、粒子にはたらく力を正しく計算するために、粒子同士が接触しているかどうかを常に把握しておく必要があります。粒子が接触していれば反発力や摩擦力が生まれ、接触していなければそれらの力は生じないからです。そのため、接触判定は粉体シミュレーション(DEM:離散要素法)を行う上で非常に重要になってきます。

この判定を行うには、粒子間の距離を測り、その距離が「2つの粒子の半径の合計より小さいかどうか」を確認するのが基本です。距離が半径の合計以下であれば、2つの粒子は接触していると判断できます。

接触判定をする接触判定格子

しかし、全粒子に対して距離を測定し、接触しているかの判定を行うと膨大な判定回数となってしまい、これが結果的に計算負荷が上がることにつながります。

全粒子との接触判定を行うと判定回数が膨大に

そこで、接触判定回数を少なくする方法として、接触判定格子を用います。
この方法は、あらかじめ計算領域内に格子(マス目)を配置し、互いに隣接した格子内に存在する粒子同士に対してのみ判定を行うというものです。遠く離れた格子にいる粒子は絶対に接触しないため、最初から判定の対象から除外できます。こうすることで、判定回数を大幅に減らすことができます。

この接触判定の部分が計算時間を決める大きな要因となっています。したがって、接触判定格子によって判定回数を減らすことは、計算時間の削減にも直接つながる重要な工夫です。

格子を用いることで接触判定回数を削減できる

粒子径差と接触判定

ここまでは、接触判定を行う回数を減らすために、接触判定格子を用いて接触する可能性が無い粒子をあらかじめ除外するという方法がとられていることを解説しました。しかし、粒子径差がある場合にはそれぞれの粒径により接触する時の粒子間距離が決まるため、除外する範囲も変わってきそうです。では、粒子径差があるときにはどのような判定となっているのでしょうか。

粒子径差がある場合には、大きな粒子の接触判定格子を用いて接触判定を行うという方法をとっています。広い領域を取っておくと接触の見逃しはないという考えのもとの設定となっています。このような設定となっているため、小さい粒子の接触判定を行う上では大きな格子を用いることになります。したがって、格子内に多くの粒子が入ってしまい、接触判定回数が多くなってしまいます。
判定回数が多くなることにより、1粒子の計算時間が長くなります。さらには全体の計算時間が長くなるということにつながってきます。

また、粒子径差が大きければ大きいほど、小さい粒子が格子内に多く入ってしまうので、判定回数が増えていきます。したがって、数値シミュレーションでは粒子径差が大きいほど計算時間が長くなってしまうのです。

粒子径比が大きくなると接触判定格子内に小さい粒子が入ることで判定回数が多くなってしまう

さいごに

今回は粒子の接触判定を行う際に接触判定格子を用いて判定回数を抑える方法について解説しました。
接触判定回数を抑えることが直接的に計算時間に効いてくるので、とても大事な手法となっています。
実際に粉体シミュレーションソフトを操作して解析を行う際にはソフト側で、粉体粒子同士の接触の判定や接触力を自動計算してくれます。

■ 粉体シミュレーションソフト「iGRAF」の詳細はこちら
https://igraf-kke.com/software/

■ 受託シミュレーションのご相談はこちら
https://igraf-kke.com/contact-us/

Recommended Posts