Coulomb FMM の periodic2 境界処理。
periodic2 の target box が有効かを判定する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_options_type), | intent(in) | :: | options |
FMM 設定。 |
periodic2 の far correction に oracle 版を使うか判定する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(in) | :: | plan |
FMM 計画。 |
periodic2 の root operator を使うか判定する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(in) | :: | plan |
FMM 計画。 |
点と source BBox の距離を返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | p(3) | |||
| real(kind=dp), | intent(in) | :: | src_center(3) | |||
| real(kind=dp), | intent(in) | :: | src_half(3) |
periodic2 の minimum image を考慮した source BBox 距離を返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(in) | :: | plan |
FMM 計画。 |
||
| real(kind=dp), | intent(in) | :: | p(3) | |||
| real(kind=dp), | intent(in) | :: | src_center(3) | |||
| real(kind=dp), | intent(in) | :: | src_half(3) |
periodic2 の画像シフト値を作成する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(in) | :: | plan |
FMM 計画。 |
||
| real(kind=dp), | intent(out) | :: | shift_axis1(:) | |||
| real(kind=dp), | intent(out) | :: | shift_axis2(:) | |||
| integer(kind=i32), | intent(out) | :: | nshift |
シフト数。 |
periodic2 の minimum image を差分ベクトルへ適用する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(in) | :: | plan |
FMM 計画。 |
||
| real(kind=dp), | intent(inout) | :: | d(3) |
periodic2 領域内へ点座標を折り返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(in) | :: | plan |
FMM 計画。 |
||
| real(kind=dp), | intent(inout) | :: | p(3) |
plan 内の全ソース位置を primary cell [target_box_min, target_box_min+L) へ折り返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fmm_plan_type), | intent(inout) | :: | plan |
FMM 計画( |
画像電荷を足し合わせて点電荷の電場を加算する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | q |
電荷量。 |
||
| real(kind=dp), | intent(in) | :: | src(3) |
電荷量。 |
||
| real(kind=dp), | intent(in) | :: | target(3) |
電荷量。 |
||
| real(kind=dp), | intent(in) | :: | soft2 |
ソフトニング二乗。 |
||
| integer(kind=i32), | intent(in) | :: | axis1 |
画像シフト軸 1。 |
||
| integer(kind=i32), | intent(in) | :: | axis2 |
画像シフト軸 1。 画像シフト軸 2。 |
||
| real(kind=dp), | intent(in) | :: | shift_axis1(:) | |||
| real(kind=dp), | intent(in) | :: | shift_axis2(:) | |||
| integer(kind=i32), | intent(in) | :: | nshift |
画像シフト軸 1。 画像シフト軸 2。 シフト数。 |
||
| real(kind=dp), | intent(inout) | :: | e(3) |