Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
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_3arrays (this, xh, r, s, t, n_points)
 Initialization of point interpolation.
 
subroutine local_interpolator_init_1array (this, xh, rst, n_points)
 Initialization of point interpolation.
 
subroutine local_interpolator_free (this)
 Free pointers.
 
subroutine local_interpolator_compute_weights (this, r, s, t)
 Computes interpolation weights \( w_r, w_s, w_t \) for a list of points.
 
subroutine local_interpolator_evaluate (this, interp_values, el_list, field, nel, on_host)
 Interpolates a list of fields based on a set of element ids.
 
subroutine jacobian (jac, rst, x, y, z, n_pts, xh)
 Constructs the Jacobian, returns a 3-by-3 times number of points where \( [J(\mathbf{r}]_{ij} = \frac{d\mathbf{x}_i}{d\mathbf{r}_j}\).
 
subroutine jacobian_inverse (jacinv, rst, x, y, z, n_pts, xh)
 

Function/Subroutine Documentation

◆ jacobian()

subroutine local_interpolation::jacobian ( real(kind=rp), dimension(3,3, n_pts), intent(out jac,
real(kind=rp), dimension(3, n_pts), intent(inout rst,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, n_pts), intent(inout x,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, n_pts), intent(inout y,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, n_pts), intent(inout z,
integer, intent(in n_pts,
type(space_t), intent(inout xh 
)
private
Parameters
rstr,s,t coordinates.
XValues of the field \( X \) at points.
YValues of the field \( Y \) at points.
ZValues of the field \( Z \) at points.

Definition at line 242 of file local_interpolation.f90.

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

◆ jacobian_inverse()

subroutine local_interpolation::jacobian_inverse ( real(kind=rp), dimension(3,3, n_pts), intent(out jacinv,
real(kind=rp), dimension(3, n_pts), intent(inout rst,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, n_pts), intent(inout x,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, n_pts), intent(inout y,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, n_pts), intent(inout z,
integer  n_pts,
type(space_t), intent(inout xh 
)
private

Definition at line 287 of file local_interpolation.f90.

Here is the call graph for this function:

◆ 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 
)
private
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 184 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,
logical, intent(in on_host 
)
private
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 221 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)
private

Definition at line 155 of file local_interpolation.f90.

Here is the call graph for this function:

◆ local_interpolator_init_1array()

subroutine local_interpolation::local_interpolator_init_1array ( class(local_interpolator_t), intent(inout), target  this,
type(space_t), intent(in), target  xh,
real(kind=rp), dimension(3,n_points), intent(in rst,
integer, intent(in n_points 
)
private
Parameters
xhFunction space.

Definition at line 126 of file local_interpolation.f90.

◆ local_interpolator_init_3arrays()

subroutine local_interpolation::local_interpolator_init_3arrays ( 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 90 of file local_interpolation.f90.