コンテンツにスキップ
開発版ドキュメント — このサイトはmainブランチ向けで、インストール済みリリースと異なる場合があります。変更履歴を確認してください。

matching-plane で外部シースを接続する

surface_current_model.model="matching_plane_quasistatic" は、BEACH の box 上端を外部 1D シースとの matching plane(整合面)にします。表面電荷が変わるたびに、外部応答から上端電位、ambient 粒子の流入束、 光電子(PE)の return 障壁を更新できます。

これは外部シースの時間発展を解く機能ではありません。BEACH 内の 3D 軌道計算と、外部の準定常な低次元応答を 1 accepted batch ごとに整合させる境界 closure です。全入力キーは入力パラメータ、 出力名は出力形式リファレンスを正本とします。

このページは、通常の利用判断から設定、実行、診断までを扱います。応答 CSV、implicit_zero_mode、固定点の式は matching-plane 数値・応答表リファレンスで検索できます。

外部プラズマをどう表現したいかで model を選びます。

必要な表現選ぶ model
表面電荷に応じて外部応答も batch ごとに変えたいmatching_plane_quasistatic
定常シースの零電流根から得た電流と障壁を run 中固定したいzhao_stationary
外部シース closure を使わず、BEACH 内の場と粒子だけを扱うnone

matching-plane では、外部応答の取得方法をさらに選びます。

backend適する用途主な制約
response_backend="table"(既定)独立に検証した Zhao / 1D PIC sweep を監査可能な固定 snapshot として使うquery は安価。応答 CSV と有限な軸範囲が必要
response_backend="zhao_online"CSV を作らず組み込み Zhao を直接使うimplicit_zero_mode は選択 branch 内で終点を探索。平面・無衝突・非磁化で、nonlinear solve の費用がある

examples/matching_plane_response_synthetic.csv は table 経路の smoke test 専用です。物理計算には使えません。 独立した 1D1V Vlasov 応答を調べる研究手順は offline kinetic oracleに分離しています。

構成BEACH が扱うもの
PE なしambient electron / ion の流入と外部電位 gauge。PE feedback、return、escape は 0
PE あり上記に加え、整合面を出る PE の束・平均法線 energy、外部障壁による return / escape

PE なしでも外部シースとの接続は有効です。photoelectron_speciesphoto_raycast species を省略するだけで、 整合面電位と ambient 流入束は引き続き response backend が決めます。

stationary Zhao と online Zhao を区別する

Section titled “stationary Zhao と online Zhao を区別する”

名前は似ていますが、解いている条件が異なります。

zhao_stationarymatching-plane の zhao_online
拘束壁面での零電流 J=0J=0現在の DH/ϵ0D_H/\epsilon_0 を整合面電場として指定
更新run 開始時に 1 回固定点反復の query ごと
PE なしType CType C には固定されない。DH=0D_H=0 は縮退した Type B
電流species 別の固定 target応答束と粒子追跡で得た実測堆積

したがって、PE を省略したことだけを理由に online Zhao の結果を Type C と解釈してはいけません。 既定の zhao_root_selection="require_unique" では、zhao_branch="auto" は現在の DHD_H に適合する 一意な物理解を探し、一意性を確認できなければ停止します。

x / y 周期・z open の periodic2 case を基にします。全 mesh 頂点を domain.box_max の z 成分より厳密に下へ置き、sim.e0sim.b0 は 0 にします。ambient electron と ion は z-high reservoir から流入させます。

response_backend="zhao_online" を PE ありで使う最小の model 選択は次のとおりです。

[surface_current_model]
model = "matching_plane_quasistatic"
response_backend = "zhao_online"
zhao_branch = "auto"
electron_species = "electron"
ion_species = "ion"
photoelectron_species = "photoelectron"
coupling_rtol = 1.0e-4
coupling_atol = [0.0, 0.05, 0.0, 0.0]

coupling_atol の第 2 成分は PE 平均法線 energy の許容値 [eV] です。上の 0.05 eV は例であり、 ray 数と macro 粒子数を変えた収束試験から決めます。完全な case は examples/periodic2_matching_plane_zhao_online.toml にあります。

検証済みの応答表を使う場合は model 部分を次のように変えます。

[surface_current_model]
model = "matching_plane_quasistatic"
response_backend = "table"
response_table_path = "matching_plane_response.csv"
electron_species = "electron"
ion_species = "ion"
photoelectron_species = "photoelectron"
coupling_rtol = 1.0e-4
coupling_atol = [0.0, 0.0, 0.0, 0.0]

response_table_path は設定ファイルのディレクトリから解決します。完全な配線例は examples/periodic2_matching_plane_quasistatic.toml です。

PE なしの online case は PE role を指定しません。

[periodic2]
lower_boundary_model = "e_bottom_zero"
[surface_current_model]
model = "matching_plane_quasistatic"
response_backend = "zhao_online"
zhao_branch = "auto"
electron_species = "electron"
ion_species = "ion"
implicit_zero_mode = true

この経路には response_table_path も事前の matching_query.csv も不要です。完全な CSV 不要例は examples/periodic2_matching_plane_zhao_implicit.toml です。table snapshot を使う場合だけ query grid と beach-zhao-response を別途使います。accepted endpoint の履歴を持たない表生成では continuation を指定できません。

implicit 化だけでは Zhao branch を選びません。既定では auto が現在の seed で一意な物理解を保証できない場合に停止します。 強い PE では a / b / c を別々に走査してから、検証した branch を明示してください。

table で PE を省略する場合は、応答表の PE flux / energy 軸も 0 の singleton にします。species、境界、 periodic2 の完全な入力条件は入力パラメータで確認してください。

まず、同梱の PE あり response_backend="zhao_online" 例をそのまま確認します。この例は 4 batch の 配線確認用であり、研究条件の妥当性を示すものではありません。repository root で次を実行します。

Terminal window
beachx lint examples/periodic2_matching_plane_zhao_online.toml
beach examples/periodic2_matching_plane_zhao_online.toml
beach-inspect outputs/periodic2_matching_plane_zhao_online

正常終了すると outputs/periodic2_matching_plane_zhao_online/ に少なくとも summary.txtcharges.csvmatching_plane_history.csv が生成されます。

summary.txtbatches=4matching_plane_state_valid=T を確認してください。これは 4 batch が受理され、 外部状態が保存されたことを示します。固定点の収束は出力の判定で残差から確認します。 反復上限に達した有限な状態も、警告付きで受理されるためです。

beachx lint は TOML と既知の組合せを検査しますが、応答 CSV の内容は読みません。response_backend="table" では、 table の header、直積格子、整合面高度を beach の起動時に検査します。

基本例を確認した後、複数根が研究条件へ与える影響を調べる場合にだけ選択方針を変えます。

zhao_root_selection選び方注意すること
require_unique(既定)query ごとに一意な物理解を要求一意性を確認できなければ停止
minimum_energy検出した候補から全シース電位エネルギーが最小の根を選ぶ根の切替で応答が不連続になり、陰的更新の終点が存在しなくなる場合がある
continuation最後に受理した Type A root を seed として追跡明示的な zhao_branch="a"implicit_zero_mode=true が必須

continuation を選ぶ場合は、既存の [surface_current_model] の該当キーを変更します。

response_backend = "zhao_online"
zhao_branch = "a"
implicit_zero_mode = true
zhao_root_selection = "continuation"

初回は最小エネルギーの Type A root を選びます。その後は前の受理根から追跡し、局所探索で再取得できなければ full multistart で一意な最近傍根を選びます。解なし、曖昧性、数値失敗では停止し、Type B / C へは切り替えません。 同じ物理 family の保持や fold の通過を保証する方法ではありません。

どの方針も、有限個の初期値で全数学根を検出したことや時間依存安定性を保証しません。 エネルギーの式、距離・曖昧性の判定、探索の刻み直し、再開時の扱いは zhao_root_selection リファレンスにまとめています。

  1. 整合面の状態を測る。 現在の表面電荷と下側境界から、整合面直下の平均変位 DHD_H を求めます。
  2. 外部応答を得る。 backend は DHD_H と外向き feedback から、整合面電位 ΦH\Phi_H、electron / ion の inward flux と access potential、PE barrier を返します。online implicit では、各 feedback 反復の内側で 後退 Euler 終点を解き直します。
  3. 同じ batch を追跡する。 ΦH\Phi_Hperiodic2 の zero-mode gauge に使い、粒子を追跡して外向き moment と PE の return / escape を測ります。
  4. 固定点を確認する。 測定値が仮定した feedback と一致しなければ緩和して再実行します。各 trial は同じ batch 開始 RNG state と macro 粒子端数から再生され、受理前の trial は状態を変更しません。有限なまま反復上限に 達した最終 trial は、残差を記録して warning 付きで受理します。
  5. 1 回だけ commit する。 収束した trial または warning 付きで受理した有限な最終 trial だけが、表面電荷、RNG、 ledger、history、外部 state を更新します。continuation の root seed もこの accepted state に属します。 adaptive k0k\ne0 条件が trial を棄却した場合は、batch 幅を半分にして外部 state も巻き戻します。

この反復により Monte Carlo の乱数差ではなく、同じ粒子写像に対する外部応答の整合性を評価します。

外部 model の上流 plasma potential を 0 V とし、matching_potential_v と 3 種類の access / barrier potential は 同じ gauge を使います。これらの potential だけへ任意の定数を加えることはできません。

PE が z-high を外向きに横切ると、BEACH は局所電位、法線運動 energy、外部 PE barrier を比較します。障壁を越えない PE は z-high で鏡面反射して return、越える PE は escape です。したがって PE return は考慮されますが、外部の turning point までの距離や飛行時間は解かず、境界上の即時反射へ縮約しています。

ambient electron / ion の外向き粒子は局所反射しません。table は外部で戻る成分を含む総 inward flux を返せます。 online Zhao v1 は ambient 外向き feedback を transparent とするため、その外部 return が重要な case には使えません。

online Zhao の branch と barrier は次の関係です。

branchΦH\Phi_Helectron access / PE barrier
Type Aϕm<0\phi_m<0
Type B正(DH=0D_H=0 では 0)0 V
Type C0 V

summary.txtsurface_current_model_zhao_branch=auto は選択方針であり、各 query の実 branch 名ではありません。 online 応答では、accepted state の ΦH\Phi_H と access / barrier potential から上表の branch を判別します。

HH は interface、zero-mode gauge、PE moment の測定面を固定します。online Zhao は平面・並進対称なので、 HH の絶対座標を Sagdeev 方程式の距離 parameter には使わず、壁面から HH までの 1D profile は解きません。

output.history_stride>0 なら matching_plane_history.csv が生成されます。まず次を確認します。

確認すること出力判定
accepted state があるmatching_plane_state_validsummary.txtT
固定点が収束したmatching_plane_residualsurface_current_model_coupling_rtol 以下
反復に余裕があるmatching_plane_iterations上限へ張り付かず、条件変更でも安定
PE の分類が閉じるoutward / return / escape fluxΓpeoutΓpereturn+Γpeescape\Gamma_{pe}^{out}\simeq\Gamma_{pe}^{return}+\Gamma_{pe}^{escape}
table の由来を識別できるresponse table path / configurationproduction data と一致
電位と帯電が安定するDHD_HΦH\Phi_H、mesh charge / potentialbatch 幅・粒子数・mesh を変えて許容差内

accepted state の全 17 列、summary receipt、時刻の意味は 出力形式リファレンスにまとめています。

症状主な原因次に試すこと
response preflight 失敗path、header、HH、直積格子の不一致CSV 契約domain.box_max の z 成分を照合する
table query が範囲外active 軸の sweep が過渡状態を覆っていない外挿せず、物理的に検証した範囲で表を再生成する
固定点が反復上限に到達して warning 付きで継続粒子 noise、強すぎる feedback、狭すぎる許容値履歴で頻度と残差を確認する。必要なら ray / macro 粒子数、緩和係数、許容値を調整する
online Zhao に物理解がない、または曖昧DHD_H と branch の不整合、複数根、数値失敗a / b / c を個別に scan。必要なら検証後に minimum_energy を使う
continuation が停止full multistart で Type A root を検出できない、探索・profile 検査が数値的に失敗、または最近傍 root の距離が数値的に区別できないaccepted state 周辺の Type A 可解性を調べ、batch_duration を小さくする。固定点 tolerance miss とは区別する
table implicit root を bracket できない応答表内に backward-Euler 終点がないimplicit_zero_mode の契約に沿って DHD_H 範囲を見直すか batch_duration を小さくする
online implicit root を bracket できないZhao branch が終わるか、幾何拡張または signed natural-scale scan で符号変化がないbranch と初期電荷を確認し、必要なら batch_duration を小さくする
soft discard の率上限または電荷警告に到達周期境界 event の未解決粒子が増えているsoft discard の停止条件に従い、batch ごとの burst、累積率、絶対電荷を調べる

正常終了しても、警告付きで受理した batch が含まれる場合があります。履歴の残差を確認して固定点の収束を判定し、 さらに外部シースの物理妥当性、matching-plane 高度への依存性、Monte Carlo 収束を調べてください。

matching-plane は平均場や粒子 channel の二重計上を防ぐため、次の構成に限定されます。

項目必要条件
box / 場x / y periodic、z open、field_boundary.mode="periodic2"sim.e0=sim.b0=[0,0,0]
periodic splitcached_kneq0 または panel_spectral_referenceexclude_k0symmetric_vacuum または e_bottom_zero
reservoir / open 面[reservoir].inflow_model="source_vdf"ordinary_open_model="escape"
ambient specieselectron と ion だけを role に指定。volume_seednpcls_per_step=0、z-high reservoir 流入
PE species任意。負電荷の photo_raycast、z-high 注入、放出反作用あり
surface closure全 role が explicit。手動 fixed_current target と neutral_return は使わない
event policyabort、または率・件数猶予・絶対電荷警告閾値を持つ soft_discard

reference_area_m2 と stationary Zhao 専用の source key は指定しません。面積は domain の x-y 面積、HHdomain.box_max の z 成分、更新間隔は 1 accepted batch から決まります。online Zhao 固有の単価電荷、温度、密度、drift の 制約は入力パラメータを参照してください。

この model は次を解きません。

  • 外部の 6D VDF、粒子 inventory、flight time、遅延 return queue
  • 衝突、磁化された return、外部シースの過渡
  • BEACH 領域内の volume plasma charge
  • online Zhao v1 における ambient 外向き population の外部 return

online Zhao は PE の束と平均法線 energy を、その 2 moment を再現する half-Maxwellian へ縮約します。 そのため、高 energy tail は保持しません。

auto の複数根判定は有限個の multistart で見つけた根の比較であり、数学的な root isolation ではありません。 branch 別の検証では a / b / c を明示して scan します。

require_uniqueminimum_energy は query ごとに stateless です。continuation は前の accepted Type A root を 次の探索の seed として保持します。どの policy も、解けない場合に明示 branch や backend を暗黙に切り替えません。

これらが主要効果なら、独立した 1D—3D kinetic coupling または full PIC で検証します。応答表の grid、固定点許容値、 matching-plane 高度を変える検証項目は数値・応答表リファレンスにまとめています。