Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
|
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. More... | |
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. More... | |
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 . More... | |
virtual void | setQuadZeroTol (value_type tol) |
Set tolerance for zero in quad point generation. More... | |
Public Member Functions inherited from Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type > | |
OneDOrthogPolyBasis () | |
Default constructor. More... | |
virtual | ~OneDOrthogPolyBasis () |
Destructor. More... | |
virtual Teuchos::RCP < OneDOrthogPolyBasis < ordinal_type, value_type > > | cloneWithOrder (ordinal_type p) const =0 |
Clone this object with the option of building a higher order basis. More... | |
virtual void | setSparseGridGrowthRule (LevelToOrderFnPtr ptr)=0 |
Set sparse grid rule. More... | |
Protected Member Functions | |
RecurrenceBasis (const std::string &name, ordinal_type p, bool normalize, GrowthPolicy growth=SLOW_GROWTH) | |
Constructor to be called by derived classes. More... | |
RecurrenceBasis (ordinal_type p, const RecurrenceBasis &basis) | |
Copy constructor with specified order. More... | |
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 =0 |
Compute recurrence coefficients. More... | |
virtual void | setup () |
Setup basis after computing recurrence coefficients. More... | |
void | normalizeRecurrenceCoefficients (Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta, Teuchos::Array< value_type > &gamma) const |
Normalize coefficients. More... | |
Protected Attributes | |
std::string | name |
Name of basis. More... | |
ordinal_type | p |
Order of basis. More... | |
bool | normalize |
Normalize basis. More... | |
GrowthPolicy | growth |
Smolyak growth policy. More... | |
value_type | quad_zero_tol |
Tolerance for quadrature points near zero. More... | |
LevelToOrderFnPtr | sparse_grid_growth_rule |
Sparse grid growth rule (as determined by Pecos) More... | |
Teuchos::Array< value_type > | alpha |
Recurrence coefficients. More... | |
Teuchos::Array< value_type > | beta |
Recurrence coefficients. More... | |
Teuchos::Array< value_type > | delta |
Recurrence coefficients. More... | |
Teuchos::Array< value_type > | gamma |
Recurrence coefficients. More... | |
Teuchos::Array< value_type > | norms |
Norms. More... | |
Private Member Functions | |
RecurrenceBasis (const RecurrenceBasis &) | |
RecurrenceBasis & | operator= (const RecurrenceBasis &b) |
Implementation of Stokhos::OneDOrthogPolyBasis methods | |
typedef OneDOrthogPolyBasis < ordinal_type, value_type > ::LevelToOrderFnPtr | LevelToOrderFnPtr |
Function pointer needed for level_to_order mappings. More... | |
virtual ordinal_type | order () const |
Return order of basis (largest monomial degree ). More... | |
virtual ordinal_type | size () const |
Return total size of basis (given by order() + 1). More... | |
virtual const Teuchos::Array < value_type > & | norm_squared () const |
Return array storing norm-squared of each basis polynomial. More... | |
virtual const value_type & | norm_squared (ordinal_type i) const |
Return norm squared of basis polynomial i . More... | |
virtual Teuchos::RCP < Stokhos::Dense3Tensor < ordinal_type, value_type > > | computeTripleProductTensor () const |
Compute triple product tensor. More... | |
virtual Teuchos::RCP < Stokhos::Sparse3Tensor < ordinal_type, value_type > > | computeSparseTripleProductTensor (ordinal_type order) const |
Compute triple product tensor. More... | |
virtual Teuchos::RCP < Teuchos::SerialDenseMatrix < ordinal_type, value_type > > | computeDerivDoubleProductTensor () const |
Compute derivative double product tensor. More... | |
virtual void | evaluateBases (const value_type &point, Teuchos::Array< value_type > &basis_pts) const |
Evaluate each basis polynomial at given point point . More... | |
virtual value_type | evaluate (const value_type &point, ordinal_type order) const |
Evaluate basis polynomial given by order order at given point point . More... | |
virtual void | print (std::ostream &os) const |
Print basis to stream os . More... | |
virtual const std::string & | getName () const |
Return string name of basis. More... | |
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 . More... | |
virtual ordinal_type | quadDegreeOfExactness (ordinal_type n) const |
virtual ordinal_type | coefficientGrowth (ordinal_type n) const |
Evaluate coefficient growth rule for Smolyak-type bases. More... | |
virtual ordinal_type | pointGrowth (ordinal_type n) const |
Evaluate point growth rule for Smolyak-type bases. More... | |
virtual LevelToOrderFnPtr | getSparseGridGrowthRule () const |
Get sparse grid level_to_order mapping function. More... | |
virtual void | setSparseGridGrowthRule (LevelToOrderFnPtr ptr) |
Set sparse grid rule. More... | |
Additional Inherited Members | |
Public Types inherited from Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type > | |
typedef int(* | LevelToOrderFnPtr )(int level, int growth) |
Function pointer needed for level_to_order mappings. More... | |
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 the recurrence relationship becomes:
for where , , 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. Also, the quadrature rule (points and weights) is the same regardless if the polynomials are normalized. However the normalization can affect other algorithms.
Definition at line 53 of file Stokhos_RecurrenceBasis.hpp.
typedef OneDOrthogPolyBasis<ordinal_type,value_type>::LevelToOrderFnPtr Stokhos::RecurrenceBasis< ordinal_type, value_type >::LevelToOrderFnPtr |
Function pointer needed for level_to_order mappings.
Definition at line 177 of file Stokhos_RecurrenceBasis.hpp.
|
virtual |
Destructor.
Definition at line 74 of file Stokhos_RecurrenceBasisImp.hpp.
|
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, normalize
indicates whether the basis polynomials should have unit-norm, and quad_zero_tol
is used to replace any quadrature point within this tolerance with zero (which can help with duplicate removal in sparse grid calculations).
Definition at line 15 of file Stokhos_RecurrenceBasisImp.hpp.
|
protected |
Copy constructor with specified order.
Definition at line 37 of file Stokhos_RecurrenceBasisImp.hpp.
|
private |
|
virtual |
Return order of basis (largest monomial degree ).
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Definition at line 81 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Return total size of basis (given by order() + 1).
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Definition at line 89 of file Stokhos_RecurrenceBasisImp.hpp.
|
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 >.
Definition at line 97 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Return norm squared of basis polynomial i
.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Definition at line 105 of file Stokhos_RecurrenceBasisImp.hpp.
|
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 >.
Definition at line 113 of file Stokhos_RecurrenceBasisImp.hpp.
|
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 >.
Definition at line 143 of file Stokhos_RecurrenceBasisImp.hpp.
|
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 >.
Definition at line 176 of file Stokhos_RecurrenceBasisImp.hpp.
|
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 >.
Definition at line 206 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Evaluate basis polynomial given by order order
at given point point
.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Definition at line 240 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Print basis to stream os
.
Reimplemented from Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Definition at line 269 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Return string name of basis.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Definition at line 302 of file Stokhos_RecurrenceBasisImp.hpp.
|
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::LanczosPCEBasis< ordinal_type, value_type >, Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >, Stokhos::LanczosPCEBasis< OrdinalType, ValueType >, Stokhos::LanczosProjPCEBasis< OrdinalType, ValueType >, Stokhos::StieltjesPCEBasis< ordinal_type, value_type >, Stokhos::StieltjesPCEBasis< OrdinalType, ValueType >, Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >, Stokhos::MonoProjPCEBasis< ordinal_type, value_type >, Stokhos::StieltjesBasis< ordinal_type, value_type, func_type >, Stokhos::HouseTriDiagPCEBasis< OrdinalType, ValueType >, Stokhos::MonoProjPCEBasis< OrdinalType, ValueType >, Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >, and Stokhos::GaussPattersonLegendreBasis< ordinal_type, value_type >.
Definition at line 310 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Return polynomial degree of exactness for a given number of quadrature points.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Reimplemented in Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >, and Stokhos::GaussPattersonLegendreBasis< ordinal_type, value_type >.
Definition at line 410 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Evaluate coefficient growth rule for Smolyak-type bases.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Reimplemented in Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >, and Stokhos::GaussPattersonLegendreBasis< ordinal_type, value_type >.
Definition at line 418 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Evaluate point growth rule for Smolyak-type bases.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Reimplemented in Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >, and Stokhos::GaussPattersonLegendreBasis< ordinal_type, value_type >.
Definition at line 430 of file Stokhos_RecurrenceBasisImp.hpp.
|
inlinevirtual |
Get sparse grid level_to_order mapping function.
Predefined functions are: webbur::level_to_order_linear_wn Symmetric Gaussian linear growth webbur::level_to_order_linear_nn Asymmetric Gaussian linear growth webbur::level_to_order_exp_cc Clenshaw-Curtis exponential growth webbur::level_to_order_exp_gp Gauss-Patterson exponential growth webbur::level_to_order_exp_hgk Genz-Keister exponential growth webbur::level_to_order_exp_f2 Fejer-2 exponential growth
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
Definition at line 189 of file Stokhos_RecurrenceBasis.hpp.
|
inlinevirtual |
Set sparse grid rule.
Definition at line 193 of file Stokhos_RecurrenceBasis.hpp.
|
virtual |
Return recurrence coefficients defined by above formula.
Definition at line 446 of file Stokhos_RecurrenceBasisImp.hpp.
|
virtual |
Evaluate basis polynomials and their derivatives at given point point
.
Definition at line 224 of file Stokhos_RecurrenceBasisImp.hpp.
|
inlinevirtual |
Set tolerance for zero in quad point generation.
Definition at line 210 of file Stokhos_RecurrenceBasis.hpp.
|
protectedpure virtual |
Compute recurrence coefficients.
Derived classes should implement this method to compute their recurrence coefficients. n
is the number of coefficients to compute. Return value indicates whether coefficients correspond to normalized (i.e., orthonormal) polynomials.
Note: Owing to the description above, gamma
should be an array of length n+1.
Implemented in Stokhos::LanczosPCEBasis< ordinal_type, value_type >, Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >, Stokhos::LanczosPCEBasis< OrdinalType, ValueType >, Stokhos::LanczosProjPCEBasis< OrdinalType, ValueType >, Stokhos::JacobiBasis< ordinal_type, value_type >, Stokhos::StieltjesPCEBasis< ordinal_type, value_type >, Stokhos::StieltjesPCEBasis< OrdinalType, ValueType >, Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >, Stokhos::HouseTriDiagPCEBasis< OrdinalType, ValueType >, Stokhos::MonoProjPCEBasis< ordinal_type, value_type >, Stokhos::MonoProjPCEBasis< OrdinalType, ValueType >, Stokhos::StieltjesBasis< ordinal_type, value_type, func_type >, Stokhos::DiscretizedStieltjesBasis< ordinal_type, value_type >, Stokhos::HermiteBasis< ordinal_type, value_type >, Stokhos::LegendreBasis< ordinal_type, value_type >, Stokhos::HermiteBasis< OrdinalType, ValueType >, and Stokhos::LegendreBasis< OrdinalType, ValueType >.
|
protectedvirtual |
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.
Reimplemented in Stokhos::LanczosPCEBasis< ordinal_type, value_type >, Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >, Stokhos::LanczosPCEBasis< OrdinalType, ValueType >, Stokhos::LanczosProjPCEBasis< OrdinalType, ValueType >, Stokhos::StieltjesPCEBasis< ordinal_type, value_type >, Stokhos::StieltjesPCEBasis< OrdinalType, ValueType >, and Stokhos::StieltjesBasis< ordinal_type, value_type, func_type >.
Definition at line 55 of file Stokhos_RecurrenceBasisImp.hpp.
|
protected |
Normalize coefficients.
Definition at line 460 of file Stokhos_RecurrenceBasisImp.hpp.
|
private |
|
protected |
Name of basis.
Definition at line 272 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Order of basis.
Definition at line 275 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Normalize basis.
Definition at line 278 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Smolyak growth policy.
Definition at line 281 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Tolerance for quadrature points near zero.
Definition at line 284 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Sparse grid growth rule (as determined by Pecos)
Definition at line 287 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Recurrence coefficients.
Definition at line 290 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Recurrence coefficients.
Definition at line 293 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Recurrence coefficients.
Definition at line 296 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Recurrence coefficients.
Definition at line 299 of file Stokhos_RecurrenceBasis.hpp.
|
protected |
Norms.
Definition at line 302 of file Stokhos_RecurrenceBasis.hpp.