Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
point_interpolator::point_interpolator_t Type Reference

Field interpolator to arbitrary points within an element. Tailored for experimentation, and convenience, not performance Does all interpolation on the CPU. Only considers one element If performant interpolation on many elements is required Look at local_interpolator_t, similar but with less functionality. More...

Collaboration diagram for point_interpolator::point_interpolator_t:

Public Member Functions

procedure, pass(thisinit (this, xh)
 Constructor.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_weights (this, r, s, t, wr, ws, wt)
 Computes interpolation weights \( w_r, w_s, w_t \) for a list of points.
 
procedure, pass(thispoint_interpolator_interpolate_scalar (this, rst, x)
 Interpolates a scalar field \( X \) on a set of points.
 
procedure, pass(thispoint_interpolator_interpolate_vector (this, rst, x, y, z)
 Interpolates a vector field \( \vec f = (X,Y,Z) \) on a set of points.
 
procedure, pass(thispoint_interpolator_interpolate_jacobian (this, rst, x, y, z)
 Constructs the Jacobian at a single point.
 
procedure, pass(thispoint_interpolator_interpolate_vector_jacobian (this, jac, rst, x, y, z)
 Interpolates a vector field and builds the Jacobian at a single point.
 
generic interpolate (this, rst, x)
 Interpolates a scalar or vector field on a set of points.
 
generic interpolate (this, rst, x, y, z)
 Interpolates a scalar or vector field on a set of points.
 
generic jacobian (this, rst, x, y, z)
 Constructs the Jacobian for a point \( (r,s,t) \).
 
generic jacobian (this, jac, rst, x, y, z)
 Constructs the Jacobian for a point \( (r,s,t) \).
 

Public Attributes

type(space_t), pointer xh => null()
 First space.
 

Detailed Description

Definition at line 55 of file point_interpolator.f90.

Member Function/Subroutine Documentation

◆ compute_weights()

procedure, pass(this) point_interpolator::point_interpolator_t::compute_weights ( class(point_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,
real(kind=rp), dimension(:,:), intent(inout wr,
real(kind=rp), dimension(:,:), intent(inout ws,
real(kind=rp), dimension(:,:), intent(inout wt 
)
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 64 of file point_interpolator.f90.

◆ free()

procedure, pass(this) point_interpolator::point_interpolator_t::free ( class(point_interpolator_t), intent(inout this)

Definition at line 62 of file point_interpolator.f90.

◆ init()

procedure, pass(this) point_interpolator::point_interpolator_t::init ( class(point_interpolator_t), intent(inout), target  this,
type(space_t), intent(in), target  xh 
)
Parameters
xhFunction space.

Definition at line 60 of file point_interpolator.f90.

◆ interpolate() [1/2]

generic point_interpolator::point_interpolator_t::interpolate ( class(point_interpolator_t), intent(in this,
type(point_t), dimension(:), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x 
)
Parameters
rstr,s,t coordinates.
XValues of the field \( X \) at GLL points in one element.

Definition at line 74 of file point_interpolator.f90.

Here is the call graph for this function:

◆ interpolate() [2/2]

generic point_interpolator::point_interpolator_t::interpolate ( class(point_interpolator_t), intent(in this,
type(point_t), dimension(:), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout z 
)
Parameters
Nnumber of points (use 1 to interpolate a scalar).
XValues of the field \( X \) at GLL points in one element.
YValues of the field \( Y \) at GLL points in one element.
ZValues of the field \( Z \) at GLL points in one element.

Definition at line 74 of file point_interpolator.f90.

◆ jacobian() [1/2]

generic point_interpolator::point_interpolator_t::jacobian ( class(point_interpolator_t), intent(in this,
real(kind=rp), dimension(3,3), intent(inout jac,
type(point_t), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout z 
)
Parameters
jacJacobian.
rstr,s,t coordinates;
XValues of the field \( X \) at GLL points in one element.
YValues of the field \( Y \) at GLL points in one element.
ZValues of the field \( Z \) at GLL points in one element.

Definition at line 77 of file point_interpolator.f90.

◆ jacobian() [2/2]

generic point_interpolator::point_interpolator_t::jacobian ( class(point_interpolator_t), intent(in this,
type(point_t), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout z 
)
Parameters
rstr,s,t coordinates.
XValues of the field \( X \) at GLL points.
YValues of the field \( Y \) at GLL points.
ZValues of the field \( Z \) at GLL points.

Definition at line 77 of file point_interpolator.f90.

Here is the call graph for this function:

◆ point_interpolator_interpolate_jacobian()

procedure, pass(this) point_interpolator::point_interpolator_t::point_interpolator_interpolate_jacobian ( class(point_interpolator_t), intent(in this,
type(point_t), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout z 
)
Parameters
rstr,s,t coordinates.
XValues of the field \( X \) at GLL points.
YValues of the field \( Y \) at GLL points.
ZValues of the field \( Z \) at GLL points.

Definition at line 70 of file point_interpolator.f90.

◆ point_interpolator_interpolate_scalar()

procedure, pass(this) point_interpolator::point_interpolator_t::point_interpolator_interpolate_scalar ( class(point_interpolator_t), intent(in this,
type(point_t), dimension(:), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x 
)
Parameters
rstr,s,t coordinates.
XValues of the field \( X \) at GLL points in one element.

Definition at line 66 of file point_interpolator.f90.

◆ point_interpolator_interpolate_vector()

procedure, pass(this) point_interpolator::point_interpolator_t::point_interpolator_interpolate_vector ( class(point_interpolator_t), intent(in this,
type(point_t), dimension(:), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout z 
)
Parameters
Nnumber of points (use 1 to interpolate a scalar).
XValues of the field \( X \) at GLL points in one element.
YValues of the field \( Y \) at GLL points in one element.
ZValues of the field \( Z \) at GLL points in one element.

Definition at line 68 of file point_interpolator.f90.

◆ point_interpolator_interpolate_vector_jacobian()

procedure, pass(this) point_interpolator::point_interpolator_t::point_interpolator_interpolate_vector_jacobian ( class(point_interpolator_t), intent(in this,
real(kind=rp), dimension(3,3), intent(inout jac,
type(point_t), intent(in rst,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout x,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%ly, this%xh%lz), intent(inout z 
)
Parameters
jacJacobian.
rstr,s,t coordinates;
XValues of the field \( X \) at GLL points in one element.
YValues of the field \( Y \) at GLL points in one element.
ZValues of the field \( Z \) at GLL points in one element.

Definition at line 72 of file point_interpolator.f90.

Member Data Documentation

◆ xh

type(space_t), pointer point_interpolator::point_interpolator_t::xh => null()

Definition at line 57 of file point_interpolator.f90.


The documentation for this type was generated from the following file: