44#ifndef STOKHOS_SPARSEGRIDQUADRATURE
45#define STOKHOS_SPARSEGRIDQUADRATURE
48#ifdef HAVE_STOKHOS_DAKOTA
52#include "Teuchos_RCP.hpp"
53#include "pecos_global_defs.hpp"
66 template <
typename ordinal_type,
typename value_type>
67 class SparseGridQuadrature :
public Quadrature<ordinal_type,value_type> {
78 const Teuchos::RCP<
const ProductBasis<ordinal_type,value_type> >& product_basis,
79 ordinal_type sparse_grid_level = 0,
80 value_type duplicate_tol = 1.0e-12,
81 ordinal_type growth_rate = Pecos::SLOW_RESTRICTED_GROWTH);
84 virtual ~SparseGridQuadrature() {}
87 virtual ordinal_type size()
const {
return quad_weights.size(); }
94 virtual const Teuchos::Array< Teuchos::Array<value_type> >&
95 getQuadPoints()
const;
101 virtual const Teuchos::Array<value_type>&
102 getQuadWeights()
const;
109 virtual const Teuchos::Array< Teuchos::Array<value_type> > &
110 getBasisAtQuadPoints()
const;
113 virtual std::ostream& print(std::ostream& os)
const;
118 SparseGridQuadrature(
const SparseGridQuadrature&);
121 SparseGridQuadrature& operator=(
const SparseGridQuadrature& b);
123 static void getMyPoints(
int order,
int dim,
double x[] );
125 static void getMyWeights(
int order,
int dim,
double w[] );
130 Teuchos::Array< Teuchos::RCP<const OneDOrthogPolyBasis<ordinal_type,value_type> > > coordinate_bases;
133 Teuchos::Array< Teuchos::Array<value_type> > quad_points;
136 Teuchos::Array<value_type> quad_weights;
139 Teuchos::Array< Teuchos::Array<value_type> > quad_values;
142 static SparseGridQuadrature *sgq;
Top-level namespace for Stokhos classes and functions.