version 0.6.0

Point interpolation preparation module.

Functions/Subroutines

pure subroutine interpolation_set_coefficients (data, xxi, yyi, zzi, xo, yo, zo)
 Compute interpolation coefficients. More...
 
subroutine interpolation_set_coefficients_vec (data, xxi, yyi, zzi, pos)
 Compute interpolation coefficients. More...
 
pure subroutine interpolation_set_coefficients_dx (data, xxi, yyi, zzi, xo, yo, zo)
 Compute x-partial derivative coefficients. More...
 
pure subroutine interpolation_set_coefficients_dy (data, xxi, yyi, zzi, xo, yo, zo)
 Compute y-partial derivative coefficients. More...
 
pure subroutine interpolation_set_coefficients_dz (data, xxi, yyi, zzi, xo, yo, zo)
 Compute z-partial derivative coefficients. More...
 
pure subroutine interpolation_set_stencil_centered (data, xxi, yyi, zzi, xo, yo, zo)
 Set centered interpolation stencils. More...
 
subroutine interpolation_set_stencil_centered_vec (data, xxi, yyi, zzi, pos)
 Set centered interpolation stencils. More...
 
pure subroutine interpolation_set_stencil_oriented (data, i_pi, j_pi, k_pi, tx, ty, tz)
 Set oriented interpolation stencils. More...
 

Function/Subroutine Documentation

◆ interpolation_set_coefficients()

pure subroutine mod_point_interpolation_prepare::interpolation_set_coefficients ( type(interpolation_data), intent(inout)  data,
double precision, dimension(:), intent(in)  xxi,
double precision, dimension(:), intent(in)  yyi,
double precision, dimension(:), intent(in)  zzi,
double precision, intent(in)  xo,
double precision, intent(in)  yo,
double precision, intent(in)  zo 
)
Parameters
[in,out]datainterpolation data.
[in]xxi,yyi,zziCartesian mesh coordinates.
[in]xo,yo,zointerpolation point coordinates.

◆ interpolation_set_coefficients_dx()

pure subroutine mod_point_interpolation_prepare::interpolation_set_coefficients_dx ( type(interpolation_data), intent(inout)  data,
double precision, dimension(:), intent(in)  xxi,
double precision, dimension(:), intent(in)  yyi,
double precision, dimension(:), intent(in)  zzi,
double precision, intent(in)  xo,
double precision, intent(in)  yo,
double precision, intent(in)  zo 
)
Parameters
[in,out]datainterpolation data.
[in]xxi,yyi,zziCartesian mesh coordinates.
[in]xo,yo,zopoint coordinates.

◆ interpolation_set_coefficients_dy()

pure subroutine mod_point_interpolation_prepare::interpolation_set_coefficients_dy ( type(interpolation_data), intent(inout)  data,
double precision, dimension(:), intent(in)  xxi,
double precision, dimension(:), intent(in)  yyi,
double precision, dimension(:), intent(in)  zzi,
double precision, intent(in)  xo,
double precision, intent(in)  yo,
double precision, intent(in)  zo 
)
Parameters
[in,out]datainterpolation data.
[in]xxi,yyi,zziCartesian mesh coordinates.
[in]xo,yo,zopoint coordinates.

◆ interpolation_set_coefficients_dz()

pure subroutine mod_point_interpolation_prepare::interpolation_set_coefficients_dz ( type(interpolation_data), intent(inout)  data,
double precision, dimension(:), intent(in)  xxi,
double precision, dimension(:), intent(in)  yyi,
double precision, dimension(:), intent(in)  zzi,
double precision, intent(in)  xo,
double precision, intent(in)  yo,
double precision, intent(in)  zo 
)
Parameters
[in,out]datainterpolation data.
[in]xxi,yyi,zziCartesian mesh coordinates.
[in]xo,yo,zopoint coordinates.

◆ interpolation_set_coefficients_vec()

subroutine mod_point_interpolation_prepare::interpolation_set_coefficients_vec ( type(interpolation_data), intent(inout)  data,
double precision, dimension(:), intent(in), target  xxi,
double precision, dimension(:), intent(in), target  yyi,
double precision, dimension(:), intent(in), target  zzi,
double precision, dimension(3), intent(in)  pos 
)

Wrapper for a 3D vector.

◆ interpolation_set_stencil_centered()

pure subroutine mod_point_interpolation_prepare::interpolation_set_stencil_centered ( type(interpolation_data), intent(inout)  data,
double precision, dimension(:), intent(in)  xxi,
double precision, dimension(:), intent(in)  yyi,
double precision, dimension(:), intent(in)  zzi,
double precision, intent(in)  xo,
double precision, intent(in)  yo,
double precision, intent(in)  zo 
)

The present routine finds appropriate values for the members i_pi, j_pi, and k_pi of an interpolation_data instance. (These members represent the leftmost index the interpolation subdomain.) They are chosen to put the interpolation point in the middle of the interpolation subdomain as long as the subdomain remains inside the domain. See the examples below:

   Grid:              --|---------|------X--|---------|---
Indices:               i_pi                       i_pi+ordx
  Coord:                                xo

   Grid:      |------X--|---------|---------|---
Indices:  i_pi=1                        i_pi+ordx
  Coord:            xo

   Grid:                        --|---------|---------|------X--|
Indices:                         i_pi                  i_pi+ordx=nx
  Coord:                                                    xo
Parameters
[in,out]datainterpolation data.
[in]xxi,yyi,zziCartesian mesh coordinates.
[in]xo,yo,zopoint coordinates.
Todo:
: Print a graceful exit message when nx == 1. Currently, it should produce an array overflow.

◆ interpolation_set_stencil_centered_vec()

subroutine mod_point_interpolation_prepare::interpolation_set_stencil_centered_vec ( type(interpolation_data), intent(inout)  data,
double precision, dimension(:), intent(in)  xxi,
double precision, dimension(:), intent(in)  yyi,
double precision, dimension(:), intent(in)  zzi,
double precision, dimension(3), intent(in)  pos 
)

Wrapper for a 3D vector

◆ interpolation_set_stencil_oriented()

pure subroutine mod_point_interpolation_prepare::interpolation_set_stencil_oriented ( type(interpolation_data), intent(inout)  data,
integer, intent(in)  i_pi,
integer, intent(in)  j_pi,
integer, intent(in)  k_pi,
double precision, intent(in)  tx,
double precision, intent(in)  ty,
double precision, intent(in)  tz 
)

The present routine finds appropriate values for the members i_pi, j_pi, and k_pi of an interpolation_data instance. (These members represent the leftmost index the interpolation subdomain.) In this routine, you provide a subdomain boudary with i_pi, and the subdomain is extended in the direction given by tx.

  • if tx is positive:
       Grid: --|------X--|---------|---------|---
    Indices:  i_pi                       i_pi+ordx
      Coord:         xo
    
  • if tx is strictly negative:
       Grid: --|--------|---------|-------X--|---
    Indices:  i_pi                       i_pi+ordx
      Coord:                             xo
    
    Parameters
    data[interpolation_data] instance.
    [in]i_pi,j_pi,k_pisubdomain pivot.
    [in]tx,ty,tzextention direction.
Todo:
: Treat domain boundaries.