Neko  0.9.0
A portable framework for high-order spectral element flow simulations
local_interpolation Module Reference

Routines to obtain interpolated values on a set of points with known rst coordinates in elements local to this process.

Data Types

type  local_interpolator_t
 Interpolation on a set of points with known rst coordinates in elements local to this process. Similar to point_interpolator, but prioritizes performance Only works with arrays of coordinates Performs interpolation with the configured NEKO_BCKND. More...
 

Functions/Subroutines

subroutine local_interpolator_init (this, Xh, r, s, t, n_points)
 Initialization of point interpolation. More...
 
subroutine local_interpolator_free (this)
 Free pointers. More...
 
subroutine local_interpolator_compute_weights (this, r, s, t)
 Computes interpolation weights \( w_r, w_s, w_t \) for a list of points. More...
 
subroutine local_interpolator_evaluate (this, interp_values, el_list, field, nel)
 Interpolates a list of fields based on a set of element ids. More...
 

Function/Subroutine Documentation

◆ local_interpolator_compute_weights()

subroutine local_interpolation::local_interpolator_compute_weights ( class(local_interpolator_t), intent(inout)  this,
real(kind=rp), dimension(:), intent(in)  r,
real(kind=rp), dimension(:), intent(in)  s,
real(kind=rp), dimension(:), intent(in)  t 
)
Parameters
rlocal r-coordinates.
slocal s-coordinates.
tlocal t-coordinates.
wrWeights in the r-direction.
wsWeights in the s-direction.
wtWeights in the t-direction.
Note
wr, ws and wt must be arrays of dimensions (lx, N) where N is the number of points (size of the r,s,t arrays).

Definition at line 147 of file local_interpolation.f90.

Here is the call graph for this function:

◆ local_interpolator_evaluate()

subroutine local_interpolation::local_interpolator_evaluate ( class(local_interpolator_t), intent(inout)  this,
real(kind=rp), dimension(this%n_points), intent(inout)  interp_values,
integer, dimension(this%n_points), intent(in)  el_list,
real(kind=rp), dimension(this%xh%lxyz, nel), intent(inout)  field,
integer, intent(in)  nel 
)
Parameters
rstr,s,t coordinates.
el_ownersArray of element ids that "own" a given point i.
sampled_fields_listA list of fields to interpolate.
wrWeights in the r-direction of shape (lx, N) where N is the number of points to interpolate.
wsWeights in the s-direction of shape (lx, N) where N is the number of points to interpolate.
wtWeights in the t-direction of shape (lx, N) where N is the number of points to interpolate.
Note
The weights can be generated with the subroutine compute_weights. Assumes weights have been computed for these points.

Definition at line 175 of file local_interpolation.f90.

Here is the call graph for this function:

◆ local_interpolator_free()

subroutine local_interpolation::local_interpolator_free ( class(local_interpolator_t), intent(inout)  this)

Definition at line 118 of file local_interpolation.f90.

Here is the call graph for this function:

◆ local_interpolator_init()

subroutine local_interpolation::local_interpolator_init ( class(local_interpolator_t), intent(inout), target  this,
type(space_t), intent(in), target  Xh,
real(kind=rp), dimension(n_points)  r,
real(kind=rp), dimension(n_points)  s,
real(kind=rp), dimension(n_points)  t,
integer, intent(in)  n_points 
)
Parameters
xhFunction space.

Definition at line 83 of file local_interpolation.f90.