particle_species_spec Derived Type

type, public :: particle_species_spec

1粒子種の注入設定を表す。


Inherited by

type~~particle_species_spec~~InheritedByGraph type~particle_species_spec particle_species_spec type~app_config app_config type~app_config->type~particle_species_spec particle_species

Components

Type Visibility Attributes Name Initial
character(len=64), public :: species_key = ''
logical, public :: enabled = .false.
integer(kind=i32), public :: npcls_per_step = 0_i32
character(len=16), public :: source_mode = 'volume_seed'
real(kind=dp), public :: number_density_cm3 = 0.0d0
real(kind=dp), public :: number_density_m3 = 0.0d0
logical, public :: has_number_density_cm3 = .false.
real(kind=dp), public :: q_particle = -1.602176634d-19
real(kind=dp), public :: m_particle = 9.10938356d-31
real(kind=dp), public :: w_particle = 1.0d0
logical, public :: has_w_particle = .false.
integer(kind=i32), public :: target_macro_particles_per_batch = 0_i32
logical, public :: has_target_macro_particles_per_batch = .false.
real(kind=dp), public :: pos_low(3) = [-0.4d0, -0.4d0, 0.2d0]
real(kind=dp), public :: pos_high(3) = [0.4d0, 0.4d0, 0.5d0]
character(len=16), public :: velocity_distribution = 'maxwellian'
character(len=256), public :: velocity_grid_path = ''
character(len=16), public :: velocity_grid_pdf_kind = 'phase_space'
character(len=16), public :: velocity_grid_sampling = 'auto'
real(kind=dp), public :: particle_flux_m2_s = 0.0d0
real(kind=dp), public :: current_density_a_m2 = 0.0d0
logical, public :: has_current_density_a_m2 = .false.
real(kind=dp), public :: drift_velocity(3) = [0.0d0, 0.0d0, -8.0d5]
real(kind=dp), public :: temperature_k = 2.0d4
real(kind=dp), public :: temperature_ev = -1.0d0
logical, public :: has_temperature_ev = .false.
real(kind=dp), public :: emit_current_density_a_m2 = 0.0d0
integer(kind=i32), public :: rays_per_batch = 0_i32
logical, public :: deposit_opposite_charge_on_emit = .false.
real(kind=dp), public :: normal_drift_speed = 0.0d0
real(kind=dp), public :: ray_direction(3) = [0.0d0, 0.0d0, 0.0d0]
logical, public :: has_ray_direction = .false.
real(kind=dp), public :: source_normal(3) = [0.0d0, 0.0d0, -1.0d0]
character(len=16), public :: inject_face = ''
integer(kind=i32), public :: boundary_low(3) = [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]
integer(kind=i32), public :: boundary_high(3) = [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]
integer(kind=i32), public :: boundary_inflow_low(3) = particle_inflow_none
integer(kind=i32), public :: boundary_inflow_high(3) = particle_inflow_none
character(len=16), public :: surface_charge_closure = 'explicit'
real(kind=dp), public :: target_absorbed_current_a = 0.0_dp
logical, public :: has_target_absorbed_current_a = .false.
real(kind=dp), public :: target_emission_current_a = 0.0_dp
logical, public :: has_target_emission_current_a = .false.

Source Code

  type :: particle_species_spec
    character(len=64) :: species_key = ''
    logical :: enabled = .false.
    integer(i32) :: npcls_per_step = 0_i32
    character(len=16) :: source_mode = 'volume_seed'
    real(dp) :: number_density_cm3 = 0.0d0
    real(dp) :: number_density_m3 = 0.0d0
    logical :: has_number_density_cm3 = .false.
    real(dp) :: q_particle = -1.602176634d-19
    real(dp) :: m_particle = 9.10938356d-31
    real(dp) :: w_particle = 1.0d0
    logical :: has_w_particle = .false.
    integer(i32) :: target_macro_particles_per_batch = 0_i32
    logical :: has_target_macro_particles_per_batch = .false.
    real(dp) :: pos_low(3) = [-0.4d0, -0.4d0, 0.2d0]
    real(dp) :: pos_high(3) = [0.4d0, 0.4d0, 0.5d0]
    character(len=16) :: velocity_distribution = 'maxwellian'
    character(len=256) :: velocity_grid_path = ''
    character(len=16) :: velocity_grid_pdf_kind = 'phase_space'
    character(len=16) :: velocity_grid_sampling = 'auto'
    real(dp) :: particle_flux_m2_s = 0.0d0
    real(dp) :: current_density_a_m2 = 0.0d0
    logical :: has_current_density_a_m2 = .false.
    real(dp) :: drift_velocity(3) = [0.0d0, 0.0d0, -8.0d5]
    real(dp) :: temperature_k = 2.0d4
    real(dp) :: temperature_ev = -1.0d0
    logical :: has_temperature_ev = .false.
    real(dp) :: emit_current_density_a_m2 = 0.0d0
    integer(i32) :: rays_per_batch = 0_i32
    logical :: deposit_opposite_charge_on_emit = .false.
    real(dp) :: normal_drift_speed = 0.0d0
    real(dp) :: ray_direction(3) = [0.0d0, 0.0d0, 0.0d0]
    logical :: has_ray_direction = .false.
    real(dp) :: source_normal(3) = [0.0d0, 0.0d0, -1.0d0]
    character(len=16) :: inject_face = ''
    integer(i32) :: boundary_low(3) = [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]
    integer(i32) :: boundary_high(3) = [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]
    integer(i32) :: boundary_inflow_low(3) = particle_inflow_none
    integer(i32) :: boundary_inflow_high(3) = particle_inflow_none
    character(len=16) :: surface_charge_closure = 'explicit'
    real(dp) :: target_absorbed_current_a = 0.0_dp
    logical :: has_target_absorbed_current_a = .false.
    real(dp) :: target_emission_current_a = 0.0_dp
    logical :: has_target_emission_current_a = .false.
  end type particle_species_spec