59 template <
typename ordinal_type,
typename value_type>
68 = basisParams.template get< Teuchos::RCP< const OrthogPolyBasis<ordinal_type,value_type> > >(
"Stochastic Galerkin Basis",
Teuchos::null);
73 bool isotropic = basisParams.
get(
"Isotropic",
false);
78 bases[i] = create1DBasis(basisParams);
80 std::ostringstream ss;
83 bases[i] = create1DBasis(bp);
87 std::string type = basisParams.
get(
"Multivariate Type",
"Complete");
88 value_type drop = basisParams.
get(
"Cijk Drop Tolerance", 1e-12);
89 std::string ordering = basisParams.
get(
"Coefficient Ordering",
"Total");
91 if (type ==
"Complete") {
92 bool use_old = basisParams.
get(
"Use Old Cijk Algorithm",
false);
95 bases, drop, use_old));
98 else if (type ==
"Tensor Product") {
99 if (ordering ==
"Total")
102 else if (ordering ==
"Lexicographical")
108 std::endl <<
"Invalid coefficient ordering " << ordering << std::endl);
111 else if (type ==
"Total Order") {
112 if (ordering ==
"Total")
115 else if (ordering ==
"Lexicographical")
121 std::endl <<
"Invalid coefficient ordering " << ordering << std::endl);
124 else if (type ==
"Smolyak") {
125 ordinal_type order = basisParams.template get<ordinal_type>(
"Order");
127 if (ordering ==
"Total")
130 else if (ordering ==
"Lexicographical")
136 std::endl <<
"Invalid coefficient ordering " << ordering << std::endl);
142 std::endl <<
"Invalid multivariate basis type " << type << std::endl);
145 basisParams.
set(
"Stochastic Galerkin Basis", basis);
150 template <
typename ordinal_type,
typename value_type>
157 std::string type = bp.
get(
"Type",
"Legendre");
159 bool normalize = bp.
get(
"Normalize",
false);
160 bool isotropic = bp.
get(
"Isotropic",
false);
162 std::string growth_string = bp.
get(
"Growth Policy",
"Slow");
164 if (growth_string ==
"Slow")
166 else if (growth_string ==
"Moderate")
171 std::endl <<
"Invalid growth policy " << growth_string << std::endl);
173 if (type ==
"Legendre")
175 else if (type ==
"Clenshaw-Curtis") {
178 else if (type ==
"Gauss-Patterson") {
181 else if (type ==
"Hermite")
183 else if (type ==
"Jacobi") {
188 else if (type ==
"Rys") {
195 std::endl <<
"Invalid basis type " << type << std::endl);
Hermite polynomial basis.
Multivariate orthogonal polynomial basis generated from a total order tensor product of univariate po...
T & get(ParameterList &l, const std::string &name)
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
GrowthPolicy
Enumerated type for determining Smolyak growth policies.
RCP< ParameterList > sublist(const RCP< ParameterList > ¶mList, const std::string &name, bool mustAlreadyExist=false, const std::string &docString="")
A comparison functor implementing a strict weak ordering based total-order ordering, recursive on the dimension.
Legendre polynomial basis using Gauss-Patterson quadrature points.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Multivariate orthogonal polynomial basis generated from a total-order complete-polynomial tensor prod...
Multivariate orthogonal polynomial basis generated from a Smolyak sparse grid.
Multivariate orthogonal polynomial basis generated from a tensor product of univariate polynomials...
Legendre polynomial basis.
An isotropic total order index set.
Legendre polynomial basis using Clenshaw-Curtis quadrature points.
static Teuchos::RCP< const Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type > > create1DBasis(Teuchos::ParameterList ¶ms)
Generate 1-D basis.
A comparison functor implementing a strict weak ordering based lexographic ordering.
static Teuchos::RCP< const Stokhos::OrthogPolyBasis< ordinal_type, value_type > > create(Teuchos::ParameterList &sgParams)
Generate multivariate basis.