Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Interpolator for 2D polar splines of arbitrary degree, on uniform and non-uniform grids (directions are independent)
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... | |
|
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.
[in,out] | self | 2D tensor-product spline interpolator |
[in,out] | spline | 2D tensor-product spline |
[in] | gtau | function 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.
|
private |
Destroy local objects and free allocated memory.
[in,out] | self | 2D tensor-product spline interpolator |
Definition at line 197 of file sll_m_polar_spline_interpolator_2d.F90.
|
private |
Get coordinates of interpolation points (2D tensor grid)
[in] | self | 2D tensor-product spline interpolator |
[out] | tau1 | x1 coordinates of interpolation points |
[out] | tau2 | x2 coordinates of interpolation points |
Definition at line 216 of file sll_m_polar_spline_interpolator_2d.F90.
|
private |
Initialize a 2D tensor-product spline interpolator object.
[out] | self | 2D tensor-product spline interpolator |
[in] | bspl1 | B-splines (basis) along x1 direction |
[in] | bspl2 | B-splines (basis) along x2 direction |
[in] | bc_xmin | boundary conditions at x1_min and x2_min |
[in] | bc_xmax | boundary conditions at x1_max and x2_max |
Definition at line 130 of file sll_m_polar_spline_interpolator_2d.F90.
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
[in] | degree | spline degrees along x1 and x2 |
[in] | bc_xmin | boundary conditions at x1_min and x2_min |
[in] | bc_xmax | boundary conditions at x1_max and x2_max |
[in] | nipts | desired number of interpolation points along x1 and x2 |
[out] | ncells | calculated number of grid cells along x1 and x2 |
Definition at line 90 of file sll_m_polar_spline_interpolator_2d.F90.
|
private |
Working precision.
Definition at line 44 of file sll_m_polar_spline_interpolator_2d.F90.