Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Class defining the sparse grid data structure. More...
Private Member Functions | |
procedure | compute_hierarchical_surplus |
Compute the hierarchical surplus (to the order of the sparse grid) More... | |
procedure | compute_linear_hierarchical_surplus |
Compute the linear hierarchical surplus. More... | |
procedure | compute_dehierarchical |
Compute values from (order) hierarchical surplus. More... | |
procedure | dehierarchical |
procedure | dehierarchical_part |
procedure | hierarchical_part |
procedure | interpolate_disp |
Interpolation function for interpolation at (constantly) displaced grid points; displacement only in dimension dim. More... | |
procedure | integrate_trapezoidal |
procedure | integrate_trapezoidal2 |
procedure | extract_periodic |
procedure | hierarchical_stripe |
procedure | dehierarchical_stripe |
procedure | insert_periodic |
procedure | interpolate_disp_1d_periodic_self |
procedure, nopass | basis_function |
procedure, nopass | basis_function_derivative |
procedure | dehierarchical_part_order |
procedure | interpolate_disp_1d_periodic_for_neighbor |
procedure | interpolate_disp_1d_periodic |
procedure | displace1d |
procedure | tonodal1d |
procedure | tonodal1d_comp |
procedure | todehi1d |
procedure | tohira1d |
procedure | tohierarchical1d |
procedure | tohierarchical1d_comp |
procedure | initialize_sg |
procedure | hierarchical_part_order |
procedure | dehierarchical_order |
procedure | free => free_sparse_grid |
Private Attributes | |
integer(kind=i32) | dim |
dim defines the dimension of the sparse grid More... | |
real(kind=f64), dimension(:), pointer | eta_min |
eta_min defines the lower bound of the computational domain More... | |
real(kind=f64), dimension(:), pointer | eta_max |
eta_max defines the upper bound of the computational domain More... | |
real(kind=f64), dimension(:), pointer | length |
length defines the length of the computational domain More... | |
real(kind=f64) | volume |
volumne defines the volume of the computational domain More... | |
integer(kind=i32) | max_level |
max_level is the upper bound of the l_infinity norm of the level vector More... | |
integer(kind=i32), dimension(:), pointer | levels |
levels is the upper bound on the level in each direction More... | |
integer(kind=i32) | order |
order it the (maximal) order of basis functions More... | |
integer(kind=i32) | interpolation |
specifies type of interpolation More... | |
integer(kind=i32) | no_basis_functions |
no_basis_functions is the number of different basis functions More... | |
integer(kind=i32) | size_basis |
size_basis is the number of grid points More... | |
integer(kind=i32) | modified |
modified specifies the number of boundary points in sparse grid (0 for usual sparse grid, 1 for as many boundary as middle points) More... | |
integer(kind=i32) | boundary |
boundary specifies if the boundary is periodic (0) or usual sparse grid (1) More... | |
class(sparsegrid_node), dimension(:), pointer | hierarchy |
hierarchy is an array containing the nodes More... | |
class(fft_hierarchical), dimension(:), pointer | fft_object |
fft_object is the object for hierarchical fft More... | |
real(kind=f64), dimension(:), pointer | stripe |
real(kind=f64), dimension(:), pointer | stripe_out |
stripe and stripe are internal arrays to handle the 1d interpolations More... | |
real(kind=f64), dimension(:), pointer | hs_weights |
hs_weights contains the weights for the computation of the hierarchical surplus More... | |
integer(kind=i32), dimension(:), pointer | hs_weights_index |
hs_weights_index is the index vector for hs_weights More... | |
type(sll_t_periodic_interpolator_1d), dimension(:, :), pointer | interp_per |
interp_per is the periodic interpolator object along the stripes More... | |
type(interpolator_base_ptr), dimension(:, :), pointer | interp |
interp is the interpolator object for the 1d interpolations along the stripes More... | |
integer(kind=i32), dimension(:), pointer | level_mapping |
level_mapping is an index pointing the the start of each level More... | |
Class defining the sparse grid data structure.
Definition at line 67 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 114 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 115 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Compute values from (order) hierarchical surplus.
Definition at line 102 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Compute the hierarchical surplus (to the order of the sparse grid)
Definition at line 100 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Compute the linear hierarchical surplus.
Definition at line 101 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 103 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 128 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 104 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 116 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 111 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 119 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 109 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 129 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 105 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 127 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 110 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 126 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 112 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 107 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 108 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Interpolation function for interpolation at (constantly) displaced grid points; displacement only in dimension dim.
Definition at line 106 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 118 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 117 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 113 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 122 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 124 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 125 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 123 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 120 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 121 of file sll_m_sparse_grid_interpolator.F90.
|
private |
boundary specifies if the boundary is periodic (0) or usual sparse grid (1)
Definition at line 80 of file sll_m_sparse_grid_interpolator.F90.
|
private |
dim defines the dimension of the sparse grid
Definition at line 68 of file sll_m_sparse_grid_interpolator.F90.
|
private |
eta_max defines the upper bound of the computational domain
Definition at line 70 of file sll_m_sparse_grid_interpolator.F90.
|
private |
eta_min defines the lower bound of the computational domain
Definition at line 69 of file sll_m_sparse_grid_interpolator.F90.
|
private |
fft_object is the object for hierarchical fft
Definition at line 84 of file sll_m_sparse_grid_interpolator.F90.
|
private |
hierarchy is an array containing the nodes
Definition at line 82 of file sll_m_sparse_grid_interpolator.F90.
|
private |
hs_weights contains the weights for the computation of the hierarchical surplus
Definition at line 88 of file sll_m_sparse_grid_interpolator.F90.
|
private |
hs_weights_index is the index vector for hs_weights
Definition at line 89 of file sll_m_sparse_grid_interpolator.F90.
|
private |
interp is the interpolator object for the 1d interpolations along the stripes
Definition at line 95 of file sll_m_sparse_grid_interpolator.F90.
|
private |
interp_per is the periodic interpolator object along the stripes
Definition at line 90 of file sll_m_sparse_grid_interpolator.F90.
|
private |
specifies type of interpolation
Definition at line 76 of file sll_m_sparse_grid_interpolator.F90.
|
private |
length defines the length of the computational domain
Definition at line 71 of file sll_m_sparse_grid_interpolator.F90.
|
private |
level_mapping is an index pointing the the start of each level
Definition at line 97 of file sll_m_sparse_grid_interpolator.F90.
|
private |
levels is the upper bound on the level in each direction
Definition at line 74 of file sll_m_sparse_grid_interpolator.F90.
|
private |
max_level is the upper bound of the l_infinity norm of the level vector
Definition at line 73 of file sll_m_sparse_grid_interpolator.F90.
|
private |
modified specifies the number of boundary points in sparse grid (0 for usual sparse grid, 1 for as many boundary as middle points)
Definition at line 79 of file sll_m_sparse_grid_interpolator.F90.
|
private |
no_basis_functions is the number of different basis functions
Definition at line 77 of file sll_m_sparse_grid_interpolator.F90.
|
private |
order it the (maximal) order of basis functions
Definition at line 75 of file sll_m_sparse_grid_interpolator.F90.
|
private |
size_basis is the number of grid points
Definition at line 78 of file sll_m_sparse_grid_interpolator.F90.
|
private |
Definition at line 87 of file sll_m_sparse_grid_interpolator.F90.
|
private |
stripe and stripe are internal arrays to handle the 1d interpolations
Definition at line 87 of file sll_m_sparse_grid_interpolator.F90.
|
private |
volumne defines the volume of the computational domain
Definition at line 72 of file sll_m_sparse_grid_interpolator.F90.