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_sparse_grid_2d Type Reference

Sparse grid object for 2d with interpolation routines. More...

Inheritance diagram for sll_t_sparse_grid_2d:
Collaboration diagram for sll_t_sparse_grid_2d:

Private Member Functions

procedure init => initialize_sg2d
 
procedure interpolate_const_disp
 Initialization routine. More...
 
procedure interpolate_from_interpolant_value => interpolate_value_sg
 
procedure interpolate_disp_nconst_in_1d
 Compute the value of the sparse grid interpolant at position eta. More...
 
procedure interpolate_disp_linnconst_in_1d
 Interpolate along one (x)-direction with displacement non-constant in one (v)-direction. More...
 
procedure fg_to_sg
 Interpolate along one (x)-direction with displacement non-constant in one (v)-direction. More...
 
procedure spfft
 
procedure ispfft
 Compute the Sparse grid FFT coefficients. More...
 
procedure interpolate_array_disp_sgfft
 Inverse FFT on sparsegrid. More...
 
procedure filter_highest
 Compute value at displaced grid points using trigonometric interpolation (based on SG FFT) More...
 
procedure filter
 
procedure linear_filter
 
procedure displace
 
procedure set_hierarchy_info
 
procedure set_hierarchy_info_boundary
 
procedure tohira
 
procedure todehi
 
procedure tohierarchical
 
procedure tonodal
 
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), dimension(:, :), pointer index
 2d mapping: for each 2d index l on the sparse grid, index gives the index of the first node belonging to this level More...
 
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...
 

Detailed Description

Sparse grid object for 2d with interpolation routines.

Definition at line 27 of file sll_m_sparse_grid_2d.F90.

Member Function/Subroutine Documentation

◆ basis_function()

procedure, nopass basis_function
privateinherited

Definition at line 114 of file sll_m_sparse_grid_interpolator.F90.

◆ basis_function_derivative()

procedure, nopass basis_function_derivative
privateinherited

Definition at line 115 of file sll_m_sparse_grid_interpolator.F90.

◆ compute_dehierarchical()

procedure compute_dehierarchical
privateinherited

Compute values from (order) hierarchical surplus.

Definition at line 102 of file sll_m_sparse_grid_interpolator.F90.

◆ compute_hierarchical_surplus()

procedure compute_hierarchical_surplus
privateinherited

Compute the hierarchical surplus (to the order of the sparse grid)

Definition at line 100 of file sll_m_sparse_grid_interpolator.F90.

◆ compute_linear_hierarchical_surplus()

procedure compute_linear_hierarchical_surplus
privateinherited

Compute the linear hierarchical surplus.

Definition at line 101 of file sll_m_sparse_grid_interpolator.F90.

◆ dehierarchical()

procedure dehierarchical
privateinherited

Definition at line 103 of file sll_m_sparse_grid_interpolator.F90.

◆ dehierarchical_order()

procedure dehierarchical_order
privateinherited

Definition at line 128 of file sll_m_sparse_grid_interpolator.F90.

◆ dehierarchical_part()

procedure dehierarchical_part
privateinherited

Definition at line 104 of file sll_m_sparse_grid_interpolator.F90.

◆ dehierarchical_part_order()

procedure dehierarchical_part_order
privateinherited

Definition at line 116 of file sll_m_sparse_grid_interpolator.F90.

◆ dehierarchical_stripe()

procedure dehierarchical_stripe
privateinherited

Definition at line 111 of file sll_m_sparse_grid_interpolator.F90.

◆ displace()

procedure displace
private

Definition at line 45 of file sll_m_sparse_grid_2d.F90.

◆ displace1d()

procedure displace1d
privateinherited

Definition at line 119 of file sll_m_sparse_grid_interpolator.F90.

◆ extract_periodic()

procedure extract_periodic
privateinherited

Definition at line 109 of file sll_m_sparse_grid_interpolator.F90.

◆ fg_to_sg()

procedure fg_to_sg
private

Interpolate along one (x)-direction with displacement non-constant in one (v)-direction.

Definition at line 36 of file sll_m_sparse_grid_2d.F90.

◆ filter()

procedure filter
private

Definition at line 42 of file sll_m_sparse_grid_2d.F90.

◆ filter_highest()

procedure filter_highest
private

Compute value at displaced grid points using trigonometric interpolation (based on SG FFT)

Definition at line 41 of file sll_m_sparse_grid_2d.F90.

◆ free()

procedure free
privateinherited

Definition at line 129 of file sll_m_sparse_grid_interpolator.F90.

◆ hierarchical_part()

procedure hierarchical_part
privateinherited

Definition at line 105 of file sll_m_sparse_grid_interpolator.F90.

◆ hierarchical_part_order()

procedure hierarchical_part_order
privateinherited

Definition at line 127 of file sll_m_sparse_grid_interpolator.F90.

◆ hierarchical_stripe()

procedure hierarchical_stripe
privateinherited

Definition at line 110 of file sll_m_sparse_grid_interpolator.F90.

◆ init()

procedure init
private

Definition at line 31 of file sll_m_sparse_grid_2d.F90.

◆ initialize_sg()

procedure initialize_sg
privateinherited

Definition at line 126 of file sll_m_sparse_grid_interpolator.F90.

◆ insert_periodic()

procedure insert_periodic
privateinherited

Definition at line 112 of file sll_m_sparse_grid_interpolator.F90.

◆ integrate_trapezoidal()

procedure integrate_trapezoidal
privateinherited

Definition at line 107 of file sll_m_sparse_grid_interpolator.F90.

◆ integrate_trapezoidal2()

procedure integrate_trapezoidal2
privateinherited

Definition at line 108 of file sll_m_sparse_grid_interpolator.F90.

◆ interpolate_array_disp_sgfft()

procedure interpolate_array_disp_sgfft
private

Inverse FFT on sparsegrid.

Definition at line 39 of file sll_m_sparse_grid_2d.F90.

◆ interpolate_const_disp()

procedure interpolate_const_disp
private

Initialization routine.

Definition at line 32 of file sll_m_sparse_grid_2d.F90.

◆ interpolate_disp()

procedure interpolate_disp
privateinherited

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.

◆ interpolate_disp_1d_periodic()

procedure interpolate_disp_1d_periodic
privateinherited

Definition at line 118 of file sll_m_sparse_grid_interpolator.F90.

◆ interpolate_disp_1d_periodic_for_neighbor()

procedure interpolate_disp_1d_periodic_for_neighbor
privateinherited

Definition at line 117 of file sll_m_sparse_grid_interpolator.F90.

◆ interpolate_disp_1d_periodic_self()

procedure interpolate_disp_1d_periodic_self
privateinherited

Definition at line 113 of file sll_m_sparse_grid_interpolator.F90.

◆ interpolate_disp_linnconst_in_1d()

procedure interpolate_disp_linnconst_in_1d
private

Interpolate along one (x)-direction with displacement non-constant in one (v)-direction.

Definition at line 35 of file sll_m_sparse_grid_2d.F90.

◆ interpolate_disp_nconst_in_1d()

procedure interpolate_disp_nconst_in_1d
private

Compute the value of the sparse grid interpolant at position eta.

Definition at line 34 of file sll_m_sparse_grid_2d.F90.

◆ interpolate_from_interpolant_value()

procedure interpolate_from_interpolant_value
private

Definition at line 33 of file sll_m_sparse_grid_2d.F90.

◆ ispfft()

procedure ispfft
private

Compute the Sparse grid FFT coefficients.

Definition at line 38 of file sll_m_sparse_grid_2d.F90.

◆ linear_filter()

procedure linear_filter
private

Definition at line 43 of file sll_m_sparse_grid_2d.F90.

◆ set_hierarchy_info()

procedure set_hierarchy_info
private

Definition at line 46 of file sll_m_sparse_grid_2d.F90.

◆ set_hierarchy_info_boundary()

procedure set_hierarchy_info_boundary
private

Definition at line 47 of file sll_m_sparse_grid_2d.F90.

◆ spfft()

procedure spfft
private

Definition at line 37 of file sll_m_sparse_grid_2d.F90.

◆ todehi()

procedure todehi
private

Definition at line 49 of file sll_m_sparse_grid_2d.F90.

◆ todehi1d()

procedure todehi1d
privateinherited

Definition at line 122 of file sll_m_sparse_grid_interpolator.F90.

◆ tohierarchical()

procedure tohierarchical
private

Definition at line 50 of file sll_m_sparse_grid_2d.F90.

◆ tohierarchical1d()

procedure tohierarchical1d
privateinherited

Definition at line 124 of file sll_m_sparse_grid_interpolator.F90.

◆ tohierarchical1d_comp()

procedure tohierarchical1d_comp
privateinherited

Definition at line 125 of file sll_m_sparse_grid_interpolator.F90.

◆ tohira()

procedure tohira
private

Definition at line 48 of file sll_m_sparse_grid_2d.F90.

◆ tohira1d()

procedure tohira1d
privateinherited

Definition at line 123 of file sll_m_sparse_grid_interpolator.F90.

◆ tonodal()

procedure tonodal
private

Definition at line 51 of file sll_m_sparse_grid_2d.F90.

◆ tonodal1d()

procedure tonodal1d
privateinherited

Definition at line 120 of file sll_m_sparse_grid_interpolator.F90.

◆ tonodal1d_comp()

procedure tonodal1d_comp
privateinherited

Definition at line 121 of file sll_m_sparse_grid_interpolator.F90.

Member Data Documentation

◆ boundary

integer(kind=i32) boundary
privateinherited

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.

◆ dim

integer(kind=i32) dim
privateinherited

dim defines the dimension of the sparse grid

Definition at line 68 of file sll_m_sparse_grid_interpolator.F90.

◆ eta_max

real(kind=f64), dimension(:), pointer eta_max
privateinherited

eta_max defines the upper bound of the computational domain

Definition at line 70 of file sll_m_sparse_grid_interpolator.F90.

◆ eta_min

real(kind=f64), dimension(:), pointer eta_min
privateinherited

eta_min defines the lower bound of the computational domain

Definition at line 69 of file sll_m_sparse_grid_interpolator.F90.

◆ fft_object

class(fft_hierarchical), dimension(:), pointer fft_object
privateinherited

fft_object is the object for hierarchical fft

Definition at line 84 of file sll_m_sparse_grid_interpolator.F90.

◆ hierarchy

class(sparsegrid_node), dimension(:), pointer hierarchy
privateinherited

hierarchy is an array containing the nodes

Definition at line 82 of file sll_m_sparse_grid_interpolator.F90.

◆ hs_weights

real(kind=f64), dimension(:), pointer hs_weights
privateinherited

hs_weights contains the weights for the computation of the hierarchical surplus

Definition at line 88 of file sll_m_sparse_grid_interpolator.F90.

◆ hs_weights_index

integer(kind=i32), dimension(:), pointer hs_weights_index
privateinherited

hs_weights_index is the index vector for hs_weights

Definition at line 89 of file sll_m_sparse_grid_interpolator.F90.

◆ index

integer(kind=i32), dimension(:, :), pointer index
private

2d mapping: for each 2d index l on the sparse grid, index gives the index of the first node belonging to this level

Definition at line 28 of file sll_m_sparse_grid_2d.F90.

◆ interp

type(interpolator_base_ptr), dimension(:, :), pointer interp
privateinherited

interp is the interpolator object for the 1d interpolations along the stripes

Definition at line 95 of file sll_m_sparse_grid_interpolator.F90.

◆ interp_per

type(sll_t_periodic_interpolator_1d), dimension(:, :), pointer interp_per
privateinherited

interp_per is the periodic interpolator object along the stripes

Definition at line 90 of file sll_m_sparse_grid_interpolator.F90.

◆ interpolation

integer(kind=i32) interpolation
privateinherited

specifies type of interpolation

Definition at line 76 of file sll_m_sparse_grid_interpolator.F90.

◆ length

real(kind=f64), dimension(:), pointer length
privateinherited

length defines the length of the computational domain

Definition at line 71 of file sll_m_sparse_grid_interpolator.F90.

◆ level_mapping

integer(kind=i32), dimension(:), pointer level_mapping
privateinherited

level_mapping is an index pointing the the start of each level

Definition at line 97 of file sll_m_sparse_grid_interpolator.F90.

◆ levels

integer(kind=i32), dimension(:), pointer levels
privateinherited

levels is the upper bound on the level in each direction

Definition at line 74 of file sll_m_sparse_grid_interpolator.F90.

◆ max_level

integer(kind=i32) max_level
privateinherited

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.

◆ modified

integer(kind=i32) modified
privateinherited

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.

◆ no_basis_functions

integer(kind=i32) no_basis_functions
privateinherited

no_basis_functions is the number of different basis functions

Definition at line 77 of file sll_m_sparse_grid_interpolator.F90.

◆ order

integer(kind=i32) order
privateinherited

order it the (maximal) order of basis functions

Definition at line 75 of file sll_m_sparse_grid_interpolator.F90.

◆ size_basis

integer(kind=i32) size_basis
privateinherited

size_basis is the number of grid points

Definition at line 78 of file sll_m_sparse_grid_interpolator.F90.

◆ stripe

real(kind=f64), dimension(:), pointer stripe
privateinherited

Definition at line 87 of file sll_m_sparse_grid_interpolator.F90.

◆ stripe_out

real(kind=f64), dimension(:), pointer stripe_out
privateinherited

stripe and stripe are internal arrays to handle the 1d interpolations

Definition at line 87 of file sll_m_sparse_grid_interpolator.F90.

◆ volume

real(kind=f64) volume
privateinherited

volumne defines the volume of the computational domain

Definition at line 72 of file sll_m_sparse_grid_interpolator.F90.

    Report Typos and Errors