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

Generates three-term recurrence using the Discretized Stieltjes procedure. More...

#include <Stokhos_DiscretizedStieltjesBasis.hpp>

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

List of all members.

Public Member Functions

 DiscretizedStieltjesBasis (const std::string &name, const ordinal_type &p, value_type(*weightFn)(const value_type &), const value_type &leftEndPt, const value_type &rightEndPt, bool normalize)
 Constructor.
 ~DiscretizedStieltjesBasis ()
 Destructor.
value_type eval_inner_product (const ordinal_type &order1, const ordinal_type &order2) const
 Evaluate inner product of two basis functions to test orthogonality.
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

value_type evaluateRecurrence (const value_type &point, ordinal_type order, const Teuchos::Array< value_type > &alpha, const Teuchos::Array< value_type > &beta) const
 Evaluate 3-term recurrence formula using supplied coefficients.
value_type evaluateWeight (const value_type &x) const
 Evaluates the scaled weight function.
value_type expectedValue_tJ_nsquared (const ordinal_type &order, const Teuchos::Array< value_type > &alpha, const Teuchos::Array< value_type > &beta) const
 Approximates $\langle t\psi_k(t) \rangle$ where $k$ = order.
value_type expectedValue_J_nsquared (const ordinal_type &order, const Teuchos::Array< value_type > &alpha, const Teuchos::Array< value_type > &beta) const
 Approximates $\langle \psi_k(t) \rangle$ where $k$ = order.
 DiscretizedStieltjesBasis (const ordinal_type &p, const DiscretizedStieltjesBasis &basis)
 Copy constructor with specified order.
Implementation of Stokhos::RecurrenceBasis methods
virtual void computeRecurrenceCoefficients (ordinal_type n, Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta) const
 Compute recurrence coefficients.

Protected Attributes

value_type scaleFactor
 Scale for the weight.
const value_type leftEndPt_
 Left end point of domain.
const value_type rightEndPt_
 Right end point of domain.
value_type(* weightFn_ )(const value_type &)
 Weight function.
Teuchos::Array< value_type > quad_points
 Quadrature points for discretized stieltjes procedure.
Teuchos::Array< value_type > quad_weights
 Quadrature points for discretized stieltjes procedure.
Teuchos::Array< Teuchos::Array
< value_type > > 
quad_values
 Quadrature values for discretized stieltjes procedure.

Detailed Description

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

Generates three-term recurrence using the Discretized Stieltjes procedure.

Class generates an orthogonal polynomial basis for a given weight function and interval. The Discretized Stiltjes procedure described in "On the Calculation of Rys Polynomials and Quadratures", Robin P. Sagar, Vedene H. Smith is used to generate the recurrence coefficients.

Please be aware that this method is not fullproof and that it appears to encounter trouble with strongly singular weights since Gaussan quadrature is used to compute the relevant integrals. For 'nice' weight functions the method seems relatively robust.


Constructor & Destructor Documentation

template<typename ordinal_type , typename value_type >
Stokhos::DiscretizedStieltjesBasis< ordinal_type, value_type >::DiscretizedStieltjesBasis ( const std::string &  name,
const ordinal_type &  p,
value_type(*)(const value_type &)  weightFn,
const value_type &  leftEndPt,
const value_type &  rightEndPt,
bool  normalize 
)

Constructor.

Parameters:
namename of the basis displayed when printing
porder of the basis
weightFnfunction pointer defining weight function
leftEndPtleft end point of the domain of the weight function
rightEndPtright end point of the domain of the weight function
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::DiscretizedStieltjesBasis< 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 >.

Reimplemented in Stokhos::RysBasis< ordinal_type, value_type >.


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