|
Intrepid2
|
Classes | |
| struct | Cubature |
| Gauss-Jacobi/Gauss-Radau-Jacobi/Gauss-Lobatto zeros and weights. More... | |
| struct | Derivative |
| Compute the Derivative Matrix and its transpose associated with the Gauss-Jacobi/Gauss-Radau-Jacobi/Gauss-Lobatto-Jacobi zeros. More... | |
| struct | InterpolationOperator |
| Interpolation Operator from Gauss-Jacobi points to an arbitrary distribution at points zm. More... | |
| struct | LagrangianInterpolant |
| Compute the value of the i th Lagrangian interpolant through the np Gauss-Jacobi/Gauss-Radau-Jacobi/Gauss-Lobatto points zgj at the arbitrary location z. More... | |
Static Public Member Functions | |
| template<typename zViewType , typename wViewType > | |
| static KOKKOS_INLINE_FUNCTION void | getCubature (zViewType z, wViewType w, const ordinal_type np, const double alpha, const double beta, const EPolyType poly) |
| template<typename DViewType , typename zViewType > | |
| static KOKKOS_INLINE_FUNCTION void | getDerivative (DViewType D, const zViewType z, const ordinal_type np, const double alpha, const double beta, const EPolyType poly) |
| template<typename zViewType > | |
| static KOKKOS_INLINE_FUNCTION zViewType::value_type | getLagrangianInterpolant (const ordinal_type i, const typename zViewType::value_type z, const zViewType zgj, const ordinal_type np, const double alpha, const double beta, const EPolyType poly) |
| template<typename imViewType , typename zgrjViewType , typename zmViewType > | |
| static KOKKOS_INLINE_FUNCTION void | getInterpolationOperator (imViewType im, const zgrjViewType zgrj, const zmViewType zm, const ordinal_type nz, const ordinal_type mz, const double alpha, const double beta, const EPolyType poly) |
| template<typename zViewType , typename polyiViewType , typename polydViewType > | |
| static KOKKOS_INLINE_FUNCTION void | JacobiPolynomial (const ordinal_type np, const zViewType z, polyiViewType poly_in, polydViewType polyd, const ordinal_type n, const double alpha, const double beta) |
Routine to calculate Jacobi polynomials, , and their first derivative, . More... | |
| template<typename zViewType , typename polydViewType > | |
| static KOKKOS_INLINE_FUNCTION void | JacobiPolynomialDerivative (const ordinal_type np, const zViewType z, polydViewType polyd, const ordinal_type n, const double alpha, const double beta) |
| Calculate the derivative of Jacobi polynomials. More... | |
| template<typename zViewType , bool DeflationEnabled = false> | |
| static KOKKOS_INLINE_FUNCTION void | JacobiZeros (zViewType z, const ordinal_type n, const double alpha, const double beta) |
Calculate the n zeros, z, of the Jacobi polynomial, i.e. . More... | |
| template<typename zViewType > | |
| static KOKKOS_INLINE_FUNCTION void | JacobiZerosPolyDeflation (zViewType z, const ordinal_type n, const double alpha, const double beta) |
| template<typename aViewType > | |
| static KOKKOS_INLINE_FUNCTION void | JacobiZerosTriDiagonal (aViewType a, const ordinal_type n, const double alpha, const double beta) |
| template<typename aViewType , typename bViewType > | |
| static KOKKOS_INLINE_FUNCTION void | JacobiZeros (aViewType a, bViewType b, const ordinal_type n, const double alpha, const double beta) |
| Zero determination through the eigenvalues of a tridiagonal matrix from the three term recursion relationship. More... | |
| template<typename dViewType , typename eViewType > | |
| static KOKKOS_INLINE_FUNCTION void | TriQL (dViewType d, eViewType e, const ordinal_type n) |
| QL algorithm for symmetric tridiagonal matrix. More... | |
| static KOKKOS_INLINE_FUNCTION double | GammaFunction (const double x) |
Calculate the Gamma function , , for integer values x and halves. More... | |
Definition at line 213 of file Intrepid2_Polylib.hpp.
|
static |
Calculate the Gamma function ,
, for integer values x and halves.
Determine the value of
using:

where
Definition at line 877 of file Intrepid2_PolylibDef.hpp.
|
static |
Routine to calculate Jacobi polynomials,
, and their first derivative,
.
and its derivative at the np points in z[i]![$ \begin{array}{rcl} P^{\alpha,\beta}_0(z) &=& 1 \\ P^{\alpha,\beta}_1(z) &=& \frac{1}{2} [ \alpha-\beta+(\alpha+\beta+2)z] \\ a^1_n P^{\alpha,\beta}_{n+1}(z) &=& (a^2_n + a^3_n z) P^{\alpha,\beta}_n(z) - a^4_n P^{\alpha,\beta}_{n-1}(z) \\ a^1_n &=& 2(n+1)(n+\alpha + \beta + 1)(2n + \alpha + \beta) \\ a^2_n &=& (2n + \alpha + \beta + 1)(\alpha^2 - \beta^2) \\ a^3_n &=& (2n + \alpha + \beta)(2n + \alpha + \beta + 1) (2n + \alpha + \beta + 2) \\ a^4_n &=& 2(n+\alpha)(n+\beta)(2n + \alpha + \beta + 2) \end{array} $](form_282.png)
![$ \begin{array}{rcl} b^1_n(z)\frac{d}{dz} P^{\alpha,\beta}_n(z)&=&b^2_n(z)P^{\alpha,\beta}_n(z) + b^3_n(z) P^{\alpha,\beta}_{n-1}(z) \hspace{2.2cm} \\ b^1_n(z) &=& (2n+\alpha + \beta)(1-z^2) \\ b^2_n(z) &=& n[\alpha - \beta - (2n+\alpha + \beta)z]\\ b^3_n(z) &=& 2(n+\alpha)(n+\beta) \end{array} $](form_283.png)
Definition at line 591 of file Intrepid2_PolylibDef.hpp.
|
static |
Calculate the derivative of Jacobi polynomials.
at the np points z.
Definition at line 678 of file Intrepid2_PolylibDef.hpp.
|
static |
Calculate the n zeros, z, of the Jacobi polynomial, i.e.
.
This routine is only valid for
and uses polynomial deflation in a Newton iteration
Definition at line 703 of file Intrepid2_PolylibDef.hpp.
|
static |
Zero determination through the eigenvalues of a tridiagonal matrix from the three term recursion relationship.
Set up a symmetric tridiagonal matrix
![$ \left [ \begin{array}{ccccc} a[0] & b[0] & & & \\ b[0] & a[1] & b[1] & & \\ 0 & \ddots & \ddots & \ddots & \\ & & \ddots & \ddots & b[n-2] \\ & & & b[n-2] & a[n-1] \end{array} \right ] $](form_288.png)
Where the coefficients a[n], b[n] come from the recurrence relation

where
and
are the Jacobi (normalized) orthogonal polynomials
( integer values and halves). Since the polynomials are orthonormalized, the tridiagonal matrix is guaranteed to be symmetric. The eigenvalues of this matrix are the zeros of the Jacobi polynomial.
|
static |
QL algorithm for symmetric tridiagonal matrix.
This subroutine is a translation of an algol procedure, num. math. 12, 377-383(1968) by martin and wilkinson, as modified in num. math. 15, 450(1970) by dubrulle. Handbook for auto. comp., vol.ii-linear algebra, 241-248(1971). This is a modified version from numerical recipes.
This subroutine finds the eigenvalues and first components of the eigenvectors of a symmetric tridiagonal matrix by the implicit QL method.
on input:
on output:
Definition at line 807 of file Intrepid2_PolylibDef.hpp.
1.8.5