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_initial_distribution Module Reference

Description

Parameters to define common initial distributions.

Author
Katharina Kormann

...

Derived types and interfaces

type  sll_c_distribution_params
 Abstract data type for parameters of initial distribution. More...
 
type  sll_t_params_cos_gaussian
 Data type for distribution function with (multiple) Gaussians in v and one plus cosine perturbations in x. More...
 
type  sll_t_params_noise_gaussian
 
type  sll_t_params_cos_gaussian_screwpinch
 
interface  signature_empty
 
interface  signature_eval
 
interface  signature_evalx
 
interface  signature_evalv
 

Functions/Subroutines

real(kind=f64) function sll_f_cos_gaussian (self, x, v, m)
 
real(kind=f64) function sll_f_cos (self, x, v)
 
real(kind=f64) function sll_f_gaussian (self, v, x, m)
 
real(kind=f64) function sll_f_gaussian_pnoise (self, v, x, m)
 
real(kind=f64) function sll_f_noise (self, x, v)
 
real(kind=f64) function sll_f_noise_gaussian (self, x, v, m)
 
real(kind=f64) function sll_f_cos_gaussian_screwpinch (self, x, v, m)
 
real(kind=f64) function sll_f_cos_screwpinch (self, x, v)
 
real(kind=f64) function sll_f_gaussian_screwpinch (self, v, x, m)
 
subroutine free_cos_gaussian (self)
 
subroutine free_noise_gaussian (self)
 
subroutine noise_gaussian_init (self, n_gaussians, dims, file_id, profile)
 
subroutine noise_gaussian_init_1d2v (self, file_id)
 
subroutine noise_gaussian_init_3d3v (self, file_id)
 
subroutine cos_gaussian_init (self, descriptor, dims, file_id, profile)
 
subroutine, public sll_s_initial_distribution_new (distribution, dims, file_id, params, profile)
 Factory function for sll_c_distribution_params, parameters read form input file. More...
 
subroutine, public sll_s_initial_distribution_file_new (dims, nml_file, params, profile)
 Factory function for sll_c_distribution_params, parameters read form input file. More...
 
subroutine, public sll_s_initial_distribution_new_descriptor (distribution, dims, file_id, params, profile)
 Factory function for sll_c_distribution_params, parameters read form input file. Version build upon descriptors. More...
 
subroutine cossum_multigaussian_init_1d2v (file_id, params, n_gaussians)
 1d2v subroutine for initialization of sum of arbitrary number of Gaussians. Note that v_thermal_1/2 refers her to the velocity dimension instead of the number of the Gaussian in the sum as for the twogaussian case. More...
 

Variables

integer(kind=i32), parameter, public sll_p_sumcos_onegaussian = 0
 Descriptor for (1+\sum cos( kx * x_i))*exp(-0.5(v-v_mean)**2/v_thermal**2) More...
 
integer(kind=i32), parameter, public sll_p_cossum_onegaussian = 1
 Descriptor for (1+cos( \sum kx_i * x_i))*exp(-0.5(v-v_mean)**2/v_thermal**2) More...
 
integer(kind=i32), parameter, public sll_p_sumcos_twogaussian = 2
 as sll_p_sumcos_onegaussian but with sum of two Gaussians More...
 
integer(kind=i32), parameter, public sll_p_cossum_twogaussian = 3
 as sll_p_sumcos_onegaussian but with sum of two Gaussians More...
 
integer(kind=i32), parameter, public sll_p_cossum_multigaussian1 = 4
 
integer(kind=i32), parameter sll_p_cossum_multigaussian2 = 5
 
integer(kind=i32), parameter sll_p_cossum_multigaussian11 = 14
 
integer(kind=i32), parameter sll_p_noise_multigaussian1 = 15
 
integer(kind=i32), parameter sll_p_noise_multigaussian11 = 16
 

Function/Subroutine Documentation

◆ cos_gaussian_init()

subroutine sll_m_initial_distribution::cos_gaussian_init ( class( sll_t_params_cos_gaussian ), intent(out)  self,
integer(kind=i32), intent(in)  descriptor,
integer(kind=i32), dimension(2), intent(in)  dims,
integer(kind=i32), intent(in)  file_id,
type(sll_t_profile_functions), optional  profile 
)
private
Parameters
[in]descriptordescriptor of the test case
[in]dimsnumber of spatial and velocity dimensions
[in]file_idnml-file with parameters in unified format

Definition at line 507 of file sll_m_initial_distribution.F90.

Here is the call graph for this function:

◆ cossum_multigaussian_init_1d2v()

subroutine sll_m_initial_distribution::cossum_multigaussian_init_1d2v ( integer(kind=i32), intent(in)  file_id,
type( sll_t_params_cos_gaussian ), intent(inout)  params,
integer(kind=i32), intent(in)  n_gaussians 
)
private

1d2v subroutine for initialization of sum of arbitrary number of Gaussians. Note that v_thermal_1/2 refers her to the velocity dimension instead of the number of the Gaussian in the sum as for the twogaussian case.

Definition at line 931 of file sll_m_initial_distribution.F90.

Here is the caller graph for this function:

◆ free_cos_gaussian()

subroutine sll_m_initial_distribution::free_cos_gaussian ( class( sll_t_params_cos_gaussian ), intent(inout)  self)
private

Definition at line 326 of file sll_m_initial_distribution.F90.

◆ free_noise_gaussian()

subroutine sll_m_initial_distribution::free_noise_gaussian ( class( sll_t_params_noise_gaussian ), intent(inout)  self)
private

Definition at line 340 of file sll_m_initial_distribution.F90.

◆ noise_gaussian_init()

subroutine sll_m_initial_distribution::noise_gaussian_init ( class( sll_t_params_noise_gaussian ), intent(out)  self,
integer(kind=i32), intent(in)  n_gaussians,
integer(kind=i32), dimension(2), intent(in)  dims,
integer(kind=i32), intent(in)  file_id,
type(sll_t_profile_functions), optional  profile 
)
private
Parameters
[in]n_gaussiansdescriptor of the test case
[in]dimsnumber of spatial and velocity dimensions
[in]file_idnml-file with parameters in unified format

Definition at line 351 of file sll_m_initial_distribution.F90.

Here is the call graph for this function:

◆ noise_gaussian_init_1d2v()

subroutine sll_m_initial_distribution::noise_gaussian_init_1d2v ( class( sll_t_params_noise_gaussian ), intent(inout)  self,
integer(kind=i32), intent(in)  file_id 
)
private
Parameters
[in]file_idnml-file with parameters in unified format

Definition at line 371 of file sll_m_initial_distribution.F90.

Here is the caller graph for this function:

◆ noise_gaussian_init_3d3v()

subroutine sll_m_initial_distribution::noise_gaussian_init_3d3v ( class( sll_t_params_noise_gaussian ), intent(inout)  self,
integer(kind=i32), intent(in)  file_id 
)
private
Parameters
[in]file_idnml-file with parameters in unified format

Definition at line 438 of file sll_m_initial_distribution.F90.

Here is the caller graph for this function:

◆ sll_f_cos()

real(kind=f64) function sll_m_initial_distribution::sll_f_cos ( class( sll_t_params_cos_gaussian self,
real(kind=f64), dimension(:)  x,
real(kind=f64), dimension(:), optional  v 
)
private

Definition at line 179 of file sll_m_initial_distribution.F90.

Here is the caller graph for this function:

◆ sll_f_cos_gaussian()

real(kind=f64) function sll_m_initial_distribution::sll_f_cos_gaussian ( class( sll_t_params_cos_gaussian self,
real(kind=f64), dimension(:)  x,
real(kind=f64), dimension(:)  v,
real(kind=f64), optional  m 
)

Definition at line 162 of file sll_m_initial_distribution.F90.

Here is the call graph for this function:

◆ sll_f_cos_gaussian_screwpinch()

real(kind=f64) function sll_m_initial_distribution::sll_f_cos_gaussian_screwpinch ( class( sll_t_params_cos_gaussian_screwpinch self,
real(kind=f64), dimension(:)  x,
real(kind=f64), dimension(:)  v,
real(kind=f64), optional  m 
)
private

Definition at line 274 of file sll_m_initial_distribution.F90.

Here is the call graph for this function:

◆ sll_f_cos_screwpinch()

real(kind=f64) function sll_m_initial_distribution::sll_f_cos_screwpinch ( class( sll_t_params_cos_gaussian_screwpinch self,
real(kind=f64), dimension(:)  x,
real(kind=f64), dimension(:), optional  v 
)
private

Definition at line 291 of file sll_m_initial_distribution.F90.

Here is the caller graph for this function:

◆ sll_f_gaussian()

real(kind=f64) function sll_m_initial_distribution::sll_f_gaussian ( class( sll_t_params_cos_gaussian self,
real(kind=f64), dimension(:)  v,
real(kind=f64), dimension(:), optional  x,
real(kind=f64), optional  m 
)
private

Definition at line 205 of file sll_m_initial_distribution.F90.

Here is the caller graph for this function:

◆ sll_f_gaussian_pnoise()

real(kind=f64) function sll_m_initial_distribution::sll_f_gaussian_pnoise ( class( sll_t_params_noise_gaussian self,
real(kind=f64), dimension(:)  v,
real(kind=f64), dimension(:), optional  x,
real(kind=f64), optional  m 
)
private

Definition at line 222 of file sll_m_initial_distribution.F90.

◆ sll_f_gaussian_screwpinch()

real(kind=f64) function sll_m_initial_distribution::sll_f_gaussian_screwpinch ( class( sll_t_params_cos_gaussian_screwpinch self,
real(kind=f64), dimension(:)  v,
real(kind=f64), dimension(:), optional  x,
real(kind=f64), optional  m 
)
private

Definition at line 308 of file sll_m_initial_distribution.F90.

Here is the caller graph for this function:

◆ sll_f_noise()

real(kind=f64) function sll_m_initial_distribution::sll_f_noise ( class( sll_t_params_noise_gaussian self,
real(kind=f64), dimension(:)  x,
real(kind=f64), dimension(:), optional  v 
)
private

Definition at line 240 of file sll_m_initial_distribution.F90.

◆ sll_f_noise_gaussian()

real(kind=f64) function sll_m_initial_distribution::sll_f_noise_gaussian ( class( sll_t_params_noise_gaussian self,
real(kind=f64), dimension(:)  x,
real(kind=f64), dimension(:)  v,
real(kind=f64), optional  m 
)
private

Definition at line 263 of file sll_m_initial_distribution.F90.

◆ sll_s_initial_distribution_file_new()

subroutine, public sll_m_initial_distribution::sll_s_initial_distribution_file_new ( integer(kind=i32), dimension(2), intent(in)  dims,
character(*), intent(in)  nml_file,
class(sll_c_distribution_params), intent(out), allocatable  params,
type(sll_t_profile_functions), optional  profile 
)

Factory function for sll_c_distribution_params, parameters read form input file.

Parameters
[in]dimsnumber of spatial and velocity dimensions
[in]nml_filenml-file with parameters in unified format
[out]paramsreal array specifying the parameters for the given test case in the predefined order.

Definition at line 705 of file sll_m_initial_distribution.F90.

◆ sll_s_initial_distribution_new()

subroutine, public sll_m_initial_distribution::sll_s_initial_distribution_new ( character(len=*), intent(in)  distribution,
integer(kind=i32), dimension(2), intent(in)  dims,
integer(kind=i32), intent(in)  file_id,
class(sll_c_distribution_params), intent(out), allocatable  params,
type(sll_t_profile_functions), optional  profile 
)

Factory function for sll_c_distribution_params, parameters read form input file.

Parameters
[in]distributiondescriptor of the test case
[in]dimsnumber of spatial and velocity dimensions
[in]file_idnml-file with parameters in unified format
[out]paramsreal array specifying the parameters for the given test case in the predefined order.

Definition at line 628 of file sll_m_initial_distribution.F90.

◆ sll_s_initial_distribution_new_descriptor()

subroutine, public sll_m_initial_distribution::sll_s_initial_distribution_new_descriptor ( integer(kind=i32), intent(in)  distribution,
integer(kind=i32), dimension(2), intent(in)  dims,
integer(kind=i32), intent(in)  file_id,
class(sll_c_distribution_params), intent(out), allocatable  params,
type(sll_t_profile_functions), optional  profile 
)

Factory function for sll_c_distribution_params, parameters read form input file. Version build upon descriptors.

Parameters
[in]distributiondescriptor of the test case
[in]dimsnumber of spatial and velocity dimensions
[in]file_idnml-file with parameters in unified format
[out]paramsreal array specifying the parameters for the given test case in the predefined order.

Definition at line 790 of file sll_m_initial_distribution.F90.

Variable Documentation

◆ sll_p_cossum_multigaussian1

integer(kind=i32), parameter, public sll_p_cossum_multigaussian1 = 4

Definition at line 41 of file sll_m_initial_distribution.F90.

◆ sll_p_cossum_multigaussian11

integer(kind=i32), parameter sll_p_cossum_multigaussian11 = 14
private

Definition at line 43 of file sll_m_initial_distribution.F90.

◆ sll_p_cossum_multigaussian2

integer(kind=i32), parameter sll_p_cossum_multigaussian2 = 5
private

Definition at line 42 of file sll_m_initial_distribution.F90.

◆ sll_p_cossum_onegaussian

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

Descriptor for (1+cos( \sum kx_i * x_i))*exp(-0.5(v-v_mean)**2/v_thermal**2)

Definition at line 38 of file sll_m_initial_distribution.F90.

◆ sll_p_cossum_twogaussian

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

as sll_p_sumcos_onegaussian but with sum of two Gaussians

Definition at line 40 of file sll_m_initial_distribution.F90.

◆ sll_p_noise_multigaussian1

integer(kind=i32), parameter sll_p_noise_multigaussian1 = 15
private

Definition at line 44 of file sll_m_initial_distribution.F90.

◆ sll_p_noise_multigaussian11

integer(kind=i32), parameter sll_p_noise_multigaussian11 = 16
private

Definition at line 45 of file sll_m_initial_distribution.F90.

◆ sll_p_sumcos_onegaussian

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

Descriptor for (1+\sum cos( kx * x_i))*exp(-0.5(v-v_mean)**2/v_thermal**2)

Definition at line 37 of file sll_m_initial_distribution.F90.

◆ sll_p_sumcos_twogaussian

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

as sll_p_sumcos_onegaussian but with sum of two Gaussians

Definition at line 39 of file sll_m_initial_distribution.F90.

    Report Typos and Errors