periodic2 の有限画像殻の面平均を、無限面電荷の平均場から差し引いた滑らかな残り。
有限画像殻(中心セルと周囲 N 層の画像)の電位をセル C 上で面平均すると、無限面電荷の平均場
k0(h) = -2*pi*|h|/A と、滑らかな残り s(h) の和になる。s は 1/r を画像ブロック
[c-(N+1/2)L, c+(N+1/2)L]^2 上で積分した閉じた式から k0 を引いたもので、h=0 でも解析的である。
cached_kneq0 の遠方補正は面平均 0 の残差だけを当てはめ、s は実行時に高さの表から引く。
単位は FMM core と同じ raw(1/r、Coulomb 定数なし)。
線源ごとの s の高さ表。高さの格子は等間隔。
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | ready | = | .false. | ||
| integer(kind=i32), | public | :: | nz | = | 0_i32 | ||
| integer(kind=i32), | public | :: | periodic_axes(2) | = | 0_i32 | ||
| integer(kind=i32), | public | :: | free_axis | = | 0_i32 | ||
| real(kind=dp), | public | :: | z0 | = | 0.0_dp | ||
| real(kind=dp), | public | :: | dz | = | 0.0_dp | ||
| real(kind=dp), | public | :: | cell_lo(2) | = | 0.0_dp |
平均をとるセルの下端と周期長、画像の層数、softening の二乗。 |
|
| real(kind=dp), | public | :: | cell_len(2) | = | 0.0_dp | ||
| integer(kind=i32), | public | :: | image_layers | = | 0_i32 | ||
| real(kind=dp), | public | :: | soft2 | = | 0.0_dp | ||
| real(kind=dp), | public, | allocatable | :: | value(:,:) |
|
||
| real(kind=dp), | public, | allocatable | :: | slope(:,:) |
電荷を重ねた S(z) = sum_i q_i s_i(z) と dS/dz の格子値。
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=dp), | public, | allocatable | :: | value(:) | |||
| real(kind=dp), | public, | allocatable | :: | slope(:) |
単位電荷 1 個の s(h) と ds/dh。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | h |
評価点の高さ − 線源の高さ。 |
||
| real(kind=dp), | intent(in) | :: | x1 |
評価点の高さ − 線源の高さ。 |
||
| real(kind=dp), | intent(in) | :: | x2 |
評価点の高さ − 線源の高さ。 |
||
| real(kind=dp), | intent(in) | :: | y1 |
評価点の高さ − 線源の高さ。 |
||
| real(kind=dp), | intent(in) | :: | y2 |
評価点の高さ − 線源の高さ。 |
||
| real(kind=dp), | intent(in) | :: | area |
評価点の高さ − 線源の高さ。 セルの面積。 |
||
| real(kind=dp), | intent(in) | :: | soft2 |
評価点の高さ − 線源の高さ。 セルの面積。 softening の二乗(P0 panel では 0)。 |
||
| real(kind=dp), | intent(out) | :: | s | |||
| real(kind=dp), | intent(out) | :: | dsdh |
点線源 1 個の s と ds/dh。平均をとるセルと画像の層数は plan の値を使う。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(periodic_shell_mean_plan_type), | intent(in) | :: | plan | |||
| real(kind=dp), | intent(in) | :: | source(3) | |||
| real(kind=dp), | intent(in) | :: | target_z | |||
| real(kind=dp), | intent(out) | :: | s | |||
| real(kind=dp), | intent(out) | :: | dsdh |
線源ごとの s を高さの格子に表として持つ。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=i32), | intent(in) | :: | periodic_axes(2) | |||
| integer(kind=i32), | intent(in) | :: | free_axis | |||
| real(kind=dp), | intent(in) | :: | cell_center(2) | |||
| real(kind=dp), | intent(in) | :: | cell_len(2) | |||
| integer(kind=i32), | intent(in) | :: | image_layers | |||
| real(kind=dp), | intent(in) | :: | softening | |||
| real(kind=dp), | intent(in) | :: | z_min | |||
| real(kind=dp), | intent(in) | :: | z_max | |||
| real(kind=dp), | intent(in) | :: | spacing | |||
| real(kind=dp), | intent(in) | :: | vertices(:,:,:) | |||
| type(periodic_shell_mean_plan_type), | intent(inout) | :: | plan |
線源電荷から S と dS/dz の格子値を作る。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(periodic_shell_mean_plan_type), | intent(in) | :: | plan | |||
| real(kind=dp), | intent(in) | :: | charge(:) | |||
| type(periodic_shell_mean_state_type), | intent(inout) | :: | state |
3 次 Hermite 補間した S(z) と、同じ多項式の微分 dS/dz。電場は電位の勾配と一致する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(periodic_shell_mean_plan_type), | intent(in) | :: | plan | |||
| type(periodic_shell_mean_state_type), | intent(in) | :: | state | |||
| real(kind=dp), | intent(in) | :: | z | |||
| real(kind=dp), | intent(out) | :: | value | |||
| real(kind=dp), | intent(out) | :: | slope |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(periodic_shell_mean_plan_type), | intent(inout) | :: | plan |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(periodic_shell_mean_state_type), | intent(inout) | :: | state |