Stokhos  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type > Class Template Reference

Legendre polynomial basis using Clenshaw-Curtis quadrature points. More...

#include <Stokhos_ClenshawCurtisLegendreBasis.hpp>

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

Public Member Functions

 ClenshawCurtisLegendreBasis (ordinal_type p, bool normalize=false, bool isotropic=false)
 Constructor. More...
 
 ~ClenshawCurtisLegendreBasis ()
 Destructor.
 
Implementation of Stokhos::OneDOrthogPolyBasis methods
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 Teuchos::RCP
< OneDOrthogPolyBasis
< ordinal_type, value_type > > 
cloneWithOrder (ordinal_type p) const
 Clone this object with the option of building a higher order basis. More...
 
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.
 
- Public Member Functions inherited from Stokhos::LegendreBasis< ordinal_type, value_type >
 LegendreBasis (ordinal_type p, bool normalize=false, GrowthPolicy growth=SLOW_GROWTH)
 Constructor. More...
 
 ~LegendreBasis ()
 Destructor.
 
- Public Member Functions inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
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.
 
virtual void setQuadZeroTol (value_type tol)
 Set tolerance for zero in quad point generation.
 
virtual ordinal_type order () const
 Return order of basis (largest monomial degree $P$).
 
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. More...
 
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. 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.
 
virtual void print (std::ostream &os) const
 Print basis to stream os.
 
virtual const std::string & getName () const
 Return string name of basis.
 
virtual LevelToOrderFnPtr getSparseGridGrowthRule () const
 Get sparse grid level_to_order mapping function. More...
 
virtual void setSparseGridGrowthRule (LevelToOrderFnPtr ptr)
 Set sparse grid rule.
 
- Public Member Functions inherited from Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >
 OneDOrthogPolyBasis ()
 Default constructor.
 
virtual ~OneDOrthogPolyBasis ()
 Destructor.
 
virtual void setSparseGridGrowthRule (LevelToOrderFnPtr ptr)=0
 Set sparse grid rule.
 

Protected Member Functions

 ClenshawCurtisLegendreBasis (ordinal_type p, const ClenshawCurtisLegendreBasis &basis)
 Copy constructor with specified order.
 
- Protected Member Functions inherited from Stokhos::LegendreBasis< ordinal_type, value_type >
 LegendreBasis (ordinal_type p, const LegendreBasis &basis)
 Copy constructor with specified order.
 
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.
 
- Protected Member Functions inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
 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.
 
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.
 

Protected Attributes

bool isotropic
 Flag determining if expansion is iostropic (same basis in every dim)
 
- Protected Attributes inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
std::string name
 Name of basis.
 
ordinal_type p
 Order of basis.
 
bool normalize
 Normalize basis.
 
GrowthPolicy growth
 Smolyak growth policy.
 
value_type quad_zero_tol
 Tolerance for quadrature points near zero.
 
LevelToOrderFnPtr sparse_grid_growth_rule
 Sparse grid growth rule (as determined by Pecos)
 
Teuchos::Array< value_type > alpha
 Recurrence $\alpha$ coefficients.
 
Teuchos::Array< value_type > beta
 Recurrence $\beta$ coefficients.
 
Teuchos::Array< value_type > delta
 Recurrence $\delta$ coefficients.
 
Teuchos::Array< value_type > gamma
 Recurrence $\gamma$ coefficients.
 
Teuchos::Array< value_type > norms
 Norms.
 

Additional Inherited Members

- Public Types inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
typedef OneDOrthogPolyBasis
< ordinal_type, value_type >
::LevelToOrderFnPtr 
LevelToOrderFnPtr
 Function pointer needed for level_to_order mappings.
 
- 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.
 

Detailed Description

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

Legendre polynomial basis using Clenshaw-Curtis quadrature points.

This is the same as Stokhos::LegendreBasis, but uses Clenshaw-Curtis quadrature points (instead of Gauss-Legendre).

Constructor & Destructor Documentation

template<typename ordinal_type , typename value_type >
Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >::ClenshawCurtisLegendreBasis ( ordinal_type  p,
bool  normalize = false,
bool  isotropic = false 
)

Constructor.

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

References Stokhos::RecurrenceBasis< ordinal_type, value_type >::setSparseGridGrowthRule().

Member Function Documentation

template<typename ordinal_type , typename value_type >
Teuchos::RCP< Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type > > Stokhos::ClenshawCurtisLegendreBasis< 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.

Reimplemented from Stokhos::LegendreBasis< ordinal_type, value_type >.

template<typename ordinal_type , typename value_type >
void Stokhos::ClenshawCurtisLegendreBasis< 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 which for Clenshaw-Curtis points is equal to the number of points

Reimplemented from Stokhos::RecurrenceBasis< ordinal_type, value_type >.

template<typename ordinal_type , typename value_type >
ordinal_type Stokhos::ClenshawCurtisLegendreBasis< ordinal_type, value_type >::quadDegreeOfExactness ( ordinal_type  n) const
virtual

Return polynomial degree of exactness for a given number of quadrature points.

Reimplemented from Stokhos::RecurrenceBasis< ordinal_type, value_type >.


The documentation for this class was generated from the following files: