derive_field_panel_config Subroutine

public pure subroutine derive_field_panel_config(sim, field, panel)

[sim] だけから field/panel の派生契約を構築する。

Arguments

Type IntentOptional Attributes Name
type(sim_config), intent(in) :: sim
type(field_physics_config), intent(out) :: field
type(panel_kernel_config), intent(out) :: panel

Calls

proc~~derive_field_panel_config~~CallsGraph proc~derive_field_panel_config derive_field_panel_config proc~lower_ascii lower_ascii proc~derive_field_panel_config->proc~lower_ascii

Called by

proc~~derive_field_panel_config~~CalledByGraph proc~derive_field_panel_config derive_field_panel_config proc~normalize_legacy_physics_config normalize_legacy_physics_config proc~normalize_legacy_physics_config->proc~derive_field_panel_config proc~default_app_config default_app_config proc~default_app_config->proc~normalize_legacy_physics_config proc~handle_early_cli handle_early_cli proc~handle_early_cli->proc~default_app_config proc~load_or_init_run_state load_or_init_run_state proc~load_or_init_run_state->proc~default_app_config program~zhao_atlas_main zhao_atlas_main program~zhao_atlas_main->proc~default_app_config program~zhao_response_main zhao_response_main program~zhao_response_main->proc~default_app_config program~main main program~main->proc~handle_early_cli program~main->proc~load_or_init_run_state

Source Code

  pure subroutine derive_field_panel_config(sim, field, panel)
    type(sim_config), intent(in) :: sim
    type(field_physics_config), intent(out) :: field
    type(panel_kernel_config), intent(out) :: panel

    field = field_physics_config()
    panel = panel_kernel_config()
    field%backend = lower_ascii(trim(sim%field_solver))
    field%normalization = lower_ascii(trim(sim%field_normalization))
    select case (trim(field%backend))
    case ('direct')
      panel%kernel_id = 'triangle_p0_exact_direct'
    case ('treecode')
      panel%kernel_id = 'triangle_p0_exact_tree_near'
    case ('fmm')
      panel%kernel_id = 'triangle_p0_exact_p2m_near'
    case default
      panel%kernel_id = 'triangle_p0_exact_auto'
    end select
  end subroutine derive_field_panel_config