|
Stokhos Development
|
Implementation of OneDOrthogPolyBasis based on the general three-term recurrence relationship:
for
where
,
, and
.
More...
#include <Stokhos_RecurrenceBasis.hpp>


Public Member Functions | |
| virtual | ~RecurrenceBasis () |
| Destructor. | |
| virtual void | getRecurrenceCoefficients (Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta, Teuchos::Array< value_type > &gamma) const |
| Return recurrence coefficients defined by above formula. | |
| virtual void | evaluateBasesAndDerivatives (const value_type &point, Teuchos::Array< value_type > &vals, Teuchos::Array< value_type > &derivs) const |
Evaluate basis polynomials and their derivatives at given point point. | |
Implementation of Stokhos::OneDOrthogPolyBasis methods | |
| virtual ordinal_type | order () const |
Return order of basis (largest monomial degree ). | |
| virtual ordinal_type | size () const |
| Return total size of basis (given by order() + 1). | |
| virtual const Teuchos::Array < value_type > & | norm_squared () const |
| Return array storing norm-squared of each basis polynomial. | |
| virtual const value_type & | norm_squared (ordinal_type i) const |
Return norm squared of basis polynomial i. | |
| virtual Teuchos::RCP < Stokhos::Dense3Tensor < ordinal_type, value_type > > | computeTripleProductTensor () const |
| Compute triple product tensor. | |
| virtual Teuchos::RCP < Teuchos::SerialDenseMatrix < ordinal_type, value_type > > | computeDerivDoubleProductTensor () const |
| Compute derivative double product tensor. | |
| virtual void | evaluateBases (const value_type &point, Teuchos::Array< value_type > &basis_pts) const |
Evaluate each basis polynomial at given point point. | |
| virtual value_type | evaluate (const value_type &point, ordinal_type order) const |
Evaluate basis polynomial given by order order at given point point. | |
| virtual void | print (std::ostream &os) const |
Print basis to stream os. | |
| virtual const std::string & | getName () const |
| Return string name of basis. | |
| virtual void | getQuadPoints (ordinal_type quad_order, Teuchos::Array< value_type > &points, Teuchos::Array< value_type > &weights, Teuchos::Array< Teuchos::Array< value_type > > &values) const |
Compute quadrature points, weights, and values of basis polynomials at given set of points points. | |
| virtual int | getSparseGridRule () const |
Get sparse grid rule number as defined by Dakota's webbur package. | |
| virtual int | getSparseGridGrowthRule () const |
Get sparse grid rule growth rule as defined by Dakota's webbur package. | |
Protected Member Functions | |
| RecurrenceBasis (const std::string &name, ordinal_type p, bool normalize) | |
| Constructor to be called by derived classes. | |
| virtual void | computeRecurrenceCoefficients (ordinal_type n, Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta) const =0 |
| Compute recurrence coefficients. | |
| void | setup () |
| Setup basis after computing recurrence coefficients. | |
Protected Attributes | |
| std::string | name |
| Name of basis. | |
| ordinal_type | p |
| Order of basis. | |
| bool | normalize |
| Normalize basis. | |
| Teuchos::Array< value_type > | alpha |
Recurrence coefficients. | |
| Teuchos::Array< value_type > | beta |
Recurrence coefficients. | |
| Teuchos::Array< value_type > | delta |
Recurrence coefficients. | |
| Teuchos::Array< value_type > | gamma |
Recurrence coefficients. | |
| Teuchos::Array< value_type > | norms |
| Norms. | |
Implementation of OneDOrthogPolyBasis based on the general three-term recurrence relationship:
for
where
,
, and
.
Derived classes implement the recurrence relationship by implementing computeRecurrenceCoefficients(). If normalize = true in the constructor, then
, otherwise
. Note that a three term recurrence can always be defined with
in which case the polynomials are monic. However typical normalizations of some polynomial families (see Stokhos::LegendreBasis) require the extra terms.
| Stokhos::RecurrenceBasis< ordinal_type, value_type >::RecurrenceBasis | ( | const std::string & | name, |
| ordinal_type | p, | ||
| bool | normalize | ||
| ) | [protected] |
Constructor to be called by derived classes.
name is the name for the basis that will be displayed when printing the basis, p is the order of the basis, and normalize indicates whether the basis polynomials should have unit-norm.
| Teuchos::RCP< Teuchos::SerialDenseMatrix< ordinal_type, value_type > > Stokhos::RecurrenceBasis< ordinal_type, value_type >::computeDerivDoubleProductTensor | ( | ) | const [virtual] |
Compute derivative double product tensor.
The
entry of the tensor
is given by
where
represents basis polynomial
and
where
is the order of the basis.
This method is implemented by computing
using Gaussian quadrature.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
| virtual void Stokhos::RecurrenceBasis< ordinal_type, value_type >::computeRecurrenceCoefficients | ( | ordinal_type | n, |
| Teuchos::Array< value_type > & | alpha, | ||
| Teuchos::Array< value_type > & | beta, | ||
| Teuchos::Array< value_type > & | delta | ||
| ) | const [protected, pure virtual] |
Compute recurrence coefficients.
Derived classes should implement this method to compute their recurrence coefficients. n is the number of coefficients to compute. Derived classes should call this method in their constructor, followed be setup() to fully setup the basis. The method is also called by getQuadPoints() if a quadrature order greater than twice the polynomial order is requested.
Implemented in Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >, Stokhos::DiscretizedStieltjesBasis< ordinal_type, value_type >, Stokhos::HermiteBasis< ordinal_type, value_type >, Stokhos::JacobiBasis< ordinal_type, value_type >, Stokhos::LegendreBasis< ordinal_type, value_type >, and Stokhos::StieltjesPCEBasis< ordinal_type, value_type >.
| Teuchos::RCP< Stokhos::Dense3Tensor< ordinal_type, value_type > > Stokhos::RecurrenceBasis< ordinal_type, value_type >::computeTripleProductTensor | ( | ) | const [virtual] |
Compute triple product tensor.
The
entry of the tensor
is given by
where
represents basis polynomial
and
where
is size()-1 and
where
is the supplied order.
This method is implemented by computing
using Gaussian quadrature.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
| void Stokhos::RecurrenceBasis< ordinal_type, value_type >::evaluateBases | ( | const value_type & | point, |
| Teuchos::Array< value_type > & | basis_pts | ||
| ) | const [virtual] |
Evaluate each basis polynomial at given point point.
Size of returned array is given by size(), and coefficients are ordered from order 0 up to order order().
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
| void Stokhos::RecurrenceBasis< ordinal_type, value_type >::getQuadPoints | ( | ordinal_type | quad_order, |
| Teuchos::Array< value_type > & | points, | ||
| Teuchos::Array< value_type > & | weights, | ||
| Teuchos::Array< Teuchos::Array< value_type > > & | values | ||
| ) | const [virtual] |
Compute quadrature points, weights, and values of basis polynomials at given set of points points.
quad_order specifies the order to which the quadrature should be accurate, not the number of quadrature points. The number of points is given by (quad_order + 1) / 2. Note however the passed arrays do NOT need to be sized correctly on input as they will be resized appropriately.
The quadrature points and weights are computed from the three-term recurrence by solving a tri-diagional symmetric eigenvalue problem (see Gene H. Golub and John H. Welsch, "Calculation of Gauss Quadrature Rules", Mathematics of Computation, Vol. 23, No. 106 (Apr., 1969), pp. 221-230).
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Reimplemented in Stokhos::StieltjesPCEBasis< ordinal_type, value_type >.
| virtual int Stokhos::RecurrenceBasis< ordinal_type, value_type >::getSparseGridGrowthRule | ( | ) | const [inline, virtual] |
Get sparse grid rule growth rule as defined by Dakota's webbur package.
This method is needed for building Smolyak sparse grids out of this basis. Returns growth rule appropriate for Gaussian quadrature points.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Reimplemented in Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >.
| virtual int Stokhos::RecurrenceBasis< ordinal_type, value_type >::getSparseGridRule | ( | ) | const [inline, virtual] |
Get sparse grid rule number as defined by Dakota's webbur package.
This method is needed for building Smolyak sparse grids out of this basis. A rule number of 10 is not defined by the webbur package, and this rule number is used internally by Stokhos::SparseGridQuadrature to pass an arbitrary one-dimensional basis to that package.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Reimplemented in Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >, Stokhos::HermiteBasis< ordinal_type, value_type >, and Stokhos::LegendreBasis< ordinal_type, value_type >.
| const Teuchos::Array< value_type > & Stokhos::RecurrenceBasis< ordinal_type, value_type >::norm_squared | ( | ) | const [virtual] |
Return array storing norm-squared of each basis polynomial.
Entry
of returned array is given by
for
where
is given by order().
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
| void Stokhos::RecurrenceBasis< ordinal_type, value_type >::setup | ( | ) | [protected] |
Setup basis after computing recurrence coefficients.
Derived classes should call this method after computing their recurrence coefficients in their constructor to finish setting up the basis.
1.7.4