Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Parameters to define common initial distributions.
...
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 |
|
private |
[in] | descriptor | descriptor of the test case |
[in] | dims | number of spatial and velocity dimensions |
[in] | file_id | nml-file with parameters in unified format |
Definition at line 507 of file sll_m_initial_distribution.F90.
|
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.
|
private |
Definition at line 326 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 340 of file sll_m_initial_distribution.F90.
|
private |
[in] | n_gaussians | descriptor of the test case |
[in] | dims | number of spatial and velocity dimensions |
[in] | file_id | nml-file with parameters in unified format |
Definition at line 351 of file sll_m_initial_distribution.F90.
|
private |
[in] | file_id | nml-file with parameters in unified format |
Definition at line 371 of file sll_m_initial_distribution.F90.
|
private |
[in] | file_id | nml-file with parameters in unified format |
Definition at line 438 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 179 of file sll_m_initial_distribution.F90.
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.
|
private |
Definition at line 274 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 291 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 205 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 222 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 308 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 240 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 263 of file sll_m_initial_distribution.F90.
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.
[in] | dims | number of spatial and velocity dimensions |
[in] | nml_file | nml-file with parameters in unified format |
[out] | params | real array specifying the parameters for the given test case in the predefined order. |
Definition at line 705 of file sll_m_initial_distribution.F90.
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.
[in] | distribution | descriptor of the test case |
[in] | dims | number of spatial and velocity dimensions |
[in] | file_id | nml-file with parameters in unified format |
[out] | params | real array specifying the parameters for the given test case in the predefined order. |
Definition at line 628 of file sll_m_initial_distribution.F90.
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.
[in] | distribution | descriptor of the test case |
[in] | dims | number of spatial and velocity dimensions |
[in] | file_id | nml-file with parameters in unified format |
[out] | params | real array specifying the parameters for the given test case in the predefined order. |
Definition at line 790 of file sll_m_initial_distribution.F90.
integer(kind=i32), parameter, public sll_p_cossum_multigaussian1 = 4 |
Definition at line 41 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 43 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 42 of file sll_m_initial_distribution.F90.
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.
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.
|
private |
Definition at line 44 of file sll_m_initial_distribution.F90.
|
private |
Definition at line 45 of file sll_m_initial_distribution.F90.
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.
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.