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

Derived types and interfaces

type  sll_t_nufft_2d
 Nufft object for 2d interpolation. It contains fft plan and 1d array to pass data to nufft2d subroutine from nufft package. More...
 

Functions/Subroutines

subroutine sll_s_nufft_2d_init (self, nc_eta1, eta1_min, eta1_max, nc_eta2, eta2_min, eta2_max)
 Allocate and initialize data and prepare the fft plan. More...
 
subroutine sll_s_nufft_2d_free (self)
 Delete the nufft object. More...
 
subroutine sll_s_nufft_2d_compute_fft (self, f_in)
 Compute the fft and prepare data for nufft call. More...
 
real(kind=f64) function sll_f_nufft_2d_interpolate_value_from_fft (self, x, y)
 Interpolate single value when the fft is already compute. More...
 
subroutine sll_s_nufft_2d_interpolate_array_values (self, f_in, x, y, f_out)
 Compute the fft and interpolate array values. More...
 
subroutine sll_s_nufft_2d_interpolate_array_values_axi (self, f, x, y)
 Compute the fft and interpolate array values when x and y could be outside the domaine. Useful for rotation and axisymetric geometry. More...
 
subroutine sll_s_nufft_2d_interpolate_array_from_fft (self, x, y, f)
 Compute the fft and interpolate array values when x and y are surely inside the domain. Optimized version for advector. More...
 

Data Type Documentation

◆ sll_m_nufft_interpolation::sll_t_nufft_2d

type sll_m_nufft_interpolation::sll_t_nufft_2d

Nufft object for 2d interpolation. It contains fft plan and 1d array to pass data to nufft2d subroutine from nufft package.

Definition at line 13 of file sll_m_nufft_interpolation.F90.

Collaboration diagram for sll_t_nufft_2d:
Class Members
real(kind=f64) epsnufft
real(kind=f64) eta1_max
real(kind=f64) eta1_min
real(kind=f64) eta2_max
real(kind=f64) eta2_min
complex(kind=f64), dimension(:), allocatable f1
complex(kind=f64), dimension(:), allocatable f1d
complex(kind=f64), dimension(:), allocatable f2
complex(kind=f64), dimension(:, :), allocatable fcmplx
type(sll_t_fft) fft
integer(kind=i32), dimension(:), allocatable i
integer(kind=i32), dimension(:), allocatable j
integer(kind=i32) nc_eta1
integer(kind=i32) nc_eta2
real(kind=f64), dimension(:), allocatable x
real(kind=f64), dimension(:), allocatable y

Function/Subroutine Documentation

◆ sll_f_nufft_2d_interpolate_value_from_fft()

real(kind=f64) function sll_m_nufft_interpolation::sll_f_nufft_2d_interpolate_value_from_fft ( type(sll_t_nufft_2d self,
real(kind=f64), intent(in)  x,
real(kind=f64), intent(in)  y 
)

Interpolate single value when the fft is already compute.

Definition at line 122 of file sll_m_nufft_interpolation.F90.

Here is the caller graph for this function:

◆ sll_s_nufft_2d_compute_fft()

subroutine sll_m_nufft_interpolation::sll_s_nufft_2d_compute_fft ( type(sll_t_nufft_2d self,
real(kind=f64), dimension(:, :), intent(in)  f_in 
)

Compute the fft and prepare data for nufft call.

Definition at line 93 of file sll_m_nufft_interpolation.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sll_s_nufft_2d_free()

subroutine sll_m_nufft_interpolation::sll_s_nufft_2d_free ( type(sll_t_nufft_2d self)

Delete the nufft object.

Definition at line 76 of file sll_m_nufft_interpolation.F90.

Here is the caller graph for this function:

◆ sll_s_nufft_2d_init()

subroutine sll_m_nufft_interpolation::sll_s_nufft_2d_init ( type(sll_t_nufft_2d self,
integer(kind=i32), intent(in)  nc_eta1,
real(kind=f64), intent(in)  eta1_min,
real(kind=f64), intent(in)  eta1_max,
integer(kind=i32), intent(in)  nc_eta2,
real(kind=f64), intent(in)  eta2_min,
real(kind=f64), intent(in)  eta2_max 
)

Allocate and initialize data and prepare the fft plan.

Parameters
selfnufft 2d object
[in]nc_eta1number of cells on x1
[in]nc_eta2number of cells on x2
[in]eta1_minleft
[in]eta1_maxright
[in]eta2_minbottom
[in]eta2_maxtop

Definition at line 37 of file sll_m_nufft_interpolation.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sll_s_nufft_2d_interpolate_array_from_fft()

subroutine sll_m_nufft_interpolation::sll_s_nufft_2d_interpolate_array_from_fft ( type(sll_t_nufft_2d self,
real(kind=f64), dimension(:, :), intent(in)  x,
real(kind=f64), dimension(:, :), intent(in)  y,
real(kind=f64), dimension(:, :), intent(out)  f 
)

Compute the fft and interpolate array values when x and y are surely inside the domain. Optimized version for advector.

Definition at line 235 of file sll_m_nufft_interpolation.F90.

Here is the caller graph for this function:

◆ sll_s_nufft_2d_interpolate_array_values()

subroutine sll_m_nufft_interpolation::sll_s_nufft_2d_interpolate_array_values ( type(sll_t_nufft_2d self,
real(kind=f64), dimension(:, :), intent(in)  f_in,
real(kind=f64), dimension(:, :), intent(in)  x,
real(kind=f64), dimension(:, :), intent(in)  y,
real(kind=f64), dimension(:, :), intent(out)  f_out 
)

Compute the fft and interpolate array values.

Definition at line 165 of file sll_m_nufft_interpolation.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sll_s_nufft_2d_interpolate_array_values_axi()

subroutine sll_m_nufft_interpolation::sll_s_nufft_2d_interpolate_array_values_axi ( type(sll_t_nufft_2d self,
real(kind=f64), dimension(:, :), intent(inout)  f,
real(kind=f64), dimension(:, :), intent(in)  x,
real(kind=f64), dimension(:, :), intent(in)  y 
)

Compute the fft and interpolate array values when x and y could be outside the domaine. Useful for rotation and axisymetric geometry.

Definition at line 182 of file sll_m_nufft_interpolation.F90.

Here is the call graph for this function:
    Report Typos and Errors