例題13: 管内流れの粒子沈降(Stokes 終端速度・理論解照合)
集塵・クリーンルーム・粉体搬送で基本となる粒子の重力沈降を、 ラグランジュ粒子追跡(kinematicCloud・ワンウェイ結合)で解析し、 Stokes 沈降理論と照合します。流れ場(simpleFoam)→ 凍結流れ場での 粒子追跡、という 2 段実行を StreamWright が自動で行います。
| 項目 | 内容 |
|---|---|
| 解析タイプ | 単相流(非圧縮)+ ラグランジュ粒子追跡(Phase 1: ワンウェイ) |
| ソルバ | simpleFoam(定常)→ icoUncoupledKinematicParcelFoam(粒子追跡) |
| 乱流モデル | Laminar(層流・Re = 69) |
| ジオメトリ | 直管(内径 D = 50 mm・長さ L = 1000 mm・水平) |
| 流体 | 空気(ρ = 1.225 kg/m³, μ = 1.78×10⁻⁵ Pa·s)・流入 0.02 m/s |
| 粒子 | ガラス球 ρp = 2500 kg/m³・d = 12 μm・3 個を発達域の中心線上に注入 |
| メッシュ | snappyHexMesh・管断面に 20 セル+壁面細分化 level 1 |
| 実行規模(目安) | 4 コア・約 8 分(流れ場+粒子追跡)・1 クレジット |
所要時間は目安です。実行環境・メッシュ規模・混雑状況により変動します。
この例題で学べること
- 粒子追跡の有効化 — 解析タイプタブのチェック+ Physics タブで粒子物性と 注入方法(位置指定 manualInjection)を設定するだけ
- 2 段実行の仕組み — 定常流れ場を解いてから、その凍結場で粒子だけを 時間積分する(Phase 1 はワンウェイ結合=粒子が流れへ影響しない希薄系)
- Stokes 沈降理論との照合 — 終端速度 v_t と着地距離を手計算し、 軌跡データと突き合わせる
実行手順
- ex13_particle_settling.ofb.zip をダウンロードする
- StreamWright サイドバーの 📂 Load Project (.ofb.zip) にドラッグ&ドロップする

- 各タブで設定を眺める(変更は不要です)
- 🎯 解析タイプ: 追加機能「💨 ラグランジュ粒子追跡」が ON
- 4️⃣ Physics: 粒子密度 2500 kg/m³・粒径 12 μm・manualInjection の 注入座標 3 点(発達域 x = −250〜−150 mm の中心線上 z = +15 mm)・ 壁面 stick(付着)
- 6️⃣ Run タブ → 🚀 Generate & Run(流れ場 → 粒子追跡が自動で連続実行)

期待される結果
実行が正常に終われば、以下とほぼ同じ数値になります(見本: sample_report.html)。
| 量 | 値 | 確認場所 |
|---|---|---|
| 注入粒子数 | 3(すべて底面へ沈着・脱出 0) | 品質チェック「粒子追跡」 |
| 終端沈降速度 v_t | 10.94 mm/s(理論 10.95 mm/s・−0.1%) | 軌跡データ(下記の照合手順) |
| 着地水平距離 Δx | 106.6 mm(理論 109.1 mm・−2.3%) | 軌跡データ |
| 品質チェック | 合格(PASSED) | 3 段階総合判定 |

粒子の軌跡(時刻ごとの lagrangian/kinematicCloud/positions から作図):

流れ場の断面(Post Processor タブ・粒子が沈降する x-z 面):

理論値との照合(この解析は正しいか?)
微小球の沈降は Stokes 抗力と重力(浮力込み)の釣り合いで決まります。
- 粒子緩和時間: τp = ρp·d²/(18μ) = 1.12 ms → 注入後ほぼ瞬時に終端速度へ
- 終端速度(Stokes): v_t = ρp·d²·g·(1 − ρf/ρp)/(18μ) = 11.02 mm/s
- 粒子 Reynolds 数: Re_p = ρf·v_t·d/μ ≈ 0.009 ≪ 1 → Stokes 域。 ソルバーの抗力則(Schiller-Naumann)による補正は −0.6% → 期待値 10.95 mm/s
- 着地水平距離: 発達した層流の放物線プロファイル U(z) = U_max(1 − z²/R²) (U_max = 2Ū = 0.04 m/s は Poiseuille 流の厳密値)を、中心線 z₀ = +15 mm から 底面まで一定速度 v_t で沈降しながら横切る積分の厳密解: Δx = (U_max/v_t)·(z₀ − z₀³/3R² + 2R/3) = 109.1 mm
- 照合帯域: v_t ±5%・Δx ±7%(メッシュによる U_max の数値誤差を含む)
照合手順(リポジトリの解析スクリプトで再現可能):
python scripts/analyze_particle_settling.py Simulation_Run --plot trajectories.png
解析結果は v_t = 10.94 mm/s(理論比 −0.1%)・Δx = 106.6 mm(理論比 −2.3%) で 帯域内に収まります(3 粒子とも同一値=再現性も確認)。
💡 粒径を 2 倍(24 μm)にすると v_t は 4 倍(d² 則)になり、着地距離は 1/4 に 縮みます。Physics タブで粒径を変えて確かめてみてください。
自分の問題に応用するには
- 注入方法の切替: patchInjection にすると入口面全体から連続注入され、 沈着率・脱出率の統計(品質チェックに表示)で捕集性能を評価できます
- 壁面相互作用: stick(付着)/ rebound(反発)/ escape(消滅)を 用途に応じて選べます
- 適用範囲の確認: Phase 1 はワンウェイ結合(希薄・粒子体積率 <10⁻⁶ 目安)。 ただし判断材料は体積率だけではなく、質量負荷 φ_m = ṁ_粒子 / ṁ_流体も 効きます。粒子密度が流体より大きい系(本例題の水中砂粒は ρ_p/ρ_f ≈ 2.6、 空気中の粉体なら 10³ オーダー)では、体積率が小さくても質量負荷が 0.1 を超えると粒子→流体の運動量フィードバックが無視できなくなります。 該当する場合は双方向結合(例題18)を検討してください
- 自分のジオメトリで解くには: 流路の流体ボリューム化(粒子側にジオメトリは不要です)は ジオメトリ準備ガイド 第1章(内部流れ) にまとめています。CAD ソフト別の操作は 第7章 を参照してください
ジオメトリ: fixtures/porous/porous の FLUID.step(ex12/ex15 と共用の直管)。 検証: 2026-07-22 実機 E2E で v_t = 10.94 mm/s / 理論 10.95 mm/s(−0.1%)・ Δx = 106.6 mm / 理論 109.1 mm(−2.3%)・PASSED を確認