Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Private Member Functions | Private Attributes | List of all members
sll_t_particle_group_2d2v_lbf Type Reference

Group of sll_t_particle_group_2d2v_lbf. More...

Inheritance diagram for sll_t_particle_group_2d2v_lbf:
Collaboration diagram for sll_t_particle_group_2d2v_lbf:

Private Member Functions

procedure init => initialize_particle_group_2d2v_lbf
 Initializer and destructor. More...
 
procedure free => delete_particle_group_2d2v_lbf
 Initialization function. More...
 
procedure, private interpolate_value_of_remapped_f
 
procedure, private get_ltp_deformation_matrix
 
procedure, private get_neighbor_index
 FD approx of local bwd flow Jacobian matrix. More...
 
procedure get_box
 Assuming we have some elements/grid cells "box" for the representation of the fields, we get the (1d) index of this box. More...
 
procedure get_boxnd
 Assuming we have some elements/grid cells "box" for the representation of the fields, we get the nd index of this box (note this is for tensor product grids only) More...
 
procedure get_xbox
 Assuming we have some elements/grid cells "box" for the representation of the fields, we get the (normalized) offset of the position in the box. More...
 
procedure get_patch
 
procedure get_xpatch
 Get x in terms of the patch local coordinate system. More...
 
procedure chget_x
 
procedure chget_v
 
procedure chget_weights
 
procedure chget_box
 
procedure chget_boxnd
 
procedure chget_patch
 
procedure set_box
 
procedure set_boxnd
 
procedure set_patch
 
procedure print
 Prints out the particle array in some form (for debugging, by default nothing is printed out) More...
 
procedure read
 Reads in particle array (default not working) More...
 
Getters
procedure get_x => get_x_2d2v_lbf
 
procedure get_v => get_v_2d2v_lbf
 Get the position of a particle. More...
 
procedure get_charge => get_charge_2d2v_lbf
 Get the velocity of a particle. More...
 
procedure get_mass => get_mass_2d2v_lbf
 Get the charge(s) of a particle. More...
 
procedure get_weights => get_weights_2d2v_lbf
 Get the mass(es) of a particle. More...
 
procedure get_common_weight => get_common_weight_2d2v_lbf
 Get weight(s) of a particle. More...
 
Setters
procedure set_x => set_x_2d2v_lbf
 
procedure set_v => set_v_2d2v_lbf
 Set the position of a particle. More...
 
procedure set_weights => set_weights_2d2v_lbf
 Set the velocity of a particle. More...
 
procedure set_common_weight => set_common_weight_2d2v_lbf
 Set the weight(s) of a particle. More...
 
Sampling and resampling

Destructor

procedure, private write_known_density_on_remapping_grid
 
procedure, private reset_particles_positions
 this evaluates some known distribution More...
 
procedure, private reset_particles_weights_with_direct_interpolation
 
procedure, private reconstruct_f_lbf
 
procedure, private reconstruct_f_lbf_on_remapping_grid
 
procedure reconstruct_f_lbf_on_given_grid
 
procedure sample
 
procedure resample
 

Private Attributes

class(sll_t_species), allocatable species
 
integer(kind=i32) id
 
integer(kind=i32) n_particles
 number of particles local to the processor More...
 
integer(kind=i32) n_total_particles
 number of particles in total simulation
More...
 
integer(kind=i32) n_weights
 number of weights per particle More...
 
The particles
integer(kind=i32) n_particles_x
 
integer(kind=i32) n_particles_y
 
integer(kind=i32) n_particles_vx
 
integer(kind=i32) n_particles_vy
 
real(kind=f64), dimension(:,:), allocatable particle_array
 array of particles More...
 
real(kind=f64) common_weight
 not needed for now -> put in base class? More...
 
The lbf grid

for simplicity, this grid is used to

  • define the backward linearized flow
  • and sample and resample the particles (with one particle at center of each cell)
  • hence its domain is also that of the sparse grid
type(sll_t_cartesian_mesh_4d), pointer lbf_grid
 
logical, dimension(2) domain_is_periodic
 
Sparse grid interpolation of the remapped density f, dimensions of remapping grid = particle grid
integer(kind=i32) remapped_f_interpolation_degree
 
type(sll_t_sparse_grid_4dsparse_grid_interpolator
 
integer(kind=i32), dimension(4) sparse_grid_max_levels
 
real(kind=f64), dimension(:), allocatable remapped_f_sparse_grid_coefficients
 
real(kind=f64), dimension(:), allocatable tmp_f_values_on_remapping_sparse_grid
 used only during remapping More...
 

Detailed Description

Group of sll_t_particle_group_2d2v_lbf.

Definition at line 76 of file sll_m_particle_group_2d2v_lbf.F90.

Member Function/Subroutine Documentation

◆ chget_box()

procedure chget_box
privateinherited

Definition at line 72 of file sll_m_particle_group_base.F90.

◆ chget_boxnd()

procedure chget_boxnd
privateinherited

Definition at line 73 of file sll_m_particle_group_base.F90.

◆ chget_patch()

procedure chget_patch
privateinherited

Definition at line 74 of file sll_m_particle_group_base.F90.

◆ chget_v()

procedure chget_v
privateinherited

Definition at line 70 of file sll_m_particle_group_base.F90.

◆ chget_weights()

procedure chget_weights
privateinherited

Definition at line 71 of file sll_m_particle_group_base.F90.

◆ chget_x()

procedure chget_x
privateinherited

Definition at line 69 of file sll_m_particle_group_base.F90.

◆ free()

procedure free
private

Initialization function.

Definition at line 130 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_box()

procedure get_box
privateinherited

Assuming we have some elements/grid cells "box" for the representation of the fields, we get the (1d) index of this box.

Definition at line 59 of file sll_m_particle_group_base.F90.

◆ get_boxnd()

procedure get_boxnd
privateinherited

Assuming we have some elements/grid cells "box" for the representation of the fields, we get the nd index of this box (note this is for tensor product grids only)

Definition at line 60 of file sll_m_particle_group_base.F90.

◆ get_charge()

procedure get_charge
private

Get the velocity of a particle.

Definition at line 114 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_common_weight()

procedure get_common_weight
private

Get weight(s) of a particle.

Definition at line 117 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_ltp_deformation_matrix()

procedure, private get_ltp_deformation_matrix
private

Definition at line 148 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_mass()

procedure get_mass
private

Get the charge(s) of a particle.

Definition at line 115 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_neighbor_index()

procedure, private get_neighbor_index
private

FD approx of local bwd flow Jacobian matrix.

Definition at line 149 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_patch()

procedure get_patch
privateinherited

Definition at line 62 of file sll_m_particle_group_base.F90.

◆ get_v()

procedure get_v
private

Get the position of a particle.

Definition at line 113 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_weights()

procedure get_weights
private

Get the mass(es) of a particle.

Definition at line 116 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_x()

procedure get_x
private

Definition at line 112 of file sll_m_particle_group_2d2v_lbf.F90.

◆ get_xbox()

procedure get_xbox
privateinherited

Assuming we have some elements/grid cells "box" for the representation of the fields, we get the (normalized) offset of the position in the box.

Definition at line 61 of file sll_m_particle_group_base.F90.

◆ get_xpatch()

procedure get_xpatch
privateinherited

Get x in terms of the patch local coordinate system.

Definition at line 63 of file sll_m_particle_group_base.F90.

◆ init()

procedure init
private

Initializer and destructor.

Definition at line 129 of file sll_m_particle_group_2d2v_lbf.F90.

◆ interpolate_value_of_remapped_f()

procedure, private interpolate_value_of_remapped_f
private

Definition at line 147 of file sll_m_particle_group_2d2v_lbf.F90.

◆ print()

procedure print
privateinherited

Prints out the particle array in some form (for debugging, by default nothing is printed out)

Definition at line 92 of file sll_m_particle_group_base.F90.

◆ read()

procedure read
privateinherited

Reads in particle array (default not working)

Definition at line 93 of file sll_m_particle_group_base.F90.

◆ reconstruct_f_lbf()

procedure, private reconstruct_f_lbf
private

Definition at line 140 of file sll_m_particle_group_2d2v_lbf.F90.

◆ reconstruct_f_lbf_on_given_grid()

procedure reconstruct_f_lbf_on_given_grid
private

Definition at line 142 of file sll_m_particle_group_2d2v_lbf.F90.

◆ reconstruct_f_lbf_on_remapping_grid()

procedure, private reconstruct_f_lbf_on_remapping_grid
private

Definition at line 141 of file sll_m_particle_group_2d2v_lbf.F90.

◆ resample()

procedure resample
private

Definition at line 144 of file sll_m_particle_group_2d2v_lbf.F90.

◆ reset_particles_positions()

procedure, private reset_particles_positions
private

this evaluates some known distribution

Definition at line 138 of file sll_m_particle_group_2d2v_lbf.F90.

◆ reset_particles_weights_with_direct_interpolation()

procedure, private reset_particles_weights_with_direct_interpolation
private

Definition at line 139 of file sll_m_particle_group_2d2v_lbf.F90.

◆ sample()

procedure sample
private

Definition at line 143 of file sll_m_particle_group_2d2v_lbf.F90.

◆ set_box()

procedure set_box
privateinherited

Definition at line 82 of file sll_m_particle_group_base.F90.

◆ set_boxnd()

procedure set_boxnd
privateinherited

Definition at line 83 of file sll_m_particle_group_base.F90.

◆ set_common_weight()

procedure set_common_weight
private

Set the weight(s) of a particle.

Definition at line 125 of file sll_m_particle_group_2d2v_lbf.F90.

◆ set_patch()

procedure set_patch
privateinherited

Definition at line 84 of file sll_m_particle_group_base.F90.

◆ set_v()

procedure set_v
private

Set the position of a particle.

Definition at line 123 of file sll_m_particle_group_2d2v_lbf.F90.

◆ set_weights()

procedure set_weights
private

Set the velocity of a particle.

Definition at line 124 of file sll_m_particle_group_2d2v_lbf.F90.

◆ set_x()

procedure set_x
private

Definition at line 122 of file sll_m_particle_group_2d2v_lbf.F90.

◆ write_known_density_on_remapping_grid()

procedure, private write_known_density_on_remapping_grid
private

Definition at line 137 of file sll_m_particle_group_2d2v_lbf.F90.

Member Data Documentation

◆ common_weight

real(kind=f64) common_weight
private

not needed for now -> put in base class?

Definition at line 85 of file sll_m_particle_group_2d2v_lbf.F90.

◆ domain_is_periodic

logical, dimension(2) domain_is_periodic
private

Definition at line 95 of file sll_m_particle_group_2d2v_lbf.F90.

◆ id

integer(kind=i32) id
privateinherited

Definition at line 45 of file sll_m_particle_group_base.F90.

◆ lbf_grid

type(sll_t_cartesian_mesh_4d), pointer lbf_grid
private

Definition at line 94 of file sll_m_particle_group_2d2v_lbf.F90.

◆ n_particles

integer(kind=i32) n_particles
privateinherited

number of particles local to the processor

Definition at line 46 of file sll_m_particle_group_base.F90.

◆ n_particles_vx

integer(kind=i32) n_particles_vx
private

Definition at line 82 of file sll_m_particle_group_2d2v_lbf.F90.

◆ n_particles_vy

integer(kind=i32) n_particles_vy
private

Definition at line 83 of file sll_m_particle_group_2d2v_lbf.F90.

◆ n_particles_x

integer(kind=i32) n_particles_x
private

Definition at line 80 of file sll_m_particle_group_2d2v_lbf.F90.

◆ n_particles_y

integer(kind=i32) n_particles_y
private

Definition at line 81 of file sll_m_particle_group_2d2v_lbf.F90.

◆ n_total_particles

integer(kind=i32) n_total_particles
privateinherited

number of particles in total simulation

Definition at line 47 of file sll_m_particle_group_base.F90.

◆ n_weights

integer(kind=i32) n_weights
privateinherited

number of weights per particle

Definition at line 48 of file sll_m_particle_group_base.F90.

◆ particle_array

real(kind=f64), dimension(:,:), allocatable particle_array
private

array of particles

Definition at line 84 of file sll_m_particle_group_2d2v_lbf.F90.

◆ remapped_f_interpolation_degree

integer(kind=i32) remapped_f_interpolation_degree
private

Definition at line 101 of file sll_m_particle_group_2d2v_lbf.F90.

◆ remapped_f_sparse_grid_coefficients

real(kind=f64), dimension(:), allocatable remapped_f_sparse_grid_coefficients
private

Definition at line 104 of file sll_m_particle_group_2d2v_lbf.F90.

◆ sparse_grid_interpolator

type(sll_t_sparse_grid_4d) sparse_grid_interpolator
private

Definition at line 102 of file sll_m_particle_group_2d2v_lbf.F90.

◆ sparse_grid_max_levels

integer(kind=i32), dimension(4) sparse_grid_max_levels
private

Definition at line 103 of file sll_m_particle_group_2d2v_lbf.F90.

◆ species

class( sll_t_species ), allocatable species
privateinherited

Definition at line 44 of file sll_m_particle_group_base.F90.

◆ tmp_f_values_on_remapping_sparse_grid

real(kind=f64), dimension(:), allocatable tmp_f_values_on_remapping_sparse_grid
private

used only during remapping

Definition at line 105 of file sll_m_particle_group_2d2v_lbf.F90.

    Report Typos and Errors