粒子注入で共有する乱数初期化と基本分布sampling。
与えたシード列またはシステム時刻からFortran乱数生成器を初期化する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=i32), | intent(in), | optional | :: | seed(:) |
直方体領域 [low, high] 内で一様分布の初期位置をサンプリングする。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | low(3) | |||
| real(kind=dp), | intent(in) | :: | high(3) | |||
| real(kind=dp), | intent(out) | :: | x(:,:) |
ドリフト速度付きMaxwell分布(温度または熱速度指定)から粒子速度を生成する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | drift_velocity(3) | |||
| real(kind=dp), | intent(in) | :: | m_particle |
粒子1個あたりの質量 [kg]( |
||
| real(kind=dp), | intent(out) | :: | v(:,:) | |||
| real(kind=dp), | intent(in), | optional | :: | temperature_k |
熱運動の温度 [K]( |
|
| real(kind=dp), | intent(in), | optional | :: | thermal_speed |
熱速度の標準偏差 |
|
| real(kind=dp), | intent(in), | optional | :: | sigma_cutoff |
標準正規変量を |
指定粒子数ぶんの位置/速度/電荷/質量/重みを生成し particles_soa を初期化する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(particles_soa), | intent(out) | :: | pcls |
生成した粒子群を保持する |
||
| integer(kind=i32), | intent(in) | :: | n |
生成するマクロ粒子数。 |
||
| real(kind=dp), | intent(in) | :: | q_particle |
粒子1個あたりの電荷 [C]。 |
||
| real(kind=dp), | intent(in) | :: | m_particle |
粒子1個あたりの電荷 [C]。 粒子1個あたりの質量 [kg]。 |
||
| real(kind=dp), | intent(in) | :: | w_particle |
粒子1個あたりの電荷 [C]。 粒子1個あたりの質量 [kg]。 粒子1個あたりのマクロ粒子重み。 |
||
| 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), | optional | :: | temperature_k |
熱運動の温度 [K]( |
|
| real(kind=dp), | intent(in), | optional | :: | thermal_speed |
熱運動の温度 [K]( |
Box–Muller法で標準正規乱数を生成し、任意形状配列へ詰める。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(out) | :: | z(:,:) | |||
| real(kind=dp), | intent(in), | optional | :: | sigma_cutoff |