Skip to main content

InterpolationPoint

This routine returns the interplation points on quadrangle.

Interface

INTERFACE InterpolationPoint_Quadrangle
MODULE FUNCTION InterpolationPoint_Quadrangle1(order, ipType, xij, &
& layout) RESULT(ans)
INTEGER(I4B), INTENT(IN) :: order
!! order of element
INTEGER(I4B), INTENT(IN) :: ipType
!! interpolation point type
REAL(DFP), OPTIONAL, INTENT(IN) :: xij(:, :)
!! four vertices of quadrangle in xij format
CHARACTER(*), INTENT(IN) :: layout
!! VEFC, INCREASING
REAL(DFP), ALLOCATABLE :: ans(:, :)
!! interpolation points in xij format
END FUNCTION InterpolationPoint_Quadrangle1
END INTERFACE InterpolationPoint_Quadrangle
xij
  • xij contains nodal coordinates of quadrangle in xij format.
  • The number of rows in xij can be 2 or 3 (for 2D or 3D)
  • The number of columns in xij is 4
  • If xij is absent then biunit quadrangle is assumed.
ipType
  • ipType is interpolation point type, it can take following values

  • Equidistance, uniformly/evenly distributed points

  • GaussLegendreLobatto

  • GaussChebyshev1Lobatto

  • GaussJacobiLobatto

  • GaussUltrasphericalLobatto

layout

layout specifies the arrangement of interpolation points.

It has two options:

VEFC

In "VEFC" format (vertex, edge, face, cell), the first four entries denote the vertex points, then we have edges, and then internal nodes.

The internal nodes also follow the same convention. Please read Gmsh manual on this topic.

INCREASING

In "INCREASING" format the interpolation points are stored column-wise, that is first points along a y-axis are stored first.

For example for order = 3:

VEFC

xx-111-1-0.333330.33333110.33333-0.33333-1-1-0.33333-0.333330.333 330.33333
yy-1-111-1-1-0.333330.33333110.33333-0.33333-0.333330.333330.3333 3-0.33333

INCREASING

xx-1-1-1-1-0.33333-0.33333-0.33333-0.333330.333330.333330.333330.333331111
yy-1-0.333330.333331-1-0.333330.333331-1-0.333330.333331-1-0.333330.33333

Interface 2

Interface
INTERFACE InterpolationPoint_Quadrangle
MODULE FUNCTION InterpolationPoint_Quadrangle2( &
& p, q, ipType1, ipType2, layout, xij, alpha1, beta1, &
& lambda1, alpha2, beta2, lambda2) RESULT(ans)
INTEGER(I4B), INTENT(IN) :: p
!! order of element in x direction
INTEGER(I4B), INTENT(IN) :: q
!! order of element in y direction
INTEGER(I4B), INTENT(IN) :: ipType1
!! interpolation point type in x direction
INTEGER(I4B), INTENT(IN) :: ipType2
!! interpolation point type in y direction
CHARACTER(*), INTENT(IN) :: layout
!! VEFC, INCREASING
REAL(DFP), OPTIONAL, INTENT(IN) :: xij(:, :)
!! four vertices of quadrangle in xij format
REAL(DFP), OPTIONAL, INTENT(IN) :: alpha1
!! Jacobi parameter
REAL(DFP), OPTIONAL, INTENT(IN) :: beta1
!! Jacobi parameter
REAL(DFP), OPTIONAL, INTENT(IN) :: lambda1
!! Ultraspherical parameter
REAL(DFP), OPTIONAL, INTENT(IN) :: alpha2
!! Jacobi parameter
REAL(DFP), OPTIONAL, INTENT(IN) :: beta2
!! Jacobi parameter
REAL(DFP), OPTIONAL, INTENT(IN) :: lambda2
!! Ultraspherical parameter
REAL(DFP), ALLOCATABLE :: ans(:, :)
!! interpolation points in xij format
END FUNCTION InterpolationPoint_Quadrangle2
END INTERFACE InterpolationPoint_Quadrangle