bem_surface_models Module

表面モデルごとの電荷更新後処理を扱うモジュール。


Uses

  • module~~bem_surface_models~~UsesGraph module~bem_surface_models bem_surface_models ieee_arithmetic ieee_arithmetic module~bem_surface_models->ieee_arithmetic module~bem_electrostatic_snapshot bem_electrostatic_snapshot module~bem_surface_models->module~bem_electrostatic_snapshot module~bem_kinds bem_kinds module~bem_surface_models->module~bem_kinds module~bem_types bem_types module~bem_surface_models->module~bem_types module~bem_electrostatic_snapshot->ieee_arithmetic module~bem_electrostatic_snapshot->module~bem_kinds module~bem_electrostatic_snapshot->module~bem_types module~bem_constants bem_constants module~bem_electrostatic_snapshot->module~bem_constants module~bem_coulomb_fmm_periodic_nonzero_reference bem_coulomb_fmm_periodic_nonzero_reference module~bem_electrostatic_snapshot->module~bem_coulomb_fmm_periodic_nonzero_reference module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum bem_coulomb_fmm_periodic_nonzero_upper_vacuum module~bem_electrostatic_snapshot->module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum module~bem_field_solver bem_field_solver module~bem_electrostatic_snapshot->module~bem_field_solver module~bem_mpi bem_mpi module~bem_electrostatic_snapshot->module~bem_mpi module~bem_panel_geometry bem_panel_geometry module~bem_electrostatic_snapshot->module~bem_panel_geometry module~bem_panel_kernel bem_panel_kernel module~bem_electrostatic_snapshot->module~bem_panel_kernel module~bem_periodic_zero_mode_eval bem_periodic_zero_mode_eval module~bem_electrostatic_snapshot->module~bem_periodic_zero_mode_eval module~bem_periodic_zero_mode_plan bem_periodic_zero_mode_plan module~bem_electrostatic_snapshot->module~bem_periodic_zero_mode_plan module~bem_physics_config_types bem_physics_config_types module~bem_electrostatic_snapshot->module~bem_physics_config_types module~bem_runtime_modes bem_runtime_modes module~bem_electrostatic_snapshot->module~bem_runtime_modes module~bem_string_utils bem_string_utils module~bem_electrostatic_snapshot->module~bem_string_utils iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_types->module~bem_kinds module~bem_outflow_spectrum bem_outflow_spectrum module~bem_types->module~bem_outflow_spectrum module~bem_constants->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_reference->ieee_arithmetic module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_types module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_constants module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_panel_geometry module~bem_triangle_quadrature bem_triangle_quadrature module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_triangle_quadrature module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->ieee_arithmetic module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_types module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_constants module~bem_field_solver->ieee_arithmetic module~bem_field_solver->module~bem_kinds module~bem_field_solver->module~bem_types module~bem_field_solver->module~bem_constants module~bem_field_solver->module~bem_mpi module~bem_field_solver->module~bem_physics_config_types module~bem_field_solver->module~bem_runtime_modes module~bem_field_solver->module~bem_string_utils module~bem_coulomb_fmm_core bem_coulomb_fmm_core module~bem_field_solver->module~bem_coulomb_fmm_core module~bem_mpi->module~bem_kinds module~bem_outflow_spectrum->module~bem_kinds sheath_model sheath_model module~bem_outflow_spectrum->sheath_model module~bem_panel_geometry->ieee_arithmetic module~bem_panel_geometry->module~bem_kinds module~bem_panel_kernel->module~bem_kinds module~bem_panel_kernel->module~bem_constants module~bem_panel_kernel->module~bem_panel_geometry module~bem_panel_self_terms bem_panel_self_terms module~bem_panel_kernel->module~bem_panel_self_terms module~bem_periodic_zero_mode_eval->module~bem_kinds module~bem_periodic_zero_mode_eval->module~bem_constants module~bem_periodic_zero_mode_eval->module~bem_periodic_zero_mode_plan module~bem_periodic_zero_mode_plan->ieee_arithmetic module~bem_periodic_zero_mode_plan->module~bem_kinds module~bem_periodic_zero_mode_plan->module~bem_types module~bem_periodic_zero_mode_plan->module~bem_constants module~bem_sorting bem_sorting module~bem_periodic_zero_mode_plan->module~bem_sorting module~bem_physics_config_types->ieee_arithmetic module~bem_physics_config_types->module~bem_kinds module~bem_physics_config_types->module~bem_types module~bem_physics_config_types->module~bem_string_utils module~bem_runtime_modes->module~bem_kinds module~bem_runtime_modes->module~bem_string_utils module~bem_coulomb_fmm_core->module~bem_kinds module~bem_coulomb_fmm_core->module~bem_mpi module~bem_coulomb_fmm_types bem_coulomb_fmm_types module~bem_coulomb_fmm_core->module~bem_coulomb_fmm_types module~bem_panel_self_terms->module~bem_kinds module~bem_panel_self_terms->module~bem_panel_geometry module~bem_sorting->module~bem_kinds module~bem_triangle_quadrature->module~bem_kinds module~bem_triangle_quadrature->module~bem_constants module~bem_triangle_quadrature->module~bem_panel_geometry module~bem_coulomb_fmm_types->module~bem_kinds module~bem_coulomb_fmm_types->module~bem_mpi module~bem_coulomb_fmm_types->module~bem_panel_geometry module~bem_coulomb_fmm_types->module~bem_periodic_zero_mode_plan module~bem_periodic_shell_mean bem_periodic_shell_mean module~bem_coulomb_fmm_types->module~bem_periodic_shell_mean module~bem_periodic_shell_mean->module~bem_kinds

Used by

  • module~~bem_surface_models~~UsedByGraph module~bem_surface_models bem_surface_models module~bem_simulator bem_simulator module~bem_simulator->module~bem_surface_models module~bem_surface_models_conductor bem_surface_models_conductor module~bem_surface_models_conductor->module~bem_surface_models module~bem_simulator_charge bem_simulator_charge module~bem_simulator_charge->module~bem_simulator module~bem_simulator_io bem_simulator_io module~bem_simulator_io->module~bem_simulator module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->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_simulator

Derived Types

type, public ::  floating_conductor_solver_type

mesh_id ごとの浮遊導体を、snapshot が返す電位で等電位化する solver。 影響行列は幾何と場の境界条件だけで決まるので初期化時に一度組み、batch ごとには 固定電荷が作る電位だけを snapshot から取り直す。free-space と periodic2 の両方で同じ経路を使う。

Components

Type Visibility Attributes Name Initial
integer(kind=i32), public :: ncond = 0_i32
integer(kind=i32), public :: ngroup = 0_i32
integer(kind=i32), public, allocatable :: elems(:)
integer(kind=i32), public, allocatable :: group(:)
integer(kind=i32), public, allocatable :: group_mesh_id(:)
real(kind=dp), public, allocatable :: influence(:,:)

conductor 要素 j の単位電荷が要素 i の重心に作る電位を k_coulomb で割った係数。

real(kind=dp), public, allocatable :: factors(:,:)

等電位条件と group 総電荷保存を並べた正方系の LU 分解。

integer(kind=i32), public, allocatable :: pivot(:)

Type-Bound Procedures

procedure, public :: init => init_floating_conductor_solver
procedure, public :: active => floating_conductor_solver_active
procedure, public :: relax => relax_floating_conductor_charges