sim_config Derived Type

type, public :: sim_config

時間刻み・収束判定・バッチ回数・外部磁場など実行制御パラメータを保持する。


Inherited by

type~~sim_config~~InheritedByGraph type~sim_config sim_config type~app_config app_config type~app_config->type~sim_config sim

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: dt = 1.0d-12
integer(kind=i32), public :: rng_seed = 12345_i32
integer(kind=i32), public :: batch_count = 1_i32
real(kind=dp), public :: batch_duration = 0.0d0
logical, public :: has_batch_duration = .false.
real(kind=dp), public :: batch_duration_step = 0.0d0
logical, public :: has_batch_duration_step = .false.
integer(kind=i32), public :: max_step = 100
real(kind=dp), public :: tol_rel = 1.0d-4
real(kind=dp), public :: q_floor = 1.0d-30
real(kind=dp), public :: softening = 1.0d-4
character(len=16), public :: field_solver = 'auto'
character(len=16), public :: field_bc_mode = 'free'
integer(kind=i32), public :: field_periodic_image_layers = 1_i32
character(len=16), public :: field_periodic_far_correction = 'auto'
real(kind=dp), public :: field_periodic_ewald_alpha = 0.0d0
integer(kind=i32), public :: field_periodic_ewald_layers = 4_i32
real(kind=dp), public :: tree_theta = 0.5d0
logical, public :: has_tree_theta = .false.
integer(kind=i32), public :: tree_leaf_max = 16_i32
logical, public :: has_tree_leaf_max = .false.
integer(kind=i32), public :: tree_min_nelem = 256_i32
real(kind=dp), public :: b0(3) = 0.0d0
character(len=32), public :: reservoir_potential_model = 'none'
real(kind=dp), public :: phi_infty = 0.0d0
integer(kind=i32), public :: injection_face_phi_grid_n = 3_i32
integer(kind=i32), public :: raycast_max_bounce = 16_i32
character(len=32), public :: sheath_injection_model = 'none'
real(kind=dp), public :: sheath_alpha_deg = 60.0d0
real(kind=dp), public :: sheath_photoelectron_ref_density_cm3 = 64.0d0
real(kind=dp), public :: sheath_reference_coordinate = 0.0d0
logical, public :: has_sheath_reference_coordinate = .false.
character(len=16), public :: sheath_electron_drift_mode = 'normal'
character(len=16), public :: sheath_ion_drift_mode = 'normal'
logical, public :: use_box = .false.
real(kind=dp), public :: box_min(3) = [-1.0d0, -1.0d0, -1.0d0]
real(kind=dp), public :: box_max(3) = [1.0d0, 1.0d0, 1.0d0]
integer(kind=i32), public :: bc_low(3) = [bc_open, bc_open, bc_open]
integer(kind=i32), public :: bc_high(3) = [bc_open, bc_open, bc_open]

Source Code

  type :: sim_config
    real(dp) :: dt = 1.0d-12
    integer(i32) :: rng_seed = 12345_i32
    integer(i32) :: batch_count = 1_i32
    real(dp) :: batch_duration = 0.0d0
    logical :: has_batch_duration = .false.
    real(dp) :: batch_duration_step = 0.0d0
    logical :: has_batch_duration_step = .false.
    integer(i32) :: max_step = 100
    real(dp) :: tol_rel = 1.0d-4
    real(dp) :: q_floor = 1.0d-30
    real(dp) :: softening = 1.0d-4
    character(len=16) :: field_solver = 'auto'
    character(len=16) :: field_bc_mode = 'free'
    integer(i32) :: field_periodic_image_layers = 1_i32
    character(len=16) :: field_periodic_far_correction = 'auto'
    real(dp) :: field_periodic_ewald_alpha = 0.0d0
    integer(i32) :: field_periodic_ewald_layers = 4_i32
    real(dp) :: tree_theta = 0.5d0
    logical :: has_tree_theta = .false.
    integer(i32) :: tree_leaf_max = 16_i32
    logical :: has_tree_leaf_max = .false.
    integer(i32) :: tree_min_nelem = 256_i32
    real(dp) :: b0(3) = 0.0d0
    character(len=32) :: reservoir_potential_model = 'none'
    real(dp) :: phi_infty = 0.0d0
    integer(i32) :: injection_face_phi_grid_n = 3_i32
    integer(i32) :: raycast_max_bounce = 16_i32
    character(len=32) :: sheath_injection_model = 'none'
    real(dp) :: sheath_alpha_deg = 60.0d0
    real(dp) :: sheath_photoelectron_ref_density_cm3 = 64.0d0
    real(dp) :: sheath_reference_coordinate = 0.0d0
    logical :: has_sheath_reference_coordinate = .false.
    character(len=16) :: sheath_electron_drift_mode = 'normal'
    character(len=16) :: sheath_ion_drift_mode = 'normal'
    logical :: use_box = .false.
    real(dp) :: box_min(3) = [-1.0d0, -1.0d0, -1.0d0]
    real(dp) :: box_max(3) = [1.0d0, 1.0d0, 1.0d0]
    integer(i32) :: bc_low(3) = [bc_open, bc_open, bc_open]
    integer(i32) :: bc_high(3) = [bc_open, bc_open, bc_open]
  end type sim_config