【物理】【解析フロー】超音速流による液滴微細化(3)

•YAML → config → ジオメトリ+軸格子 → 熱物性プロバイダ選択 → ガス解 → 液滴輸送(破砕評価含む)→ 結果組立・出力
参照: architecture.md:7-17

■ガス相ソルバ(気層輸送)

•関数: solve_quasi_1d_gas_flow(src/…/solvers/gas/quasi_1d_solver.py)

•処理: ジオメトリから喉部検出 → ブランチ選択(全亜音速 / チョーク / ラバル内衝撃など)→ 各格子点で面積比からMachを解き,assemble_gas_state を呼んで圧力・温度・密度・速度・Mach を算出 → GasSolution を返す。
参照: quasi_1d_solver.py

■液滴輸送(代表粒子法)

•エントリ: solve_droplet_transport(src/…/solvers/droplet/transport_solver.py)

•初期化: initialize_droplet_state で入口条件から初期 DropletState を作成(入口速度、直径、初期We 等)。
参照: src/supersonic_atomizer/solvers/droplet/updates.py::initialize_droplet_state

•各格子点の更新順(1セル進行ごと):

•dx を決定(隣接 x 差)

•スリップ速度 u_slip = u_gas – u_droplet(update_droplet_state

drag_model.evaluate(…) で Reynolds, Cd, 加速度 を取得(StandardSphereDragModel)

•dt = dx / max(|u_gas|, small); u_droplet += accel * dt(運動方程式の単純積分)

•更新されたスリップで再計算した We, Re を状態に記録

•破砕モデル(存在する場合)を呼ぶ(次節)
参照: src/supersonic_atomizer/solvers/droplet/updates.py::update_droplet_state と transport_solver.py

■ドラッグ相互作用(力学)

•実装: StandardSphereDragModel(src/…/drag_models.py)

•主な式:

•Reynolds: Re = rho_g * |u_slip| * d / mu

•Cd (Schiller–Naumann 型): Cd = 24/Re * (1 + 0.15 * Re^0.687)

•加速度: a = 3 * Cd * rho_g * |u_slip| * u_slip / (4 * rho_d * d)
参照: drag_models.py

■一次破砕(MVP 実装)

•実装: Weber 閾値モデル CriticalWeberBreakupModel(src/…/breakup/weber_critical.py)

•Weber の式(コード実装):

•We = rho_g * u_slip^2 * d_ref / sigma
(実関数: evaluate_weber_number)

•判定: If We > We_crit → 平均径を d_mean *= breakup_factor_mean、最大径を d_max = max(d_max * breakup_factor_max, d_mean) に更新、破砕フラグを立てる。
参照: weber_critical.py

■二次破砕 / 高度モデル(現状)

•仕様書・草案では TAB / KH‑RT / simple_tab 等が言及されているが、現行コードベースには実装が見当たりません(将来のプラグイン候補)。
参照: spec_draft.md(モデル候補記載), architecture.md(拡張方針)

破砕と輸送の統合順序(実装上)

•各ノードで「スリップ評価 → ドラッグ更新 → 液滴速度更新 → Weber/Re 評価 → 破砕モデル呼出 → 更新状態を次ステップへ渡す」流れになっています。
参照: breakup-integration-sequence.md と src/…/transport_solver.py / updates.py

■出力・検証

•全軸履歴(x, gas 配列, droplet 配列, weber, breakup_flags など)を DropletSolution / GasSolution にまとめ、CSV/JSON/図を作成。検証ルール(breakup-trigger case 等)で差分チェック。
参照: architecture.mdREADME.mdbreakup-integration-sequence.md

■まとめ(実務的なポイント)

•「一次破砕(Weber閾値)+代表粒子輸送+標準球ドラッグ」は実装済み。

•「二次破砕(TAB/KH-RT 等)」は仕様に挙がっているが未実装で、拡張ポイントとしてプラグイン可能な設計になっている。

•詳細実装箇所は次のファイルを参照してください(すぐ開けます):

weber_critical.py(一次破砕式・ロジック)

updates.py(液滴の局所更新)

drag_models.py(ドラッグ・式)

transport_solver.py(全行程マーチング)

quasi_1d_solver.py(気相ソルバ)

breakup-integration-sequence.md(ノード内順序の手順)

■付録

■付録:液相から気層へのフィードバック

  • 液滴質量流が気相質量流の1%未満なら 一方向仮定は妥):MVPはこれ
  • 1–10% は慎重に検討
  • 10%以上なら二方向カップリングが必要。

コメント

タイトルとURLをコピーしました