823 words
4 minutes
粒子法で解く流体力学:SPH法による「水」と「油」の表現
last_modified: 2026-01-09
1. ミクロのMD、マクロのSPH
これまでの記事で扱った「分子動力学法(MD)」は、原子一つひとつがポテンシャル(引力・斥力)を感じて動くミクロな世界の話でした。
一方、私たちが普段目にするコップの水やエンジンのオイルは、無数の分子の集合体である 「連続体(Continuum)」 として振る舞います。これを記述するのが 流体力学 であり、その支配方程式が ナビエ・ストークス方程式 です。
今回は、このナビエ・ストークス方程式を「粒子」を使って解く手法、SPH法 (Smoothed Particle Hydrodynamics) を実装しました。 MDの粒子が「原子」であるのに対し、SPHの粒子は「流体の一部分(流体塊)」を表す計算点に過ぎないという点に注意してください。
2. 実験:粘性が世界を変える
シミュレータの Fluid Type を切り替えるか、Viscosity スライダーを操作してみてください。
- Water (低粘度): 。粒子はサラサラと流れ、容器の中で激しく波打ちます。運動量の拡散が遅いため、勢いがなかなか衰えません。
- Oil (高粘度): 。動きが鈍くなり、しっとりとした挙動になります。隣り合う流体塊との摩擦(せん断応力)が強いため、乱流が抑えられます。
- Slime (超高粘度): 。ほとんど個体のように振る舞い、一度形が変わると元に戻るのに時間がかかります。
3. 理論:ナビエ・ストークス方程式の離散化
SPH法では、以下の非圧縮性ナビエ・ストークス方程式を解いています。
- (密度): 流体の混み具合。
- (圧力勾配項): 「混んでいる場所から空いている場所へ」流体を押し出す力。MDの斥力に似ていますが、ここでは圧力差として計算されます。
- (粘性項): 「ネバネバ」の正体。速度のラプラシアン(周囲との速度差の平均)に比例し、周囲の粒子と同じ速度になろうとする拡散の力として働きます。
- 油 はこの項の係数 が大きい流体です。
- (外力項): 重力など。
SPHの魔法:カーネル関数
SPHでは、ある地点の物理量(密度など)を、周囲の粒子の 重み付き平均(Smoothed) として計算します。
この がカーネル関数です。MDのように「隣の原子とぶつかる」のではなく、「影響範囲 内の流体塊の平均をとる」ことで、連続的な流体の挙動を近似しているのです。
4. まとめ
- MD: 原子間の を解く(ミクロ)。
- SPH: 流体塊のナビエ・ストークス方程式を解く(マクロ)。
このシミュレータで見える「油の質感」は、分子間力の結果ではなく、マクロな物性値としての「粘性係数」を大きく設定した結果、流体塊同士が強くブレーキを掛け合っている様子なのです。
粒子法で解く流体力学:SPH法による「水」と「油」の表現
https://ss0832.github.io/posts/20260109_sph_fluid/ Related Posts
制御不能な熱:SPH法で見る「熱暴走」と「気化爆発」のメカニズム
2026-01-09
水が一滴も入っていない油が、なぜ突然「跳ねる」のか? 化学プラントやリチウムイオン電池でも問題となる「熱暴走(Thermal Runaway)」現象を、流体力学と化学反応速度論を組み合わせたマルチフィジックス・シミュレーションで再現する。
3D MD Simulation Test
2026-01-10
Three.jsとReact Fiberを使った3D分子動力学シミュレーションのテスト
氷から水、そして蒸気へ:Lennard-Jones流体で見る相転移シミュレーション
2026-01-09
物質の三態(固体・液体・気体)はどのようにして決まるのか? 分子間相互作用(Lennard-Jonesポテンシャル)を導入した分子動力学シミュレーションを行い、温度変化によって粒子が結晶化したり、蒸発したりする様子をブラウザ上で観察する。
NVE vs NVT: 分子動力学シミュレーションで見る統計アンサンブルの世界
2026-01-09
単一の軌跡(Trajectory)を追うだけでは見えない化学反応の本質がある。多数の粒子を用いた分子動力学(MD)シミュレーションにより、エネルギー保存則に従うミクロカノニカル(NVE)と、温度一定のカノニカル(NVT)アンサンブルの違い、そして反応速度論における再交差現象を可視化する。
「水と油」はなぜ混ざらない? MDで見る理想溶液と相分離
2026-01-09
「似たもの同士はよく溶ける」という経験則は、熱力学的にどう説明されるのか? 理想溶液と相分離の違いを、エンタルピーとエントロピーの競合として可視化する。※本シミュレーションでは単純化された粒子モデルを使用しています。