51 template<
class Scalar,
class UserVector>
54 std::vector<EIntrepidBurkardt> rule1D,
55 std::vector<EIntrepidGrowth> growth1D,
59 TEUCHOS_TEST_FOR_EXCEPTION((dimension!=(
int)rule1D.size()||
60 dimension!=(int)growth1D.size()),std::out_of_range,
61 ">>> ERROR (AdaptiveSparseGridInterface): Dimension mismatch for inputs.");
63 dimension_ = dimension;
67 isNormalized_ = isNormalized;
70 template<
class Scalar,
class UserVector>
72 std::vector<int> index(dimension_,1);
74 dimension_,index,rule1D_,growth1D_,isNormalized_);
78 output.Update(-1.0,output);
79 eval_cubature(output,cubRule);
82 initialDiff_ = error_indicator(output);
83 if (std::abs(initialDiff_)<INTREPID_TOL)
87 template<
class Scalar,
class UserVector>
89 std::vector<int> index) {
90 int dimension = (int)index.size();
92 for (
int i=0; i<dimension; i++) {
95 if (sum <= maxLevel_ + dimension - 1)
100 template<
class Scalar,
class UserVector>
107 std::vector<Scalar> point(dimension_,(Scalar)0.0);
109 Teuchos::RCP<UserVector> f = output.Create(); output.Update(-1.0,output);
111 typename std::map<std::vector<Scalar>,
int>::iterator it;
112 for (it=cubRule.
begin(); it!=cubRule.
end(); it++) {
114 point.assign((it->first).begin(),(it->first).end());
116 eval_integrand(*f,point);
120 output.Update(weight,*f);
124 template<
class Scalar,
class UserVector>
126 std::vector<EIntrepidBurkardt> & rule1D) {
128 rule1D.resize(rule1D_.size());
132 template<
class Scalar,
class UserVector>
134 std::vector<EIntrepidGrowth> & growth1D) {
136 growth1D.resize(growth1D_.size());
137 growth1D = growth1D_;
140 template<
class Scalar,
class UserVector>
145 template<
class Scalar,
class UserVector>
147 return isNormalized_;
150 template<
class Scalar,
class UserVector>