bem_runtime_modes Module

設定の文字列モードを実行時に一度だけ解決した整数 enum。 設定キー・summary・エラーメッセージの文字列はそのままにし、粒子・評価ループは解決済みの値だけを比べる。 文字列は parser/preflight が小文字化・検証済みなので、ここでは大文字小文字を区別しない比較で写すだけにする。


Uses

  • module~~bem_runtime_modes~~UsesGraph module~bem_runtime_modes bem_runtime_modes module~bem_kinds bem_kinds module~bem_runtime_modes->module~bem_kinds module~bem_string_utils bem_string_utils module~bem_runtime_modes->module~bem_string_utils iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env

Used by

  • module~~bem_runtime_modes~~UsedByGraph module~bem_runtime_modes bem_runtime_modes module~bem_electrostatic_snapshot bem_electrostatic_snapshot module~bem_electrostatic_snapshot->module~bem_runtime_modes module~bem_field_solver bem_field_solver module~bem_electrostatic_snapshot->module~bem_field_solver module~bem_field_solver->module~bem_runtime_modes module~bem_simulator_charge bem_simulator_charge module~bem_simulator_charge->module~bem_runtime_modes module~bem_surface_closure_contract bem_surface_closure_contract module~bem_simulator_charge->module~bem_surface_closure_contract module~bem_simulator bem_simulator module~bem_simulator_charge->module~bem_simulator module~bem_surface_closure_contract->module~bem_runtime_modes module~bem_zhao_outflow_refresh bem_zhao_outflow_refresh module~bem_zhao_outflow_refresh->module~bem_runtime_modes module~bem_zhao_outflow_refresh->module~bem_surface_closure_contract module~bem_surface_current_model bem_surface_current_model module~bem_zhao_outflow_refresh->module~bem_surface_current_model module~bem_app_config bem_app_config module~bem_zhao_outflow_refresh->module~bem_app_config 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_field_solver_config bem_field_solver_config module~bem_field_solver_config->module~bem_field_solver module~bem_field_solver_eval bem_field_solver_eval module~bem_field_solver_eval->module~bem_field_solver module~bem_field_solver_fmm bem_field_solver_fmm module~bem_field_solver_fmm->module~bem_field_solver module~bem_field_solver_tree bem_field_solver_tree module~bem_field_solver_tree->module~bem_field_solver module~bem_output_writer bem_output_writer module~bem_output_writer->module~bem_electrostatic_snapshot module~bem_output_writer->module~bem_surface_current_model module~bem_output_writer_summary bem_output_writer_summary module~bem_output_writer_summary->module~bem_field_solver module~bem_output_writer_summary->module~bem_output_writer module~bem_output_writer_summary->module~bem_surface_current_model module~bem_particle_stepper bem_particle_stepper module~bem_particle_stepper->module~bem_electrostatic_snapshot module~bem_simulator->module~bem_electrostatic_snapshot module~bem_simulator->module~bem_surface_closure_contract module~bem_simulator->module~bem_output_writer module~bem_simulator->module~bem_particle_stepper module~bem_simulator->module~bem_surface_current_model 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_simulator->module~bem_app_config module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_zhao_outflow_refresh 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_periodic_checkpoint bem_periodic_checkpoint module~bem_simulator_loop->module~bem_periodic_checkpoint module~bem_simulator_loop->module~bem_run_outputs module~bem_surface_current_model->module~bem_surface_closure_contract 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 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_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_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_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

Variables

Type Visibility Attributes Name Initial
integer(kind=i32), public, parameter :: field_solver_mode_direct = 0_i32

場ソルバの評価方式(fields.solver.method を要素数で解決した後の値)。

integer(kind=i32), public, parameter :: field_solver_mode_treecode = 1_i32
integer(kind=i32), public, parameter :: field_solver_mode_fmm = 2_i32
integer(kind=i32), public, parameter :: surface_charge_closure_explicit = 0_i32

particles.species.charging.closure。

integer(kind=i32), public, parameter :: surface_charge_closure_fixed_current = 1_i32
integer(kind=i32), public, parameter :: surface_charge_closure_neutral_return = 2_i32
integer(kind=i32), public, parameter :: surface_charge_closure_unknown = -1_i32
integer(kind=i32), public, parameter :: lower_boundary_e_bottom_zero = 0_i32

fields.periodic.lower_boundary_model(zero mode の下端条件)。

integer(kind=i32), public, parameter :: lower_boundary_symmetric_vacuum = 1_i32
integer(kind=i32), public, parameter :: lower_boundary_e_top_from_sheath = 2_i32
integer(kind=i32), public, parameter :: lower_boundary_unknown = -1_i32
integer(kind=i32), public, parameter :: closure_mode_none = 0_i32

固定電流 closure を当てない。

integer(kind=i32), public, parameter :: closure_mode_target = 1_i32

設定または外部根の目標電流へ、追跡した raw channel をそのまま合わせる(外部根の電子・イオン、 PE だけの PE、Type C で全て脱出する PE、反射電子だけを数えるときの電子)。

integer(kind=i32), public, parameter :: closure_mode_escape_partner = 2_i32

外部根の脱出束が他の追跡種と合算の値で、そのバッチに追跡した partner(SEE)や反射電子の脱出を この種の脱出・帰還目標から差し引く(PE+SEE の Type A/B の PE、反射電子を数える PE)。

integer(kind=i32), public, parameter :: closure_mode_tracked_source = 3_i32

放出目標が根の予測ではなく根に与えた外側源で、帰還・脱出・放出を根へ固定する(PE なしの SEE、 PE+SEE の Type C の SEE)。空の帰還は放出へ畳み、放出がなければ未閉として記録する。


Functions

public pure function field_solver_mode_id(mode) result(id)

'direct' / 'treecode' / 'fmm' を enum へ写す。それ以外は direct(場ソルバの既定と同じ)。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: mode

Return Value integer(kind=i32)

public pure function surface_charge_closure_id(closure) result(id)

'explicit' / 'fixed_current' / 'neutral_return' を enum へ写す。未知の値は unknown。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: closure

Return Value integer(kind=i32)

public pure function lower_boundary_model_id(model) result(id)

'e_bottom_zero' / 'symmetric_vacuum' / 'e_top_from_sheath' を enum へ写す。未知の値は unknown。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: model

Return Value integer(kind=i32)