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

Interpolation between two space::space_t. More...

Collaboration diagram for interpolation::interpolator_t:

Public Member Functions

procedure, pass(thisinit (this, xh, yh)
 Constructor.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thismap (this, y, x, nel, to_space)
 Interpolate an array to one of Xh or Yh.
 
procedure, pass(thismap_host (this, y, x, nel, to_space)
 Interpolate an array to one of Xh or Yh on the host.
 

Public Attributes

type(space_t), pointer xh
 First space.
 
type(space_t), pointer yh
 Second space.
 
real(kind=rp), dimension(:,:), allocatable xh_to_yh
 Interpolation weights from Xh to Yh.
 
real(kind=rp), dimension(:,:), allocatable xh_to_yht
 
real(kind=rp), dimension(:,:), allocatable yh_to_xh
 Interpolation weights from Yh to Xh.
 
real(kind=rp), dimension(:,:), allocatable yh_to_xht
 
type(c_ptr) xh_yh_d = C_NULL_PTR
 Device pointer for Xh_to_Yh.
 
type(c_ptr) xh_yht_d = C_NULL_PTR
 Device pointer for Xh_to_YhT.
 
type(c_ptr) yh_xh_d = C_NULL_PTR
 Device pointer for Yh_to_Xh.
 
type(c_ptr) yh_xht_d = C_NULL_PTR
 Device pointer for Yh_to_XhT.
 

Detailed Description

This type implements functionality to interpolate between a pair of spaces. Simply put, given some data of form (lx1, lx1, lx1, nelem) we can map it to (lx2, lx2, lx2, nelem), corresponding to a different polynomial order in each element.

Definition at line 51 of file interpolation.f90.

Member Function/Subroutine Documentation

◆ free()

procedure, pass(this) interpolation::interpolator_t::free ( class(interpolator_t), intent(inout this)

Definition at line 73 of file interpolation.f90.

◆ init()

procedure, pass(this) interpolation::interpolator_t::init ( class(interpolator_t), intent(inout), target  this,
type(space_t), intent(inout), target  xh,
type(space_t), intent(inout), target  yh 
)
Parameters
XhThe first space.
XhThe second space.

Definition at line 71 of file interpolation.f90.

◆ map()

procedure, pass(this) interpolation::interpolator_t::map ( class(interpolator_t), intent(inout this,
real(kind=rp), dimension(this%yh%lx, this%yh%lx, this%yh%lx, nel), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%lx, this%xh%lx, nel), intent(in x,
integer  nel,
type(space_t to_space 
)
Parameters
xOriginal array.
yInterpolated array.
nelNumber of elements in the mesh.
to_spaceThe space to interpolate to, must be either Xh or Yh.

Definition at line 75 of file interpolation.f90.

◆ map_host()

procedure, pass(this) interpolation::interpolator_t::map_host ( class(interpolator_t), intent(inout this,
real(kind=rp), dimension(this%yh%lx, this%yh%lx, this%yh%lx, nel), intent(inout y,
real(kind=rp), dimension(this%xh%lx, this%xh%lx, this%xh%lx, nel), intent(inout x,
integer  nel,
type(space_t to_space 
)
Parameters
xOriginal array.
yInterpolated array.
nelNumber of elements in the mesh.
to_spaceThe space to interpolate to, must be either Xh or Yh.
Note
Not optimized for performance, should only be used during init.

Definition at line 77 of file interpolation.f90.

Member Data Documentation

◆ xh

type(space_t), pointer interpolation::interpolator_t::xh

Definition at line 53 of file interpolation.f90.

◆ xh_to_yh

real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::xh_to_yh

Definition at line 57 of file interpolation.f90.

◆ xh_to_yht

real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::xh_to_yht

Definition at line 57 of file interpolation.f90.

◆ xh_yh_d

type(c_ptr) interpolation::interpolator_t::xh_yh_d = C_NULL_PTR

Definition at line 61 of file interpolation.f90.

◆ xh_yht_d

type(c_ptr) interpolation::interpolator_t::xh_yht_d = C_NULL_PTR

Definition at line 63 of file interpolation.f90.

◆ yh

type(space_t), pointer interpolation::interpolator_t::yh

Definition at line 55 of file interpolation.f90.

◆ yh_to_xh

real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::yh_to_xh

Definition at line 59 of file interpolation.f90.

◆ yh_to_xht

real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::yh_to_xht

Definition at line 59 of file interpolation.f90.

◆ yh_xh_d

type(c_ptr) interpolation::interpolator_t::yh_xh_d = C_NULL_PTR

Definition at line 65 of file interpolation.f90.

◆ yh_xht_d

type(c_ptr) interpolation::interpolator_t::yh_xht_d = C_NULL_PTR

Definition at line 67 of file interpolation.f90.


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