Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
legendre_rst_finder Module Reference

Data Types

type  legendre_rst_finder_t
 Type to compute local element (rst) coordinates for a gives set points in physical (xyz) space on a SEM grid. More...
 

Functions/Subroutines

subroutine legendre_rst_finder_init (this, x, y, z, nelv, xh, tol, max_iter)
 
subroutine legendre_rst_finder_free (this)
 
subroutine legendre_rst_finder_find (this, rst_local_cand, x_t, y_t, z_t, el_cands, n_point_cand, resx, resy, resz)
 Given a set of element candidates containing the given points and computes the local RST coordinates for those points. This subroutine supports both CPU and device (GPU) execution, depending on the configugered backend of NEKO_BCKND_DEVICE.
 
subroutine find_rst_legendre_device (this, rst, pt_x, pt_y, pt_z, el_list, n_pts, resx, resy, resz)
 Using the Legendre polynomials to find the rst coordinates on GPU.
 
subroutine find_rst_legendre_cpu (this, rst, pt_x, pt_y, pt_z, el_list, n_pts, resx, resy, resz)
 Using the Legendre polynomials to find the rst coordinates.
 

Function/Subroutine Documentation

◆ find_rst_legendre_cpu()

subroutine legendre_rst_finder::find_rst_legendre_cpu ( type(legendre_rst_finder_t), intent(inout this,
real(kind=rp), dimension(3, n_pts), intent(inout rst,
real(kind=rp), dimension(n_pts), intent(in pt_x,
real(kind=rp), dimension(n_pts), intent(in pt_y,
real(kind=rp), dimension(n_pts), intent(in pt_z,
integer, dimension(n_pts), intent(in el_list,
integer, intent(in n_pts,
real(kind=rp), dimension(n_pts), intent(inout resx,
real(kind=rp), dimension(n_pts), intent(inout resy,
real(kind=rp), dimension(n_pts), intent(inout resz 
)
private
Parameters
rstholds the computed rst values
pt_{x,y,z}are the xyz coords of the points
el_listare the elements in which we look for rst
n_ptsthe number of points
res{x,y,z}are the difference between pt_{xyz} and xyz

Definition at line 229 of file legendre_rst_finder.f90.

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

◆ find_rst_legendre_device()

subroutine legendre_rst_finder::find_rst_legendre_device ( type(legendre_rst_finder_t), intent(inout this,
type(c_ptr), intent(inout rst,
type(c_ptr), intent(in pt_x,
type(c_ptr), intent(in pt_y,
type(c_ptr), intent(in pt_z,
type(c_ptr), intent(in el_list,
integer, intent(in n_pts,
type(c_ptr), intent(inout resx,
type(c_ptr), intent(inout resy,
type(c_ptr), intent(inout resz 
)
private
Parameters
rstholds the computed rst values
pt_{x,y,z}are the xyz coords of the points
el_listare the elements in which we look for rst
n_ptsthe number of points
res{x,y,z}are the difference between pt_{xyz} and xyz

Definition at line 185 of file legendre_rst_finder.f90.

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

◆ legendre_rst_finder_find()

subroutine legendre_rst_finder::legendre_rst_finder_find ( class(legendre_rst_finder_t), intent(inout this,
type(matrix_t), intent(inout rst_local_cand,
type(vector_t), intent(in x_t,
type(vector_t), intent(in y_t,
type(vector_t), intent(in z_t,
integer, dimension(:), intent(inout el_cands,
integer, intent(in n_point_cand,
type(vector_t), intent(inout resx,
type(vector_t), intent(inout resy,
type(vector_t), intent(inout resz 
)
private
Parameters
thisAn instance of the legendre_rst_finder_t class.
rst_local_candA matrix to store the local RST coordinates of the candidate points.
x_tA vector containing the x-coordinates of the target points.
y_tA vector containing the y-coordinates of the target points.
z_tA vector containing the z-coordinates of the target points.
el_candsAn array with the indices of the candidate elements.
n_point_candThe number of candidate points to process.
resxA vector to store the residuals in the x-direction.
resyA vector to store the residuals in the y-direction.
reszA vector to store the residuals in the z-direction.

Find the elements that contain the points

Definition at line 148 of file legendre_rst_finder.f90.

Here is the call graph for this function:

◆ legendre_rst_finder_free()

subroutine legendre_rst_finder::legendre_rst_finder_free ( class(legendre_rst_finder_t), intent(inout this)
private

Definition at line 122 of file legendre_rst_finder.f90.

◆ legendre_rst_finder_init()

subroutine legendre_rst_finder::legendre_rst_finder_init ( class(legendre_rst_finder_t), intent(inout this,
real(kind=rp), dimension(nelv*xh%lxyz), intent(in x,
real(kind=rp), dimension(nelv*xh%lxyz), intent(in y,
real(kind=rp), dimension(nelv*xh%lxyz), intent(in z,
integer, intent(in nelv,
type(space_t), intent(in), target  xh,
real(kind=rp), intent(in), optional  tol,
integer, intent(in), optional  max_iter 
)

Copy the data to the device (if device exists)

Definition at line 70 of file legendre_rst_finder.f90.

Here is the call graph for this function: