bem_simulator Module

吸着(insulator)モデルのメインループを実行し、電荷堆積と統計更新を行う。

固定電流 closure は contract との契約をテストから直接確認する。


Uses

  • module~~bem_simulator~~UsesGraph module~bem_simulator bem_simulator ieee_arithmetic ieee_arithmetic module~bem_simulator->ieee_arithmetic iso_fortran_env iso_fortran_env module~bem_simulator->iso_fortran_env module~bem_app_config bem_app_config module~bem_simulator->module~bem_app_config module~bem_app_config_runtime bem_app_config_runtime module~bem_simulator->module~bem_app_config_runtime module~bem_charge_ledger bem_charge_ledger module~bem_simulator->module~bem_charge_ledger module~bem_collision bem_collision module~bem_simulator->module~bem_collision module~bem_config_helpers bem_config_helpers module~bem_simulator->module~bem_config_helpers module~bem_electrostatic_snapshot bem_electrostatic_snapshot module~bem_simulator->module~bem_electrostatic_snapshot module~bem_external_boundary_contract bem_external_boundary_contract module~bem_simulator->module~bem_external_boundary_contract module~bem_irradiation_cell_contract bem_irradiation_cell_contract module~bem_simulator->module~bem_irradiation_cell_contract module~bem_kinds bem_kinds module~bem_simulator->module~bem_kinds module~bem_mesh_identity bem_mesh_identity module~bem_simulator->module~bem_mesh_identity module~bem_mpi bem_mpi module~bem_simulator->module~bem_mpi module~bem_output_writer bem_output_writer module~bem_simulator->module~bem_output_writer module~bem_particle_stepper bem_particle_stepper module~bem_simulator->module~bem_particle_stepper module~bem_physics_config_types bem_physics_config_types module~bem_simulator->module~bem_physics_config_types module~bem_run_outputs bem_run_outputs module~bem_simulator->module~bem_run_outputs module~bem_simulator_workspace bem_simulator_workspace module~bem_simulator->module~bem_simulator_workspace module~bem_status_codes bem_status_codes module~bem_simulator->module~bem_status_codes module~bem_string_utils bem_string_utils module~bem_simulator->module~bem_string_utils module~bem_surface_closure_contract bem_surface_closure_contract module~bem_simulator->module~bem_surface_closure_contract module~bem_surface_current_model bem_surface_current_model module~bem_simulator->module~bem_surface_current_model module~bem_surface_models bem_surface_models module~bem_simulator->module~bem_surface_models module~bem_types bem_types module~bem_simulator->module~bem_types module~bem_app_config->module~bem_app_config_runtime module~bem_app_config->module~bem_physics_config_types module~bem_app_config->module~bem_string_utils module~bem_app_config_parser bem_app_config_parser module~bem_app_config->module~bem_app_config_parser module~bem_app_config_types bem_app_config_types module~bem_app_config->module~bem_app_config_types module~bem_app_config_mesh_runtime bem_app_config_mesh_runtime module~bem_app_config_runtime->module~bem_app_config_mesh_runtime module~bem_app_config_particle_runtime bem_app_config_particle_runtime module~bem_app_config_runtime->module~bem_app_config_particle_runtime module~bem_app_config_potential_runtime bem_app_config_potential_runtime module~bem_app_config_runtime->module~bem_app_config_potential_runtime module~bem_charge_ledger->ieee_arithmetic module~bem_charge_ledger->module~bem_kinds module~bem_collision->ieee_arithmetic module~bem_collision->iso_fortran_env module~bem_collision->module~bem_kinds module~bem_collision->module~bem_status_codes module~bem_collision->module~bem_string_utils module~bem_collision->module~bem_types module~bem_config_helpers->module~bem_kinds module~bem_config_helpers->module~bem_string_utils module~bem_config_helpers->module~bem_types module~bem_config_helpers->module~bem_app_config_types module~bem_electrostatic_snapshot->ieee_arithmetic module~bem_electrostatic_snapshot->module~bem_kinds module~bem_electrostatic_snapshot->module~bem_mpi module~bem_electrostatic_snapshot->module~bem_physics_config_types module~bem_electrostatic_snapshot->module~bem_string_utils 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_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_runtime_modes bem_runtime_modes module~bem_electrostatic_snapshot->module~bem_runtime_modes module~bem_external_boundary_contract->module~bem_kinds module~bem_external_boundary_contract->module~bem_string_utils module~bem_irradiation_cell_contract->module~bem_kinds module~bem_irradiation_cell_contract->module~bem_string_utils module~bem_irradiation_cell_contract->module~bem_types module~bem_irradiation_cell_contract->module~bem_app_config_types module~bem_kinds->iso_fortran_env module~bem_mesh_identity->module~bem_kinds module~bem_mesh_identity->module~bem_types module~bem_mpi->module~bem_kinds module~bem_output_writer->module~bem_charge_ledger module~bem_output_writer->module~bem_electrostatic_snapshot module~bem_output_writer->module~bem_kinds module~bem_output_writer->module~bem_surface_current_model module~bem_output_writer->module~bem_types module~bem_output_writer->module~bem_app_config_types module~bem_checkpoint_contract bem_checkpoint_contract module~bem_output_writer->module~bem_checkpoint_contract module~bem_filesystem bem_filesystem module~bem_output_writer->module~bem_filesystem module~bem_particle_stepper->ieee_arithmetic module~bem_particle_stepper->module~bem_collision module~bem_particle_stepper->module~bem_electrostatic_snapshot module~bem_particle_stepper->module~bem_external_boundary_contract module~bem_particle_stepper->module~bem_irradiation_cell_contract module~bem_particle_stepper->module~bem_kinds module~bem_particle_stepper->module~bem_status_codes module~bem_particle_stepper->module~bem_types module~bem_boundary bem_boundary module~bem_particle_stepper->module~bem_boundary module~bem_counter_rng bem_counter_rng module~bem_particle_stepper->module~bem_counter_rng module~bem_pusher bem_pusher module~bem_particle_stepper->module~bem_pusher 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_run_outputs->module~bem_kinds module~bem_run_outputs->module~bem_output_writer module~bem_run_outputs->module~bem_app_config_types module~bem_periodic_checkpoint bem_periodic_checkpoint module~bem_run_outputs->module~bem_periodic_checkpoint module~bem_simulator_workspace->module~bem_kinds module~bem_outflow_spectrum bem_outflow_spectrum module~bem_simulator_workspace->module~bem_outflow_spectrum module~bem_status_codes->module~bem_kinds module~bem_surface_closure_contract->module~bem_kinds module~bem_surface_closure_contract->module~bem_runtime_modes module~bem_surface_current_model->ieee_arithmetic module~bem_surface_current_model->module~bem_config_helpers module~bem_surface_current_model->module~bem_irradiation_cell_contract module~bem_surface_current_model->module~bem_kinds module~bem_surface_current_model->module~bem_string_utils module~bem_surface_current_model->module~bem_surface_closure_contract module~bem_surface_current_model->module~bem_app_config_types module~bem_surface_current_model->module~bem_constants module~bem_surface_current_model->module~bem_outflow_spectrum sheath_model sheath_model module~bem_surface_current_model->sheath_model module~bem_surface_models->ieee_arithmetic module~bem_surface_models->module~bem_electrostatic_snapshot module~bem_surface_models->module~bem_kinds module~bem_surface_models->module~bem_types module~bem_types->module~bem_kinds module~bem_types->module~bem_outflow_spectrum module~bem_app_config_mesh_runtime->module~bem_kinds module~bem_app_config_mesh_runtime->module~bem_string_utils module~bem_app_config_mesh_runtime->module~bem_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_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_templates bem_templates module~bem_app_config_mesh_runtime->module~bem_templates module~bem_app_config_parser->ieee_arithmetic module~bem_app_config_parser->module~bem_kinds module~bem_app_config_parser->module~bem_physics_config_types module~bem_app_config_parser->module~bem_string_utils module~bem_app_config_parser->module~bem_types module~bem_app_config_parser->module~bem_app_config_types module~bem_app_config_authoring bem_app_config_authoring module~bem_app_config_parser->module~bem_app_config_authoring module~bem_config_layout bem_config_layout module~bem_app_config_parser->module~bem_config_layout module~bem_config_toml bem_config_toml module~bem_app_config_parser->module~bem_config_toml module~bem_injection_flux bem_injection_flux module~bem_app_config_parser->module~bem_injection_flux module~bem_injection_geometry bem_injection_geometry module~bem_app_config_parser->module~bem_injection_geometry tomlf tomlf module~bem_app_config_parser->tomlf module~bem_app_config_particle_runtime->ieee_arithmetic module~bem_app_config_particle_runtime->iso_fortran_env module~bem_app_config_particle_runtime->module~bem_config_helpers module~bem_app_config_particle_runtime->module~bem_electrostatic_snapshot module~bem_app_config_particle_runtime->module~bem_external_boundary_contract module~bem_app_config_particle_runtime->module~bem_kinds module~bem_app_config_particle_runtime->module~bem_mpi module~bem_app_config_particle_runtime->module~bem_status_codes module~bem_app_config_particle_runtime->module~bem_string_utils module~bem_app_config_particle_runtime->module~bem_types module~bem_app_config_particle_runtime->module~bem_app_config_potential_runtime module~bem_app_config_particle_runtime->module~bem_app_config_types module~bem_app_config_particle_runtime->module~bem_constants module~bem_injection bem_injection module~bem_app_config_particle_runtime->module~bem_injection module~bem_app_config_potential_runtime->ieee_arithmetic module~bem_app_config_potential_runtime->iso_fortran_env module~bem_app_config_potential_runtime->module~bem_config_helpers module~bem_app_config_potential_runtime->module~bem_electrostatic_snapshot module~bem_app_config_potential_runtime->module~bem_irradiation_cell_contract module~bem_app_config_potential_runtime->module~bem_kinds module~bem_app_config_potential_runtime->module~bem_string_utils module~bem_app_config_potential_runtime->module~bem_types module~bem_app_config_potential_runtime->module~bem_app_config_types module~bem_app_config_potential_runtime->module~bem_constants module~bem_app_config_types->module~bem_external_boundary_contract module~bem_app_config_types->module~bem_kinds module~bem_app_config_types->module~bem_physics_config_types module~bem_app_config_types->module~bem_types module~bem_app_config_types->module~bem_filesystem module~bem_boundary->ieee_arithmetic module~bem_boundary->module~bem_kinds module~bem_boundary->module~bem_status_codes module~bem_boundary->module~bem_types module~bem_checkpoint_contract->module~bem_kinds module~bem_checkpoint_contract->module~bem_filesystem 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_counter_rng->module~bem_kinds iso_c_binding iso_c_binding module~bem_counter_rng->iso_c_binding m_pcg64_bind m_pcg64_bind module~bem_counter_rng->m_pcg64_bind module~bem_field_solver->ieee_arithmetic 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_string_utils module~bem_field_solver->module~bem_types module~bem_field_solver->module~bem_constants module~bem_field_solver->module~bem_runtime_modes module~bem_coulomb_fmm_core bem_coulomb_fmm_core module~bem_field_solver->module~bem_coulomb_fmm_core module~bem_filesystem->iso_c_binding module~bem_outflow_spectrum->module~bem_kinds 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_checkpoint->module~bem_charge_ledger module~bem_periodic_checkpoint->module~bem_kinds module~bem_periodic_checkpoint->module~bem_mpi module~bem_periodic_checkpoint->module~bem_output_writer module~bem_periodic_checkpoint->module~bem_types module~bem_periodic_checkpoint->module~bem_app_config_types module~bem_periodic_checkpoint->module~bem_checkpoint_contract module~bem_periodic_checkpoint->module~bem_filesystem module~bem_restart bem_restart module~bem_periodic_checkpoint->module~bem_restart 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_pusher->module~bem_kinds module~bem_runtime_modes->module~bem_kinds module~bem_runtime_modes->module~bem_string_utils module~bem_app_config_authoring->module~bem_kinds module~bem_app_config_authoring->module~bem_app_config_types module~bem_app_config_authoring_types bem_app_config_authoring_types module~bem_app_config_authoring->module~bem_app_config_authoring_types module~bem_config_layout->module~bem_kinds module~bem_config_layout->module~bem_string_utils module~bem_config_layout->module~bem_config_toml module~bem_config_layout->tomlf module~bem_config_layout_paths bem_config_layout_paths module~bem_config_layout->module~bem_config_layout_paths tomlf_type tomlf_type module~bem_config_layout->tomlf_type module~bem_config_toml->ieee_arithmetic module~bem_config_toml->iso_fortran_env module~bem_config_toml->module~bem_kinds module~bem_config_toml->module~bem_string_utils module~bem_config_toml->module~bem_types module~bem_config_toml->module~bem_app_config_types module~bem_config_toml->tomlf 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_importers->iso_fortran_env module~bem_importers->module~bem_kinds module~bem_importers->module~bem_types module~bem_importers->module~bem_mesh module~bem_injection->module~bem_injection_flux module~bem_injection->module~bem_injection_geometry module~bem_injection_random bem_injection_random module~bem_injection->module~bem_injection_random module~bem_photoelectron_injection bem_photoelectron_injection module~bem_injection->module~bem_photoelectron_injection module~bem_injection_flux->ieee_arithmetic module~bem_injection_flux->module~bem_kinds module~bem_injection_flux->module~bem_constants module~bem_injection_flux->module~bem_counter_rng module~bem_injection_flux->module~bem_injection_geometry module~bem_injection_flux->module~bem_injection_random module~bem_injection_geometry->module~bem_kinds module~bem_injection_geometry->module~bem_string_utils module~bem_mesh->ieee_arithmetic module~bem_mesh->module~bem_kinds module~bem_mesh->module~bem_types module~bem_mesh->module~bem_panel_geometry module~bem_mesh->module~bem_triangle_quadrature module~bem_periodic2_axes bem_periodic2_axes module~bem_mesh->module~bem_periodic2_axes module~bem_panel_self_terms->module~bem_kinds module~bem_panel_self_terms->module~bem_panel_geometry module~bem_panel_surface_sides->ieee_arithmetic 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_restart->ieee_arithmetic module~bem_restart->iso_fortran_env module~bem_restart->module~bem_charge_ledger module~bem_restart->module~bem_kinds module~bem_restart->module~bem_mpi module~bem_restart->module~bem_string_utils module~bem_restart->module~bem_types module~bem_restart->module~bem_app_config_types module~bem_restart->module~bem_checkpoint_contract module~bem_sorting->module~bem_kinds module~bem_templates->module~bem_kinds module~bem_templates->module~bem_types module~bem_templates->module~bem_mesh module~bem_triangle_quadrature->module~bem_kinds module~bem_triangle_quadrature->module~bem_constants module~bem_triangle_quadrature->module~bem_panel_geometry module~bem_app_config_authoring_types->module~bem_kinds module~bem_app_config_authoring_types->module~bem_app_config_types 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_injection_random->module~bem_kinds module~bem_injection_random->module~bem_constants module~bem_injection_random->module~bem_counter_rng module~bem_random_stream bem_random_stream module~bem_injection_random->module~bem_random_stream module~bem_periodic2_axes->module~bem_kinds module~bem_periodic2_axes->module~bem_string_utils module~bem_periodic2_axes->module~bem_types module~bem_photoelectron_injection->module~bem_collision module~bem_photoelectron_injection->module~bem_kinds module~bem_photoelectron_injection->module~bem_status_codes module~bem_photoelectron_injection->module~bem_string_utils module~bem_photoelectron_injection->module~bem_types module~bem_photoelectron_injection->module~bem_boundary module~bem_photoelectron_injection->module~bem_constants module~bem_photoelectron_injection->module~bem_counter_rng module~bem_photoelectron_injection->module~bem_injection_flux module~bem_photoelectron_injection->module~bem_injection_geometry module~bem_photoelectron_injection->module~bem_injection_random module~bem_periodic_shell_mean->module~bem_kinds module~bem_random_stream->module~bem_kinds module~bem_random_stream->module~bem_counter_rng module~bem_random_stream->iso_c_binding module~bem_random_stream->m_pcg64_bind

Used by

  • module~~bem_simulator~~UsedByGraph module~bem_simulator bem_simulator 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

Interfaces

interface

  • public module subroutine run_absorption_insulator(mesh, app, stats, initial_stats, inject_state, mpi, charge_ledger, electrostatic_diagnostics, outputs)

    Arguments

    Type IntentOptional Attributes Name
    type(mesh_type), intent(inout) :: mesh
    type(app_config), intent(in) :: app
    type(sim_stats), intent(out) :: stats
    type(sim_stats), intent(in), optional :: initial_stats
    type(injection_state), intent(inout), optional :: inject_state
    type(mpi_context), intent(in), optional :: mpi
    type(charge_ledger_type), intent(inout), optional :: charge_ledger
    type(electrostatic_diagnostics_type), intent(out), optional :: electrostatic_diagnostics
    type(run_outputs_type), intent(inout), optional :: outputs

    history の出力先と終了時のメッシュ電位。省略時は何も書かない。

interface

  • public module subroutine apply_fixed_surface_current_closure(app, current_model, pcls_batch, fresh_particle_count, workspace, mpi, raw_charge_needed)

    Arguments

    Type IntentOptional Attributes Name
    type(app_config), intent(in) :: app
    type(surface_closure_contract_type), intent(in) :: current_model
    type(particles_soa), intent(in) :: pcls_batch
    integer(kind=i32), intent(in) :: fresh_particle_count
    type(simulator_batch_workspace_type), intent(inout) :: workspace
    type(mpi_context), intent(in) :: mpi
    logical, intent(in), optional :: raw_charge_needed

    固定電流 closure を使う種がなくても raw 電荷の rank 合計が要る(外部根の更新が放出反作用電荷を読む)。 省略時は .true.。全 rank で同じ値を渡す。