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

外部シースとの接続(Zhao 定常シース)

太陽風と紫外線にさらされた周期表面のセルで、上端面(z-high 面)の外にあるシースと整合した帯電を計算したいときに 読むページです。BEACH はセルの外に平面の定常シースを仮定してその零電流根を解き、根から上端面の条件 (電流、電位基準、任意の法線電場、流入分布、流出障壁)を決めます。読み終えると、根が与える量と BEACH がそれをどう使うか、設定で何を 揃えるか、出力の何を見れば整合を確認できるかが分かります。

セルの高さは Debye 長(太陽風で約 10 m)よりはるかに小さいので、外部のシースから見ると上端面は表面そのものです。 シースを時間発展させるモデルではなく、既定では計算の開始時に根を一度だけ解きます。外部根の更新 (sheath.coupling.outflow_refresh_batches)を使うと、上端面を出ていく PE + SEE の観測値から根を定期的に解き直します。 ケース全体の組み立て方はプラズマ中の周期表面を設定するにあります。

根が与えるもの上端面での使い方節
粒子種ごとの電流 JeJ_e、JiJ_i、JemitJ_{emit}、JreturnJ_{return}、JescapeJ_{escape}各バッチの吸収・放出・脱出の目標電荷電流を根の値に固定する
壁電位 ϕ0\phi_0上端面の平均電位の基準(上流のプラズマを 0 V)上端面の電位を壁電位に合わせる
障壁 ϕm\phi_m(Type A)または 0 V入る粒子の選別と、出る粒子の反射・脱出の判定上端面での粒子の出入り
法線電場 Ez(H+)E_z(H^+)e_top_from_sheath の零モード境界値上端面の法線電場を接続する
上流電子密度 ne,∞n_{e,\infty}上端面から入れる電子の密度上流電子密度で電子を入れる

外部の平面定常シースが電流、電位基準、流入分布、障壁、任意の法線電場を BEACH の上端へ渡し、セル内部で軌道を追跡する領域分担図。

外部根は上端の条件を与え、BEACH はその内側の表面電荷と粒子軌道を扱います。

上流(電位 0 V)の太陽風と、表面から放出される電子(PE + SEE)がつくる 1 次元のシースです。表面への正味電流が 0 になる 定常解(零電流根)を求めます。

Je+Ji+Jescape=0J_e + J_i + J_{escape} = 0

JeJ_e は電子の吸収電流、JiJ_i はイオンの吸収電流、JescapeJ_{escape} は外へ逃げる PE + SEE の電流で、符号は表面帯電への寄与です。 放出電子源がない場合は Je+Ji=0J_e + J_i = 0 です。根は電位の形で 3 つの型に分かれます。PE なしの初期根は Type C で、SEE 流出を入れる更新後には別の型も選べます。

型電位の形
Type A表面と上流の間に電位極小 ϕm\phi_m を持つ
Type B表面から上流へ単調に下がる(表面が正)
Type C表面から上流へ単調に上がる(表面が負)

根からは、型(branch)、壁電位 ϕ0\phi_0、電位極小 ϕm\phi_m、上流電子密度 ne,∞n_{e,\infty}、粒子種ごとの電流が得られます。 BEACH は根を外部ライブラリ sheath-model で解きます(fpm.toml で commit を固定)。 sheath-model は、代数的な根が次の条件を満たすかも検査し、満たさない根は採用しません。

  • 電位分布の全域で E2≥0E^2\ge0
  • 上流で中性かつ電場 0 に近づく
  • イオンの流れが途中で遮られない

sheath.zhao.branch="auto" は、太陽高度が 20 度未満なら C → A → B、それ以外は A → B → C の順に試し、成り立つ最初の根を返します。 "a"、"b"、"c" を書くとその型だけを解きます。成り立つ根がなければ、起動時に理由を表示して停止します。

  • シースは平面、無衝突、非磁化、定常。
  • 太陽風電子は、イオンと同じ太陽風の法線速度で drift した Maxwell 分布。上流へ戻る遅い電子は、入射分布の鏡像として反射する。 この仮定は上流に接する幅数十 mV の帯で厳密には成り立たないので、帯の内側で欠ける場が太陽風の運動電場 ∣u×B∣\lvert\mathbf{u}\times\mathbf{B}\rvert(約 2 mV/m)以下の根を受理する(電子の drift と上流の帯)。
  • イオンは上流で密度 nin_i、法線速度 uiu_i、温度 TiT_i を持ち、流束を保つ流体として輸送する(Sana & Mishra 2026)。 圧力項の係数は sheath.zhao.ion_pressure_factor(1 は等温、3 は 1 次元断熱)で、入口は超音速 miui2/e>f Tim_i u_i^2/e > f\,T_i でなければ ならない。太陽風では入口エネルギー(400 km/s の陽子で約 0.86 keV)が TiT_i よりはるかに大きく、Ti≤12T_i\le12 eV で根の変化は 0.1 mV 以下である。根には BEACH が注入するイオンと同じ温度を使う。
  • 光電子は表面から半 Maxwell 分布で放出され、その密度は npe,0=sUV npe,refsin⁡αn_{pe,0}=s_{UV}\,n_{pe,ref}\sin\alpha (α\alpha は太陽高度、npe,refn_{pe,ref} は基準密度、sUVs_{UV} は倍率)。
  • セルは外部シースから見て厚さ 0 の壁。

役割を持つ 3 つの粒子種(電子、イオン、光電子)は、電荷の閉じ方を固定電流(fixed_current)にします。 SEE の役割を追加する場合、その種は charging.closure を省略して完全に追跡します(二次電子放出)。 各バッチで、追跡で得た分布を、根の電流にバッチ幅を掛けた目標電荷へ一律の倍率で合わせます。

経路符号扱い
電子の吸収 JeJ_e負表面への吸収の目標
イオンの吸収 JiJ_i正表面への吸収の目標
光電子の放出 JemitJ_{emit}正放出元に残す反作用電荷の目標
光電子の帰還 JreturnJ_{return}0 以下表面への再吸収の目標
光電子の脱出 JescapeJ_{escape}正表面に置かない、外部へ出る電流

PE だけの場合、根は Jreturn=Jescape−JemitJ_{return}=J_{escape}-J_{emit} と Je+Ji+Jescape=0J_e+J_i+J_{escape}=0 を満たすので、表面の電流は Je+Ji+Jreturn+Jemit=0J_e+J_i+J_{return}+J_{emit}=0 で閉じます。放出と帰還は別々の倍率で合わせ、二つの大きな電流の差である 光電子の正味電流を倍率の分母に使いません。PE だけなら表面の総電荷は浮遊条件に拘束され、要素ごとの分布だけが追跡で決まります。 SEE を加えた Phase 1 では、完全に追跡する SEE の電流と外部根から配分した電流との差が表面収支へ残ります。

上端面の電位を壁電位に合わせる

Section titled “上端面の電位を壁電位に合わせる”

上端面の水平平均電位を壁電位 ϕ0\phi_0 に合わせます。真空中で定数を足すだけなので、セル内の電位差と粒子の軌道は変わらず、 電位の値が上流のプラズマ 0 V を基準にした値になります。流入の写像と外部障壁の判定はこの電位を前提にするので、 場の面平均成分を分けて扱う周期セル(fields.boundary="periodic2"、x/y 周期、fields.periodic.backend が cached_kneq0 または panel_spectral_reference)が必須です。面平均成分を分けない設定は設定エラーになります。

面平均成分を分けないと上端面の電位は約 0 V のままになり、流入する電子は減速されず、光電子は浅すぎる障壁で判定されます。 平板 8×8・20 バッチで比べると、分ける設定では平面の平均電位が根の ϕ0\phi_0(Type A で 2.654 V、Type C で −9.422 V)と 0.1 mV 以内で一致し、固定電流の倍率は全チャネルで統計誤差の範囲で 1 でした。分けない設定では平面の平均電位が 0 V 付近に留まり、 電子の倍率は 0.53(Type C)、光電子の帰還と escape の倍率は 1.99 と 0.30(Type A)にずれました。

fields.periodic.lower_boundary_model="e_top_from_sheath" は、外部根の Ez(H+)E_z(H^+) を零モードの上端場へ渡します。 層内の電荷を保ったまま下端を Ebottom=Ez(H+)−Q/(ϵ0A)E_\mathrm{bottom}=E_z(H^+)-Q/(\epsilon_0A) に設定するため、H に面電荷がなければ法線場が連続になります。 根の直後に sheath-model の evaluate_sheath_state を呼び、Type A のみ電位極小も渡します。初期根、流出更新、再開時の根再構成で同じ経路を使います。 surface_current_model_top_field_V_m はこの現在の根の場で、Type C は負、Type A/B は正です。

上端近傍の非零モードの誤差は上部真空の Fourier 切替で抑えます。 matching_plane_history.csv の E_top_sheath_V_m と E_top_cell_mean_V_m で境界値を比較できます。

流入: 太陽風は上流 0 V の分布から、外部シースの障壁と上端面の両方に届く部分だけを選び、法線速度を エネルギー保存で上端面へ写します。

12mvn,f2=12mvn,∞2−qϕf\frac12 m v_{n,f}^{2}=\frac12 m v_{n,\infty}^{2}-q\phi_f

ϕf\phi_f はバッチ開始時の上端面の平均電位、vn,∞v_{n,\infty} は上流での法線速度です。

流出: 上端面を外向きに横切った電子・光電子・二次電子は、横切った点の電位 ϕc\phi_c と法線方向の運動エネルギーで、 外部の障壁を越えられるかを判定します。越えられないものは法線速度を反転して戻し、越えられるものは脱出とします。

型電子が入るときの障壁電子・PE・SEE が出るときの障壁イオン
Type Aϕm\phi_mϕm\phi_m0 V
Type B / C0 V0 V0 V

例えば Type A で ϕ0≈6.9\phi_0\approx6.9 V、ϕm≈−0.07\phi_m\approx-0.07 V なら、上端面から出る電子は法線エネルギーが約 7 eV 未満だと戻されます。 Type C では壁が負なので、外へ向かう電子はすべて脱出します。

上流から入ってセル内で反射し、上端面を外へ抜ける電子は、外部モデルから見れば由来に関わらず境界からの放出電子です (sheath-model の結合ガイド)。 外部根を更新する run では、既定(sheath.coupling.include_reflected_electrons=true)でこの反射電子を外部根の放出源に数えます (外部根を更新する)。false にすると数えず、根の電子流入を全て壁への吸収として扱います。 外部根を固定する run(outflow_refresh_batches=0)では、このスイッチは効きません。

x/y 周期のセルでは、戻す位置を上端面内で一様に選び直します。外部シースの中で粒子が横に動く距離は、 飛行時間と接線速度の積で m 程度になり、セル幅よりはるかに大きいためです。戻す位置の電位 ϕr\phi_r で 法線方向の運動エネルギーを合わせ、全エネルギーを保ちます。

12mvn,r2=12mvn,c2+q(ϕc−ϕr)\frac12 m v_{n,r}^{2}=\frac12 m v_{n,c}^{2}+q(\phi_c-\phi_r)

右辺が 0 以下になる遅い粒子は、外部での滞空が短く横へほとんど動かないので、横切った位置へ戻します。 接線速度は変えません。

壁に届いた電子は吸収されて戻らないので、上流の電子分布は外向きの高速成分が欠けています。根は、この欠けを含めて 上流で準中性になるよう、電子 Maxwell 分布の密度 ne,∞n_{e,\infty} を解きます。光電子なしの Type C では

ne,∞=ni1−12erfc⁡−ϕ0/Ten_{e,\infty}=\frac{n_i}{1-\frac12\operatorname{erfc}\sqrt{-\phi_0/T_e}}

で、イオン密度 nin_i より大きくなります。BEACH は上端面からの電子をこの ne,∞n_{e,\infty} で、イオンを設定の nin_i で入れます。 これで入れた電子の束が根の電子電流と一致し、電子の倍率は統計誤差の範囲で 1 になります。 外部根を更新するたびに ne,∞n_{e,\infty} も更新します。

外部根の更新は PE と任意の sheath.species.secondary_electron を表面放出電子のグループとして扱います。 secondary_emission 種が 1 つだけなら、sheath.species.secondary_electron を省いてもその種が SEE の役になります。 複数あるときは指定が必要です。 外部ライブラリへ専用の SEE 項は加えません。outflow_refresh_batches 個の受理バッチごとに次を行います。

  1. z-high の外向き通過を PE と SEE 別に、法線運動エネルギーの bin ごとに数える。 PE は従来の Γpe,out=ηΓpe,emit\Gamma_{pe,out}=\eta\Gamma_{pe,emit}、η=Nout,pe/Nemit,pe\eta=N_{out,pe}/N_{emit,pe} と設定放出束を使う。 SEE は Γsee,out=∑wout,see/(A∑Δtbatch)\Gamma_{see,out}=\sum w_{out,see}/(A\sum\Delta t_{batch}) で重みから直接求める。AA は参照面積。 バッチ幅が一定なら分母は ANwindowΔtbatchA N_{window}\Delta t_{batch}。 include_reflected_electrons なら、セル内で反射して抜けた上流電子も SEE と同じ規格化で第 3 のグループに数える。
  2. 各スペクトルをそれぞれの束へ規格化して bin ごとに加え、平均法線エネルギーも束で重み付けして合算する。 合算スペクトルを既存の外部電子放出源へ渡し、零電流根を解く。
  3. 新しい電流・障壁・壁電位・上流電子密度を次のバッチから使う。 根の脱出束 JescapeJ_{escape} は PE と SEE を合算した放出源に対する値である。各バッチで、追跡した SEE の脱出電流を JescapeJ_{escape} から差し引いた残りを PE の脱出目標にし、帰還目標は PE の設定放出との差にする。 SEE へ固定電流目標は付けない。 ただし根が Type C(放出電子の帰還 Jreturn=0J_{return}=0)なら PE は全て脱出し、PE の帰還で SEE 脱出の揺らぎを吸収できない。 この場合は PE の帰還目標を 0、脱出目標を PE 放出とし、SEE は PE なしのときと同じく帰還・脱出・放出を根に固定する (SEE の取り分は JescapeJ_{escape} − PE 放出)。 反射電子を含めるときは、根の脱出・帰還は放出電子と反射電子の合算に対する値なので、各バッチで追跡した反射電子の 脱出を電子の吸収目標に足し戻し(障壁を越えた反射電子は壁に届かない)、PE の脱出・帰還目標から差し引く。 PE がなく SEE だけのとき(PE+SEE の Type C を含む)は、SEE の脱出・帰還・放出目標から反射電子の脱出・帰還・外向きを差し引く。 PE も SEE もなければ根の脱出・帰還は全て反射電子のもので、追跡した脱出の揺らぎを吸収する種がない。そこで電子の 吸収目標を根の「流入 − 脱出」、脱出目標を根の脱出に固定し、反射電子のスペクトルは外部源へだけ渡す。 初期根は源 0 の Type C で、反射電子は最初の更新から入る。

この分配で表面の電流収支は毎バッチ厳密に閉じ、セルの総電荷は PE だけのときと同じく固定されます。secondary_share は そのバッチで SEE の脱出に充てた JescapeJ_{escape} の割合、secondary_budget_residual_a_m2 は SEE の追跡脱出が JescapeJ_{escape} を超えて差し引けなかった分(通常は 0)です。PE がなく SEE だけの場合は根の脱出束・帰還束が全て SEE の ものなので、PE と同じく SEE の帰還を JreturnJ_{return}、脱出を JescapeJ_{escape} に固定し、放出の反作用電荷は根に与えた外側源 Jreturn+JescapeJ_{return}+J_{escape}(追跡した H 外向き束の窓平均)に揃えます。放出量そのものは追跡した衝突で決まり、根は予測 しません。こうしてセルの総電荷はバッチ内の SEE 放出の揺らぎに動かされず、最初の更新前の源 0 の根では反作用電荷を 置きません。生の帰還がないバッチでは帰還目標を放出へ畳み、SEE が放出されなかったバッチだけ根の脱出分が収支に残ります。 secondary_share は 1、残差はその残った分です。SEE だけでも更新できます。 PE と SEE があり根が Type C のときも SEE を同じように根へ固定します。Type C では放出電子が全て脱出し PE の帰還が ないので、SEE 脱出の揺らぎを PE の帰還で吸収できないためです。このとき secondary_share は JescapeJ_{escape} のうち SEE に 充てた割合(JescapeJ_{escape} − PE 放出)です。最初の更新前の根は PE だけの源なので、SEE の取り分は 0 です。 初期根は PE の表面放出源だけで解き、PE なしでは源 0 の Type C から始めます。SEE は最初の更新から入ります。 更新では前回の型を先に試し、その後に A、B、C を試します。

bin は sheath-model の既定格子(log_energy_edges)で、[0,1 meV)[0, 1\,\text{meV}) と、1 meV から 1 keV までの対数 bin(1 桁に 24 個)、 1 keV 以上は最後の bin に数えます。 スペクトルを平均エネルギーだけの半 Maxwell 分布へ縮約しないのは、上端面のスペクトルが、放出に近い低エネルギーの本体と、 セル内の電位差で加速された高エネルギーの裾を合わせた形になりうるためです。平均は裾で決まるので、同じ平均の半 Maxwell 分布は、障壁を越えて逃げる電子と壁の近くの遅い電子の両方を誤って数え、根を失うことがあります。

状況動作
sheath.zhao.branch を明示その型だけを解く
sheath.zhao.branch="auto"直前の型を先に試し、解けなければ A → B → C の順に探す(太陽高度による並べ替えは初期根だけ)。前回の根を初期値に使う
根が見つからない、または流出が 0警告し、直前の根を保つ
再開保存した光電子源(スペクトル)から根を作り直す。途中まで合計した分は捨て、再開時点から数え直す

更新のたびに使う光電子の標本が少ないと、根は統計雑音で揺れます。設定例(光線 300 本/バッチ、更新間隔 2 バッチ、 平板)では、更新ごとの ϕ0\phi_0 が 2.34〜2.94 V の範囲で揺れ、標準偏差は 0.17 V でした。発散や型の切り替わりはなく、 揺れは窓内の標本数で決まるので、outflow_refresh_batches を長くするか光線数を増やして抑えます。間隔は、表面の 帯電の変化より十分短く選びます。定常状態だけが目的なら、到達する状態は間隔によりません。

[sheath]
closure = "zero_current"
[sheath.zhao]
branch = "auto"
upstream_field_floor_v_m = 0.002
[sheath.species]
electron = "solar_wind_electron"
ion = "solar_wind_ion"
photoelectron = "photoelectron"
[sheath.photoelectrons]
solar_elevation_deg = 60.0
ref_density_m3 = 6.4e7
[sheath.coupling]
outflow_refresh_batches = 50
  • 電子・イオン・PE の役割は charging.closure="fixed_current"、SEE は省略。電子とイオンは上端面から境界流入、光電子は上端面からの photo_raycast で反作用電荷あり。上端面は開放。
  • 電子とイオンの数密度には同じ太陽風密度を書く(違えば設定エラー)。電子とイオンの drift は、どちらも太陽風の法線速度 (負の z)にする。電子の drift を 0 にするなら upstream_field_floor_v_m は不要だが、ϕ0\phi_0 が約 1 V ずれる (電子の drift と上流の帯)。
  • イオンの温度は粒子種の distribution.temperature_ev から外部根にも渡る。sheath.zhao.ion_pressure_factor は圧力係数を変えるときだけ書く。
  • 光電子なし(Type C)は sheath.photoelectrons.source_scale=0.0 とし、光電子の粒子種と関連キーを省く。 SEE があれば外部根を更新できる。
  • 光電子の source.emit_current_density_a_m2 はレイ垂直面基準なので、表面の放出はそれに ray 仰角の sin を掛けた値になる。 外部源 e sUV npe,refsin⁡α vth/(2π)e\,s_{UV}\,n_{pe,ref}\sin\alpha\,v_{th}/(2\sqrt\pi) と一致させるには、source.emit_current_density_a_m2 を垂直入射の値 e sUV npe,ref vth/(2π)e\,s_{UV}\,n_{pe,ref}\,v_{th}/(2\sqrt\pi)(設定例では 2.54 µA/m²)にし、source.ray_direction の仰角を solar_elevation_deg に 合わせる。5% 以上ずれると起動時に警告する。固定電流の放出倍率が差を吸収するので収支は閉じるが、放出の生の粒子数が 目標から離れた状態で統計が組まれる。

全キーと組み合わせの制約は入力パラメータにあります。完全な例は examples/zero_current.toml、 zero_current_refresh.toml、 zero_current_no_photo.toml です。

出力見るもの
summary.txtsurface_current_model_zhao_branch、surface_current_model_phi0_V、surface_current_model_phi_m_V(初期根)。二つの残差 surface_current_model_pe_budget_residual_current_density_A_m2 と surface_current_model_surface_budget_residual_current_density_A_m2 が 0 に近い。電子に drift があるなら surface_current_model_upstream_field_deficit_V_m が upstream_field_floor_v_m 以下
fixed_current_history.csvtarget_over_tracked。外部根とセル内の追跡が整合していれば、どの粒子種も 1 の近く。光電子の escape が 1 から外れるときは、上端面の電位と ϕ0\phi_0 の差を疑う
charge_ledger.csv粒子種ごとの追跡・目標・適用の電荷、fixed_*_weight_scale、個数
matching_plane_history.csv(外部根の更新)phi_H_V(現在の ϕ0\phi_0)、PE + SEE の流出束と平均法線エネルギー、SEE の割合と収支残差。residual は流出の束と平均エネルギーの変化で、ϕ0\phi_0 の揺れは phi_H_V を直接見る
matching_plane_spectrum_history.csv(外部根の更新)外部根を更新した batch ごとの外部源スペクトル。セル内で加速された裾の割合
top_reference_history.csvpotential_mean_V が ϕ0\phi_0 に一致すること。ずれは場の誤差で、障壁の判定をずらす(遠方補正の精度)

倍率が粒子種によって大きく違うと、要素ごとの電流の釣り合いが追跡だけで決まる状態からずれます。 列の定義は出力形式にあります。

零電流の残差が小さくても、追跡で得た吸収・帰還の空間分布が収束したことにはなりません。光線数、バッチ幅、 乱数 seed を変えて、要素ごとの分布が変わらないことを確かめます。

  • box の外の電場、空間電荷、Debye 遮蔽、折り返し点までの距離や飛行時間は解きません。上端面での反射は、 外部での往復を境界での反転に縮めた近似です。
  • 一様磁場は 0 でなければなりません。
  • 平面の定常解なので、曲率、衝突、外部シースの過渡、計算中に変わる照射やプラズマ条件には追従しません。 外部根の更新は上端面を出る PE + SEE の変化に追従します。
  • 上流の帯: 電子に drift を与えた A/C の根は、上流に接する幅数十 mV の帯の内側で理想化した電子分布に従いません。 壁の量への影響は数十 mV です(電子の drift と上流の帯)。
  • 光電子源の離散化: 外部根の更新では、上端面を出る光電子を法線運動エネルギーの bin だけで表し、bin の中の分布は一定とします。 接線方向の速度と、表面上の位置による違いは外部シースに渡しません。初期根(最初の更新まで)は表面放出の半 Maxwell 分布で解きます。
  • 跳ね返された太陽風粒子を戻さない: セル内で跳ね返されて上端面から出ていく太陽風の電子とイオンは、外部根に入れていません。 外部根は壁に届いた電子とイオンをすべて吸収とみなします。固定電流はこの分も吸収として表面に配るので、総電流の釣り合いは 保たれます。逃げる割合は fixed_current_history.csv の電子とイオンの倍率の 1 からのずれで読めます。光電子のない Type C では、 電子が届きにくくイオンだけが当たる面が、イオンの運動エネルギー(400 km/s の陽子で約 0.84 kV)近くまで正に帯電し、 イオンを跳ね返すことがあります(三層の粒子層で 10⁵ s 後に約 3%)。表面の伝導は含みません。簡易 SEE は 二次電子放出で設定します。