Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Particle initializer class with various functions to initialize a particle.
...
Derived types and interfaces | |
type | sll_t_particle_sampling |
Data type for particle sampling. More... | |
Functions/Subroutines | |
subroutine | free_particle_sampling (self) |
Descructor. More... | |
subroutine | init_particle_sampling (self, sampling_type, dims, n_particles_local, rank, delta_perturb, delta_eps) |
Initializer. More... | |
subroutine | reset_seed_jump (self, jump) |
subroutine | sample_cv_particle_sampling (self, particle_group, params, xmin, Lx, control_variate, time, map, lindf) |
Sample with control variate (we assume that the particle weights are given in the following order: (full f weight, value of initial distribution at time 0, delta f weights) More... | |
subroutine | sample_particle_sampling (self, particle_group, params, xmin, Lx, map) |
Sample from distribution defined by params. More... | |
subroutine | sample_particle_sampling_all (self, particle_group, params, xmin, Lx) |
Helper function for pure sampling. More... | |
subroutine | sample_particle_sampling_sym_1d2v (self, particle_group, params, xmin, Lx) |
Helper function for antithetic sampling in 1d2v. More... | |
subroutine | sample_particle_sampling_sym2_1d2v (self, particle_group, params, xmin, Lx) |
Helper function for antithetic sampling in 1d2v. More... | |
subroutine | sample_particle_sampling_unix (self, particle_group, params, xmin, Lx) |
Helper function for antithetic sampling in 1d2v. More... | |
subroutine | sample_particle_sampling_unix_1d2v (self, particle_group, params, xmin, Lx) |
Helper function for antithetic sampling in 1d2v. More... | |
subroutine | sample_particle_sampling_sym_3d3v (self, particle_group, params, xmin, Lx) |
Helper function for antithetic sampling in 3d3v. More... | |
subroutine | sample_particle_sampling_sym_uni_3d3v (self, particle_group, params, xmin, Lx) |
Helper function for antithetic sampling in 1d2v. More... | |
subroutine | sample_particle_sampling_all_trafo (self, particle_group, params, xmin, Lx, map) |
Helper function for pure sampling. More... | |
subroutine | delta_function_perturbation (self, particle_group, xmin, Lx) |
subroutine | sample_particle_sampling_sym_1d2v_trafo (self, particle_group, params, Lx, map) |
Helper function for antithetic sampling in 1d2v. More... | |
subroutine | sample_particle_sampling_sym_3d3v_trafo (self, particle_group, params, xmin, Lx, map) |
Helper function for antithetic sampling in 1d2v. More... | |
subroutine, public | sll_s_particle_sampling_randomized_weights (particle_group, alpha, seed) |
Variables | |
integer(kind=i32), parameter | sll_p_random_numbers = 0 |
draw random numbers More... | |
integer(kind=i32), parameter | sll_p_sobol_numbers = 1 |
draw sobol numbers More... | |
integer(kind=i32), parameter | sll_p_standard = 0 |
each particle is drawn separately More... | |
integer(kind=i32), parameter | sll_p_symmetric_all = 1 |
2^(dim_x+dim_v) points constructed from each drawn particle, all possible combinations of reflections along each direction More... | |
integer(kind=i32), parameter | sll_p_symmetric_negative = 2 |
one additional point for each drawd point, the one reflected along all directions More... | |
integer(kind=i32), parameter | sll_p_uniformx_negative = 3 |
|
private |
[in,out] | self | particle sampling object |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 1387 of file sll_m_particle_sampling.F90.
|
private |
Descructor.
[in,out] | self | particle sampling object |
Definition at line 87 of file sll_m_particle_sampling.F90.
|
private |
Initializer.
[out] | self | particle sampling object |
[in] | dims | dims(1) number of spatial dimensions, dims(2) number of velocity dimensions |
[in,out] | n_particles_local | number of particles on processor |
[in] | rank | optional argument to set random seed dependent on processor rank |
[in] | delta_perturb | delta perturbation of the velocity distribution |
[in] | delta_eps | values for delta perturbation |
Definition at line 95 of file sll_m_particle_sampling.F90.
|
private |
[in,out] | self | particle sampling object |
Definition at line 242 of file sll_m_particle_sampling.F90.
|
private |
Sample with control variate (we assume that the particle weights are given in the following order: (full f weight, value of initial distribution at time 0, delta f weights)
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | parameters for initial distribution |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
[in] | control_variate | PIC control variate |
[in] | time | initial time (default: 0) |
map | coordinate transformation |
Definition at line 258 of file sll_m_particle_sampling.F90.
|
private |
Sample from distribution defined by params.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | parameters for initial distribution |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
map | coordinate transformation |
Definition at line 443 of file sll_m_particle_sampling.F90.
|
private |
Helper function for pure sampling.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 503 of file sll_m_particle_sampling.F90.
|
private |
Helper function for pure sampling.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | domain length |
[in,out] | map | coordinate transformation |
Definition at line 1253 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 1d2v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 713 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 1d2v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 615 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 1d2v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | lx | domain length |
[in,out] | map | coordinate transformation |
Definition at line 1418 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 3d3v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 1052 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 1d2v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | domain length |
[in,out] | map | coordinate transformation |
Definition at line 1515 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 1d2v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 1158 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 1d2v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 803 of file sll_m_particle_sampling.F90.
|
private |
Helper function for antithetic sampling in 1d2v.
[in,out] | self | particle sampling object |
[in,out] | particle_group | particle group |
[in,out] | params | distribution parameter |
[in] | xmin | lower bound of the domain |
[in] | lx | length of the domain. |
Definition at line 938 of file sll_m_particle_sampling.F90.
subroutine, public sll_m_particle_sampling::sll_s_particle_sampling_randomized_weights | ( | class(sll_c_particle_group_base), intent(inout), target | particle_group, |
real(kind=f64), intent(in) | alpha, | ||
integer(kind=i32), dimension(:), intent(in), optional | seed | ||
) |
Definition at line 1648 of file sll_m_particle_sampling.F90.
|
private |
draw random numbers
Definition at line 50 of file sll_m_particle_sampling.F90.
|
private |
draw sobol numbers
Definition at line 51 of file sll_m_particle_sampling.F90.
|
private |
each particle is drawn separately
Definition at line 53 of file sll_m_particle_sampling.F90.
|
private |
2^(dim_x+dim_v) points constructed from each drawn particle, all possible combinations of reflections along each direction
Definition at line 54 of file sll_m_particle_sampling.F90.
|
private |
one additional point for each drawd point, the one reflected along all directions
Definition at line 55 of file sll_m_particle_sampling.F90.
|
private |
Definition at line 56 of file sll_m_particle_sampling.F90.