bem_secondary_emission Module

吸収に伴う SEE の収率・丸めと、OpenMP thread ごとの生成粒子 buffer。


Uses

  • module~~bem_secondary_emission~~UsesGraph module~bem_secondary_emission bem_secondary_emission ieee_arithmetic ieee_arithmetic module~bem_secondary_emission->ieee_arithmetic module~bem_counter_rng bem_counter_rng module~bem_secondary_emission->module~bem_counter_rng module~bem_kinds bem_kinds module~bem_secondary_emission->module~bem_kinds module~bem_counter_rng->module~bem_kinds iso_c_binding iso_c_binding module~bem_counter_rng->iso_c_binding m_pcg64_bind m_pcg64_bind module~bem_counter_rng->m_pcg64_bind iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env

Used by

  • module~~bem_secondary_emission~~UsedByGraph module~bem_secondary_emission bem_secondary_emission module~bem_simulator_particles bem_simulator_particles module~bem_simulator_particles->module~bem_secondary_emission

Derived Types

type, public ::  secondary_spawn_type

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: x(3)
real(kind=dp), public :: v(3)
real(kind=dp), public :: w
integer(kind=i32), public :: species_idx
integer(kind=i32), public :: element
integer(kind=i32), public :: parent
integer(kind=i32), public :: ordinal

type, public ::  secondary_spawn_buffer_type

Components

Type Visibility Attributes Name Initial
type(secondary_spawn_type), public, allocatable :: particles(:)
integer(kind=i32), public :: n = 0_i32

Type-Bound Procedures

procedure, public :: push

Functions

public pure function secondary_emission_yield(model, energy_ev, cos_theta, yield_max, energy_max_ev, const_yield) result(delta)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: model
real(kind=dp), intent(in) :: energy_ev
real(kind=dp), intent(in) :: cos_theta
real(kind=dp), intent(in) :: yield_max
real(kind=dp), intent(in) :: energy_max_ev
real(kind=dp), intent(in) :: const_yield

Return Value real(kind=dp)

public function secondary_emission_count(delta, charge_ratio, seed, counter) result(n)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: delta
real(kind=dp), intent(in) :: charge_ratio
integer(kind=i32), intent(in) :: seed
integer(kind=i64), intent(in) :: counter(:)

Return Value integer(kind=i32)