![]() |
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.
1.9.1