Intrepid2
Functions
Intrepid2_Polynomials.hpp File Reference

Free functions, callable from device code, that implement various polynomials useful in basis definitions. More...

#include "Intrepid2_Polylib.hpp"
#include "Intrepid2_Types.hpp"
#include "Intrepid2_Utils.hpp"

Go to the source code of this file.

Functions

template<typename OutputValueViewType , typename ScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::legendreValues (OutputValueViewType outputValues, Intrepid2::ordinal_type n, ScalarType x)
 Evaluate Legendre polynomials up to order n at a specified point. More...
 
template<typename OutputValueViewType , typename ScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::legendreDerivativeValues (OutputValueViewType outputValues, const OutputValueViewType legendreValues, Intrepid2::ordinal_type n, ScalarType x)
 Evaluate first derivatives of Legendre polynomials up to order n at a specified point, based on provided container with the values of the Legendre polynomials. More...
 
template<typename OutputValueViewType , typename PointScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::legendreDerivativeValues (OutputValueViewType outputValues, Intrepid2::ordinal_type n, PointScalarType x, Intrepid2::ordinal_type dn)
 Evaluate the dnth derivative of Legendre polynomials up to order n at a specified point. More...
 
template<typename OutputValueViewType , typename ScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedLegendreValues (OutputValueViewType outputValues, Intrepid2::ordinal_type n, ScalarType x)
 Evaluate shifted Legendre polynomials up to order n at a specified point in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledLegendreValues (OutputValueViewType outputValues, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 Evaluate shifted, scaled Legendre polynomials up to order n at a specified point in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues (OutputValueViewType outputValues, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 Integrated Legendre polynomials L_i for i>=1, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues (OutputValueViewType outputValues, const OutputValueViewType shiftedScaledLegendreValues, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 Integrated Legendre polynomials L_i for i>=1, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dx (OutputValueViewType outputValues, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 x derivative of shifted, scaled integrated Legendre polynomials L_i for i>=1, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt (OutputValueViewType outputValues, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 t derivative of shifted, scaled integrated Legendre polynomials L_i for i>=1, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt (OutputValueViewType outputValues, const OutputValueViewType shiftedScaledLegendreValues, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 t derivative of shifted, scaled integrated Legendre polynomials L_i for i>=1, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledJacobiValues (OutputValueViewType outputValues, double alpha, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 Shifted, scaled Jacobi values, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues (OutputValueViewType outputValues, const OutputValueViewType jacobiValues, double alpha, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 Integrated Jacobi values, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues (OutputValueViewType outputValues, double alpha, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 Integrated Jacobi values, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues_dx (OutputValueViewType outputValues, double alpha, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 x derivative of integrated Jacobi polynomials L_i for i>=1, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues_dt (OutputValueViewType outputValues, const OutputValueViewType jacobiValues, double alpha, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 t derivative of shifted, scaled integrated Jacobi polynomials L_i for i>=1, defined for x in [0,1]. More...
 
template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues_dt (OutputValueViewType outputValues, double alpha, Intrepid2::ordinal_type n, ScalarType x, ScalarTypeForScaling t)
 t derivative of shifted, scaled integrated Jacobi polynomials L_i for i>=1, defined for x in [0,1]. More...
 

Detailed Description

Free functions, callable from device code, that implement various polynomials useful in basis definitions.

Author
Created by N.V. Roberts.

Definition in file Intrepid2_Polynomials.hpp.

Function Documentation

◆ integratedJacobiValues() [1/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues ( OutputValueViewType  outputValues,
const OutputValueViewType  jacobiValues,
double  alpha,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

Integrated Jacobi values, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]jacobiValues- previously computed Jacobi values; must have at least n+1 entries
[in]alpha- Jacobi alpha parameter (beta is taken to be 0)
[in]n- the maximum polynomial order of Jacobi polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See Fuentes et al. (2.27).

In general, Jacobi polynomials have two parameters, alpha and beta.

Following Fuentes et al., we only consider beta=0, and use a domain for x of [0,1] (compared to the classical [-1,1]).

When alpha = 0, Jacobi coincides with Legendre.

Compared with the integratedJacobiValues() below, this version uses more memory, but may require fewer floating point computations by reusing the values in jacobiValues.

Definition at line 432 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::integratedJacobiValues().

Referenced by Intrepid2::Polynomials::integratedJacobiValues().

◆ integratedJacobiValues() [2/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues ( OutputValueViewType  outputValues,
double  alpha,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

Integrated Jacobi values, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]jacobiValues- previously computed Jacobi values; must have at least n+1 entries
[in]alpha- Jacobi alpha parameter (beta is taken to be 0)
[in]n- the maximum polynomial order of Jacobi polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See Fuentes et al. (2.27).

In general, Jacobi polynomials have two parameters, alpha and beta.

Following Fuentes et al., we only consider beta=0, and use a domain for x of [0,1] (compared to the classical [-1,1]).

When alpha = 0, Jacobi coincides with Legendre.

Compared with the integratedJacobiValues() above, this version uses less memory, but may require more floating point computations.

Definition at line 472 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::integratedJacobiValues(), and Intrepid2::Polynomials::shiftedScaledJacobiValues().

◆ integratedJacobiValues_dt() [1/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues_dt ( OutputValueViewType  outputValues,
const OutputValueViewType  jacobiValues,
double  alpha,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

t derivative of shifted, scaled integrated Jacobi polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]jacobiValues- previously computed shifted, scaled Jacobi values; must have at least n entries
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See Fuentes et al. (2.30).

This implementation uses more memory than the one above, but depending on the application may save some computation, in that it can reuse previously computed jacobiValues.

Definition at line 542 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::integratedJacobiValues_dt().

Referenced by Intrepid2::Polynomials::integratedJacobiValues_dt().

◆ integratedJacobiValues_dt() [2/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues_dt ( OutputValueViewType  outputValues,
double  alpha,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

t derivative of shifted, scaled integrated Jacobi polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]jacobiValues- previously computed shifted, scaled Jacobi values; must have at least n entries
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See Fuentes et al. (2.30).

This implementation requires less memory than the one above, but depending on the application may require some extra computation.

Definition at line 567 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::integratedJacobiValues_dt(), and Intrepid2::Polynomials::shiftedScaledJacobiValues().

◆ integratedJacobiValues_dx()

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::integratedJacobiValues_dx ( OutputValueViewType  outputValues,
double  alpha,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

x derivative of integrated Jacobi polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. The x derivative of integrated Jacobi is just Jacobi; the only distinction is in the index – outputValues indices are shifted by 1 relative to shiftedScaledJacobiValues, above.

Definition at line 512 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::integratedJacobiValues_dx(), and Intrepid2::Polynomials::shiftedScaledJacobiValues().

Referenced by Intrepid2::Polynomials::integratedJacobiValues_dx().

◆ legendreDerivativeValues() [1/2]

template<typename OutputValueViewType , typename ScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::legendreDerivativeValues ( OutputValueViewType  outputValues,
const OutputValueViewType  legendreValues,
Intrepid2::ordinal_type  n,
ScalarType  x 
)

Evaluate first derivatives of Legendre polynomials up to order n at a specified point, based on provided container with the values of the Legendre polynomials.

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]legendreValues- the view containing previously evaluated Legendre polynomial values at the point (must have at least n entries)
[in]n- the maximum polynomial order of Legendre polynomials to compute a derivative for
[in]x- point at which to evaluate the derivatives. These are defined for x in [-1,1].

Definition at line 108 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::legendreDerivativeValues(), and Intrepid2::Polynomials::legendreValues().

Referenced by Intrepid2::Polynomials::legendreDerivativeValues().

◆ legendreDerivativeValues() [2/2]

template<typename OutputValueViewType , typename PointScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::legendreDerivativeValues ( OutputValueViewType  outputValues,
Intrepid2::ordinal_type  n,
PointScalarType  x,
Intrepid2::ordinal_type  dn 
)

Evaluate the dnth derivative of Legendre polynomials up to order n at a specified point.

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of Legendre polynomials to compute the derivative for
[in]x- point at which to evaluate the derivatives (should be in [-1,1]).
[in]dn- the order of differentiation. These are defined for x in [-1,1].

Definition at line 131 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polylib::Serial::JacobiPolynomial(), and Intrepid2::Polynomials::legendreDerivativeValues().

◆ legendreValues()

template<typename OutputValueViewType , typename ScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::legendreValues ( OutputValueViewType  outputValues,
Intrepid2::ordinal_type  n,
ScalarType  x 
)

Evaluate Legendre polynomials up to order n at a specified point.

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials These are defined for x in [-1,1]. See equation (2.7) in Fuentes et al.

Definition at line 89 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::legendreValues().

Referenced by Intrepid2::Polynomials::legendreDerivativeValues(), Intrepid2::Polynomials::legendreValues(), and Intrepid2::Polynomials::shiftedLegendreValues().

◆ shiftedLegendreValues()

template<typename OutputValueViewType , typename ScalarType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedLegendreValues ( OutputValueViewType  outputValues,
Intrepid2::ordinal_type  n,
ScalarType  x 
)

Evaluate shifted Legendre polynomials up to order n at a specified point in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials These are defined for x in [0,1]. See equation (2.12) in Fuentes et al.

If these are defined by P_i, and the (unshifted) Legendre polynomials are given by ~P_i, we have: P_i(x) = ~P_i(2x-1)

Definition at line 169 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::legendreValues(), and Intrepid2::Polynomials::shiftedLegendreValues().

Referenced by Intrepid2::Polynomials::shiftedLegendreValues().

◆ shiftedScaledIntegratedLegendreValues() [1/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues ( OutputValueViewType  outputValues,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

Integrated Legendre polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter; may be of type double or may match the type of x These are defined for x in [0,1]. See equation (2.18) in Fuentes et al. (We additionally define L_0 = 1.)

Shifted, scaled Legendre polynomials are given by P_i(x;t) = P_i(x/t) * t^i = ~P_i(2x-t;t).

The formula in Fuentes et al. is defined in terms of P_i and P_{i-2}. We offer two versions of this computation, one which can reuse an existing P_i computation (in the form of a shiftedScaledLegendreValues input container), and one which reuses space in outputValues.

Definition at line 213 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues(), and Intrepid2::Polynomials::shiftedScaledLegendreValues().

Referenced by Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues().

◆ shiftedScaledIntegratedLegendreValues() [2/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues ( OutputValueViewType  outputValues,
const OutputValueViewType  shiftedScaledLegendreValues,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

Integrated Legendre polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]shiftedScaledLegendreValues- view containing the shifted, scaled (unintegrated) Legendre values (must have at least n+1 entries)
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See equation (2.18) in Fuentes et al. (We additionally define L_0 = 1.)

Shifted, scaled Legendre polynomials are given by P_i(x;t) = P_i(x/t) * t^i = ~P_i(2x-t;t).

The formula in Fuentes et al. is defined in terms of P_i and P_{i-2}. We offer two versions of this computation, one which can reuse an existing P_i computation (in the form of a shiftedScaledLegendreValues input container), and one which reuses space in outputValues.

Definition at line 254 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues(), and Intrepid2::Polynomials::shiftedScaledLegendreValues().

◆ shiftedScaledIntegratedLegendreValues_dt() [1/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt ( OutputValueViewType  outputValues,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

t derivative of shifted, scaled integrated Legendre polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See Fuentes et al. (2.20)-(2.22).

This implementation uses less memory than the one below, but depending on the application may introduce some extra computation, in the form of a call to shiftedScaledLegendreValues().

Definition at line 330 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt(), and Intrepid2::Polynomials::shiftedScaledLegendreValues().

Referenced by Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt().

◆ shiftedScaledIntegratedLegendreValues_dt() [2/2]

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt ( OutputValueViewType  outputValues,
const OutputValueViewType  shiftedScaledLegendreValues,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

t derivative of shifted, scaled integrated Legendre polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]shiftedScaledLegendreValues- previously computed shifted, scaled Legendre values; must have at least n entries
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See Fuentes et al. (2.20)-(2.22).

This implementation uses more memory than the one above, but depending on the application may save some computation, in that it can reuse previously computed shiftedScaledLegendreValues.

Definition at line 363 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt(), and Intrepid2::Polynomials::shiftedScaledLegendreValues().

◆ shiftedScaledIntegratedLegendreValues_dx()

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dx ( OutputValueViewType  outputValues,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

x derivative of shifted, scaled integrated Legendre polynomials L_i for i>=1, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of integrated Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. The x derivative of integrated Legendre is just Legendre; the only distinction is in the index – outputValues indices are shifted by 1 relative to shiftedScaledLegendreValues, above.

Definition at line 308 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dx().

Referenced by Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dx().

◆ shiftedScaledJacobiValues()

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledJacobiValues ( OutputValueViewType  outputValues,
double  alpha,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

Shifted, scaled Jacobi values, defined for x in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]alpha- Jacobi alpha parameter (beta is taken to be 0)
[in]n- the maximum polynomial order of Jacobi polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See Fuentes et al. (2.24).

In general, Jacobi polynomials have two parameters, alpha and beta.

Following Fuentes et al., we only consider beta=0, and use a domain for x of [0,1] (compared to the classical [-1,1]).

When alpha = 0, Jacobi coincides with Legendre.

Definition at line 392 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::shiftedScaledJacobiValues().

Referenced by Intrepid2::Polynomials::integratedJacobiValues(), Intrepid2::Polynomials::integratedJacobiValues_dt(), Intrepid2::Polynomials::integratedJacobiValues_dx(), and Intrepid2::Polynomials::shiftedScaledJacobiValues().

◆ shiftedScaledLegendreValues()

template<typename OutputValueViewType , typename ScalarType , typename ScalarTypeForScaling >
KOKKOS_INLINE_FUNCTION void Intrepid2::Polynomials::shiftedScaledLegendreValues ( OutputValueViewType  outputValues,
Intrepid2::ordinal_type  n,
ScalarType  x,
ScalarTypeForScaling  t 
)

Evaluate shifted, scaled Legendre polynomials up to order n at a specified point in [0,1].

Parameters
[out]outputValues- the view into which to place the output values (must have at least n+1 entries)
[in]n- the maximum polynomial order of Legendre polynomials to compute
[in]x- point at which to evaluate the polynomials
[in]t- scaling parameter These are defined for x in [0,1]. See equation (2.14) in Fuentes et al.

Shifted, scaled Legendre polynomials are given by P_i(x;t) = P_i(x/t) * t^i = ~P_i(2x-t;t).

Definition at line 185 of file Intrepid2_Polynomials.hpp.

References Intrepid2::Polynomials::shiftedScaledLegendreValues().

Referenced by Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues(), Intrepid2::Polynomials::shiftedScaledIntegratedLegendreValues_dt(), and Intrepid2::Polynomials::shiftedScaledLegendreValues().