44#include "Teuchos_UnitTestHarness.hpp"
45#include "Teuchos_TestingHelpers.hpp"
46#include "Teuchos_UnitTestRepository.hpp"
47#include "Teuchos_GlobalMPISession.hpp"
48#include "Teuchos_ArrayView.hpp"
56 template <
typename ordinal_type,
typename value_type>
75 template <
typename ordinal_type,
typename value_type>
79 Teuchos::FancyOStream& out) {
83 TEUCHOS_TEST_EQUALITY(basis1.
size(), basis2.
size(), out, success);
91 out <<
"coeff " << basis1.
term(i) <<
" == " << basis2.
term(i) <<
" : ";
92 bool is_equal = basis1.
term(i) == basis2.
term(i);
94 out <<
"passed" << std::endl;
96 out <<
"failed" << std::endl;
108 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<ordinal_type,value_type> > > bases(
setup.
d);
113 bases, coeff_index_set);
126 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<ordinal_type,value_type> > > bases(
setup.
d);
135 bases, coeff_index_set);
150 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<ordinal_type,value_type> > > bases(
setup.
d);
159 bases, coeff_index_set);
160 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk1 =
165 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk2 =
170 *Cijk2,
"Total Order Cijk",
173 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk1_lin=
175 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk2_lin=
181 *Cijk2_lin,
"Total Order linear Cijk",
192 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<ordinal_type,value_type> > > bases(
setup.
d);
202 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk =
209 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk_lin =
225 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<ordinal_type,value_type> > > bases(
setup.
d);
235 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk =
242 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk_lin =
252#ifdef HAVE_STOKHOS_DAKOTA
260 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<ordinal_type,value_type> > > bases(
setup.
d);
270 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk =
271 smolyak_basis.computeTripleProductTensor();
277 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk_lin =
278 smolyak_basis.computeLinearTripleProductTensor();
293 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<ordinal_type,value_type> > > bases(
setup.
d);
303 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk =
304 smolyak_basis.computeTripleProductTensor();
310 Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> > Cijk_lin =
311 smolyak_basis.computeLinearTripleProductTensor();
325 Teuchos::GlobalMPISession mpiSession(&argc, &
argv);
326 return Teuchos::UnitTestRepository::runUnitTestsFromMain(argc,
argv);
int main(int argc, char *argv[])
An anisotropic total order index set.
Legendre polynomial basis using Clenshaw-Curtis quadrature points.
Legendre polynomial basis using Gauss-Patterson quadrature points.
Legendre polynomial basis.
A multidimensional index.
virtual ordinal_type size() const =0
Return total size of basis.
Abstract base class for multivariate orthogonal polynomials generated from tensor products of univari...
virtual const MultiIndex< ordinal_type > & term(ordinal_type i) const =0
Get orders of each coordinate polynomial given an index i.
Multivariate orthogonal polynomial basis generated from a Smolyak sparse grid.
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeLinearTripleProductTensor() const
Compute linear triple product tensor where k = 0,1,..,d.
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeTripleProductTensor() const
Compute triple product tensor.
Multivariate orthogonal polynomial basis generated from a total order tensor product of univariate po...
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeLinearTripleProductTensor() const
Compute linear triple product tensor where k = 0,1,..,d.
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeTripleProductTensor() const
Compute triple product tensor.
An isotropic total order index set.
UnitTestSetup< ordinal_type, value_type > setup_type
bool testCoefficients(const Stokhos::ProductBasis< ordinal_type, value_type > &basis1, const Stokhos::ProductBasis< ordinal_type, value_type > &basis2, Teuchos::FancyOStream &out)
TEUCHOS_UNIT_TEST(Coefficients, IsotropicLinear)
bool testSparse3Tensor(const Stokhos::Sparse3Tensor< ordinal_type, scalar_type > &Cijk, const Stokhos::ProductBasis< ordinal_type, scalar_type > &basis, const scalar_type &sparse_tol, const scalar_type &rel_tol, const scalar_type &abs_tol, Teuchos::FancyOStream &out, bool linear=false)
bool compareSparse3Tensor(const Stokhos::Sparse3Tensor< ordinal_type, scalar_type > &Cijk1, const std::string &cijk1_name, const Stokhos::Sparse3Tensor< ordinal_type, scalar_type > &Cijk2, const std::string &cijk2_name, const scalar_type &rel_tol, const scalar_type &abs_tol, Teuchos::FancyOStream &out)