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_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_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_physics_config_types 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_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_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_types->module~bem_kinds module~bem_coulomb_fmm_core->module~bem_kinds 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_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_panel_geometry module~bem_coulomb_fmm_types->module~bem_periodic_zero_mode_plan

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_matching_plane_coupling bem_matching_plane_coupling module~bem_matching_plane_coupling->module~bem_electrostatic_snapshot module~bem_app_config bem_app_config module~bem_matching_plane_coupling->module~bem_app_config 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_app_config_runtime bem_app_config_runtime module~bem_simulator->module~bem_app_config_runtime module~bem_simulator->module~bem_app_config 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_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_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_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_matching_plane_coupling 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_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 module~bem_app_config->module~bem_app_config_runtime 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

Derived Types

type, public ::  electrostatic_diagnostics_type

Components

Type Visibility Attributes Name Initial
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
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

Type-Bound Procedures

procedure, public :: init => init_electrostatic_snapshot
procedure, public :: refresh => refresh_electrostatic_snapshot
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 :: clear_matching_plane_gauge => clear_snapshot_matching_plane_gauge
procedure, public :: get_matching_plane_displacement => get_snapshot_matching_plane_displacement