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...
|
| 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) \).
|
| |
Definition at line 54 of file point_interpolator.f90.
◆ compute_weights()
| 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 |
|
) |
| |
- Parameters
-
| 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. |
- Note
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.
◆ free()
◆ init()
◆ interpolate() [1/2]
- Parameters
-
| rst | r,s,t coordinates. |
| X | Values of the field \( X \) at GLL points in one element. |
Definition at line 75 of file point_interpolator.f90.
◆ interpolate() [2/2]
| 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 |
|
) |
| |
- Parameters
-
| 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 75 of file point_interpolator.f90.
◆ jacobian() [1/2]
| 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 |
|
) |
| |
- Parameters
-
| 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 78 of file point_interpolator.f90.
◆ jacobian() [2/2]
| 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 |
|
) |
| |
- Parameters
-
| 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 78 of file point_interpolator.f90.
◆ point_interpolator_interpolate_jacobian()
| 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 |
|
) |
| |
- Parameters
-
| 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 71 of file point_interpolator.f90.
◆ point_interpolator_interpolate_scalar()
| 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 |
|
) |
| |
- Parameters
-
| rst | r,s,t coordinates. |
| X | Values of the field \( X \) at GLL points in one element. |
Definition at line 67 of file point_interpolator.f90.
◆ point_interpolator_interpolate_vector()
| 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 |
|
) |
| |
- Parameters
-
| 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 69 of file point_interpolator.f90.
◆ point_interpolator_interpolate_vector_jacobian()
| 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 |
|
) |
| |
- Parameters
-
| 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 73 of file point_interpolator.f90.
◆ xh
The documentation for this type was generated from the following file: