Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
Implements global_interpolation given a dofmap. More...
Data Types | |
type | global_interpolation_t |
Implements global interpolation for arbitrary points in the domain. More... | |
Functions/Subroutines | |
subroutine | global_interpolation_init_dof (this, dof, tol) |
Initialize the global interpolation object on a dofmap. | |
subroutine | global_interpolation_init_xyz (this, x, y, z, gdim, nelv, xh, tol) |
Initialize the global interpolation object on a set of coordinates. | |
subroutine | global_interpolation_free (this) |
Destructor. | |
subroutine | global_interpolation_free_points (this) |
Destructor for point arrays. | |
subroutine | global_interpolation_find_common (this) |
Common routine for finding the points. | |
subroutine | global_interpolation_find_coords (this, x, y, z, n_points) |
Finds the corresponding r,s,t coordinates in the correct global element as well as which process that owns the point. After this the values at these points can be evaluated. If the locations of the points change this must be called again. | |
subroutine | global_interpolation_init_point_arrays (this) |
subroutine | global_interpolation_find_xyz (this, xyz, n_points) |
Finds the corresponding r,s,t coordinates in the correct global element as well as which process that owns the point. After this the values at these points can be evaluated. If the locations of the points change this must be called again. | |
subroutine | global_interpolation_find_and_redist (this, xyz, n_points) |
Finds the corresponding r,s,t coordinates and redistributes the points to the owning rank in the correct global element as well as which process that owns the point. After this the values at these points can be evaluated. If the locations of the points change this must be called again. | |
subroutine | global_interpolation_redist (this) |
subroutine | global_interpolation_evaluate (this, interp_values, field) |
Evalute the interpolated value in the points given a field on the dofmap. | |
gslib
, namely findpts_setup
, findpts
, and findpts_eval
. A full description of these subroutines can be found at https://github.com/Nek5000/gslib/blob/master/src/findpts.c
|
private |
interp_values | Array of values in the given points. |
field | Array of values used for interpolation. |
Definition at line 566 of file global_interpolation.F90.
|
private |
error_code
: returns 0
if point found, 1
if closest point on a border (check dist2), 2
if not found.dist2
: distance squared (used to compare the points found by each processor) xyz | The coordinates of the points. |
n_points | The number of points. |
make deep copy incase xyz goes out of scope or deallocated
Sets new points and redistributes them
Definition at line 443 of file global_interpolation.F90.
|
private |
Definition at line 236 of file global_interpolation.F90.
|
private |
error_code
: returns 0
if point found, 1
if closest point on a border (check dist2), 2
if not founddist2
: distance squared (used to compare the points found by each processor) x | The x-coordinates of the points. |
y | The y-coordinates of the points. |
z | The z-coordinates of the points. |
n_points | The number of points. |
Definition at line 360 of file global_interpolation.F90.
|
private |
error_code
: returns 0
if point found, 1
if closest point on a border (check dist2), 2
if not founddist2
: distance squared (used to compare the points found by each processor) xyz | The coordinates of the points. |
n_points | The number of points. |
make deep copy incase xyz goes out of scope or deallocated
Definition at line 412 of file global_interpolation.F90.
|
private |
Definition at line 193 of file global_interpolation.F90.
|
private |
Definition at line 216 of file global_interpolation.F90.
subroutine global_interpolation::global_interpolation_init_dof | ( | class(global_interpolation_t), intent(inout) | this, |
type(dofmap_t), target | dof, | ||
real(kind=rp), optional | tol | ||
) |
dof | Dofmap on which the interpolation is to be carried out. |
tol | Tolerance for Newton iterations. |
Definition at line 126 of file global_interpolation.F90.
|
private |
Definition at line 387 of file global_interpolation.F90.
|
private |
x | x-coordinates. |
y | y-coordinates. |
z | z-coordinates. |
gdim | Geometric dimension. |
nelv | Number of elements of the mesh in which to search for the points. |
Xh | Space on which to interpolate. |
tol | Tolerance for Newton iterations. |
Definition at line 148 of file global_interpolation.F90.
|
private |
Calculate which processes this proc has points on
Sum number of points on all pes to compute n_new_points Store how many points to receive from each pe
This could be avoided by adding all indices to a list
Definition at line 487 of file global_interpolation.F90.