batch_duration の安定性と定常値の理論この文書は、BEACH のバッチループにおける sim.batch_duration(または sim.batch_duration_step から決まる 1 バッチの物理時間)と、収束した壁面電荷分布の正当性・安定性の関係を理論的に整理したものです。
現行実装では、batch_duration_step を使う場合は sim.batch_duration = sim.dt * sim.batch_duration_step と解釈され、reservoir_face 注入では 1 バッチの物理流入量からマクロ粒子数または重みが決まります。
実装上の入口は次のとおりです。
SPEC.md §4docs/fortran_parameter_file.md の sim.batch_duration / sim.batch_duration_stepsrc/particles/bem_injection.f90(reservoir_face / photo_raycast)src/config/bem_app_config_runtime.f90絶縁体壁面の各要素 j の蓄積電荷を $q_j(t)$、そのときの入射電荷フラックス(壁単位面積あたり)を $J_j(\mathbf q)$ とすると、吸収のみを考える基本モデルは次の ODE になります。
ここで $A_j$ は要素面積です。$J$ は壁面電荷が作る電場に依存するため、一般には 非線形 です($J = J(\mathbf q)$)。
BEACH の 1 バッチ更新は、この連続時間モデルを 場をバッチ先頭で凍結した explicit な更新 として評価するものとみなせます。平均的には
と表せます。ここで
sim.batch_durationです。実装上も、バッチ内で粒子は同じ場 $E(\mathbf q^n)$ を見て進み、バッチ末尾で電荷差分がまとめて壁面へ反映されます。したがって、batch_duration はこの explicit 更新の時間刻みに相当します。
平均更新写像を
と書くと、その不動点 $\mathbf q^*$ は
で与えられます。したがって、平均モデルの不動点自体は $\Delta t_b$ に依存しません。
この意味で、反復が安定に収束しており、かつ Monte Carlo 誤差が十分に平均化されているなら、batch_duration を変えても目指している連続時間の定常解は同じです。
ただし、ここで言えるのはあくまで 平均モデルの固定点 についてです。実際の計算では
が入るため、観測される収束値には弱い batch_duration 依存が残りえます。したがって、厳密には
反復の平均的な固定点は
batch_durationに依存しないが、有限サンプル・有限時間の実計算では小さな step-size dependence が観測されうる
と書くのが安全です。
不動点 $\mathbf q^*$ 近傍で摂動 $\delta\mathbf q^n = \mathbf q^n - \mathbf q^*$ を考えると、平均更新の線形化は
となります。一般の多自由度系での安定条件は、この更新行列のスペクトル半径に対する条件
であり、各固有値 $\lambda_k$ に対して
が必要です。これが本質的な「BEACH 版の安定条件」です。
絶縁体壁が電荷を貯めるとそれ以上同種粒子を引き寄せにくくなる(負のフィードバック)ため、$M$ の主要な固有値 $\lambda_k$ は実負($\mathrm{Re}(\lambda_k) < 0$)と期待されます。この実負優勢モードの仮定 が成り立つときに限り、応答時間スケール $\tau_k \equiv 1/|\lambda_k|$ を用いて、最速モードに対して
で発散を避けられ、
で単調収束(過減衰)になります。
実務上は次のように読むのが適切です。
この意味で、$2\tau$ / $\tau$ 条件は「BEACH 版の CFL 条件」と断言するより、実負優勢モードを仮定した explicit Euler 型の安定目安 と呼ぶ方が正確です。
ノイズ込みの 1 モード近似として
を考えると、定常分散は $\xi^n$ の分散に依存します。ここで重要なのは、$\mathrm{Var}(\xi^n)$ の $\Delta t_b$ 依存性が、注入の正規化方式に依存する ということです。BEACH の reservoir_face には 2 つの方式があります。
w_particle 固定の場合w_particle を直接指定し、物理流入数だけが $\Delta t_b$ に比例して増減する方式では、1 バッチあたりの期待マクロ粒子数は
となります。バッチ電荷増分のショットノイズ分散も概ね $\propto \Delta t_b$ とみなせ、
と置けます。$\Delta t_b \ll \tau$ の極限では定常分散は batch_duration に強くは依存しません。
target_macro_particles_per_batch 固定の場合一方、target_macro_particles_per_batch から w_particle を解く方式では、src/config/bem_app_config_runtime.f90:644 のとおり
の形で重みが決まるため、ノイズの $\Delta t_b$ 依存は §4.1 の単純な $\mathrm{Var}(\xi^n) \propto \Delta t_b$ とは変わります。マクロ粒子数は固定され、1 粒子あたりの寄与が $\Delta t_b$ に比例するためです。
理論整理としては
batch_duration は主に deterministic な安定性 のつまみw_particle または target_macro_particles_per_batchと分離して考えるのがよいです。特に
「
batch_durationを小さくすれば必ずノイズが下がる」
「batch_durationを大きくしてもノイズはほとんど変わらない」
のいずれも一般論としては言い切れません。そこは注入の正規化方式に依存します。
$\tau_{\min}$ は、数値安定性を支配する最速の有効応答時間です。ただし、これを 1 つの物理式で一般に与えるのは難しく、幾何・電位分布・上流分布関数・注入モデルに依存します。実務上は、次の 2 つを別物として見積もるのが安全です。
代表的には、ある有効容量 $C_\text{eff}$ と有効コンダクタンス $G_\text{eff}$ を用いて
あるいは典型電位変化 $\Delta\phi$ と有効電流 $I_\text{eff}$ を用いて
と見積もるのが自然です。これは幾何や遮蔽の影響を受ける、比較的遅い charging timescale です。
もうひとつの速い基準は
です。電子プラズマの微視的な速い時間スケールであり、系がどこまで急峻に応答しうるかを見る基準にはなります。
ただし、$\omega_{pe}^{-1}$ をそのまま $\tau_{\min}$ の上界とみなすのは強すぎます。むしろこれは 速い側の物理基準 であり、実際に batch_duration を制限する有効時定数は、幾何や入射律速を含んだ $\tau_\text{charge}$ 側で決まることが少なくありません。
したがって $\tau_{\min}$ については
を別物として見積もり、最終的には数値実験で詰めるのが安全です。
$\omega_{pe}^{-1}$ は速い基準にすぎず、実際の安定制約は $\tau_\text{charge}$ を含む有効応答時間で決まる
とまとめておくのが理論的に無理がありません。
batch_duration は、振動を避けたいなら保守的に小さめから始める。batch_duration を 1/2 倍と 2 倍に振って、電荷履歴や監視量の振る舞いを比較する(step-size sensitivity check)。batch_duration は実用上十分と判断できる。w_particle または target_macro_particles_per_batch を調整する。batch_duration の変更だけでノイズを解決しようとしない。charge_history.csv の last_rel_change の振動や要素電荷時系列のジッタは有用な診断量だが、これは厳密な Richardson 外挿(誤差の冪乗則を仮定する手法)というより、step-size sensitivity check と呼ぶのが適切である。| 項目 | 結論 |
|---|---|
| 定常値の正当性 | 平均更新の固定点は batch_duration に依存しない |
| 厳密な安定条件 | $\rho(I + \Delta t_b\, M) < 1$ |
| $2\tau$, $\tau$ 条件 | 実負優勢モードを仮定した explicit Euler の近似目安 |
| $\omega_{pe}^{-1}$ の位置づけ | 微視的な速い基準であり、一般にそのまま安定上界ではない |
ノイズと batch_duration |
依存性は注入の正規化方式に依存する |
| ノイズ低減の主手段 | w_particle または target_macro_particles_per_batch の調整 |
| 実務上の確認方法 | batch_duration を振った step-size sensitivity check |
「平均モデルの定常値が batch_duration の取り方に依存しない」ことは理論的にきれいに言えます。
一般的な安定条件 $\rho(I + \Delta t_b M) < 1$ も古典的な安定性解析からそのまま従います。
残る不確かさは $\tau_{\min}$ の値そのもので、ここだけはケース依存の物理見積もりと数値実験の両輪で詰める必要があります。
sim.batch_duration / sim.batch_duration_step の指定方法SPEC.md — 1 バッチの計算手順と停止条件