44 #include <Teuchos_RCP.hpp> 45 #include <Teuchos_ParameterList.hpp> 53 Teuchos::RCP<Teuchos::ParameterList>
buildAppParams(
int num_KL,
bool full_expansion)
55 Teuchos::RCP<Teuchos::ParameterList> appParams = Teuchos::rcp(
new Teuchos::ParameterList);
57 Teuchos::ParameterList& problemParams =
58 appParams->sublist(
"Problem");
59 problemParams.set(
"Name",
"Heat Nonlinear Source");
62 problemParams.set(
"Left BC", 0.0);
63 problemParams.set(
"Right BC", 0.0);
66 Teuchos::ParameterList& sourceParams =
67 problemParams.sublist(
"Source Function");
68 sourceParams.set(
"Name",
"Constant");
69 sourceParams.set(
"Constant Value", 1.0);
72 Teuchos::ParameterList& matParams =
73 problemParams.sublist(
"Material Function");
74 matParams.set(
"Name",
"KL Exponential Random Field");
75 matParams.set(
"Mean", 1.0);
76 matParams.set(
"Standard Deviation", 0.5);
77 matParams.set(
"Number of KL Terms", num_KL);
78 Teuchos::Array<double> a(1), b(1), L(1);
79 a[0] = 0.0; b[0] = 1.0; L[0] = 1.0;
80 matParams.set(
"Domain Lower Bounds", a);
81 matParams.set(
"Domain Upper Bounds", b);
82 matParams.set(
"Correlation Lengths", L);
85 Teuchos::ParameterList& responseParams =
86 problemParams.sublist(
"Response Functions");
87 responseParams.set(
"Number", 1);
88 responseParams.set(
"Response 0",
"Solution Average");
91 Teuchos::RCP<Teuchos::ParameterList> sgParams =
92 Teuchos::rcp(&(appParams->sublist(
"SG Parameters")),
false);
93 if (!full_expansion) {
94 sgParams->set(
"Parameter Expansion Type",
"Linear");
95 sgParams->set(
"Jacobian Expansion Type",
"Linear");
97 Teuchos::ParameterList& sgOpParams =
98 sgParams->sublist(
"SG Operator");
99 sgOpParams.set(
"Operator Method",
"Matrix Free");
100 Teuchos::ParameterList& sgPrecParams =
101 sgParams->sublist(
"SG Preconditioner");
102 sgPrecParams.set(
"Preconditioner Method",
"Mean-based");
103 sgPrecParams.set(
"Mean Preconditioner Type",
"ML");
104 Teuchos::ParameterList& precParams =
105 sgPrecParams.sublist(
"Mean Preconditioner Parameters");
106 precParams.set(
"default values",
"SA");
111 Teuchos::RCP<const Stokhos::CompletePolynomialBasis<int,double> >
buildBasis(
int num_KL,
int porder)
114 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<int,double> > > bases(num_KL);
115 for(
int i=0; i<num_KL; i++)
118 Teuchos::RCP<const Stokhos::CompletePolynomialBasis<int,double> > basis
124 Teuchos::RCP<const Stokhos::CompletePolynomialBasis<int,double> >
127 TEUCHOS_ASSERT(num_KL==
int(order.size()));
129 Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<int,double> > > bases(num_KL);
130 for(
int i=0; i<num_KL; i++)
133 Teuchos::RCP<const Stokhos::CompletePolynomialBasis<int,double> > basis
141 const Teuchos::RCP<const Epetra_Comm> & globalComm,
144 Teuchos::ParameterList parallelParams;
145 parallelParams.set(
"Number of Spatial Processors", globalComm->NumProc());
147 Teuchos::RCP<Stokhos::Sparse3Tensor<int,double> > Cijk;
149 Cijk = basis->computeTripleProductTensor();
151 Cijk = basis->computeLinearTripleProductTensor();
153 Teuchos::RCP<Stokhos::ParallelData> sg_parallel_data
157 return sg_parallel_data;
Teuchos::RCP< Stokhos::ParallelData > buildParallelData(bool full_expansion, int num_KL, const Teuchos::RCP< const Epetra_Comm > &globalComm, const Teuchos::RCP< const Stokhos::CompletePolynomialBasis< int, double > > &basis)
Teuchos::RCP< Teuchos::ParameterList > buildAppParams(int num_KL, bool full_expansion)
Multivariate orthogonal polynomial basis generated from a total-order complete-polynomial tensor prod...
Legendre polynomial basis.
Teuchos::RCP< const Stokhos::CompletePolynomialBasis< int, double > > buildBasis(int num_KL, int porder)