シミュレーションボックス境界(流出/反射/面内再配置反射/周期)を適用するモジュール。
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=i32), | public, | parameter | :: | boundary_event_ok | = | 0_i32 | |
| integer(kind=i32), | public, | parameter | :: | boundary_event_invalid_geometry | = | 1_i32 |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | has_event | = | .false. | ||
| real(kind=dp), | public | :: | fraction | = | 0.0_dp | ||
| integer(kind=i32), | public | :: | face_mask | = | 0_i32 | ||
| integer(kind=i32), | public | :: | face_bc(6) | = | -1_i32 |
閉じたbox内の始点から候補終点へ向かう線分について、最初のbox面交差を返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | cfg | |||
| real(kind=dp), | intent(in) | :: | x0(3) | |||
| real(kind=dp), | intent(in) | :: | x1(3) | |||
| type(boundary_event_type), | intent(out) | :: | event | |||
| integer(kind=i32), | intent(out) | :: | status |
最初のbox eventへescape/reflect/redistributed-reflect/periodicを軸順序に依存せず適用する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | cfg | |||
| type(boundary_event_type), | intent(in) | :: | event | |||
| real(kind=dp), | intent(inout) | :: | x(3) | |||
| real(kind=dp), | intent(inout) | :: | v(3) | |||
| logical, | intent(inout) | :: | alive | |||
| logical, | intent(out) | :: | escaped | |||
| integer(kind=i32), | intent(out) | :: | status | |||
| real(kind=dp), | intent(in), | optional | :: | redistribution_uniform(3) |
1ステップの更新候補位置にボックス境界条件を適用し、生存/流出状態と位置速度を更新する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | cfg |
境界条件とボックス範囲を含むシミュレーション設定。 |
||
| real(kind=dp), | intent(inout) | :: | x(3) | |||
| real(kind=dp), | intent(inout) | :: | v(3) | |||
| logical, | intent(inout) | :: | alive |
粒子生存フラグ(流出時は |
||
| logical, | intent(out) | :: | escaped_boundary |
この呼び出しで境界流出が発生したか。 |
||
| real(kind=dp), | intent(in), | optional | :: | q_particle | ||
| real(kind=dp), | intent(in), | optional | :: | m_particle | ||
| real(kind=dp), | intent(in), | optional | :: | phi_boundary | ||
| integer(kind=i32), | intent(in), | optional | :: | potential_axis | ||
| logical, | intent(in), | optional | :: | potential_high_side | ||
| real(kind=dp), | intent(in), | optional | :: | redistribution_uniform(3) |