Stokhos Development
Public Member Functions | Protected Member Functions
Stokhos::JacobiBasis< ordinal_type, value_type > Class Template Reference

Jacobi polynomial basis. More...

#include <Stokhos_JacobiBasis.hpp>

Inheritance diagram for Stokhos::JacobiBasis< ordinal_type, value_type >:
Inheritance graph
[legend]
Collaboration diagram for Stokhos::JacobiBasis< ordinal_type, value_type >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 JacobiBasis (ordinal_type p, value_type alphaIndex, value_type betaIndex, bool normalize=false)
 Constructor.
 ~JacobiBasis ()
 Destructor.
Implementation of Stokhos::OneDOrthogPolyBasis methods
virtual Teuchos::RCP
< OneDOrthogPolyBasis
< ordinal_type, value_type > > 
cloneWithOrder (ordinal_type p) const
 Clone this object with the option of building a higher order basis.

Protected Member Functions

 JacobiBasis (ordinal_type p, const JacobiBasis &basis)
 Copy constructor with specified order.
Implementation of Stokhos::RecurrenceBasis methods
virtual bool computeRecurrenceCoefficients (ordinal_type n, Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta, Teuchos::Array< value_type > &gamma) const
 Compute recurrence coefficients.

Detailed Description

template<typename ordinal_type, typename value_type>
class Stokhos::JacobiBasis< ordinal_type, value_type >

Jacobi polynomial basis.

Jacobi polynomials are defined by the recurrence relationship

\[ A_k \psi_{k+1}(x) = \left(B_k-x C_k\right) \psi_k(x) - D_k \psi_{k-1}(x)\right) \]

with $\psi_{-1}(x) = 0$ and $\psi_{0}(x) = 1$ where

\[ A_n = 2 (n+1)(n+\alpha+\beta+1)(2 n + \alpha+\beta) \]

\[ B_n = -(2n+\alpha+\beta+1)(\alpha^2 - \beta^2) \]

\[ C_n = (2n+\alpha+\beta)_3 \]

\[ D_n = 2(n+\alpha)(n+\beta)(2n+\alpha+\beta+2). \]

In Stokhos notation we have

\[ \gamma_{k+1}=1/A_{k} \]

\[ \alpha_k = B_k \] \f[ \delta_k = C_k \] \f[ \beta_k = D_k. \] The corresponding density function is \f[ \rho(x) = w_{\alpha_,\beta}(1-x)^\alpha (1+x)^\beta, \quad x\in[-1,1] \]

with

\[ w_{\alpha,\beta}^{-1}=\frac{2^{\alpha+\beta+1}}{\alpha+\beta+1} \frac{\Gamma(\alpha+1)\Gamma(\beta+1)}{\Gamma(\alpha+\beta+1)}. \]

This class implements computeRecurrenceCoefficients() using the above formula.

Author:
Kevin Long (kevin.long@ttu.edu)

Constructor & Destructor Documentation

template<typename ordinal_type , typename value_type >
Stokhos::JacobiBasis< ordinal_type, value_type >::JacobiBasis ( ordinal_type  p,
value_type  alphaIndex,
value_type  betaIndex,
bool  normalize = false 
)

Constructor.

Parameters:
porder of the basis
normalizewhether polynomials should be given unit norm

Member Function Documentation

template<typename ordinal_type , typename value_type >
Teuchos::RCP< Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type > > Stokhos::JacobiBasis< ordinal_type, value_type >::cloneWithOrder ( ordinal_type  p) const [virtual]

Clone this object with the option of building a higher order basis.

This method is following the Prototype pattern (see Design Pattern's textbook). The slight variation is that it allows the order of the polynomial to be modified, otherwise an exact copy is formed. The use case for this is creating basis functions for column indices in a spatially varying adaptive refinement context.

Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator