新規 run では設定の表面放出を外部源とする静的根から始め、再開では保存した外部源で根を再構成する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(zhao_outflow_refresh_type), | intent(out) | :: | self | |||
| type(app_config), | intent(in) | :: | app | |||
| type(mesh_type), | intent(in) | :: | mesh | |||
| type(matching_plane_stats), | intent(inout) | :: | receipt |
外部シースの receipt。再開では保存した外部源を読み、初期化後は現在の外部状態を書く。 |
||
| type(surface_closure_contract_type), | intent(inout) | :: | surface_closure | |||
| type(irradiation_cell_contract_type), | intent(in), | optional | :: | cell |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(zhao_outflow_refresh_type), | intent(in) | :: | self |
accepted batch の H 通過モーメントを窓へ加え、窓が満ちたら外部根を解き直して次 batch の closure を返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(zhao_outflow_refresh_type), | intent(inout) | :: | self | |||
| type(app_config), | intent(in) | :: | app | |||
| type(mesh_type), | intent(in) | :: | mesh | |||
| type(mpi_context), | intent(in) | :: | mpi_ctx | |||
| real(kind=dp), | intent(in) | :: | moments_thread(:,:,:) | |||
| real(kind=dp), | intent(in) | :: | emission_reaction_charge(:) |
固定電流closureがrank合計した種ごとの表面放出の反作用電荷(raw)。 |
||
| real(kind=dp), | intent(in) | :: | fixed_escape_closed_charge(:) |
固定電流closureが脱出目標の調整で収支に組み込んだ電荷と、組み込めなかった電荷(帯電符号の大きさ、0 以上)。 |
||
| real(kind=dp), | intent(in) | :: | fixed_escape_unclosed_charge(:) |
固定電流closureが脱出目標の調整で収支に組み込んだ電荷と、組み込めなかった電荷(帯電符号の大きさ、0 以上)。 |
||
| integer(kind=i32), | intent(in) | :: | batch_idx | |||
| type(matching_plane_stats), | intent(inout) | :: | receipt |
候補 batch の外部シース receipt。 |
||
| type(surface_closure_contract_type), | intent(inout) | :: | surface_closure | |||
| logical, | intent(out) | :: | refreshed |
type, public :: zhao_outflow_refresh_type private logical :: active = .false. integer(i32) :: refresh_batches = 0_i32 integer(i32) :: window_batches = 0_i32 integer(i32) :: photo_idx = 0_i32 integer(i32) :: secondary_idx = 0_i32 !> 反射して H を抜けた上流電子を外部源に含めるときの電子 species(含めなければ 0)と、最後の窓のその束。 integer(i32) :: reflected_idx = 0_i32 real(dp) :: reflected_flux_m2_s = 0.0_dp real(dp) :: window_duration = 0.0_dp integer(i32) :: accepted_solves = 0_i32 real(dp) :: area = 0.0_dp real(dp) :: photo_abs_charge = 0.0_dp real(dp) :: last_change = 0.0_dp !> 窓内の H 外向き通過数、その法線運動エネルギー和 [J]、表面放出数。raw weight 単位。 !! group 1 = PE、2 = SEE、3 = 反射して H を抜けた上流電子。 real(dp) :: window_moments(3, 3) = 0.0_dp !> 窓内の H 外向き通過数の法線運動エネルギー bin 別内訳。raw weight 単位。 real(dp) :: window_spectrum(outflow_spectrum_bins, 3) = 0.0_dp type(irradiation_cell_contract_type) :: cell type(surface_current_model_result_type) :: state !> 外部根と、その放出源。更新は前回の根を初期値にする。 type(sheath_matching_iteration) :: outer contains procedure :: initialize procedure :: is_active procedure :: commit_batch end type zhao_outflow_refresh_type