bem_electrostatic_snapshot Module

1バッチ内で固定する静電場 snapshot。


Uses

  • module~~bem_electrostatic_snapshot~~UsesGraph module~bem_electrostatic_snapshot bem_electrostatic_snapshot ieee_arithmetic ieee_arithmetic module~bem_electrostatic_snapshot->ieee_arithmetic 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_kinds bem_kinds module~bem_electrostatic_snapshot->module~bem_kinds 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 module~bem_types bem_types module~bem_electrostatic_snapshot->module~bem_types module~bem_constants->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_reference->ieee_arithmetic module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_constants module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_panel_geometry module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_types 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_constants module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_types module~bem_field_solver->ieee_arithmetic module~bem_field_solver->module~bem_constants module~bem_field_solver->module~bem_kinds 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_field_solver->module~bem_types module~bem_coulomb_fmm_core bem_coulomb_fmm_core module~bem_field_solver->module~bem_coulomb_fmm_core iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_mpi->module~bem_kinds module~bem_panel_geometry->ieee_arithmetic module~bem_panel_geometry->module~bem_kinds module~bem_panel_kernel->module~bem_constants module~bem_panel_kernel->module~bem_kinds 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_constants module~bem_periodic_zero_mode_eval->module~bem_kinds 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_constants module~bem_periodic_zero_mode_plan->module~bem_kinds module~bem_periodic_zero_mode_plan->module~bem_types 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_string_utils module~bem_physics_config_types->module~bem_types module~bem_runtime_modes->module~bem_kinds module~bem_runtime_modes->module~bem_string_utils module~bem_types->module~bem_kinds module~bem_outflow_spectrum bem_outflow_spectrum module~bem_types->module~bem_outflow_spectrum 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_outflow_spectrum->module~bem_kinds sheath_model sheath_model module~bem_outflow_spectrum->sheath_model 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_constants module~bem_triangle_quadrature->module~bem_kinds 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_electrostatic_snapshot~~UsedByGraph module~bem_electrostatic_snapshot bem_electrostatic_snapshot module~bem_app_config_particle_runtime bem_app_config_particle_runtime module~bem_app_config_particle_runtime->module~bem_electrostatic_snapshot module~bem_app_config_potential_runtime bem_app_config_potential_runtime module~bem_app_config_particle_runtime->module~bem_app_config_potential_runtime module~bem_app_config_potential_runtime->module~bem_electrostatic_snapshot module~bem_electrostatic_snapshot_eval bem_electrostatic_snapshot_eval module~bem_electrostatic_snapshot_eval->module~bem_electrostatic_snapshot module~bem_electrostatic_snapshot_upper_fourier bem_electrostatic_snapshot_upper_fourier module~bem_electrostatic_snapshot_upper_fourier->module~bem_electrostatic_snapshot module~bem_output_writer bem_output_writer module~bem_output_writer->module~bem_electrostatic_snapshot module~bem_particle_stepper bem_particle_stepper module~bem_particle_stepper->module~bem_electrostatic_snapshot module~bem_simulator bem_simulator module~bem_simulator->module~bem_electrostatic_snapshot module~bem_simulator->module~bem_output_writer module~bem_simulator->module~bem_particle_stepper module~bem_surface_models bem_surface_models module~bem_simulator->module~bem_surface_models module~bem_app_config_runtime bem_app_config_runtime module~bem_simulator->module~bem_app_config_runtime module~bem_run_outputs bem_run_outputs module~bem_simulator->module~bem_run_outputs module~bem_app_config bem_app_config module~bem_simulator->module~bem_app_config module~bem_surface_models->module~bem_electrostatic_snapshot program~main main program~main->module~bem_electrostatic_snapshot program~main->module~bem_output_writer program~main->module~bem_simulator module~bem_periodic_checkpoint bem_periodic_checkpoint program~main->module~bem_periodic_checkpoint program~main->module~bem_run_outputs program~main->module~bem_app_config module~bem_app_config_particle_runtime_batch bem_app_config_particle_runtime_batch module~bem_app_config_particle_runtime_batch->module~bem_app_config_particle_runtime module~bem_app_config_particle_runtime_sampling bem_app_config_particle_runtime_sampling module~bem_app_config_particle_runtime_sampling->module~bem_app_config_particle_runtime module~bem_app_config_particle_runtime_slots bem_app_config_particle_runtime_slots module~bem_app_config_particle_runtime_slots->module~bem_app_config_particle_runtime module~bem_app_config_runtime->module~bem_app_config_particle_runtime module~bem_app_config_runtime->module~bem_app_config_potential_runtime module~bem_output_writer_files bem_output_writer_files module~bem_output_writer_files->module~bem_output_writer module~bem_output_writer_history bem_output_writer_history module~bem_output_writer_history->module~bem_output_writer module~bem_output_writer_summary bem_output_writer_summary module~bem_output_writer_summary->module~bem_output_writer module~bem_periodic_checkpoint->module~bem_output_writer module~bem_run_outputs->module~bem_output_writer module~bem_run_outputs->module~bem_periodic_checkpoint 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_output_writer module~bem_simulator_io->module~bem_simulator module~bem_simulator_io->module~bem_app_config_runtime module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_output_writer module~bem_simulator_loop->module~bem_simulator module~bem_simulator_loop->module~bem_app_config_runtime module~bem_simulator_loop->module~bem_periodic_checkpoint module~bem_simulator_loop->module~bem_run_outputs module~bem_zhao_outflow_refresh bem_zhao_outflow_refresh module~bem_simulator_loop->module~bem_zhao_outflow_refresh module~bem_simulator_particles bem_simulator_particles module~bem_simulator_particles->module~bem_particle_stepper module~bem_simulator_particles->module~bem_simulator module~bem_simulator_stats bem_simulator_stats module~bem_simulator_stats->module~bem_simulator module~bem_surface_models_conductor bem_surface_models_conductor module~bem_surface_models_conductor->module~bem_surface_models module~bem_app_config->module~bem_app_config_runtime module~bem_zhao_outflow_refresh->module~bem_app_config

Derived Types

type, public ::  electrostatic_diagnostics_type

Components

Type Visibility Attributes Name Initial
logical, public :: upper_fourier_switch_active = .false.
real(kind=dp), public :: upper_fourier_switch_height_m = 0.0_dp
integer(kind=i32), public :: upper_fourier_switch_mode_layers = 0_i32
real(kind=dp), public :: upper_fourier_switch_selected_mismatch_v = 0.0_dp
real(kind=dp), public :: lower_boundary_field_v_m = 0.0_dp
logical, public :: split_periodic_active = .false.
logical, public :: top_reference_available = .false.
integer(kind=i32), public :: top_reference_last_batch = -1_i32
real(kind=dp), public :: top_reference_simulated_time = 0.0_dp
real(kind=dp), public :: top_reference_z_high = 0.0_dp
integer(kind=i32), public :: top_reference_sample_n = 0_i32
real(kind=dp), public :: top_reference_potential_mean = 0.0_dp
real(kind=dp), public :: top_reference_potential_std = 0.0_dp
real(kind=dp), public :: top_reference_potential_min = 0.0_dp
real(kind=dp), public :: top_reference_potential_max = 0.0_dp
real(kind=dp), public :: gauss_residual = 0.0_dp
character(len=64), public :: status = 'not_applicable'
logical, public :: periodic_cache_hit = .false.
integer(kind=i32), public :: periodic_operator_build_count = 0_i32
character(len=128), public :: periodic_cache_fingerprint = ''
character(len=512), public :: periodic_cache_path = ''

type, public ::  electrostatic_snapshot_type

Components

Type Visibility Attributes Name Initial
type(field_solver_type), public :: nonzero_solver
real(kind=dp), public :: prescribed_e(3) = [0.0_dp, 0.0_dp, 0.0_dp]
real(kind=dp), public :: prescribed_phi_origin(3) = [0.0_dp, 0.0_dp, 0.0_dp]
logical, public :: use_zero_mode = .false.
logical, public :: use_panel_spectral_reference = .false.
logical, public :: use_cached_kneq0 = .false.
logical, public :: use_upper_panel_fourier_retry = .false.
real(kind=dp), public :: periodic_length(2) = [0.0_dp, 0.0_dp]
real(kind=dp), public :: periodic_origin(2) = [0.0_dp, 0.0_dp]
integer(kind=i32), public :: reference_mode_layers = 0_i32
integer(kind=i32), public :: panel_quadrature_order = 0_i32
type(periodic_zero_mode_plan_type), public :: zero_plan
type(periodic_zero_mode_state_type), public :: zero_state
type(periodic_nonzero_upper_vacuum_plan_type), public :: upper_fourier_plan
type(periodic2_physics_config), public :: periodic_options
integer(kind=i32), public :: lower_boundary_id = lower_boundary_unknown

periodic_options%lower_boundary_model を init で解決した値。zero mode の更新ごとに文字列を比べない。

type(electrostatic_diagnostics_type), public :: diagnostics
real(kind=dp), public :: gauss_residual = 0.0_dp
logical, public :: matching_plane_gauge_active = .false.
real(kind=dp), public :: matching_plane_z = 0.0_dp
real(kind=dp), public :: matching_plane_phi = 0.0_dp
real(kind=dp), public :: matching_plane_top_field = 0.0_dp

Type-Bound Procedures

procedure, public :: init => init_electrostatic_snapshot
procedure, public :: refresh => refresh_electrostatic_snapshot
procedure, public :: refresh_zero_mode => refresh_snapshot_zero_mode
procedure, public :: eval_local_e => eval_snapshot_local_e
procedure, public :: eval_upper_panel_fourier_e => eval_snapshot_upper_panel_fourier_e
procedure, public :: eval_upper_panel_fourier_phi => eval_snapshot_upper_panel_fourier_phi
procedure, public :: eval_local_phi => eval_snapshot_local_phi
procedure, public :: eval_local_phi_without_primary_self => eval_snapshot_local_phi_without_primary_self
procedure, public :: compute_mesh_potential => compute_snapshot_mesh_potential
procedure, public :: measure_kneq0_potential_step => measure_snapshot_kneq0_potential_step
procedure, public :: get_diagnostics => get_snapshot_diagnostics
procedure, public :: set_matching_plane_gauge => set_snapshot_matching_plane_gauge
procedure, public :: set_matching_plane_top_field => set_snapshot_matching_plane_top_field
procedure, public :: measure_switch_mismatch => measure_snapshot_switch_mismatch