Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
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...
Public Member Functions | |
procedure, pass(this) | init (this, xh) |
Constructor. | |
procedure, pass(this) | free (this) |
Destructor. | |
procedure, pass(this) | compute_weights (this, r, s, t, wr, ws, wt) |
Computes interpolation weights \( w_r, w_s, w_t \) for a list of points. | |
procedure, pass(this) | point_interpolator_interpolate_scalar (this, rst, x) |
Interpolates a scalar field \( X \) on a set of points. | |
procedure, pass(this) | point_interpolator_interpolate_vector (this, rst, x, y, z) |
Interpolates a vector field \( \vec f = (X,Y,Z) \) on a set of points. | |
procedure, pass(this) | point_interpolator_interpolate_jacobian (this, rst, x, y, z) |
Constructs the Jacobian at a single point. | |
procedure, pass(this) | point_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. | |
Definition at line 55 of file point_interpolator.f90.
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 | ||
) |
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 64 of file point_interpolator.f90.
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.
procedure, pass(this) point_interpolator::point_interpolator_t::init | ( | class(point_interpolator_t), intent(inout), target | this, |
type(space_t), intent(in), target | xh | ||
) |
xh | Function space. |
Definition at line 60 of file point_interpolator.f90.
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 | ||
) |
rst | r,s,t coordinates. |
X | Values of the field \( X \) at GLL points in one element. |
Definition at line 74 of file point_interpolator.f90.
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 | ||
) |
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 74 of file point_interpolator.f90.
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 | ||
) |
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 77 of file point_interpolator.f90.
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 | ||
) |
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 77 of file point_interpolator.f90.
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 | ||
) |
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 70 of file point_interpolator.f90.
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 | ||
) |
rst | r,s,t coordinates. |
X | Values of the field \( X \) at GLL points in one element. |
Definition at line 66 of file point_interpolator.f90.
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 | ||
) |
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 68 of file point_interpolator.f90.
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 | ||
) |
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 72 of file point_interpolator.f90.
Definition at line 57 of file point_interpolator.f90.