粒子衝突シミュレーター 戻る
粒子物理 / DEM

粒子衝突シミュレーター

箱の中のN個の粒子が互いに衝突する2Dシミュレーション。反発係数・重力・粒子数を自由に変更し、エネルギー保存とマクスウェル-ボルツマン速度分布の形成を観察しましょう。

シミュレーション設定

粒子数 N20
粒子半径 (px)10
反発係数 e1.0
温度(初期速度)2.0
温度 (avg KE)
総エネルギー
衝突回数
0
エネルギー保存

粒子衝突シミュレーターとは

🧑‍🎓
このシミュレーターで「弾性」と「非弾性」を切り替えると、何が変わるんですか?
🎓
ざっくり言うと、衝突の際にエネルギーが保存されるかどうかが変わるんだ。弾性衝突(反発係数e=1)では、ボール同士が完全に跳ね返る。例えばビリヤードの球の衝突に近いイメージだね。非弾性(e<1)だと、衝突でエネルギーが失われて、動きが鈍くなる。上のスライダーでeを0に近づけてみると、粒子がぶつかって合体する「完全非弾性衝突」が観察できるよ。
🧑‍🎓
え、そうなんですか?じゃあ、たくさん衝突させ続けると、全体の動きはどうなっていくんですか?
🎓
良いところに気がついたね。弾性衝突だけの設定で、粒子数を増やして長い時間シミュレーションを走らせてみて。初期はみんな同じ速さでも、衝突を繰り返すうちに、速い粒子と遅い粒子が混ざり合って、ある決まった「速度分布」が自然にできあがるんだ。これが、このツールで確認できる「マクスウェル-ボルツマン分布」の形成過程さ。
🧑‍🎓
「速度ベクトルを表示」や「重力を有効にする」パラメータは、何のためにあるんですか?
🎓
実務的な視点だね。「速度ベクトル」は、各粒子が今どの向きに、どれだけの勢いで動いているかを矢印で見るためのものだ。衝突前後の運動量の向きと大きさの変化を追うのに役立つよ。「重力」をONにすると、粒子が下に落ちていく様子を再現できる。例えば、粉体がホッパーから落ちる流れや、容器の底で粒子が積もる様子を簡易的にシミュレートするときに使うんだ。

物理モデルと主要な数式

2つの粒子間の衝突は、運動量保存則と反発係数の定義によって記述されます。衝突後の速度は以下の式で計算できます。

$$ \begin{aligned}\mathbf{v}_1' &= \mathbf{v}_1 - \frac{m_2}{m_1+m_2}(1+e)(\mathbf{n}\cdot (\mathbf{v}_1-\mathbf{v}_2))\mathbf{n}\\ \mathbf{v}_2' &= \mathbf{v}_2 + \frac{m_1}{m_1+m_2}(1+e)(\mathbf{n}\cdot (\mathbf{v}_1-\mathbf{v}_2))\mathbf{n}\end{aligned}$$

ここで、$\mathbf{v}_1, \mathbf{v}_2$は衝突前の速度、$\mathbf{v}_1', \mathbf{v}_2'$は衝突後の速度、$m_1, m_2$は質量、$e$は反発係数(0≦e≦1)、$\mathbf{n}$は衝突面の法線方向の単位ベクトルです。e=1で弾性衝突、e<1で非弾性衝突となります。

多数の粒子がランダムに衝突を繰り返すと、速度分布は平衡状態でマクスウェル-ボルツマン分布に従います。これは温度$T$の気体分子の速度の絶対値$v$の分布を表します。

$$ f(v) = 4\pi \left( \frac{m}{2\pi k_B T}\right)^{3/2}v^2 \exp\left( -\frac{m v^2}{2 k_B T} \right) $$

ここで、$m$は粒子質量、$k_B$はボルツマン定数、$T$は温度です。シミュレーターでは、粒子群の平均運動エネルギーから対応する「温度」が定義され、速度分布のヒストグラムがこの理論曲線に近づいていく様子を観察できます。

実世界での応用

粉体プロセス工学:製薬や食品工業での粉末混合、造粒、乾燥プロセスの設計・最適化に用いられます。DEM(離散要素法)シミュレーションの基礎となる粒子衝突モデルを、反発係数や摩擦係数を現実の材料に合わせて設定することで、粉体の流動性や分離現象を予測します。

材料加工・破壊解析:ボールミルによる微粉砕や、衝撃による材料の破壊過程の解析に応用されます。非弾性衝突モデルは、衝突エネルギーが材料の変形や破砕にどのように消費されるかを評価するために不可欠です。

微粒子・ナノテクノロジー:エアロゾル(煙霧体)中の微粒子の挙動や、半導体製造における微細粒子の付着・汚染メカニズムの解明に役立ちます。粒子間のファンデルワールス力などの付着力を考慮した拡張モデルも研究されています。

分子動力学(MD)シミュレーションの入門教育:気体や液体の巨視的性質(圧力、温度、粘度など)が、分子レベルの無数の衝突からどのように生じるかを理解するための最もシンプルな学習ツールとして活用されます。統計力学の基本概念を視覚的に学べます。

よくある誤解と注意点

まず、「粒子数が多ければ多いほど現実的」という思い込みに注意だ。確かに粒子数を増やすと見た目は賑やかになるが、シミュレーションの計算負荷は爆発的に増える。例えば、粒子数を100から1000に増やすと、衝突判定の計算量は約100倍に! 実務では、解析したい現象の本質を捉えられる最小限の粒子数で始めるのが鉄則だ。次に、反発係数 e の設定。e=1が「完全弾性」、e=0が「完全非弾性」だが、現実世界に「完全」はほぼない。金属球の衝突でもe=0.9程度だし、粘土のような材料ではe=0.1以下だ。教科書的な理解の後は、この値を現実に近づけることが重要になる。最後に、「重力を有効にすると温度が下がる?」という疑問。重力で粒子が下に落ち、底部に密集すると、衝突頻度が上がって運動エネルギーが熱として「失われた」ように見えるかもしれない。しかし、これはエネルギー保存則の破綻ではなく、粒子の位置エネルギーと運動エネルギーの変換、そして容器壁との衝突(ここでも反発係数が効く!)による散逸が主な原因だ。系全体のエネルギー収支を考える癖をつけよう。

関連する工学分野

このシミュレーターの核心である粒子衝突の計算は、DEM(離散要素法)と呼ばれる数値解析手法の根幹をなしている。DEMは、粉体工学の分野で必須のツールだ。例えば、製薬工場での薬剤と賦形剤の混合均一性の予測、または農業用のホッパーから穀物が詰まらずに流れ落ちる形状の設計に応用される。さらに、SPH(滑動粒子法)のような粒子法シミュレーションにも通じる考え方だ。SPHは、流体の挙動を連続体ではなく粒子の集合としてモデル化する方法で、水しぶきや金属の鋳造プロセス、さらには天体物理学での銀河形成のシミュレーションまで幅広く使われている。また、分子動力学(MD)シラュレーションと概念的に近い。MDは原子・分子レベルでの相互作用を計算するが、そこでもニュートンの運動方程式とこちらの衝突計算と同様のペアポテンシャルに基づく力の計算が行われる。つまり、このツールで学ぶ「一対の粒子の衝突」は、ミクロからマクロまで、粒子で現象を記述するあらゆる数値シミュレーションの共通言語と言えるんだ。

発展的な学習のために

まず次のステップとしておすすめなのは、「保存則」の数学的な追跡だ。シミュレーターで「速度ベクトル表示」をONにして、特定の2粒子の衝突前後で、それぞれの運動量(質量×速度ベクトル)をメモし、ベクトル和が本当に保存されているか確かめてみよう。さらに弾性衝突(e=1)では、運動エネルギーの和($ \frac{1}{2}m_1v_1^2 + \frac{1}{2}m_2v_2^2 $)も計算してみる。これで数式が現実の動きとどう結びつくかが体感できる。その上で、統計力学の入門に進むと理解が深まる。マクスウェル-ボルツマン分布がなぜあの形($ v^2 \exp(-v^2) $)になるのか? その鍵は「等重率の原理」と「エントロピー最大の原理」にある。オンラインでも良いので、これらのキーワードで検索してみてほしい。最後に、実践的な次のトピックは「非球形粒子」や「摩擦・凝着力の導入」だ。現実の粉体は球ではなく、摩擦で回転し、静電気などで凝集する。DEMではこれらの効果をどうモデル化するかが大きなテーマだ。このツールで基本を押さえたら、「粒子の回転運動」や「ファンデルワールス力」といった追加の力について調べてみると、シミュレーションの世界がぐっと広がるはずだ。