Maxwell reservoirの流束、macro粒子数、面速度sampling。
drifting Maxwellian の片側流入束 [#/m^2/s] を返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | number_density_m3 |
粒子数密度 [1/m^3]。 |
||
| real(kind=dp), | intent(in) | :: | temperature_k |
温度 [K]。 |
||
| real(kind=dp), | intent(in) | :: | m_particle |
粒子1個あたりの質量 [kg]。 |
||
| real(kind=dp), | intent(in) | :: | drift_velocity(3) | |||
| real(kind=dp), | intent(in) | :: | inward_normal(3) | |||
| real(kind=dp), | intent(in), | optional | :: | vmin_normal |
法線速度の下限 [m/s](省略時は 0)。 |
物理流量・重み・残差から今バッチのマクロ粒子数を決める。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | number_density_m3 |
粒子数密度 [1/m^3]。 |
||
| real(kind=dp), | intent(in) | :: | temperature_k |
温度 [K]。 |
||
| real(kind=dp), | intent(in) | :: | m_particle |
粒子1個あたりの質量 [kg]。 |
||
| real(kind=dp), | intent(in) | :: | drift_velocity(3) | |||
| real(kind=dp), | intent(in) | :: | box_min(3) | |||
| real(kind=dp), | intent(in) | :: | box_max(3) | |||
| 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) | :: | batch_duration |
1バッチの物理時間長 [s]。 |
||
| real(kind=dp), | intent(in) | :: | w_particle |
マクロ粒子重み。 |
||
| real(kind=dp), | intent(inout) | :: | residual |
前バッチから繰り越すマクロ粒子端数(呼び出し後に更新)。 |
||
| integer(kind=i32), | intent(out) | :: | n_macro |
今バッチで生成するマクロ粒子数。 |
||
| real(kind=dp), | intent(in), | optional | :: | vmin_normal |
法線速度の下限 [m/s](省略時は 0)。 |
指定済み粒子 flux・重み・残差から今バッチのマクロ粒子数を決める。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | particle_flux_m2_s |
粒子数 flux [1/m^2/s]。 |
||
| 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) | :: | batch_duration |
1バッチの物理時間長 [s]。 |
||
| real(kind=dp), | intent(in) | :: | w_particle |
1バッチの物理時間長 [s]。 マクロ粒子重み。 |
||
| real(kind=dp), | intent(inout) | :: | residual |
前バッチから繰り越すマクロ粒子端数。 |
||
| integer(kind=i32), | intent(out) | :: | n_macro |
今バッチで生成するマクロ粒子数。 |
上流リザーバ境界から流入する粒子群を面注入としてサンプルする。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | box_min(3) | |||
| real(kind=dp), | intent(in) | :: | box_max(3) | |||
| 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) | :: | drift_velocity(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) | :: | batch_duration |
粒子1個あたりの質量 [kg]。 温度 [K]。 1バッチの物理時間長 [s](現在は妥当性チェックのみ)。 |
||
| real(kind=dp), | intent(out) | :: | x(:,:) | |||
| real(kind=dp), | intent(out) | :: | v(:,:) | |||
| real(kind=dp), | intent(in), | optional | :: | barrier_normal_energy |
法線方向のエネルギー障壁 |
|
| real(kind=dp), | intent(in), | optional | :: | vmin_normal |
法線速度の下限 [m/s](省略時は |
|
| real(kind=dp), | intent(in), | optional | :: | position_jitter_dt |
互換用のlaunch位相時間幅[s]。乱数列は保つが位置移動には使わない。 |
|
| logical, | intent(in), | optional | :: | apply_barrier_energy_shift |
|
flux-weighted half-range 正規分布から法線速度をサンプルする。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | mu |
法線速度分布の平均ドリフト成分 [m/s]。 |
||
| real(kind=dp), | intent(in) | :: | sigma |
法線速度分布の平均ドリフト成分 [m/s]。 法線速度分布の標準偏差 [m/s]。 |
||
| real(kind=dp), | intent(out) | :: | vn(:) | |||
| real(kind=dp), | intent(in), | optional | :: | vmin_normal |
法線速度の下限 [m/s](省略時は 0)。 |
|
| real(kind=dp), | intent(in), | optional | :: | sigma_cutoff |