Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Derived types and interfaces | Functions/Subroutines | Variables
sll_m_dg_interpolator_1d Module Reference

Description

Interpolator 1d using dg interpolation.

Author
Katharina Kormann, IPP

Algorithm described in Crouseilles, Mehrenberger, Vecil, ESAIM:Proceedings, 32, pp. 211-230, 2011.

Derived types and interfaces

type  sll_t_dg_interpolator_1d
 1d interpolator using dg More...
 

Functions/Subroutines

subroutine, public sll_s_dg_interpolator_1d_init (self, n_cells, degree, x_min, x_max, type)
 
subroutine, public sll_s_dg_interpolator_1d_free (self)
 
subroutine, public sll_s_dg_interpolator_1d_interpolate_array_disp_periodic (self, num_pts, data, alpha, output_array)
 
subroutine, public sll_s_dg_interpolator_1d_interpolate_array_disp_halo (self, data, alpha, weights1, weights2, output_array)
 Interpolation routine with halo cells. More...
 
subroutine, public sll_s_dg_interpolator_1d_dg_to_equi_cell (self, npoints, output_array)
 
subroutine, public sll_s_dg_interpolator_1d_dg_to_equi_cell_staggered (self, npoints, output_array)
 
real(kind=f64) function lagrange_poly (self, idx, x)
 Evaluate Lagrange polynomial, original version. Suffers from repeated dereferencing, and repeated difference computation and division. Kept for documentation purposes. More...
 
real(kind=f64) function lagrange_poly_opt (quadrature_points, quadrature_inv_diffs, degree, idx, x)
 Evaluate Lagrange polynomial, optimized version. More...
 

Variables

integer(kind=i32), parameter, public sll_p_dg_gauss_legendre = 101
 
integer(kind=i32), parameter, public sll_p_dg_gauss_lobatto = 102
 
integer(kind=i32), parameter, public sll_p_dg_uniform = 103
 

Function/Subroutine Documentation

◆ lagrange_poly()

real(kind=f64) function sll_m_dg_interpolator_1d::lagrange_poly ( type(sll_t_dg_interpolator_1d), intent(in)  self,
integer(kind=i32), intent(in)  idx,
real(kind=f64), intent(in)  x 
)
private

Evaluate Lagrange polynomial, original version. Suffers from repeated dereferencing, and repeated difference computation and division. Kept for documentation purposes.

Definition at line 410 of file sll_m_dg_interpolator_1d.F90.

◆ lagrange_poly_opt()

real(kind=f64) function sll_m_dg_interpolator_1d::lagrange_poly_opt ( real(kind=f64), dimension(:), intent(in)  quadrature_points,
real(kind=f64), dimension(:, :), intent(in)  quadrature_inv_diffs,
integer(kind=i32), intent(in)  degree,
integer(kind=i32), intent(in)  idx,
real(kind=f64), intent(in)  x 
)
private

Evaluate Lagrange polynomial, optimized version.

Definition at line 428 of file sll_m_dg_interpolator_1d.F90.

Here is the caller graph for this function:

◆ sll_s_dg_interpolator_1d_dg_to_equi_cell()

subroutine, public sll_m_dg_interpolator_1d::sll_s_dg_interpolator_1d_dg_to_equi_cell ( type(sll_t_dg_interpolator_1d), intent(in)  self,
integer(kind=i32), intent(in)  npoints,
real(kind=f64), dimension(:, :), intent(out)  output_array 
)

Definition at line 361 of file sll_m_dg_interpolator_1d.F90.

Here is the call graph for this function:

◆ sll_s_dg_interpolator_1d_dg_to_equi_cell_staggered()

subroutine, public sll_m_dg_interpolator_1d::sll_s_dg_interpolator_1d_dg_to_equi_cell_staggered ( type(sll_t_dg_interpolator_1d), intent(in)  self,
integer(kind=i32), intent(in)  npoints,
real(kind=f64), dimension(:, :), intent(out)  output_array 
)

Definition at line 384 of file sll_m_dg_interpolator_1d.F90.

Here is the call graph for this function:

◆ sll_s_dg_interpolator_1d_free()

subroutine, public sll_m_dg_interpolator_1d::sll_s_dg_interpolator_1d_free ( class(sll_t_dg_interpolator_1d), intent(inout)  self)

Definition at line 141 of file sll_m_dg_interpolator_1d.F90.

◆ sll_s_dg_interpolator_1d_init()

subroutine, public sll_m_dg_interpolator_1d::sll_s_dg_interpolator_1d_init ( class(sll_t_dg_interpolator_1d), intent(inout)  self,
integer(kind=i32), intent(in)  n_cells,
integer(kind=i32), intent(in)  degree,
real(kind=f64), intent(in)  x_min,
real(kind=f64), intent(in)  x_max,
integer(kind=i32), intent(in)  type 
)
Parameters
[in]n_cellsNo. of cells on dg mesh
[in]degreeDegree of the dg space
[in]x_minLower bound of the domain
[in]x_maxUpper bound of the domain
[in]typeDescriptor telling if Gauss-Lobatto, Gauss-Legendre or uniform points shall be used as points within the cells

Definition at line 71 of file sll_m_dg_interpolator_1d.F90.

Here is the call graph for this function:

◆ sll_s_dg_interpolator_1d_interpolate_array_disp_halo()

subroutine, public sll_m_dg_interpolator_1d::sll_s_dg_interpolator_1d_interpolate_array_disp_halo ( class(sll_t_dg_interpolator_1d), intent(inout)  self,
real(kind=f64), dimension(:), intent(in)  data,
real(kind=f64), intent(in)  alpha,
real(kind=f64), dimension(self%degree, self%degree), intent(inout)  weights1,
real(kind=f64), dimension(self%degree, self%degree), intent(inout)  weights2,
real(kind=f64), dimension(self%n_total), intent(inout)  output_array 
)

Interpolation routine with halo cells.

Definition at line 257 of file sll_m_dg_interpolator_1d.F90.

Here is the call graph for this function:

◆ sll_s_dg_interpolator_1d_interpolate_array_disp_periodic()

subroutine, public sll_m_dg_interpolator_1d::sll_s_dg_interpolator_1d_interpolate_array_disp_periodic ( class(sll_t_dg_interpolator_1d), intent(inout)  self,
integer(kind=i32), intent(in)  num_pts,
real(kind=f64), dimension(:), intent(in)  data,
real(kind=f64), intent(in)  alpha,
real(kind=f64), dimension(num_pts), intent(out)  output_array 
)

Definition at line 156 of file sll_m_dg_interpolator_1d.F90.

Here is the call graph for this function:

Variable Documentation

◆ sll_p_dg_gauss_legendre

integer(kind=i32), parameter, public sll_p_dg_gauss_legendre = 101

Definition at line 47 of file sll_m_dg_interpolator_1d.F90.

◆ sll_p_dg_gauss_lobatto

integer(kind=i32), parameter, public sll_p_dg_gauss_lobatto = 102

Definition at line 48 of file sll_m_dg_interpolator_1d.F90.

◆ sll_p_dg_uniform

integer(kind=i32), parameter, public sll_p_dg_uniform = 103

Definition at line 49 of file sll_m_dg_interpolator_1d.F90.

    Report Typos and Errors