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_polar_spline_interpolator_2d Module Reference

Description

Interpolator for 2D polar splines of arbitrary degree, on uniform and non-uniform grids (directions are independent)

Author
Yaman Güçlü - IPP Garching

Derived types and interfaces

type  sll_t_polar_spline_interpolator_2d
 2D tensor-product spline interpolator More...
 

Functions/Subroutines

subroutine, public sll_s_polar_spline_2d_compute_num_cells (degree, bc_rmax, nipts, ncells)
 Calculate number of cells from number of interpolation points. More...
 
subroutine s_polar_spline_interpolator_2d__init (self, bspl1, bspl2, bc_rmax)
 Initialize a 2D tensor-product spline interpolator object. More...
 
subroutine s_polar_spline_interpolator_2d__free (self)
 Destroy local objects and free allocated memory. More...
 
subroutine s_polar_spline_interpolator_2d__get_interp_points (self, tau1, tau2)
 Get coordinates of interpolation points (2D tensor grid) More...
 
subroutine s_polar_spline_interpolator_2d__compute_interpolant (self, spline, gtau, derivs_rmax)
 Compute interpolating 2D spline. More...
 

Variables

integer, parameter wp = f64
 Working precision. More...
 

Function/Subroutine Documentation

◆ s_polar_spline_interpolator_2d__compute_interpolant()

subroutine sll_m_polar_spline_interpolator_2d::s_polar_spline_interpolator_2d__compute_interpolant ( class(sll_t_polar_spline_interpolator_2d), intent(inout)  self,
type(sll_t_spline_2d), intent(inout)  spline,
real(wp), dimension(:, :), intent(in)  gtau,
real(wp), dimension(:, :), intent(in), optional  derivs_rmax 
)
private

Compute interpolating 2D spline.

Compute coefficients of 2D tensor-product spline that interpolates function values on grid. If Hermite BCs are used, function derivatives at appropriate boundaries are also needed.

Parameters
[in,out]self2D tensor-product spline interpolator
[in,out]spline2D tensor-product spline
[in]gtaufunction values of interpolation points
[in]boundary_data(optional) structure with boundary conditions

Definition at line 251 of file sll_m_polar_spline_interpolator_2d.F90.

◆ s_polar_spline_interpolator_2d__free()

subroutine sll_m_polar_spline_interpolator_2d::s_polar_spline_interpolator_2d__free ( class(sll_t_polar_spline_interpolator_2d), intent(inout)  self)
private

Destroy local objects and free allocated memory.

Parameters
[in,out]self2D tensor-product spline interpolator

Definition at line 197 of file sll_m_polar_spline_interpolator_2d.F90.

◆ s_polar_spline_interpolator_2d__get_interp_points()

subroutine sll_m_polar_spline_interpolator_2d::s_polar_spline_interpolator_2d__get_interp_points ( class(sll_t_polar_spline_interpolator_2d), intent(in)  self,
real(wp), dimension(:), intent(out), allocatable  tau1,
real(wp), dimension(:), intent(out), allocatable  tau2 
)
private

Get coordinates of interpolation points (2D tensor grid)

Parameters
[in]self2D tensor-product spline interpolator
[out]tau1x1 coordinates of interpolation points
[out]tau2x2 coordinates of interpolation points

Definition at line 216 of file sll_m_polar_spline_interpolator_2d.F90.

◆ s_polar_spline_interpolator_2d__init()

subroutine sll_m_polar_spline_interpolator_2d::s_polar_spline_interpolator_2d__init ( class(sll_t_polar_spline_interpolator_2d), intent(out)  self,
class(sll_c_bsplines), intent(in), target  bspl1,
class(sll_c_bsplines), intent(in), target  bspl2,
integer, intent(in)  bc_rmax 
)
private

Initialize a 2D tensor-product spline interpolator object.

Parameters
[out]self2D tensor-product spline interpolator
[in]bspl1B-splines (basis) along x1 direction
[in]bspl2B-splines (basis) along x2 direction
[in]bc_xminboundary conditions at x1_min and x2_min
[in]bc_xmaxboundary conditions at x1_max and x2_max

Definition at line 130 of file sll_m_polar_spline_interpolator_2d.F90.

Here is the call graph for this function:

◆ sll_s_polar_spline_2d_compute_num_cells()

subroutine, public sll_m_polar_spline_interpolator_2d::sll_s_polar_spline_2d_compute_num_cells ( integer, dimension(2), intent(in)  degree,
integer, intent(in)  bc_rmax,
integer, dimension(2), intent(in)  nipts,
integer, dimension(2), intent(out)  ncells 
)

Calculate number of cells from number of interpolation points.

Important for parallelization: for given spline degree and BCs, calculate the numbers of grid cells along x1 and x2 that yield the desired number of interpolation points along x1 and x2

Parameters
[in]degreespline degrees along x1 and x2
[in]bc_xminboundary conditions at x1_min and x2_min
[in]bc_xmaxboundary conditions at x1_max and x2_max
[in]niptsdesired number of interpolation points along x1 and x2
[out]ncellscalculated number of grid cells along x1 and x2

Definition at line 90 of file sll_m_polar_spline_interpolator_2d.F90.

Here is the call graph for this function:

Variable Documentation

◆ wp

integer, parameter wp = f64
private

Working precision.

Definition at line 44 of file sll_m_polar_spline_interpolator_2d.F90.

    Report Typos and Errors