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

box 境界での粒子の扱い

粒子が box の面に達したとき、周期の面では反対側へ回り込み、非周期の面では面ごとに選んだ扱いに従います。 この扱いは、粒子をどの粒子源で作ったかによらず共通です。BEACH は box の外のプラズマを解かないので、 面の外へ出た粒子が戻ってくるかどうかは、ここで選ぶ扱いが代わりに決めます。

周期面では反対側へ移動、開放面では脱出、反射では法線速度を反転、再配置つき反射では面内位置も選び直す比較図。

周期面では速度を保って反対側へ回り込み、反射面では法線速度だけを反転して残り時間を進めます。

扱い設定粒子に起きること
周期domain.periodic_axes反対側の面へ移り、速度は変えない
開放"open"脱出する。外部シースとの接続では種別の障壁を適用する
反射"reflect"法線速度を反転する。位置と接線速度は変えない
再配置つき反射"redistributed_reflect"法線速度を反転し、面内の位置を一様に選び直す
[particles.boundary]
z_low = "open"
z_high = "open"

周期の軸は場と粒子に共通の性質なので、[particles.boundary] でも粒子種ごとの設定でも変えられません。 省略した非周期の面は開放です。粒子種ごとに扱いを変えるには [particles.species.boundary] で inherit(既定値)、open、reflect、redistributed_reflect を選びます。

開放面を横切った粒子は、横切った位置で取り除きます。粒子の電荷は粒子種ごとの脱出電荷 (charge_ledger.csv の escaped_to_infinity_C)に数え、表面電荷は変えません。

外部シースとの接続を使うと、上端面を出ていく電子と光電子は、外部シースの零電流根が与える障壁で反射か脱出かを判定します。 障壁電位と面内の戻り位置は外部シースの契約が与えます(外部シースとの接続)。

どちらも法線速度だけを反転し、接線速度を保ちます。reflect は位置を変えません。redistributed_reflect は、 1 つの面での反射では面内の 2 軸の位置を、両端の余白を除く範囲から一様に選び直します。角や辺で複数の面に同時に達したときは、 達した面に含まれない軸だけを選び直します。

上端面での光電子の反射は、閉じた光電子(光電子の放出と電荷の閉じ方)で使います。 同時に複数の面に達したときの判定順は粒子の衝突・境界イベントにあります。

出力見るもの
summary.txtescaped_boundary(境界から出た粒子数)
charge_ledger.csv粒子種ごとの escaped_count、escaped_to_infinity_C

summary.txt の escaped には、step 上限までに行き先が決まらなかった粒子(survived_max_step)も含まれます。 実際に境界から出た数は escaped_boundary で読みます。

  • 開放面の外の電場、折り返す位置、飛行時間、空間電荷は解きません。外部シースの障壁は、零電流根が与える電位差で判定する近似です。
  • 反射は、box の面に置いた鏡です。外部のプラズマやシースを表すものではありません。