Stokhos Development
|
Implementation of OneDOrthogPolyBasis via Pecos. More...
#include <Stokhos_PecosOneDOrthogPolyBasis.hpp>
Public Member Functions | |
PecosOneDOrthogPolyBasis (const Teuchos::RCP< Pecos::OrthogonalPolynomial > &pecosPoly, const std::string &name, ordinal_type p) | |
Constructor. | |
virtual | ~PecosOneDOrthogPolyBasis () |
Destructor. | |
![]() | |
OneDOrthogPolyBasis () | |
Default constructor. | |
virtual | ~OneDOrthogPolyBasis () |
Destructor. | |
virtual ordinal_type | order () const =0 |
Return order of basis (largest monomial degree ![]() | |
virtual ordinal_type | size () const =0 |
Return total size of basis (given by order() + 1). | |
virtual const Teuchos::Array< value_type > & | norm_squared () const =0 |
Return array storing norm-squared of each basis polynomial. | |
virtual const value_type & | norm_squared (ordinal_type i) const =0 |
Return norm squared of basis polynomial i . | |
virtual Teuchos::RCP< Stokhos::Dense3Tensor< ordinal_type, value_type > > | computeTripleProductTensor () const =0 |
Compute triple product tensor. | |
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > | computeSparseTripleProductTensor (ordinal_type order) const =0 |
Compute triple product tensor. | |
virtual Teuchos::RCP< Teuchos::SerialDenseMatrix< ordinal_type, value_type > > | computeDerivDoubleProductTensor () const =0 |
Compute derivative double product tensor. | |
virtual void | evaluateBases (const value_type &point, Teuchos::Array< value_type > &basis_pts) const =0 |
Evaluate each basis polynomial at given point point . | |
virtual value_type | evaluate (const value_type &point, ordinal_type order) const =0 |
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 =0 |
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 =0 |
Compute quadrature points, weights, and values of basis polynomials at given set of points points . | |
virtual ordinal_type | quadDegreeOfExactness (ordinal_type n) const =0 |
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. | |
virtual ordinal_type | coefficientGrowth (ordinal_type n) const =0 |
Evaluate coefficient growth rule for Smolyak-type bases. | |
virtual ordinal_type | pointGrowth (ordinal_type n) const =0 |
Evaluate point growth rule for Smolyak-type bases. | |
virtual LevelToOrderFnPtr | getSparseGridGrowthRule () const =0 |
Get sparse grid level_to_order mapping function. | |
virtual void | setSparseGridGrowthRule (LevelToOrderFnPtr ptr)=0 |
Set sparse grid rule. | |
Implementation of Stokhos::OneDOrthogPolyBasis methods | |
typedef OneDOrthogPolyBasis< ordinal_type, value_type >::LevelToOrderFnPtr | LevelToOrderFnPtr |
Function pointer needed for level_to_order mappings. | |
Teuchos::RCP< Pecos::OrthogonalPolynomial > | pecosPoly |
Pointer to Pecos orthgonal polynomial object. | |
std::string | name |
Name of basis. | |
ordinal_type | p |
Order of basis. | |
LevelToOrderFnPtr | sparse_grid_growth_rule |
Sparse grid growth rule (as determined by Pecos) | |
Teuchos::Array< value_type > | norms |
Norms. | |
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< Stokhos::Sparse3Tensor< ordinal_type, value_type > > | computeSparseTripleProductTensor (ordinal_type order) 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 ordinal_type | quadDegreeOfExactness (ordinal_type n) const |
virtual ordinal_type | coefficientGrowth (ordinal_type n) const |
Evaluate coefficient growth rule for Smolyak-type bases. | |
virtual ordinal_type | pointGrowth (ordinal_type n) const |
Evaluate point growth rule for Smolyak-type bases. | |
virtual LevelToOrderFnPtr | getSparseGridGrowthRule () const |
Get sparse grid level_to_order mapping function. | |
virtual void | setSparseGridGrowthRule (LevelToOrderFnPtr ptr) |
Set sparse grid rule. | |
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. | |
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 . | |
PecosOneDOrthogPolyBasis (ordinal_type p, const PecosOneDOrthogPolyBasis &basis) | |
Copy constructor with specified order. | |
Additional Inherited Members | |
![]() | |
typedef int(* | LevelToOrderFnPtr) (int level, int growth) |
Function pointer needed for level_to_order mappings. | |
Implementation of OneDOrthogPolyBasis via Pecos.
Stokhos::PecosOneDOrthogPolyBasis< ordinal_type, value_type >::PecosOneDOrthogPolyBasis | ( | const Teuchos::RCP< Pecos::OrthogonalPolynomial > & | pecosPoly, |
const std::string & | name, | ||
ordinal_type | p | ||
) |
Constructor.
name
is the name for the basis that will be displayed when printing the basis and p
is the order of the basis.
References Stokhos::PecosOneDOrthogPolyBasis< ordinal_type, value_type >::norms, Stokhos::PecosOneDOrthogPolyBasis< ordinal_type, value_type >::p, and Stokhos::PecosOneDOrthogPolyBasis< ordinal_type, value_type >::pecosPoly.
|
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 >.
|
virtual |
Evaluate coefficient growth rule for Smolyak-type bases.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Compute derivative double product tensor.
The
This method is implemented by computing
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Compute triple product tensor.
The order
.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Compute triple product tensor.
The order
.
This method is implemented by computing
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Evaluate basis polynomial given by order order
at given point point
.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
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 >.
|
virtual |
Return string name of basis.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
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 >.
|
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 >.
References Stokhos::PecosOneDOrthogPolyBasis< ordinal_type, value_type >::sparse_grid_growth_rule.
|
virtual |
Return array storing norm-squared of each basis polynomial.
Entry
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Return norm squared of basis polynomial i
.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Return order of basis (largest monomial degree
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Evaluate point growth rule for Smolyak-type bases.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Print basis to stream os
.
Reimplemented from Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Return polynomial degree of exactness for a given number of quadrature points.
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.
|
virtual |
Return total size of basis (given by order() + 1).
Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.