Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Derived types and interfaces | Functions/Subroutines | Variables
sll_m_distribution_function_initializer_6d Module Reference

Description

Data types that collect the parameters for various types of initial distributions and define the corresponding functions. This module takes care of the 6d case.

Author
Katharina Kormann

Derived types and interfaces

type  sll_t_array
 Array type. More...
 
type  sll_c_distribution_params_6d
 Abstract parameter type. More...
 
type  sll_t_landau_sum_parameters_6d
 Type to define parameters of Landau damping. More...
 
type  sll_t_landau_sum_df_parameters_6d
 Type to define parameters of Landau damping. More...
 
type  sll_t_landau_prod_parameters_6d
 Type to define parameters of Landau damping. More...
 
type  sll_t_landau_diag_parameters_6d
 Type to define parameters of Landau damping. More...
 
type  sll_t_twogaussian_parameters_6d
 Type to specify parameter for double Gaussian (includes bump-on-tail and TSI) More...
 
type  sll_t_itg_parameters_6d
 Type for a ITG simulation. More...
 
type  sll_t_pslab_parameters_6d
 Type for a periodic slab. More...
 
type  sll_t_pslab2_parameters_6d
 Type for a periodic slab. More...
 
type  sll_t_delta_parameters_6d
 
interface  signature_init
 
interface  signature_eval
 
interface  signature_eval_v
 

Functions/Subroutines

subroutine, public sll_s_set_local_grid (local_sizes, indices_min, eta_min, delta_eta, tensor_grid)
 
subroutine, public sll_s_set_local_grid_en (local_sizes, indices_min, eta_min, delta_eta, tensor_grid)
 
subroutine, public sll_s_distribution_params_6d_new (params, distrib_type, file_id)
 
subroutine, public sll_s_distribution_initializer_6d (local_sizes, data_indices_min, params, tensor_grid, fdistrib)
 Initialize distribution function with given distribution parameter. More...
 
subroutine, public sll_s_compute_velocity_transformation (vin, vtrans)
 
subroutine, public sll_s_compute_velocity_transformation_en (vin, vtrans)
 
subroutine init_landau_sum (self, file_id)
 
subroutine init_landau_prod (self, file_id)
 
subroutine init_twogaussian (self, file_id)
 
subroutine init_pslab (self, file_id)
 
subroutine init_delta (self, file_id)
 
real(kind=f64) function eval_landau_sum (self, x)
 
real(kind=f64) function eval_landau_sum_df (self, x)
 
real(kind=f64) function eval_landau_prod (self, x)
 
real(kind=f64) function eval_landau_v (self, x)
 
real(kind=f64) function eval_landau_v_sum (self, x)
 
real(kind=f64) function eval_landau_diag (self, x)
 
real(kind=f64) function eval_twogaussian_sum (self, x)
 
real(kind=f64) function eval_twogaussian_v (self, x)
 
real(kind=f64) function eval_pslab (self, x)
 
real(kind=f64) function eval_delta (self, x)
 
real(kind=f64) function eval_pslab2 (self, x)
 
real(kind=f64) function eval_pslab_v (self, x)
 

Variables

integer(kind=i32), parameter, public sll_p_landau_prod = 0
 Parameters describing various types of initial conditions. More...
 
integer(kind=i32), parameter, public sll_p_landau_sum = 1
 
integer(kind=i32), parameter, public sll_p_landau_diag = 2
 
integer(kind=i32), parameter, public sll_p_pslab = 3
 
integer(kind=i32), parameter sll_p_twogaussian_prod = 4
 
integer(kind=i32), parameter, public sll_p_twogaussian_sum = 5
 
integer(kind=i32), parameter sll_p_twogaussian_diag = 6
 
integer(kind=i32), parameter, public sll_p_pslab2 = 7
 
integer(kind=i32), parameter, public sll_p_delta = 9
 
integer(kind=i32), parameter, public sll_p_landau_sum_df = 8
 

Function/Subroutine Documentation

◆ eval_delta()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_delta ( class( sll_t_delta_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_landau_diag()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_landau_diag ( class( sll_t_landau_diag_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_landau_prod()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_landau_prod ( class( sll_t_landau_prod_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_landau_sum()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_landau_sum ( class( sll_t_landau_sum_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_landau_sum_df()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_landau_sum_df ( class( sll_t_landau_sum_df_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_landau_v()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_landau_v ( class( sll_t_landau_prod_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(3), intent(in)  x 
)
private

◆ eval_landau_v_sum()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_landau_v_sum ( class( sll_t_landau_sum_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(3), intent(in)  x 
)
private

◆ eval_pslab()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_pslab ( class( sll_t_pslab_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_pslab2()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_pslab2 ( class( sll_t_pslab2_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_pslab_v()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_pslab_v ( class( sll_t_pslab_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(3), intent(in)  x 
)
private

◆ eval_twogaussian_sum()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_twogaussian_sum ( class( sll_t_twogaussian_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(6), intent(in)  x 
)
private

◆ eval_twogaussian_v()

real(kind=f64) function sll_m_distribution_function_initializer_6d::eval_twogaussian_v ( class( sll_t_twogaussian_parameters_6d ), intent(in)  self,
real(kind=f64), dimension(3), intent(in)  x 
)
private

◆ init_delta()

subroutine sll_m_distribution_function_initializer_6d::init_delta ( class( sll_t_delta_parameters_6d ), intent(out)  self,
integer(kind=i32)  file_id 
)
private

◆ init_landau_prod()

subroutine sll_m_distribution_function_initializer_6d::init_landau_prod ( class( sll_t_landau_prod_parameters_6d ), intent(out)  self,
integer(kind=i32)  file_id 
)
private

◆ init_landau_sum()

subroutine sll_m_distribution_function_initializer_6d::init_landau_sum ( class( sll_t_landau_sum_parameters_6d ), intent(out)  self,
integer(kind=i32)  file_id 
)
private

◆ init_pslab()

subroutine sll_m_distribution_function_initializer_6d::init_pslab ( class( sll_t_pslab_parameters_6d ), intent(out)  self,
integer(kind=i32)  file_id 
)
private

◆ init_twogaussian()

subroutine sll_m_distribution_function_initializer_6d::init_twogaussian ( class( sll_t_twogaussian_parameters_6d ), intent(out)  self,
integer(kind=i32)  file_id 
)
private

◆ sll_s_compute_velocity_transformation()

subroutine, public sll_m_distribution_function_initializer_6d::sll_s_compute_velocity_transformation ( real(kind=f64), intent(in)  vin,
real(kind=f64), intent(out)  vtrans 
)

◆ sll_s_compute_velocity_transformation_en()

subroutine, public sll_m_distribution_function_initializer_6d::sll_s_compute_velocity_transformation_en ( real(kind=f64), intent(in)  vin,
real(kind=f64), intent(out)  vtrans 
)

Definition at line 486 of file sll_m_distribution_function_initializer_6d.F90.

Here is the caller graph for this function:

◆ sll_s_distribution_initializer_6d()

subroutine, public sll_m_distribution_function_initializer_6d::sll_s_distribution_initializer_6d ( integer(kind=i32), dimension(6), intent(in)  local_sizes,
integer(kind=i32), dimension(6), intent(in)  data_indices_min,
class(sll_c_distribution_params_6d), intent(in)  params,
type(sll_t_array), dimension(6), intent(in)  tensor_grid,
real(kind=f64), dimension(1:,1:,1:,1:,1:,1:), intent(out)  fdistrib 
)

Initialize distribution function with given distribution parameter.

Definition at line 413 of file sll_m_distribution_function_initializer_6d.F90.

◆ sll_s_distribution_params_6d_new()

subroutine, public sll_m_distribution_function_initializer_6d::sll_s_distribution_params_6d_new ( class( sll_c_distribution_params_6d ), intent(out), allocatable  params,
character(*), intent(in)  distrib_type,
integer(kind=i32)  file_id 
)

◆ sll_s_set_local_grid()

subroutine, public sll_m_distribution_function_initializer_6d::sll_s_set_local_grid ( integer(kind=i32), dimension(6), intent(in)  local_sizes,
integer(kind=i32), dimension(6), intent(in)  indices_min,
real(kind=f64), dimension(6), intent(in)  eta_min,
real(kind=f64), dimension(6), intent(in)  delta_eta,
type(sll_t_array), dimension(6), intent(out)  tensor_grid 
)

◆ sll_s_set_local_grid_en()

subroutine, public sll_m_distribution_function_initializer_6d::sll_s_set_local_grid_en ( integer(kind=i32), dimension(6), intent(in)  local_sizes,
integer(kind=i32), dimension(6), intent(in)  indices_min,
real(kind=f64), dimension(6), intent(in)  eta_min,
real(kind=f64), dimension(6), intent(in)  delta_eta,
type(sll_t_array), dimension(6), intent(out)  tensor_grid 
)

Definition at line 339 of file sll_m_distribution_function_initializer_6d.F90.

Here is the call graph for this function:

Variable Documentation

◆ sll_p_delta

integer(kind=i32), parameter, public sll_p_delta = 9

◆ sll_p_landau_diag

integer(kind=i32), parameter, public sll_p_landau_diag = 2

◆ sll_p_landau_prod

integer(kind=i32), parameter, public sll_p_landau_prod = 0

Parameters describing various types of initial conditions.

Definition at line 55 of file sll_m_distribution_function_initializer_6d.F90.

◆ sll_p_landau_sum

integer(kind=i32), parameter, public sll_p_landau_sum = 1

◆ sll_p_landau_sum_df

integer(kind=i32), parameter, public sll_p_landau_sum_df = 8

◆ sll_p_pslab

integer(kind=i32), parameter, public sll_p_pslab = 3

◆ sll_p_pslab2

integer(kind=i32), parameter, public sll_p_pslab2 = 7

◆ sll_p_twogaussian_diag

integer(kind=i32), parameter sll_p_twogaussian_diag = 6
private

◆ sll_p_twogaussian_prod

integer(kind=i32), parameter sll_p_twogaussian_prod = 4
private

◆ sll_p_twogaussian_sum

integer(kind=i32), parameter, public sll_p_twogaussian_sum = 5
    Report Typos and Errors