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

periodic2有限画像構成

このページは、境界 reservoir + closed PE によってレゴリス帯電と光電子の表面内再分配を調べる periodic2 構成の正本です。太陽風 VDF は z-high 面で定義し、光電子だけを閉じ、電位は z-high 面平均からの 差として読みます。このbaselineではmatching-plane outer-sheath closureを有効にしません。

構成太陽風流入光電子電位基準用途
境界reservoir + closed PEz-highのVDFを補正せず使用z-high反射 + neutral_returnz-high面平均このページの基準構成。表面内再分配とbatch感度
scalar barrierinfinity_barrier共通のpotential_barrierphi_infty一つのscalar障壁による比較

同じrunでこれらを重ねません。特に、closed PE構成にはinfinity_barrierpotential_barrierを追加しません。

完全な実行例は examples/periodic2_closed_photoelectron.toml です。

[sim]
field_solver = "fmm"
field_periodic_image_layers = 1
field_periodic_far_correction = "none"
[domain]
box_origin = [0.0, 0.0, 0.0]
box_size = [1.0e-4, 1.0e-4, 1.0e-3]
periodic_axes = ["x", "y"]
[field_boundary]
mode = "periodic2"
[particle_boundary]
z_low = "open"
z_high = "open"
ordinary_open_model = "escape"
[reservoir]
inflow_model = "source_vdf"
face_potential_grid_n = 5

[domain] が cell と周期 topology を、[field_boundary] が場の closure を定めます。現行 periodic2periodic_axes=["x", "y"] と非周期 z 軸の組合せだけを受理します。周期性は全粒子種に共通で、species や [particle_boundary] から上書きできません。 旧 [external_boundary] は削除済みです。外部 reservoir 条件は [reservoir]、species 別流入面は [particles.species.boundary_inflow]、非周期面の外向き粒子作用は [particle_boundary] に指定します。

太陽風 electron/ion には z-high の boundary_inflow="reservoir" を使います。密度、温度、drift は z-high 面の局所 boundary VDFであり、表面電位による到達率・速度補正は行いません。

光電子speciesだけに閉じた表面電荷closureを指定します。

[[particles.species]]
species_key = "photoelectron"
source_mode = "photo_raycast"
deposit_opposite_charge_on_emit = true
surface_charge_closure = "neutral_return"
[particles.species.boundary]
z_high = "reflect"

species 境界の z_high="reflect" は非周期 z-high 通過時の法線速度だけを反転します。太陽風 species は既定の "inherit" なので、particle_boundary.z_high="open"ordinary_open_model="escape" に従います。

このbaselineは境界eventの面内位置を維持します。topからのreturn位置をx-y面内で一様化する感度比較では、 z_high="redistributed_reflect"へ置き換えられます。速度作用は同じで、位置だけを再標本化します。 これはclosed PEの別のreturn-destination modelであり、自己整合sheathではありません。背景と同時eventの規則は 光電子の放出とライフサイクルを参照してください。

  1. batch 開始時の表面電荷から有限画像を含む場 snapshot を作る。
  2. z-high の局所 VDF から太陽風を、ray hit から光電子を注入する。
  3. 固定した snapshot で全粒子を追跡し、光電子だけを z-high で反射する。
  4. 解決済み帰還先分布で未帰還光電子を統計的に閉じ、全電荷差分を commit する。
  5. 必要なら同じ commit 後の電荷から要素電位と z-high 面平均を出力する。

batch中に場は更新しません。したがってbatch_durationは物理時間幅であると同時にexplicit charge updateの 幅です。closed PEは光電子の正味電流による発散を除きますが、太陽風帯電のbatch幅依存性は残ります。 1

負電荷の光電子speciesについて、1 batchのsigned macro chargeを

S=emittedqw<0,R=resolved absorptionqw<0S=\sum_{\mathrm{emitted}}qw<0,\qquad R=\sum_{\mathrm{resolved\ absorption}}qw<0

とします。neutral_returnは実測した帰還先depositを

sreturn=SRs_{\mathrm{return}}=\frac{S}{R}

倍します。放出元へ残す反作用電荷はS-Sなので、

(S)+sreturnR=0(-S)+s_{\mathrm{return}}R=0

となります。つまり、このspeciesは表面総電荷を変えず、放出元から解決済み帰還先への分布だけを作ります。 太陽風による総電荷更新は拘束しません。

これは未帰還粒子の帰還先分布が、同じbatchで帰還した粒子と同じだという統計的closureです。 s_returnが1から大きく離れるrunは、未解決軌道ではなくclosure仮定が局所分布を決めています。 この近似は少数の長寿命粒子だけを閉じる固定契約であり、未帰還率が5%を超える場合は補正せず停止します。 上限を緩める設定は持たず、max_stepdt、box高さを見直して5%以下へ収束させます。

neutral_returnは「全てのk=0k_\parallel=0構造を数式的に除去する」操作ではありません。表面総電荷の monopole増分を0にしますが、異なる高さの面へ移った電荷は平面平均された鉛直dipoleを作り得ます。

次の場合は batch を受理せず停止します。

  • 放出があるのに解決済み帰還電荷が0。
  • 光電子の実 escape または soft_discard
  • 非有限値または符号不整合。

max_stepまで残った粒子だけが統計補正の対象です。raw未帰還電荷、補正量、係数、未帰還率は charge_ledger.csvへ別々に残します。

[domain] があり、output.write_files=trueoutput.write_potential_history=trueoutput.history_stride>0 なら、potential_history.csv と同じ batch に top_reference_history.csv を出力します。

ϕˉtop=1N2a,bϕ(xa,yb,zhigh),ϕrel(r)=ϕ(r)ϕˉtop.\bar\phi_{\mathrm{top}} =\frac{1}{N^2}\sum_{a,b}\phi(x_a,y_b,z_{\mathrm{high}}^-),\qquad \phi_{\mathrm{rel}}(\mathbf r)=\phi(\mathbf r)-\bar\phi_{\mathrm{top}}.

NNreservoir.face_potential_grid_n です。標本点は全 periodic cell 上面の cell center です。 二つの履歴をbatchでjoinし、各要素のpotential_Vから同じbatchの potential_mean_Vを引きます。

[output]
history_stride = 1000
write_mesh_potential = true
write_potential_history = true

この面平均は無限遠電位でもプラズマ電位でもなく、太陽風流入へ feedback しない診断値です。定数 gauge は 除けますが、box 高さ、zero mode、有限画像打切りへの依存性は残ります。potential_std_V や min/max の幅が 大きい場合、z-high を一つの reservoir 面とみなす近似は弱くなります。

write_mesh_potential=trueまたはwrite_potential_history=trueなら、最終状態のz-high統計を summary.txtにも記録します。最終mesh_potential.csvへ相対化するときはこの値を使えます。履歴strideに 最終batchが含まれない場合でも、最終mesh電位へ別batchのtop値を流用しません。

field_periodic_image_layers=Nは、primary cellの周囲NN層までをfield sourceへ加えます。

NN含むcell
0primaryだけ、1×11\times1
1周囲1層、3×33\times3
2周囲2層、5×55\times5

field_periodic_far_correction="none"では、その外側をEwald和やcached operatorで補いません。 top-relative potentialにしても無限周期解にはなりません。画像層を増やし、目的量が変わらなくなることを確認します。 無限周期の nonzero mode が必要なら field_periodic_far_correction="cached_kneq0" を使い、 periodic2静電場の収束手順を確認します。

  1. abs(neutral_return_weight_scale-1)neutral_return_unresolved_fractionが十分小さいことを確認する。
  2. dtを下げるときもmax_step*dtを維持または増加させ、rays_per_batchも増やして帰還先分布を収束させる。
  3. batch_durationを少なくともT,T/2,T/4T,T/2,T/4と変え、電荷・相対電位・力の履歴を比較する。
  4. z-high を上下し、reservoir.face_potential_grid_n を増やして top 平均とばらつきを確認する。
  5. image layerをN,N+1,N+2N,N+1,N+2と増やす。
  6. 太陽風のmacro粒子数と乱数seedに対する統計誤差を確認する。redistributed_reflectを使う場合は、 return位置の追加samplingについても粒子数とseedを変えて確認する。

完全反射は人工的な上端 mirror であり、自己整合 sheath や準中性解ではありません。この構成が示すのは、 指定した境界太陽風 flux の下で正味光電子電流を 0 としたときの表面内再分配です。

scalar barrier 比較では closed PE 設定を外し、reservoir.inflow_model="infinity_barrier"reservoir.phi_inftyparticle_boundary.ordinary_open_model="potential_barrier" を組み合わせます。これは face 平均 scalar で上流 VDF を補正し、各 open 通過点の energy で reflect/escape を決める比較モデルです。設定、式、制約は 境界から粒子を流入させる粒子の escape と returnにまとめています。