The type for generic point WENO interpolation (3D) that has to be derived.
|
subroutine | int_point_weno_3d_construct (self, index_start, index_end, nstencils, spatial_dimension) |
| Initialize a 2D point interpolant.
|
|
double precision function | int_point_weno_3d_apply (self, values) |
|
subroutine | int_point_weno_3d_compute_stencil (self, coordinates_x, coordinates_y, coordinates_z, derivatives, cv_x, cv_y, cv_z) |
|
double precision function | int_point_weno_3d_interpolate (self, x, coordinates_x, coordinates_y, coordinates_z, values, derivatives, cv_x, cv_y, cv_z) |
| Directly compute the interpolation at the given position. The result is the interpolation value.
|
|
subroutine | int_point_weno_3d_compute_smoothness_indicators (self, x, steps, coordinates, values, nstencils, res) |
| Compute the SI for all the stencils.
|
|
class(t_int_point_3d) function, pointer | select_lagrange_interpolant_3d (npoints) |
|
◆ int_point_weno_3d_compute_smoothness_indicators()
subroutine type_int_point_weno_3d::int_point_weno_3d_compute_smoothness_indicators |
( |
class(t_int_point_weno_3d), intent(in) | self, |
|
|
double precision, dimension(:), intent(in) | x, |
|
|
double precision, dimension(:,:), intent(in) | steps, |
|
|
double precision, dimension(:,:), intent(in) | coordinates, |
|
|
double precision, dimension(:,:,:), intent(in) | values, |
|
|
integer, dimension(3), intent(in) | nstencils, |
|
|
double precision, dimension(:,:,:), intent(inout) | res ) |
- Parameters
-
[in] | self | the element |
[in] | x | the distances (with unit spacing) to the first point of the stencil; index: (ndims) |
[in] | steps | the steps between nodes; index: (npoints-1,ndims) |
[in] | coordinates | the nodes coordinates (with unit spacing); index: (npoints,ndims) |
[in] | values | the values of the field; index: (npoints,npoints,npoints) |
[in] | nstencils | the number of stencils in each dimension; index: (3) |
[out] | res | the resulting smoothness_indicator array associated to the stencils; index: (si,sj,sk) |
◆ int_point_weno_3d_interpolate()
double precision function type_int_point_weno_3d::int_point_weno_3d_interpolate |
( |
class(t_int_point_weno_3d), intent(inout) | self, |
|
|
double precision, dimension(3), intent(in) | x, |
|
|
double precision, dimension(:), intent(in) | coordinates_x, |
|
|
double precision, dimension(:), intent(in) | coordinates_y, |
|
|
double precision, dimension(:), intent(in) | coordinates_z, |
|
|
double precision, dimension(:,:,:), intent(in) | values, |
|
|
integer, dimension(:), intent(in), optional | derivatives, |
|
|
double precision, dimension(:), intent(in), optional | cv_x, |
|
|
double precision, dimension(:), intent(in), optional | cv_y, |
|
|
double precision, dimension(:), intent(in), optional | cv_z ) |
- Parameters
-
[in,out] | self | the element |
[in] | X | the 3D position where to interpolate (should reside in coordinates_{x,y,z} ) |
[in] | values | the values in the interval '1:nx,1:ny,1:nz' |
[in] | coordinates_x | the x coordinates of the center of the control volumes; in '1:nx' |
[in] | coordinates_y | the y coordinates of the center of the control volumes; in '1:ny' |
[in] | coordinates_z | the z coordinates of the center of the control volumes; in '1:nz' |
[in] | derivatives | *(optional)* the derivatives number: 0 (default) for value interpolation, 1 for first derivative, etc. |
[in] | cv_x | the width of the control volumes in the x direction |
[in] | cv_y | the width of the control volumes in the y direction |
[in] | cv_z | the width of the control volumes in the y direction |
- Todo
- MCO: deal with reconstruction schemes for 3D