場・periodic2・panel の型付き設定と旧 [sim] 設定の正規化を定義する。
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=i32), | public, | parameter | :: | physics_config_ok | = | 0_i32 | |
| integer(kind=i32), | public, | parameter | :: | physics_config_invalid_combination | = | 1_i32 | |
| integer(kind=i32), | public, | parameter | :: | physics_config_unavailable | = | 2_i32 |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=32), | public | :: | backend | = | 'auto' | ||
| character(len=32), | public | :: | normalization | = | 'si' |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=32), | public | :: | nonzero_mode_backend | = | 'not_applicable' | ||
| character(len=32), | public | :: | zero_mode_policy | = | 'not_applicable' | ||
| character(len=32), | public | :: | lower_boundary_model | = | 'not_applicable' | ||
| integer(kind=i32), | public | :: | reference_mode_layers | = | 4_i32 | ||
| integer(kind=i32), | public | :: | panel_quadrature_order | = | 12_i32 | ||
| real(kind=dp), | public | :: | max_nonzero_mode_potential_step | = | 0.0_dp |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=32), | public | :: | kernel_id | = | 'triangle_p0_exact_auto' | ||
| character(len=32), | public | :: | surface_side_policy | = | 'per_element' |
現行 sim_config を型付き場設定へ写像する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | sim | |||
| type(field_physics_config), | intent(out) | :: | field | |||
| type(periodic2_physics_config), | intent(out) | :: | periodic2 | |||
| type(panel_kernel_config), | intent(out) | :: | panel |
[sim] だけから field/panel の派生契約を構築する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | sim | |||
| type(field_physics_config), | intent(out) | :: | field | |||
| type(panel_kernel_config), | intent(out) | :: | panel |
triangle P0 direct/treecode/FMM kernel の solver/boundary 契約を検証する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | sim | |||
| type(panel_kernel_config), | intent(in) | :: | panel | |||
| integer(kind=i32), | intent(out) | :: | status | |||
| character(len=*), | intent(out) | :: | message |
有限画像、panel reference、cached k!=0 の periodic2 構成を検証する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sim_config), | intent(in) | :: | sim | |||
| type(field_physics_config), | intent(in) | :: | field | |||
| type(periodic2_physics_config), | intent(in) | :: | periodic2 | |||
| type(panel_kernel_config), | intent(in) | :: | panel | |||
| integer(kind=i32), | intent(out) | :: | status | |||
| character(len=*), | intent(out) | :: | message |