光線追跡による光電子放出位置と速度のsampling。
光線を注入面からレイキャストし、最初の命中要素から光電子を放出する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_type), | intent(in) | :: | mesh |
交差判定に使うメッシュ。 |
||
| type(sim_config), | intent(in) | :: | sim |
ボックス境界条件とバッチ時間を含むシミュレーション設定。 |
||
| character(len=*), | intent(in) | :: | inject_face |
照射面識別子( |
||
| real(kind=dp), | intent(in) | :: | pos_low(3) | |||
| real(kind=dp), | intent(in) | :: | pos_high(3) | |||
| real(kind=dp), | intent(in) | :: | ray_direction(3) | |||
| real(kind=dp), | intent(in) | :: | m_particle |
粒子1個あたりの質量 [kg]。 |
||
| real(kind=dp), | intent(in) | :: | temperature_k |
粒子1個あたりの質量 [kg]。 放出温度 [K]。 |
||
| real(kind=dp), | intent(in) | :: | normal_drift_speed |
粒子1個あたりの質量 [kg]。 放出温度 [K]。 放出法線方向のシフト速度 [m/s]。 |
||
| real(kind=dp), | intent(in) | :: | emit_current_density_a_m2 |
レイ垂直面基準の放出電流面密度 [A/m^2]。 |
||
| real(kind=dp), | intent(in) | :: | q_particle |
レイ垂直面基準の放出電流面密度 [A/m^2]。 粒子1個あたりの電荷 [C]。 |
||
| integer(kind=i32), | intent(in) | :: | rays_per_batch |
このrankで発射するレイ本数。 |
||
| real(kind=dp), | intent(out) | :: | x(:,:) | |||
| real(kind=dp), | intent(out) | :: | v(:,:) | |||
| real(kind=dp), | intent(out) | :: | w(:) | |||
| integer(kind=i32), | intent(out) | :: | n_emit |
実際に放出された粒子数( |
||
| integer(kind=i32), | intent(out), | optional | :: | emit_elem_idx(:) | ||
| integer(kind=i32), | intent(in), | optional | :: | global_rays_per_batch |
全rank合計のレイ本数(省略時は |
|
| real(kind=dp), | intent(in), | optional | :: | vmin_normal |
放出法線速度の下限 [m/s](省略時は 0)。 |
|
| integer(kind=i32), | intent(out), | optional | :: | collision_failure_status |
不完全な衝突照会の status(省略時は OpenMP 終了後に停止)。 |
|
| integer(kind=i32), | intent(out), | optional | :: | collision_failure_ray |
不完全な衝突照会の status(省略時は OpenMP 終了後に停止)。 不完全な照会を返した最小 ray index。 |
|
| integer(kind=i32), | intent(out), | optional | :: | collision_failure_bounce |
不完全な衝突照会の status(省略時は OpenMP 終了後に停止)。 不完全な照会を返した最小 ray index。 不完全な照会を返した bounce index。 |