42 #ifndef STOKHOS_RECURRENCEBASIS_HPP 43 #define STOKHOS_RECURRENCEBASIS_HPP 84 template <
typename ordinal_type,
typename value_type>
106 virtual const Teuchos::Array<value_type>&
norm_squared()
const;
122 virtual Teuchos::RCP< Stokhos::Dense3Tensor<ordinal_type, value_type> >
137 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> >
158 Teuchos::Array<value_type>& basis_pts)
const;
168 virtual void print(std::ostream& os)
const;
171 virtual const std::string&
getName()
const;
192 Teuchos::Array<value_type>& points,
193 Teuchos::Array<value_type>& weights,
194 Teuchos::Array< Teuchos::Array<value_type> >& values)
const;
232 Teuchos::Array<value_type>&
beta,
233 Teuchos::Array<value_type>&
delta,
234 Teuchos::Array<value_type>&
gamma)
const;
238 Teuchos::Array<value_type>& vals,
239 Teuchos::Array<value_type>& derivs)
const;
274 Teuchos::Array<value_type>&
alpha,
275 Teuchos::Array<value_type>&
beta,
276 Teuchos::Array<value_type>&
delta,
277 Teuchos::Array<value_type>&
gamma)
const = 0;
284 virtual void setup();
288 Teuchos::Array<value_type>&
alpha,
289 Teuchos::Array<value_type>&
beta,
290 Teuchos::Array<value_type>&
delta,
291 Teuchos::Array<value_type>&
gamma)
const;
325 Teuchos::Array<value_type>
beta;
Teuchos::Array< value_type > delta
Recurrence coefficients.
virtual value_type evaluate(const value_type &point, ordinal_type order) const
Evaluate basis polynomial given by order order at given point point.
value_type quad_zero_tol
Tolerance for quadrature points near zero.
virtual ordinal_type pointGrowth(ordinal_type n) const
Evaluate point growth rule for Smolyak-type bases.
Teuchos::Array< value_type > norms
Norms.
Implementation of OneDOrthogPolyBasis based on the general three-term recurrence relationship: for ...
std::string name
Name of basis.
virtual ordinal_type coefficientGrowth(ordinal_type n) const
Evaluate coefficient growth rule for Smolyak-type bases.
virtual ~RecurrenceBasis()
Destructor.
virtual ordinal_type size() const
Return total size of basis (given by order() + 1).
Teuchos::Array< value_type > beta
Recurrence coefficients.
GrowthPolicy
Enumerated type for determining Smolyak growth policies.
virtual void setQuadZeroTol(value_type tol)
Set tolerance for zero in quad point generation.
Teuchos::Array< value_type > alpha
Recurrence coefficients.
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 const Teuchos::Array< value_type > & norm_squared() const
Return array storing norm-squared of each basis polynomial.
virtual Teuchos::RCP< Teuchos::SerialDenseMatrix< ordinal_type, value_type > > computeDerivDoubleProductTensor() const
Compute derivative double product tensor.
virtual void print(std::ostream &os) const
Print basis to stream os.
OneDOrthogPolyBasis< ordinal_type, value_type >::LevelToOrderFnPtr LevelToOrderFnPtr
Function pointer needed for level_to_order mappings.
virtual const std::string & getName() const
Return string name of basis.
virtual LevelToOrderFnPtr getSparseGridGrowthRule() const
Get sparse grid level_to_order mapping function.
Top-level namespace for Stokhos classes and functions.
virtual Teuchos::RCP< Stokhos::Dense3Tensor< ordinal_type, value_type > > computeTripleProductTensor() const
Compute triple product tensor.
LevelToOrderFnPtr sparse_grid_growth_rule
Sparse grid growth rule (as determined by Pecos)
virtual void setup()
Setup basis after computing recurrence coefficients.
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.
virtual ordinal_type order() const
Return order of basis (largest monomial degree ).
Abstract base class for 1-D orthogonal polynomials.
RecurrenceBasis & operator=(const RecurrenceBasis &b)
ordinal_type p
Order of basis.
Teuchos::Array< value_type > gamma
Recurrence coefficients.
virtual void setSparseGridGrowthRule(LevelToOrderFnPtr ptr)
Set sparse grid rule.
bool normalize
Normalize basis.
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 Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeSparseTripleProductTensor(ordinal_type order) const
Compute triple product tensor.
RecurrenceBasis(const std::string &name, ordinal_type p, bool normalize, GrowthPolicy growth=SLOW_GROWTH)
Constructor to be called by derived classes.
GrowthPolicy growth
Smolyak growth policy.
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.
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 ordinal_type quadDegreeOfExactness(ordinal_type n) const
virtual void evaluateBases(const value_type &point, Teuchos::Array< value_type > &basis_pts) const
Evaluate each basis polynomial at given point point.