44#ifndef STOKHOS_PECOS_ONED_ORTHOG_POLY_BASIS_HPP
45#define STOKHOS_PECOS_ONED_ORTHOG_POLY_BASIS_HPP
48#ifdef HAVE_STOKHOS_DAKOTA
51#include "TriKota_ConfigDefs.hpp"
52#include "OrthogonalPolynomial.hpp"
59 template <
typename ordinal_type,
typename value_type>
60 class PecosOneDOrthogPolyBasis :
61 public OneDOrthogPolyBasis<ordinal_type, value_type> {
69 PecosOneDOrthogPolyBasis(
70 const Teuchos::RCP<Pecos::OrthogonalPolynomial>& pecosPoly,
71 const std::string& name, ordinal_type p);
74 virtual ~PecosOneDOrthogPolyBasis();
90 virtual const Teuchos::Array<value_type>& norm_squared()
const;
93 virtual const value_type& norm_squared(ordinal_type i)
const;
106 virtual Teuchos::RCP< Stokhos::Dense3Tensor<ordinal_type, value_type> >
107 computeTripleProductTensor()
const;
110 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> >
111 computeSparseTripleProductTensor(ordinal_type order)
const;
123 virtual Teuchos::RCP< Teuchos::SerialDenseMatrix<ordinal_type, value_type> > computeDerivDoubleProductTensor()
const;
130 virtual void evaluateBases(
const value_type& point,
131 Teuchos::Array<value_type>& basis_pts)
const;
137 virtual value_type evaluate(
const value_type& point,
138 ordinal_type order)
const;
141 virtual void print(std::ostream& os)
const;
144 virtual const std::string& getName()
const;
164 getQuadPoints(ordinal_type quad_order,
165 Teuchos::Array<value_type>& points,
166 Teuchos::Array<value_type>& weights,
167 Teuchos::Array< Teuchos::Array<value_type> >& values)
const;
173 virtual ordinal_type quadDegreeOfExactness(ordinal_type n)
const;
176 virtual ordinal_type coefficientGrowth(ordinal_type n)
const;
182 typedef typename OneDOrthogPolyBasis<ordinal_type,value_type>::LevelToOrderFnPtr LevelToOrderFnPtr;
194 virtual LevelToOrderFnPtr getSparseGridGrowthRule()
const {
195 return sparse_grid_growth_rule; }
198 virtual void setSparseGridGrowthRule(LevelToOrderFnPtr ptr) {
199 sparse_grid_growth_rule = ptr; }
211 virtual Teuchos::RCP<OneDOrthogPolyBasis<ordinal_type,value_type> > cloneWithOrder(ordinal_type p)
const;
216 virtual void evaluateBasesAndDerivatives(
const value_type& point,
217 Teuchos::Array<value_type>& vals,
218 Teuchos::Array<value_type>& derivs)
const;
223 PecosOneDOrthogPolyBasis(ordinal_type p,
224 const PecosOneDOrthogPolyBasis& basis);
229 PecosOneDOrthogPolyBasis(
const PecosOneDOrthogPolyBasis&);
232 PecosOneDOrthogPolyBasis& operator=(
const PecosOneDOrthogPolyBasis& b);
237 Teuchos::RCP<Pecos::OrthogonalPolynomial> pecosPoly;
246 LevelToOrderFnPtr sparse_grid_growth_rule;
249 Teuchos::Array<value_type> norms;
Top-level namespace for Stokhos classes and functions.