Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
Routines to interpolate fields on a given element on a point in that element with given r,s,t coordinates.
Data Types | |
type | point_interpolator_t |
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... | |
Functions/Subroutines | |
subroutine | point_interpolator_init (this, xh) |
Initialization of point interpolation. | |
subroutine | point_interpolator_free (this) |
Free pointers. | |
subroutine | point_interpolator_compute_weights (this, r, s, t, wr, ws, wt) |
Computes interpolation weights \( w_r, w_s, w_t \) for a list of points. | |
real(kind=rp) function, dimension(:), allocatable | point_interpolator_interpolate_scalar (this, rst, x) |
Interpolates a scalar field \( X \) on a set of \( N \) points \( \mathbf{r}_i , i\in[1,N]\). Returns a vector of N coordinates \( [x_i(\mathbf{r}_i)], i\in[1,N]\). | |
type(point_t) function, dimension(:), allocatable | point_interpolator_interpolate_vector (this, rst, x, y, z) |
Interpolates a vector field \( \vec f = (X,Y,Z) \) on a set of \( N \) points \( \mathbf{r}_i \). Returns an array of N points \( [x(\mathbf{r}_i), y(\mathbf{r}_i), z(\mathbf{r}_i)], i\in[1,N]\). | |
type(point_t) function | point_interpolator_interpolate_vector_jacobian (this, jac, rst, x, y, z) |
Interpolates a vector field \( \vec f = (X,Y,Z) \) and constructs the Jacobian at a point \( (r,s,t) \). Returns a vector \( [x(\mathbf{r}_i), y(\mathbf{r}_i), z(\mathbf{r}_i)], i\in[1,N]\). | |
real(kind=rp) function, dimension(3, 3) | point_interpolator_interpolate_jacobian (this, rst, x, y, z) |
Constructs the Jacobian, returns a 3-by-3 array where \( [J(\mathbf{r}]_{ij} = \frac{d\mathbf{x}_i}{d\mathbf{r}_j}\). | |
|
private |
r | local r-coordinates. |
s | local s-coordinates. |
t | local t-coordinates. |
wr | Weights in the r-direction. |
ws | Weights in the s-direction. |
wt | Weights in the t-direction. |
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 117 of file point_interpolator.f90.
|
private |
Definition at line 100 of file point_interpolator.f90.
subroutine point_interpolator::point_interpolator_init | ( | class(point_interpolator_t), intent(inout), target | this, |
type(space_t), intent(in), target | xh | ||
) |
xh | Function space. |
Definition at line 86 of file point_interpolator.f90.
|
private |
rst | r,s,t coordinates. |
X | Values of the field \( X \) at GLL points. |
Y | Values of the field \( Y \) at GLL points. |
Z | Values of the field \( Z \) at GLL points. |
Definition at line 328 of file point_interpolator.f90.
|
private |
rst | r,s,t coordinates. |
X | Values of the field \( X \) at GLL points in one element. |
Definition at line 139 of file point_interpolator.f90.
|
private |
N | number of points (use 1 to interpolate a scalar). |
X | Values of the field \( X \) at GLL points in one element. |
Y | Values of the field \( Y \) at GLL points in one element. |
Z | Values of the field \( Z \) at GLL points in one element. |
Definition at line 200 of file point_interpolator.f90.
|
private |
jac | Jacobian. |
rst | r,s,t coordinates; |
X | Values of the field \( X \) at GLL points in one element. |
Y | Values of the field \( Y \) at GLL points in one element. |
Z | Values of the field \( Z \) at GLL points in one element. |
Definition at line 274 of file point_interpolator.f90.