106 std::vector<Real> q_vector = {0, 0.5, 3, 9, 99, 99};
107 std::vector<std::vector<Real>> data =
sobolidx(q_vector, 100000);
113 std::vector<Real> sobol = calc.compute(data,
false);
116 EXPECT_NEAR(sobol[0], 0.585817378, 1e-2);
117 EXPECT_NEAR(sobol[1], 0.261775886, 1e-2);
118 EXPECT_NEAR(sobol[2], 0.036806879, 1e-2);
119 EXPECT_NEAR(sobol[3], 0.005850546, 1e-2);
120 EXPECT_NEAR(sobol[4], 0.000059171, 1e-2);
121 EXPECT_NEAR(sobol[5], 0.000058227, 1e-2);
124 EXPECT_NEAR(sobol[6], 0.686102012, 1e-2);
125 EXPECT_NEAR(sobol[7], 0.349098045, 1e-2);
126 EXPECT_NEAR(sobol[8], 0.044801021, 1e-2);
127 EXPECT_NEAR(sobol[9], 0.002512902, 1e-2);
128 EXPECT_NEAR(sobol[10], -0.007565606, 1e-2);
129 EXPECT_NEAR(sobol[11], -0.007483272, 1e-2);
132 EXPECT_NEAR(sobol[12], 0.081273974, 1e-2);
133 EXPECT_NEAR(sobol[13], 0.006920649, 1e-2);
134 EXPECT_NEAR(sobol[14], 0.006375308, 1e-1);
135 EXPECT_NEAR(sobol[15], -0.004536444, 1e-1);
136 EXPECT_NEAR(sobol[16], -0.001670717, 1e-2);
137 EXPECT_NEAR(sobol[17], -0.000131402, 1e-2);
138 EXPECT_NEAR(sobol[18], -0.006650540, 1e-2);
139 EXPECT_NEAR(sobol[19], -0.001642939, 1e-2);
140 EXPECT_NEAR(sobol[20], -0.000117414, 1e-2);
141 EXPECT_NEAR(sobol[21], 0.000029383, 1e-2);
142 EXPECT_NEAR(sobol[22], -0.006641290, 1e-2);
143 EXPECT_NEAR(sobol[23], -0.001713718, 1e-2);
144 EXPECT_NEAR(sobol[24], -0.000123219, 1e-2);
145 EXPECT_NEAR(sobol[25], 0.000027036, 1e-2);
146 EXPECT_NEAR(sobol[26], -0.000000386, 1e-2);
157 MooseEnum boot(
"percentile",
"percentile");
161 std::vector<Real> q_vector = {0, 0.5, 3, 9, 99, 99};
162 std::vector<std::vector<Real>> data =
sobolidx(q_vector, 1024);
165 const std::vector<Real> sobol = calc.compute(data,
false);
167 const std::vector<std::vector<Real>> sobol_ci = boot_calc->compute(data,
false);
170 EXPECT_NEAR(sobol[0], 0.595124392, 1e-2);
171 EXPECT_NEAR(sobol_ci[0][0], 0.518401934, 1e-2);
172 EXPECT_NEAR(sobol_ci[1][0], 0.694457878, 1e-2);
174 EXPECT_NEAR(sobol[1], 0.251630423, 1e-2);
175 EXPECT_NEAR(sobol_ci[0][1], 0.212776416, 1e-2);
176 EXPECT_NEAR(sobol_ci[1][1], 0.302403418, 1e-2);
178 EXPECT_NEAR(sobol[2], 0.033508970, 1e-2);
179 EXPECT_NEAR(sobol_ci[0][2], 0.028092482, 1e-2);
180 EXPECT_NEAR(sobol_ci[1][2], 0.040577359, 1e-2);
182 EXPECT_NEAR(sobol[3], 0.005244906, 1e-2);
183 EXPECT_NEAR(sobol_ci[0][3], 0.004349295, 1e-2);
184 EXPECT_NEAR(sobol_ci[1][3], 0.006388217, 1e-2);
186 EXPECT_NEAR(sobol[4], 0.000055256, 1e-2);
187 EXPECT_NEAR(sobol_ci[0][4], 0.000046050, 1e-2);
188 EXPECT_NEAR(sobol_ci[1][4], 0.000067359, 1e-2);
190 EXPECT_NEAR(sobol[5], 0.000057292, 1e-2);
191 EXPECT_NEAR(sobol_ci[0][5], 0.000047778, 1e-2);
192 EXPECT_NEAR(sobol_ci[1][5], 0.000069655, 1e-2);
195 EXPECT_NEAR(sobol[6], 0.719603333, 1e-2);
196 EXPECT_NEAR(sobol_ci[0][6], 0.664919501, 1e-2);
197 EXPECT_NEAR(sobol_ci[1][6], 0.761403817, 1e-2);
199 EXPECT_NEAR(sobol[7], 0.391713495, 1e-1);
200 EXPECT_NEAR(sobol_ci[0][7], 0.284662598, 1e-1);
201 EXPECT_NEAR(sobol_ci[1][7], 0.472968290, 1e-1);
203 EXPECT_NEAR(sobol[8], 0.053499226, 1e-1);
204 EXPECT_NEAR(sobol_ci[0][8], -0.088307896, 1e-1);
205 EXPECT_NEAR(sobol_ci[1][8], 0.162827882, 1e-1);
207 EXPECT_NEAR(sobol[9], 0.030497977, 1e-1);
208 EXPECT_NEAR(sobol_ci[0][9], -0.113473882, 1e-1);
209 EXPECT_NEAR(sobol_ci[1][9], 0.140750264, 1e-1);
211 EXPECT_NEAR(sobol[10], 0.022088362, 1e-1);
212 EXPECT_NEAR(sobol_ci[0][10], -0.123542952, 1e-1);
213 EXPECT_NEAR(sobol_ci[1][10], 0.134539788, 1e-1);
215 EXPECT_NEAR(sobol[11], 0.020756481, 1e-1);
216 EXPECT_NEAR(sobol_ci[0][11], -0.124872259, 1e-1);
217 EXPECT_NEAR(sobol_ci[1][11], 0.133335504, 1e-1);
220 EXPECT_NEAR(sobol[12], 0.086623495, 1e-1);
221 EXPECT_NEAR(sobol_ci[0][12], -0.106884750, 1e-1);
222 EXPECT_NEAR(sobol_ci[1][12], 0.292478615, 1e-1);
224 EXPECT_NEAR(sobol[13], 0.051499920, 1e-2);
225 EXPECT_NEAR(sobol_ci[0][13], -0.098917644, 1e-2);
226 EXPECT_NEAR(sobol_ci[1][13], 0.208866009, 1e-2);
228 EXPECT_NEAR(sobol[14], -0.013129111, 1e-1);
229 EXPECT_NEAR(sobol_ci[0][14], -0.063644133, 1e-1);
230 EXPECT_NEAR(sobol_ci[1][14], 0.034202843, 2e-1);
232 EXPECT_NEAR(sobol[15], 0.028748451, 1e-2);
233 EXPECT_NEAR(sobol_ci[0][15], -0.114335284, 1e-2);
234 EXPECT_NEAR(sobol_ci[1][15], 0.180976397, 1e-2);
236 EXPECT_NEAR(sobol[16], -0.020848158, 1e-1);
237 EXPECT_NEAR(sobol_ci[0][16], -0.066521659, 1e-1);
238 EXPECT_NEAR(sobol_ci[1][16], 0.021192582, 2e-1);
240 EXPECT_NEAR(sobol[17], 0.003324699, 1e-1);
241 EXPECT_NEAR(sobol_ci[0][17], -0.000940639, 1e-1);
242 EXPECT_NEAR(sobol_ci[1][17], 0.008226253, 1e-1);
244 EXPECT_NEAR(sobol[18], 0.024066263, 1e-1);
245 EXPECT_NEAR(sobol_ci[0][18], -0.118856731, 1e-1);
246 EXPECT_NEAR(sobol_ci[1][18], 0.173828068, 2e-1);
248 EXPECT_NEAR(sobol[19], -0.019734912, 1e-2);
249 EXPECT_NEAR(sobol_ci[0][19], -0.064960642, 1e-2);
250 EXPECT_NEAR(sobol_ci[1][19], 0.021734891, 1e-2);
252 EXPECT_NEAR(sobol[20], 0.002819696, 1e-1);
253 EXPECT_NEAR(sobol_ci[0][20], -0.000486192, 1e-1);
254 EXPECT_NEAR(sobol_ci[1][20], 0.006827348, 1e-1);
256 EXPECT_NEAR(sobol[21], 0.000065586, 1e-2);
257 EXPECT_NEAR(sobol_ci[0][21], -0.000178457, 1e-2);
258 EXPECT_NEAR(sobol_ci[1][21], 0.000310071, 1e-2);
260 EXPECT_NEAR(sobol[22], 0.025259517, 1e-1);
261 EXPECT_NEAR(sobol_ci[0][22], -0.117947309, 2e-1);
262 EXPECT_NEAR(sobol_ci[1][22], 0.175236100, 2e-1);
264 EXPECT_NEAR(sobol[23], -0.019851829, 1e-1);
265 EXPECT_NEAR(sobol_ci[0][23], -0.065106309, 1e-1);
266 EXPECT_NEAR(sobol_ci[1][23], 0.021603718, 1e-1);
268 EXPECT_NEAR(sobol[24], 0.002859528, 1e-2);
269 EXPECT_NEAR(sobol_ci[0][24], -0.000404042, 1e-2);
270 EXPECT_NEAR(sobol_ci[1][24], 0.006833422, 1e-2);
272 EXPECT_NEAR(sobol[25], 0.000184449, 1e-2);
273 EXPECT_NEAR(sobol_ci[0][25], -0.000042626, 1e-2);
274 EXPECT_NEAR(sobol_ci[1][25], 0.000422993, 1e-2);
276 EXPECT_NEAR(sobol[26], -0.000003882, 1e-2);
277 EXPECT_NEAR(sobol_ci[0][26], -0.000012806, 1e-2);
278 EXPECT_NEAR(sobol_ci[1][26], 0.000004494, 1e-2);
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real