bem_particles Module

粒子SoAデータ構造の初期化を提供するモジュール。


Uses

  • module~~bem_particles~~UsesGraph module~bem_particles bem_particles module~bem_kinds bem_kinds module~bem_particles->module~bem_kinds module~bem_types bem_types module~bem_particles->module~bem_types iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_types->module~bem_kinds

Used by

  • module~~bem_particles~~UsedByGraph module~bem_particles bem_particles module~bem_app_config_particle_runtime_batch bem_app_config_particle_runtime_batch module~bem_app_config_particle_runtime_batch->module~bem_particles module~bem_app_config_particle_runtime bem_app_config_particle_runtime module~bem_app_config_particle_runtime_batch->module~bem_app_config_particle_runtime module~bem_injection_random bem_injection_random module~bem_injection_random->module~bem_particles module~bem_injection bem_injection module~bem_injection->module~bem_injection_random module~bem_injection_flux bem_injection_flux module~bem_injection->module~bem_injection_flux module~bem_photoelectron_injection bem_photoelectron_injection module~bem_injection->module~bem_photoelectron_injection module~bem_injection_flux->module~bem_injection_random module~bem_photoelectron_injection->module~bem_injection_random module~bem_photoelectron_injection->module~bem_injection_flux module~bem_app_config_parser bem_app_config_parser module~bem_app_config_parser->module~bem_injection_flux module~bem_app_config_particle_runtime->module~bem_injection module~bem_app_config bem_app_config module~bem_app_config->module~bem_app_config_parser module~bem_app_config_runtime bem_app_config_runtime module~bem_app_config->module~bem_app_config_runtime module~bem_app_config_parser_finalize bem_app_config_parser_finalize module~bem_app_config_parser_finalize->module~bem_app_config_parser module~bem_app_config_parser_preflight_particles bem_app_config_parser_preflight_particles module~bem_app_config_parser_preflight_particles->module~bem_app_config_parser module~bem_app_config_parser_preflight_sim bem_app_config_parser_preflight_sim module~bem_app_config_parser_preflight_sim->module~bem_app_config_parser module~bem_app_config_parser_preflight_surface bem_app_config_parser_preflight_surface module~bem_app_config_parser_preflight_surface->module~bem_app_config_parser module~bem_app_config_parser_read_mesh bem_app_config_parser_read_mesh module~bem_app_config_parser_read_mesh->module~bem_app_config_parser module~bem_app_config_parser_read_particles bem_app_config_parser_read_particles module~bem_app_config_parser_read_particles->module~bem_app_config_parser module~bem_app_config_parser_read_sim bem_app_config_parser_read_sim module~bem_app_config_parser_read_sim->module~bem_app_config_parser module~bem_app_config_parser_read_surface bem_app_config_parser_read_surface module~bem_app_config_parser_read_surface->module~bem_app_config_parser module~bem_app_config_parser_validate bem_app_config_parser_validate module~bem_app_config_parser_validate->module~bem_app_config_parser 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_matching_plane_coupling bem_matching_plane_coupling module~bem_matching_plane_coupling->module~bem_app_config module~bem_simulator bem_simulator module~bem_simulator->module~bem_app_config module~bem_simulator->module~bem_app_config_runtime module~bem_simulator_io bem_simulator_io module~bem_simulator_io->module~bem_app_config_runtime module~bem_simulator_io->module~bem_simulator module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_app_config_runtime module~bem_simulator_loop->module~bem_matching_plane_coupling module~bem_simulator_loop->module~bem_simulator program~main main program~main->module~bem_app_config program~main->module~bem_simulator 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 module~bem_simulator_charge bem_simulator_charge module~bem_simulator_charge->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

Subroutines

public subroutine allocate_particles(pcls, n)

粒子数に一致するSoA領域を確保する。位置・速度・電荷・質量は呼出し元で埋める。 重みは1、粒子種IDは0、放出元は-1、aliveはtrueで初期化する。

Arguments

Type IntentOptional Attributes Name
type(particles_soa), intent(out) :: pcls
integer(kind=i32), intent(in) :: n

public subroutine init_particles(pcls, x, v, q, m, w, species_id, source_element)

位置・速度・電荷・質量(と任意重み)配列から particles_soa を検証付きで構築する。

Arguments

Type IntentOptional Attributes Name
type(particles_soa), intent(out) :: pcls

検証済み配列を内部に保持した particles_soa 構造体。

real(kind=dp), intent(in) :: x(:,:)
real(kind=dp), intent(in) :: v(:,:)
real(kind=dp), intent(in) :: q(:)
real(kind=dp), intent(in) :: m(:)
real(kind=dp), intent(in), optional :: w(:)
integer(kind=i32), intent(in), optional :: species_id(:)
integer(kind=i32), intent(in), optional :: source_element(:)

public subroutine append_particles(pcls, x, v, q, m, w, species_id, source_element)

既存 SoA の末尾へ粒子群を追加し、既存の alive 状態を保持する。

Arguments

Type IntentOptional Attributes Name
type(particles_soa), intent(inout) :: pcls
real(kind=dp), intent(in) :: x(:,:)
real(kind=dp), intent(in) :: v(:,:)
real(kind=dp), intent(in) :: q(:)
real(kind=dp), intent(in) :: m(:)
real(kind=dp), intent(in) :: w(:)
integer(kind=i32), intent(in) :: species_id(:)
integer(kind=i32), intent(in), optional :: source_element(:)