neoclassics_module Module

Module containing neoclassical computations author: J Lion, IPP Greifswald Formulas used are described in: Beidler (2013), https://doi.org/10.1088/0029-5515/51/7/076001



Contents


Variables

TypeVisibility AttributesNameInitial
character, public, dimension(4):: species =(/"e", "D", "T", "a"/)
real(kind=dp), public, dimension(4):: densities
real(kind=dp), public, dimension(4):: temperatures
real(kind=dp), public, dimension(4):: dr_densities
real(kind=dp), public, dimension(4):: dr_temperatures
real(kind=dp), public, dimension(no_roots):: roots =0
real(kind=dp), public, dimension(no_roots):: weights =0
real(kind=dp), public, dimension(4,no_roots):: nu =0
real(kind=dp), public, dimension(4,no_roots):: nu_star =0
real(kind=dp), public, dimension(4):: nu_star_averaged =0
real(kind=dp), public, dimension(4,no_roots):: vd =0
real(kind=dp), public, dimension(4,no_roots):: KT =0
real(kind=dp), public :: Er =0.0
real(kind=dp), public :: iota =1.0d0
real(kind=dp), public, dimension(4,no_roots):: D11_mono =0
real(kind=dp), public, dimension(4,no_roots):: D11_plateau =0
real(kind=dp), public, dimension(:), allocatable:: nu_star_mono_input
real(kind=dp), public, dimension(:), allocatable:: D11_star_mono_input
real(kind=dp), public, dimension(:), allocatable:: D13_star_mono_input
real(kind=dp), public, dimension(4):: D111 =0
real(kind=dp), public, dimension(4):: D112 =0
real(kind=dp), public, dimension(4):: D113 =0
real(kind=dp), public, dimension(4):: q_flux =0
real(kind=dp), public, dimension(4):: Gamma_flux =0
real(kind=dp), public, dimension(no_roots):: D31_mono =0
real(kind=dp), public :: eps_eff =1d-5
real(kind=dp), public :: r_eff =0

Functions

public function neoclassics_calc_KT() result(KK)

Calculates the energy on the given grid which is given by the gauss laguerre roots.

Arguments

None

Return Value real(kind=dp), dimension(4,no_roots)

public function neoclassics_calc_Gamma_flux(densities, temperatures, dr_densities, dr_temperatures)

Calculates the Energy flux by neoclassical particle transport

Arguments

Type IntentOptional AttributesName
real(kind=dp), dimension(4):: densities
real(kind=dp), dimension(4):: temperatures
real(kind=dp), dimension(4):: dr_densities
real(kind=dp), dimension(4):: dr_temperatures

Return Value real(kind=dp), dimension(4)

public function neoclassics_calc_q_flux()

Calculates the Energy flux by neoclassicsal energy transport

Arguments

None

Return Value real(kind=dp), dimension(4)

public function neoclassics_calc_D11_mono(eps_eff) result(D11_mono)

Calculates the monoenergetic radial transport coefficients using epsilon effective.

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: eps_eff

Return Value real(kind=dp), dimension(4,no_roots)

public function neoclassics_calc_D11_plateau() result(D11_plateau)

Calculates the plateau transport coefficients (D11_star sometimes)

Arguments

None

Return Value real(kind=dp), dimension(4,no_roots)

public function neoclassics_interpolate_D11_mono() result(D11_mono)

Interpolates the D11 coefficients on the Gauss laguerre grid (This method is unused as of now, but is needed when taking D11 explicitely as input)

Arguments

None

Return Value real(kind=dp), dimension(4,no_roots)

public function neoclassics_calc_vd()

Calculates the drift velocities

Arguments

None

Return Value real(kind=dp), dimension(4,no_roots)

public function neoclassics_calc_nu_star() result(nu_star)

Calculates the normalized collision frequency

Arguments

None

Return Value real(kind=dp), dimension(4,no_roots)

public function neoclassics_calc_nu_star_fromT(iota)

Calculates the collision frequency

Arguments

Type IntentOptional AttributesName
real(kind=dp) :: iota

Return Value real(kind=dp), dimension(4)

public function neoclassics_calc_D111()

Calculates the integrated radial transport coefficients (index 1) It uses Gauss laguerre integration https://en.wikipedia.org/wiki/Gauss%E2%80%93Laguerre_quadrature

Arguments

None

Return Value real(kind=dp), dimension(4)

public function neoclassics_calc_D112()

Calculates the integrated radial transport coefficients (index 2) It uses Gauss laguerre integration https://en.wikipedia.org/wiki/Gauss%E2%80%93Laguerre_quadrature

Arguments

None

Return Value real(kind=dp), dimension(4)

public function neoclassics_calc_D113()

Calculates the integrated radial transport coefficients (index 3) It uses Gauss laguerre integration https://en.wikipedia.org/wiki/Gauss%E2%80%93Laguerre_quadrature

Arguments

None

Return Value real(kind=dp), dimension(4)

public function neoclassics_calc_nu()

Calculates the collision frequency

Arguments

None

Return Value real(kind=dp), dimension(4,no_roots)


Subroutines

public subroutine init_neoclassics_module()

Initialise module variables

Arguments

None

public subroutine init_neoclassics(r_eff, eps_eff, iota)

Constructor of the neoclassics object from the effective radius, epsilon effective and iota only.

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: r_eff
real(kind=dp), intent(in) :: eps_eff

This should be called as the standard constructor

real(kind=dp), intent(in) :: iota

This should be called as the standard constructor

public subroutine init_profile_values_from_PROCESS(rho, densities, temperatures, dr_densities, dr_temperatures)

Initializes the profile_values object from PROCESS' parabolic profiles

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: rho
real(kind=dp), intent(out), dimension(4):: densities
real(kind=dp), intent(out), dimension(4):: temperatures
real(kind=dp), intent(out), dimension(4):: dr_densities
real(kind=dp), intent(out), dimension(4):: dr_temperatures

public subroutine gauss_laguerre_30_roots(roots)

Sets the gauss Laguerre roots and weights for 30 discretization points. Used for integration in this module. roots

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(out), dimension(no_roots):: roots

public subroutine gauss_laguerre_30_weights(weights)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(out), dimension(no_roots):: weights