app_config から三角形メッシュを構築する実行時変換。
表面モデル名をメッシュ要素用の整数IDへ変換する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | name |
|
mesh_mode と OBJ ファイル有無に応じてメッシュ生成方法を選ぶ。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | cfg |
メッシュ入力設定を含むアプリ設定。 |
||
| type(mesh_type), | intent(out) | :: | mesh |
構築した三角形メッシュ。 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | cfg | |||
| type(mesh_type), | intent(inout) | :: | mesh | |||
| logical, | intent(in) | :: | loaded_obj |
OBJ メッシュの全頂点にスケール→回転→平行移動を適用し再初期化する。 変換順序: v_new = R(rotation) * (v_old * scale) + offset 回転は度単位で x→y→z の順に外因性 (extrinsic) 回転を適用する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_type), | intent(inout) | :: | mesh |
変換対象の三角形メッシュ。 |
||
| real(kind=dp), | intent(in) | :: | scale |
一様スケーリング係数。 |
||
| real(kind=dp), | intent(in) | :: | rotation_deg(3) | |||
| real(kind=dp), | intent(in) | :: | offset(3) |
全要素に同じ表面モデルIDを付与する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_type), | intent(inout) | :: | mesh | |||
| integer(kind=i32), | intent(in) | :: | surface_model_id |
全要素に同じ相対誘電率を付与する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_type), | intent(inout) | :: | mesh | |||
| real(kind=dp), | intent(in) | :: | epsilon_r |
有効なテンプレートを連結し、1つのメッシュへまとめる。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | cfg |
テンプレート設定を含むアプリ設定。 |
||
| type(mesh_type), | intent(out) | :: | mesh |
連結後の三角形メッシュ。 |
テンプレート種別に応じて形状生成ルーチンへディスパッチする。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(template_spec), | intent(in) | :: | spec |
1テンプレート分の形状設定。 |
||
| type(mesh_type), | intent(out) | :: | mesh |
生成したテンプレートメッシュ。 |
既存三角形配列へ追加分を連結し、再確保後の配列へ差し替える。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout), | allocatable | :: | v0(:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | v1(:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | v2(:,:) | ||
| real(kind=dp), | intent(in) | :: | add_v0(:,:) | |||
| real(kind=dp), | intent(in) | :: | add_v1(:,:) | |||
| real(kind=dp), | intent(in) | :: | add_v2(:,:) |
既存の要素メッシュID配列へ追加分を連結する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=i32), | intent(inout), | allocatable | :: | mesh_ids(:) | ||
| integer(kind=i32), | intent(in) | :: | add_ids(:) |
既存の実数要素配列へ追加分を連結する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout), | allocatable | :: | values(:) | ||
| real(kind=dp), | intent(in) | :: | add_values(:) |