korc_collisions Module


Uses

  • module~~korc_collisions~~UsesGraph module~korc_collisions korc_collisions module~korc_input korc_input module~korc_collisions->module~korc_input module~korc_interp korc_interp module~korc_collisions->module~korc_interp module~korc_profiles korc_profiles module~korc_collisions->module~korc_profiles module~korc_fio korc_fio module~korc_collisions->module~korc_fio module~korc_hdf5 korc_HDF5 module~korc_collisions->module~korc_hdf5 module~korc_constants korc_constants module~korc_collisions->module~korc_constants module~korc_fields korc_fields module~korc_collisions->module~korc_fields module~korc_random korc_random module~korc_collisions->module~korc_random module~korc_types korc_types module~korc_collisions->module~korc_types module~korc_input->module~korc_types module~korc_hpc korc_hpc module~korc_input->module~korc_hpc module~korc_interp->module~korc_fio module~korc_interp->module~korc_types EZspline_obj EZspline_obj module~korc_interp->EZspline_obj module~korc_interp->module~korc_hpc module~korc_rnd_numbers korc_rnd_numbers module~korc_interp->module~korc_rnd_numbers EZspline EZspline module~korc_interp->EZspline module~korc_coords korc_coords module~korc_interp->module~korc_coords module~korc_profiles->module~korc_input module~korc_profiles->module~korc_interp module~korc_profiles->module~korc_hdf5 module~korc_profiles->module~korc_types module~korc_profiles->module~korc_hpc module~korc_profiles->module~korc_coords module~korc_fio->module~korc_input module~korc_fio->module~korc_hdf5 module~korc_fio->module~korc_types iso_c_binding iso_c_binding module~korc_fio->iso_c_binding mpi mpi module~korc_fio->mpi module~korc_hdf5->module~korc_constants module~korc_hdf5->module~korc_types module~korc_hdf5->module~korc_hpc HDF5 HDF5 module~korc_hdf5->HDF5 module~korc_constants->module~korc_types module~korc_fields->module~korc_input module~korc_fields->module~korc_interp module~korc_fields->module~korc_hdf5 module~korc_fields->module~korc_types module~korc_fields->module~korc_hpc module~korc_fields->module~korc_coords module~korc_random->module~korc_types module~korc_random->iso_c_binding module~korc_types->iso_c_binding module~korc_hpc->module~korc_types module~korc_hpc->mpi omp_lib omp_lib module~korc_hpc->omp_lib module~korc_rnd_numbers->module~korc_types ifport ifport module~korc_rnd_numbers->ifport module~korc_coords->module~korc_constants module~korc_coords->module~korc_types

Used by

  • module~~korc_collisions~~UsedByGraph module~korc_collisions korc_collisions program~main main program~main->module~korc_collisions module~korc_ppusher korc_ppusher program~main->module~korc_ppusher module~korc_ppusher->module~korc_collisions

Contents


Variables

TypeVisibility AttributesNameInitial
character(len=*), private, parameter:: MODEL1 ='SINGLE_SPECIES'
character(len=*), private, parameter:: MODEL2 ='MULTIPLE_SPECIES'
real(kind=rp), private, parameter:: infinity =HUGE(1.0_rp)
type(PARAMS_MS), private :: cparams_ms
type(PARAMS_SS), private :: cparams_ss

Derived Types

type, private :: PARAMS_MS

Components

TypeVisibility AttributesNameInitial
integer, public :: num_impurity_species
real(kind=rp), public :: Te
real(kind=rp), public :: ne
real(kind=rp), public :: nH
real(kind=rp), public :: nef
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: neb
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Zi
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Zo
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Zj
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: nz
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: IZj
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: aZj
real(kind=rp), public, DIMENSION(:), ALLOCATABLE:: Ee_IZj
real(kind=rp), public :: rD
real(kind=rp), public :: re
real(kind=rp), public :: Gammac_min
real(kind=rp), public, DIMENSION(2):: aH =(/274._rp, 0._rp/)
real(kind=rp), public, DIMENSION(7):: aC =(/144._rp, 118._rp, 95._rp, 70._rp, 42._rp, 39._rp, 0._rp/)
real(kind=rp), public, DIMENSION(11):: aNe =(/111._rp, 100._rp, 90._rp, 80._rp, 71._rp, 62._rp, 52._rp, 40._rp, 24._rp, 23._rp, 0._rp/)
real(kind=rp), public, DIMENSION(19):: aAr =(/96._rp, 90._rp, 84._rp, 78._rp, 72._rp, 65._rp, 59._rp, 53._rp, 47._rp, 44._rp, 41._rp, 38._rp, 25._rp, 32._rp, 27._rp, 21._rp, 13._rp, 13._rp, 0._rp/)
real(kind=rp), public, DIMENSION(2):: IH =(/14.9916_rp, huge(1._rp)/)
real(kind=rp), public, DIMENSION(7):: IC =(/65.9_rp, 92.6_rp, 134.8_rp, 214.2_rp, 486.2_rp, 539.5_rp, huge(1._rp)/)
real(kind=rp), public, DIMENSION(11):: INe =(/137.2_rp, 165.2_rp, 196.9_rp, 235.2_rp, 282.8_rp, 352.6_rp, 475.0_rp, 696.8_rp, 1409.2_rp, 1498.4_rp, huge(1._rp)/)
real(kind=rp), public, DIMENSION(19):: IAr =(/188.5_rp, 219.4_rp, 253.8_rp, 293.4_rp, 339.1_rp, 394.5_rp, 463.4_rp, 568.0_rp, 728.0_rp, 795.9_rp, 879.8_rp, 989.9_rp, 1138.1_rp, 1369.5_rp, 1791.2_rp, 2497.0_rp, 4677.2_rp, 4838.2_rp, huge(1._rp)/)
character(len=30), public :: neut_prof
real(kind=rp), public :: Ec
real(kind=rp), public :: Ec_min
logical, public :: LargeCollisions

type, private :: PARAMS_SS

Components

TypeVisibility AttributesNameInitial
real(kind=rp), public :: Te
real(kind=rp), public :: Ti
real(kind=rp), public :: ne
real(kind=rp), public :: Zeff
real(kind=rp), public :: rD
real(kind=rp), public :: re
real(kind=rp), public :: CoulombLogee
real(kind=rp), public :: CoulombLogei
real(kind=rp), public :: CLog1
real(kind=rp), public :: CLog2
real(kind=rp), public :: CLog0_1
real(kind=rp), public :: CLog0_2
real(kind=rp), public :: VTe
real(kind=rp), public :: VTeo
real(kind=rp), public :: delta
real(kind=rp), public :: deltao
real(kind=rp), public :: Gammac
real(kind=rp), public :: Gammaco
real(kind=rp), public :: Tau
real(kind=rp), public :: Tauc
real(kind=rp), public :: taur
real(kind=rp), public :: Ec
real(kind=rp), public :: ED
real(kind=rp), public :: dTau
integer(kind=ip), public :: subcycling_iterations
integer(kind=ip), public :: ngrid1
real(kind=rp), public :: coll_per_dump_dt
real(kind=rp), public :: Clog_const
real(kind=rp), public :: p_min
real(kind=rp), public :: p_crit
real(kind=rp), public :: p_therm
real(kind=rp), public :: gam_min
real(kind=rp), public :: gam_crit
real(kind=rp), public :: gam_therm
real(kind=rp), public :: pmin_scale
logical, public :: ConserveLA
logical, public :: sample_test
logical, public :: avalanche
logical, public :: energy_diffusion
logical, public :: FP_bremsstrahlung
logical, public :: pitch_diffusion
character(len=30), public :: Clog_model
character(len=30), public :: min_secRE
character(len=30), public :: LAC_gam_resolution
real(kind=rp), public, DIMENSION(3):: x =(/1.0_rp, 0.0_rp, 0.0_rp/)
real(kind=rp), public, DIMENSION(3):: y =(/0.0_rp, 1.0_rp, 0.0_rp/)
real(kind=rp), public, DIMENSION(3):: z =(/0.0_rp, 0.0_rp, 1.0_rp/)
type(PROFILES), public :: P
real(kind=rp), public, DIMENSION(:,:), ALLOCATABLE:: rnd_num
integer, public :: rnd_num_count
integer, public :: rnd_dim =40000000_idef

Functions

private function VTe_wu(Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: Te

In Joules

Return Value real(kind=rp)

private function VTe(Te)

Dimensionless temperature

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

private function Gammac_wu(params, ne, Te)

With units

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

private function Gammacee(v, ne, Te)

Dimensionless ne and Te

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

private function CLog_wu(ne, Te)

With units

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: ne

ne is in m^-3 and below is converted to cm^-3

real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function CLog0_wu(ne, Te)

With units

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: ne

ne is in m^-3 and below is converted to cm^-3

real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function CLogee_wu(params, ne, Te)

With units

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: ne

ne is in m^-3 and below is converted to cm^-3

real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function CLogei_wu(params, ne, Te)

With units

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: ne

ne is in m^-3 and below is converted to cm^-3

real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

private function CLog(ne, Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function CLog0(ne, Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function CLogee(v, ne, Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne

ne is in m^-3 and below is converted to cm^-3

real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function CLogei(v, ne, Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne

ne is in m^-3 and below is converted to cm^-3

real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

private function delta(Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function psi(x)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: x

Return Value real(kind=rp)

private function CA(v)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function CA_SD(v, ne, Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function dCA_SD(v, me, ne, Te)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: me
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

private function CF(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function CF_FIO(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function CF_SD(params, v, ne, Te)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te

Return Value real(kind=rp)

public function CF_SD_FIO(params, v, ne, Te, nimp)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te
real(kind=rp), intent(in), DIMENSION(cparams_ms%num_impurity_species):: nimp

Return Value real(kind=rp)

private function CB_ee(v)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function CB_ei(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function CB_ei_FIO(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function CB_ee_SD(v, ne, Te, Zeff)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te
real(kind=rp), intent(in) :: Zeff

Return Value real(kind=rp)

private function CB_ei_SD(params, v, ne, Te, Zeff)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te
real(kind=rp), intent(in) :: Zeff

Return Value real(kind=rp)

public function CB_ei_SD_FIO(params, v, ne, Te, nimp, Zeff)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v
real(kind=rp), intent(in) :: ne
real(kind=rp), intent(in) :: Te
real(kind=rp), intent(in), DIMENSION(cparams_ms%num_impurity_species):: nimp
real(kind=rp), intent(in) :: Zeff

Return Value real(kind=rp)

private function nu_S(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function nu_S_FIO(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

public function h_j(i, v)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: i
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

public function g_j(i, v)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: i
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function nu_D(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function nu_D_FIO(params, v)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function nu_par(v)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function fun(v)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: v

Return Value real(kind=rp)

private function cross(a, b)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in), DIMENSION(3):: a
real(kind=rp), intent(in), DIMENSION(3):: b

Return Value real(kind=rp), DIMENSION(3)


Subroutines

private subroutine load_params_ms(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(inout) :: params

private subroutine load_params_ss(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

public subroutine initialize_collision_params(params, spp, P, F, init)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(inout) :: params
type(SPECIES), intent(inout), DIMENSION(:), ALLOCATABLE:: spp
type(PROFILES), intent(inout) :: P
type(FIELDS), intent(in) :: F
logical, intent(in) :: init

private subroutine normalize_params_ms(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

private subroutine normalize_params_ss(params)

Calculate constant quantities used in various functions within this module

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

public subroutine normalize_collisions_params(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

public subroutine collision_force(spp, U, Fcoll)

For multiple-species collisions J. R. Martin-Solis et al. PoP 22, 092512 (2015) if (params%collisions .AND. (TRIM(params%collisions_model) .EQ. 'MULTIPLE_SPECIES')) then call collision_force(spp(ii),U_os,Fcoll) U_RC = U_RC + a*Fcoll/spp(ii)%q end if

Arguments

Type IntentOptional AttributesName
type(SPECIES), intent(in) :: spp
real(kind=rp), intent(in), DIMENSION(3):: U
real(kind=rp), intent(out), DIMENSION(3):: Fcoll

public subroutine define_collisions_time_step(params, F, init)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(inout) :: params
type(FIELDS), intent(in) :: F
logical, intent(in) :: init

private subroutine unitVectorsC(B, b1, b2, b3)

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in), DIMENSION(3):: B
real(kind=rp), intent(out), DIMENSION(3):: b1
real(kind=rp), intent(out), DIMENSION(3):: b2
real(kind=rp), intent(out), DIMENSION(3):: b3

private subroutine unitVectors_p(pchunk, b_unit_X, b_unit_Y, b_unit_Z, b1_X, b1_Y, b1_Z, b2_X, b2_Y, b2_Z, b3_X, b3_Y, b3_Z)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: pchunk
real(kind=rp), intent(in), DIMENSION(pchunk):: b_unit_X
real(kind=rp), intent(in), DIMENSION(pchunk):: b_unit_Y
real(kind=rp), intent(in), DIMENSION(pchunk):: b_unit_Z
real(kind=rp), intent(out), DIMENSION(pchunk):: b1_X
real(kind=rp), intent(out), DIMENSION(pchunk):: b1_Y
real(kind=rp), intent(out), DIMENSION(pchunk):: b1_Z
real(kind=rp), intent(out), DIMENSION(pchunk):: b2_X
real(kind=rp), intent(out), DIMENSION(pchunk):: b2_Y
real(kind=rp), intent(out), DIMENSION(pchunk):: b2_Z
real(kind=rp), intent(out), DIMENSION(pchunk):: b3_X
real(kind=rp), intent(out), DIMENSION(pchunk):: b3_Y
real(kind=rp), intent(out), DIMENSION(pchunk):: b3_Z

public subroutine check_collisions_params(spp)

Arguments

Type IntentOptional AttributesName
type(SPECIES), intent(in) :: spp

public subroutine include_CoulombCollisions_FO_p(tt, params, X_X, X_Y, X_Z, U_X, U_Y, U_Z, B_X, B_Y, B_Z, me, P, F, flagCon, flagCol, PSIp)

This subroutine performs a Stochastic collision process consistent with the Fokker-Planck model for relativitic electron colliding with a thermal (Maxwellian) plasma. The collision operator is in spherical coordinates of the form found in Papp et al., NF (2011). CA corresponds to the parallel (speed diffusion) process, CF corresponds to a slowing down (momentum loss) process, and CB corresponds to a perpendicular diffusion process. Ordering of the processes are and only the dominant terms are kept.

Arguments

Type IntentOptional AttributesName
integer(kind=ip), intent(in) :: tt
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in), DIMENSION(params%pchunk):: X_X
real(kind=rp), intent(in), DIMENSION(params%pchunk):: X_Y
real(kind=rp), intent(in), DIMENSION(params%pchunk):: X_Z
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: U_X
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: U_Y
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: U_Z
real(kind=rp), intent(in), DIMENSION(params%pchunk):: B_X
real(kind=rp), intent(in), DIMENSION(params%pchunk):: B_Y
real(kind=rp), intent(in), DIMENSION(params%pchunk):: B_Z
real(kind=rp), intent(in) :: me
type(PROFILES), intent(in) :: P
type(FIELDS), intent(in) :: F
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCon
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCol
real(kind=rp), intent(in), DIMENSION(params%pchunk):: PSIp

public subroutine include_CoulombCollisions_FOfio_p(tt, params, X_X, X_Y, X_Z, U_X, U_Y, U_Z, B_X, B_Y, B_Z, me, P, F, flagCon, flagCol, PSIp, hint)

This subroutine performs a Stochastic collision process consistent with the Fokker-Planck model for relativitic electron colliding with a thermal (Maxwellian) plasma. The collision operator is in spherical coordinates of the form found in Papp et al., NF (2011). CA corresponds to the parallel (speed diffusion) process, CF corresponds to a slowing down (momentum loss) process, and CB corresponds to a perpendicular diffusion process. Ordering of the processes are and only the dominant terms are kept.

Arguments

Type IntentOptional AttributesName
integer(kind=ip), intent(in) :: tt
type(KORC_PARAMS), intent(in) :: params
real(kind=rp), intent(in), DIMENSION(params%pchunk):: X_X
real(kind=rp), intent(in), DIMENSION(params%pchunk):: X_Y
real(kind=rp), intent(in), DIMENSION(params%pchunk):: X_Z
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: U_X
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: U_Y
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: U_Z
real(kind=rp), intent(in), DIMENSION(params%pchunk):: B_X
real(kind=rp), intent(in), DIMENSION(params%pchunk):: B_Y
real(kind=rp), intent(in), DIMENSION(params%pchunk):: B_Z
real(kind=rp), intent(in) :: me
type(PROFILES), intent(in) :: P
type(FIELDS), intent(in) :: F
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCon
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCol
real(kind=rp), intent(in), DIMENSION(params%pchunk):: PSIp
type(C_PTR), DIMENSION(params%pchunk):: hint

public subroutine include_CoulombCollisions_GC_p(tt, params, Y_R, Y_PHI, Y_Z, Ppll, Pmu, me, flagCon, flagCol, F, P, E_PHI, ne, PSIp)

Arguments

Type IntentOptional AttributesName
integer(kind=ip), intent(in) :: tt
type(KORC_PARAMS), intent(inout) :: params
real(kind=rp), intent(in), DIMENSION(params%pchunk):: Y_R
real(kind=rp), intent(in), DIMENSION(params%pchunk):: Y_PHI
real(kind=rp), intent(in), DIMENSION(params%pchunk):: Y_Z
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: Ppll
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: Pmu
real(kind=rp), intent(in) :: me
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCon
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCol
type(FIELDS), intent(in) :: F
type(PROFILES), intent(in) :: P
real(kind=rp), intent(out), DIMENSION(params%pchunk):: E_PHI
real(kind=rp), intent(out), DIMENSION(params%pchunk):: ne
real(kind=rp), intent(out), DIMENSION(params%pchunk):: PSIp

public subroutine include_CoulombCollisionsLA_GC_p(spp, achunk, tt, params, Y_R, Y_PHI, Y_Z, Ppll, Pmu, me, flagCon, flagCol, F, P, E_PHI, ne, Te, PSIp)

Arguments

Type IntentOptional AttributesName
type(SPECIES), intent(inout) :: spp
integer, intent(in) :: achunk
integer(kind=ip), intent(in) :: tt
type(KORC_PARAMS), intent(inout) :: params
real(kind=rp), intent(in), DIMENSION(achunk):: Y_R
real(kind=rp), intent(in), DIMENSION(achunk):: Y_PHI
real(kind=rp), intent(in), DIMENSION(achunk):: Y_Z
real(kind=rp), intent(inout), DIMENSION(achunk):: Ppll
real(kind=rp), intent(inout), DIMENSION(achunk):: Pmu
real(kind=rp), intent(in) :: me
integer(kind=is), intent(inout), DIMENSION(achunk):: flagCon
integer(kind=is), intent(inout), DIMENSION(achunk):: flagCol
type(FIELDS), intent(in) :: F
type(PROFILES), intent(in) :: P
real(kind=rp), intent(out), DIMENSION(achunk):: E_PHI
real(kind=rp), intent(out), DIMENSION(achunk):: ne
real(kind=rp), intent(out), DIMENSION(achunk):: Te
real(kind=rp), intent(out), DIMENSION(achunk):: PSIp

public subroutine include_CoulombCollisions_GCfio_p(tt, params, Y_R, Y_PHI, Y_Z, Ppll, Pmu, me, flagCon, flagCol, F, P, E_PHI, ne, ni, Te, Zeff, nimp, PSIp, hint)

Arguments

Type IntentOptional AttributesName
integer(kind=ip), intent(in) :: tt
type(KORC_PARAMS), intent(inout) :: params
real(kind=rp), intent(in), DIMENSION(params%pchunk):: Y_R
real(kind=rp), intent(in), DIMENSION(params%pchunk):: Y_PHI
real(kind=rp), intent(in), DIMENSION(params%pchunk):: Y_Z
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: Ppll
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: Pmu
real(kind=rp), intent(in) :: me
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCon
integer(kind=is), intent(inout), DIMENSION(params%pchunk):: flagCol
type(FIELDS), intent(in) :: F
type(PROFILES), intent(in) :: P
real(kind=rp), DIMENSION(params%pchunk):: E_PHI
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: ne
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: ni
real(kind=rp), intent(inout), DIMENSION(params%pchunk):: Te
real(kind=rp), intent(out), DIMENSION(params%pchunk):: Zeff
real(kind=rp), intent(inout), DIMENSION(params%pchunk,params%num_impurity_species):: nimp
real(kind=rp), DIMENSION(params%pchunk):: PSIp
type(C_PTR), intent(inout), DIMENSION(params%pchunk):: hint

public subroutine large_angle_source(spp, params, achunk, F, Y_R, Y_PHI, Y_Z, pm, xi, ne, netot, Te, Bmag, E_PHI, me, flagCol, flagCon)

For each primary RE, calculating probability to generate a secondary RE

Read more…

Arguments

Type IntentOptional AttributesName
type(SPECIES), intent(inout) :: spp
type(KORC_PARAMS), intent(in) :: params
integer, intent(in) :: achunk
type(FIELDS), intent(in) :: F
real(kind=rp), intent(in), DIMENSION(achunk):: Y_R
real(kind=rp), intent(in), DIMENSION(achunk):: Y_PHI
real(kind=rp), intent(in), DIMENSION(achunk):: Y_Z
real(kind=rp), intent(inout), DIMENSION(achunk):: pm
real(kind=rp), intent(inout), DIMENSION(achunk):: xi
real(kind=rp), intent(in), DIMENSION(achunk):: ne
real(kind=rp), intent(in), DIMENSION(achunk):: netot
real(kind=rp), intent(in), DIMENSION(achunk):: Te
real(kind=rp), intent(in), DIMENSION(achunk):: Bmag
real(kind=rp), intent(in), DIMENSION(achunk):: E_PHI
real(kind=rp), intent(in) :: me
integer(kind=is), intent(in), DIMENSION(achunk):: flagCol
integer(kind=is), intent(in), DIMENSION(achunk):: flagCon

private subroutine save_params_ms(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

private subroutine save_params_ss(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

public subroutine save_collision_params(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

private subroutine deallocate_params_ms()

Arguments

None

public subroutine deallocate_collisions_params(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params