bem_status_codes Module

粒子追跡の失敗 status code と、その名前。 collision query(0–4)と粒子 step(1001–)は result の status と失敗 receipt に出る同じ名前空間で、 box 境界 event(0–1)は stepper の内部で particle_step_invalid_boundary へ写される。値はログと出力に出るので変えない。


Uses

  • module~~bem_status_codes~~UsesGraph module~bem_status_codes bem_status_codes module~bem_kinds bem_kinds module~bem_status_codes->module~bem_kinds iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env

Used by

  • module~~bem_status_codes~~UsedByGraph module~bem_status_codes bem_status_codes module~bem_app_config_particle_runtime bem_app_config_particle_runtime module~bem_app_config_particle_runtime->module~bem_status_codes module~bem_injection bem_injection module~bem_app_config_particle_runtime->module~bem_injection module~bem_boundary bem_boundary module~bem_boundary->module~bem_status_codes module~bem_collision bem_collision module~bem_collision->module~bem_status_codes module~bem_particle_stepper bem_particle_stepper module~bem_particle_stepper->module~bem_status_codes module~bem_particle_stepper->module~bem_boundary module~bem_particle_stepper->module~bem_collision module~bem_photoelectron_injection bem_photoelectron_injection module~bem_photoelectron_injection->module~bem_status_codes module~bem_photoelectron_injection->module~bem_boundary module~bem_photoelectron_injection->module~bem_collision module~bem_simulator bem_simulator module~bem_simulator->module~bem_status_codes module~bem_simulator->module~bem_collision 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_app_config bem_app_config module~bem_simulator->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_particle_runtime_slots->module~bem_injection module~bem_app_config_runtime->module~bem_app_config_particle_runtime module~bem_injection->module~bem_photoelectron_injection 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_io->module~bem_app_config_runtime module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_simulator module~bem_simulator_loop->module~bem_app_config_runtime 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_photoelectron_injection 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 program~main->module~bem_app_config module~bem_app_config->module~bem_app_config_runtime module~bem_zhao_outflow_refresh->module~bem_app_config

Variables

Type Visibility Attributes Name Initial
integer(kind=i32), public, parameter :: collision_query_ok = 0_i32
integer(kind=i32), public, parameter :: collision_query_image_limit = 1_i32
integer(kind=i32), public, parameter :: collision_query_index_range = 2_i32
integer(kind=i32), public, parameter :: collision_query_invalid_segment = 3_i32
integer(kind=i32), public, parameter :: collision_query_grid_stalled = 4_i32
integer(kind=i32), public, parameter :: boundary_event_ok = 0_i32
integer(kind=i32), public, parameter :: boundary_event_invalid_geometry = 1_i32
integer(kind=i32), public, parameter :: particle_step_ok = collision_query_ok
integer(kind=i32), public, parameter :: particle_step_invalid_boundary = 1001_i32
integer(kind=i32), public, parameter :: particle_step_multiple_box_events = 1002_i32
integer(kind=i32), public, parameter :: particle_step_ambiguous_open_corner = 1003_i32

Derived Types

type, public ::  particle_track_failure_type

バッチ内で最初に失敗した粒子追跡(最小の粒子番号、同じ粒子なら最小の step)。status が ok なら失敗なし。

Components

Type Visibility Attributes Name Initial
integer(kind=i32), public :: status = collision_query_ok
integer(kind=i32), public :: particle = huge(0_i32)
integer(kind=i32), public :: step = 0_i32
real(kind=dp), public :: x(3) = 0.0_dp

失敗した step の開始位置 [m] と速度 [m/s]。

real(kind=dp), public :: v(3) = 0.0_dp

type, public ::  photo_ray_failure_type

photo raycast の ray が衝突照会を完了できなかった最初の失敗(最小の ray、同じ ray なら最小の bounce)。 species は batch 注入の段で埋める。status が ok なら失敗なし。

Components

Type Visibility Attributes Name Initial
integer(kind=i32), public :: status = collision_query_ok
integer(kind=i32), public :: species = huge(0_i32)
integer(kind=i32), public :: ray = huge(0_i32)
integer(kind=i32), public :: bounce = 0_i32

Functions

public pure function particle_status_name(status) result(name)

collision query または粒子 step の失敗 status の名前。未知の値は 'unknown'。

Arguments

Type IntentOptional Attributes Name
integer(kind=i32), intent(in) :: status

Return Value character(len=32)