bem_app_config_mesh_runtime Module

app_config から三角形メッシュを構築する実行時変換。


Uses

  • module~~bem_app_config_mesh_runtime~~UsesGraph module~bem_app_config_mesh_runtime bem_app_config_mesh_runtime ieee_arithmetic ieee_arithmetic module~bem_app_config_mesh_runtime->ieee_arithmetic module~bem_app_config_types bem_app_config_types module~bem_app_config_mesh_runtime->module~bem_app_config_types module~bem_importers bem_importers module~bem_app_config_mesh_runtime->module~bem_importers module~bem_kinds bem_kinds module~bem_app_config_mesh_runtime->module~bem_kinds module~bem_mesh bem_mesh module~bem_app_config_mesh_runtime->module~bem_mesh module~bem_panel_surface_sides bem_panel_surface_sides module~bem_app_config_mesh_runtime->module~bem_panel_surface_sides module~bem_string_utils bem_string_utils module~bem_app_config_mesh_runtime->module~bem_string_utils module~bem_templates bem_templates module~bem_app_config_mesh_runtime->module~bem_templates module~bem_types bem_types module~bem_app_config_mesh_runtime->module~bem_types module~bem_app_config_types->module~bem_kinds module~bem_app_config_types->module~bem_types module~bem_physics_config_types bem_physics_config_types module~bem_app_config_types->module~bem_physics_config_types module~bem_importers->module~bem_kinds module~bem_importers->module~bem_mesh module~bem_importers->module~bem_types iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_mesh->ieee_arithmetic module~bem_mesh->module~bem_kinds module~bem_mesh->module~bem_string_utils module~bem_mesh->module~bem_types module~bem_panel_geometry bem_panel_geometry module~bem_mesh->module~bem_panel_geometry module~bem_triangle_quadrature bem_triangle_quadrature module~bem_mesh->module~bem_triangle_quadrature module~bem_panel_surface_sides->module~bem_kinds module~bem_panel_surface_sides->module~bem_string_utils module~bem_panel_surface_sides->module~bem_types module~bem_templates->module~bem_kinds module~bem_templates->module~bem_mesh module~bem_templates->module~bem_types module~bem_types->module~bem_kinds module~bem_panel_geometry->ieee_arithmetic module~bem_panel_geometry->module~bem_kinds module~bem_physics_config_types->ieee_arithmetic module~bem_physics_config_types->module~bem_kinds module~bem_physics_config_types->module~bem_string_utils module~bem_physics_config_types->module~bem_types module~bem_triangle_quadrature->module~bem_kinds module~bem_triangle_quadrature->module~bem_panel_geometry module~bem_constants bem_constants module~bem_triangle_quadrature->module~bem_constants module~bem_constants->module~bem_kinds

Used by

  • module~~bem_app_config_mesh_runtime~~UsedByGraph module~bem_app_config_mesh_runtime bem_app_config_mesh_runtime module~bem_app_config_runtime bem_app_config_runtime module~bem_app_config_runtime->module~bem_app_config_mesh_runtime module~bem_app_config bem_app_config module~bem_app_config->module~bem_app_config_runtime module~bem_simulator bem_simulator module~bem_simulator->module~bem_app_config_runtime module~bem_simulator->module~bem_app_config module~bem_simulator_io bem_simulator_io module~bem_simulator_io->module~bem_app_config_runtime module~bem_simulator_io->module~bem_simulator module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_app_config_runtime module~bem_simulator_loop->module~bem_simulator module~bem_matching_plane_coupling bem_matching_plane_coupling module~bem_simulator_loop->module~bem_matching_plane_coupling module~bem_matching_plane_coupling->module~bem_app_config module~bem_simulator_charge bem_simulator_charge module~bem_simulator_charge->module~bem_simulator module~bem_simulator_particles bem_simulator_particles module~bem_simulator_particles->module~bem_simulator module~bem_simulator_stats bem_simulator_stats module~bem_simulator_stats->module~bem_simulator program~main main program~main->module~bem_app_config program~main->module~bem_simulator program~zhao_atlas_main zhao_atlas_main program~zhao_atlas_main->module~bem_app_config program~zhao_response_main zhao_response_main program~zhao_response_main->module~bem_app_config

Functions

public function surface_model_id_from_name(name) result(model_id)

表面モデル名をメッシュ要素用の整数IDへ変換する。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: name

insulator / conductor / dielectric

Return Value integer(kind=i32)


Subroutines

public subroutine build_mesh_from_config(cfg, mesh)

mesh_mode と OBJ ファイル有無に応じてメッシュ生成方法を選ぶ。

Arguments

Type IntentOptional Attributes Name
type(app_config), intent(in) :: cfg

メッシュ入力設定を含むアプリ設定。

type(mesh_type), intent(out) :: mesh

構築した三角形メッシュ。

public subroutine apply_panel_surface_config(cfg, mesh, loaded_obj)

Arguments

Type IntentOptional Attributes Name
type(app_config), intent(in) :: cfg
type(mesh_type), intent(inout) :: mesh
logical, intent(in) :: loaded_obj

public subroutine apply_obj_transform(mesh, scale, rotation_deg, offset)

OBJ メッシュの全頂点にスケール→回転→平行移動を適用し再初期化する。 変換順序: v_new = R(rotation) * (v_old * scale) + offset 回転は度単位で x→y→z の順に外因性 (extrinsic) 回転を適用する。

Arguments

Type IntentOptional 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)

public subroutine apply_uniform_surface_model(mesh, surface_model_id)

全要素に同じ表面モデルIDを付与する。

Arguments

Type IntentOptional Attributes Name
type(mesh_type), intent(inout) :: mesh
integer(kind=i32), intent(in) :: surface_model_id

public subroutine apply_uniform_epsilon_r(mesh, epsilon_r)

全要素に同じ相対誘電率を付与する。

Arguments

Type IntentOptional Attributes Name
type(mesh_type), intent(inout) :: mesh
real(kind=dp), intent(in) :: epsilon_r

public subroutine build_template_mesh(cfg, mesh)

有効なテンプレートを連結し、1つのメッシュへまとめる。

Arguments

Type IntentOptional Attributes Name
type(app_config), intent(in) :: cfg

テンプレート設定を含むアプリ設定。

type(mesh_type), intent(out) :: mesh

連結後の三角形メッシュ。

public subroutine build_one_template(spec, mesh)

テンプレート種別に応じて形状生成ルーチンへディスパッチする。

Arguments

Type IntentOptional Attributes Name
type(template_spec), intent(in) :: spec

1テンプレート分の形状設定。

type(mesh_type), intent(out) :: mesh

生成したテンプレートメッシュ。

public subroutine append_triangles(v0, v1, v2, add_v0, add_v1, add_v2)

既存三角形配列へ追加分を連結し、再確保後の配列へ差し替える。

Arguments

Type IntentOptional 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(:,:)

public subroutine append_mesh_ids(mesh_ids, add_ids)

既存の要素メッシュID配列へ追加分を連結する。

Arguments

Type IntentOptional Attributes Name
integer(kind=i32), intent(inout), allocatable :: mesh_ids(:)
integer(kind=i32), intent(in) :: add_ids(:)

public subroutine append_real_values(values, add_values)

既存の実数要素配列へ追加分を連結する。

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout), allocatable :: values(:)
real(kind=dp), intent(in) :: add_values(:)