28 result = (coeffs.
nGroup == nGroup);
29 serialUnitResults.
UpdateResult(
"WENO:Stencils:nGroup", result);
35 for (
int g=0; g<nGroup; g++) {
36 result = result && (coeffs.
NSten(g) == nSten);
38 serialUnitResults.
UpdateResult(
"WENO:Stencils:nGroup", result);
41 double siFirst = 13/12.0;
43 result = (std::abs(coeffs.
siFirst - siFirst) < eps);
44 serialUnitResults.
UpdateResult(
"WENO:Stencils:siFirst", result);
47 double siSecond = 1/4.0;
49 result = (std::abs(coeffs.
siSecond - siSecond) < eps);
50 serialUnitResults.
UpdateResult(
"WENO:Stencils:siSecond", result);
55 result = (std::abs(coeffs.
epsW - epsW) < eps);
56 serialUnitResults.
UpdateResult(
"WENO:Stencils:epsW", result);
61 result = (std::abs(coeffs.
pW - pW) < eps);
62 serialUnitResults.
UpdateResult(
"WENO:Stencils:pW", result);
65 double linWeights[2][3] = {{0.1, 0.6, 0.3}, {0.1, 0.6, 0.3}};
68 for (
int g=0; g<nGroup; g++) {
69 for (
int i=0; i<nSten; i++) {
70 result = (std::abs(coeffs.
LinWeight(g, i) - linWeights[g][i]) < eps);
73 serialUnitResults.
UpdateResult(
"WENO:Stencils:linWeights", result);
80 result = (coeffs.
HaloWidth() == expHaloWidth);
81 serialUnitResults.
UpdateResult(
"WENO:Stencils:HaloWidth", result);
88 int expLoGroup[2] = {-1, -2};
91 for (
int g=0; g<nGroup; g++) {
92 result = result && (coeffs.
LoGroup(g) == expLoGroup[g]);
94 serialUnitResults.
UpdateResult(
"WENO:Stencils:LoGroup", result);
102 int expLo[2][3] = {{1, 0, -1}, {-2, -1, 0}};
105 for (
int g=0; g<nGroup; g++) {
106 for (
int s=0; s<nSten; s++) {
107 result = result && (coeffs.
Lo(g, s) == expLo[g][s]);
110 serialUnitResults.
UpdateResult(
"WENO:Stencils:Lo", result);
120 int rSizes[2][3] = {{3, 3, 3}, {3, 3, 3}};
121 int rStarts[2][3] = {{0, 3, 6}, {0, 3, 6}};
122 int rOffsets[2][9] = {{3, 2, 1, 2, 1, 0, 1, 0, -1}, {-2, -1, 0, -1, 0, 1, 0, 1, 2}};
123 double rWeights[2][9] = {{1/3.0, -7/6.0, 11/6.0, -1/6.0, 5/6.0, 1/3.0, 1/3.0, 5/6.0, -1/6.0},
124 {1/3.0, -7/6.0, 11/6.0, -1/6.0, 5/6.0, 1/3.0, 1/3.0, 5/6.0, -1/6.0}};
127 for (
int g=0; g<nGroup; g++) {
132 serialUnitResults.
UpdateResult(
"WENO:Stencils:Reconst:nSten", result);
135 for (
int g=0; g<nGroup; g++) {
138 result = result && (test.
numValues == nVal);
140 serialUnitResults.
UpdateResult(
"WENO:Stencils:Reconst:nVal", result);
143 for (
int g=0; g<nGroup; g++) {
146 for (
int i=0; i<nSten; i++) {
147 result = result && (test.
stencilSizes[i] == rSizes[g][i]);
150 serialUnitResults.
UpdateResult(
"WENO:Stencils:Reconst:Sizes", result);
153 for (
int g=0; g<nGroup; g++) {
156 for (
int i=0; i<nSten; i++) {
160 serialUnitResults.
UpdateResult(
"WENO:Stencils:Reconst:Starts", result);
163 for (
int g=0; g<nGroup; g++) {
166 for (
int i=0; i<nVal; i++) {
172 serialUnitResults.
UpdateResult(
"WENO:Stencils:Reconst:Offsets", result);
175 for (
int g=0; g<nGroup; g++) {
178 for (
int i=0; i<nVal; i++) {
179 result = result && (std::abs(test.
stencilWeights[i] - rWeights[g][i]) < eps);
182 serialUnitResults.
UpdateResult(
"WENO:Stencils:Reconst:Weights", result);
191 int si1Sizes[2][3] = {{3, 3, 3}, {3, 3, 3}};
192 int si1Starts[2][3] = {{0, 3, 6}, {0, 3, 6}};
193 int si1Offsets[2][9] = {{3, 2, 1, 2, 1, 0, 1, 0, -1}, {-2, -1, 0, -1, 0, 1, 0, 1, 2}};
194 double si1Weights[2][9] = {{1, -2, 1, 1, -2, 1, 1, -2, 1}, {1, -2, 1, 1, -2, 1, 1, -2, 1}};
197 for (
int g=0; g<nGroup; g++) {
202 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndFirst:nSten", result);
205 for (
int g=0; g<nGroup; g++) {
208 result = result && (test.
numValues == nVal);
210 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndFirst:nVal", result);
213 for (
int g=0; g<nGroup; g++) {
216 for (
int i=0; i<nSten; i++) {
217 result = result && (test.
stencilSizes[i] == si1Sizes[g][i]);
220 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndFirst:Sizes", result);
223 for (
int g=0; g<nGroup; g++) {
226 for (
int i=0; i<nSten; i++) {
227 result = result && (test.
stencilStarts[i] == si1Starts[g][i]);
230 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndFirst:Starts", result);
233 for (
int g=0; g<nGroup; g++) {
236 for (
int i=0; i<nVal; i++) {
242 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndFirst:Offsets", result);
245 for (
int g=0; g<nGroup; g++) {
248 for (
int i=0; i<nVal; i++) {
249 result = result && (std::abs(test.
stencilWeights[i] - si1Weights[g][i]) < eps);
252 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndFirst:Weights", result);
262 int si2Sizes[2][3] = {{3, 2, 3}, {3, 2, 3}};
263 int si2Starts[2][3] = {{0, 3, 5}, {0, 3, 5}};
264 int si2Offsets[2][8] = {{3, 2, 1, 2, 0, 1, 0, -1}, {-2, -1, 0, -1, 1, 0, 1, 2}};
265 double si2Weights[2][8] = {{1, -4, 3, 1, -1, 3, -4, 1}, {1, -4, 3, 1, -1, 3, -4, 1}};
268 for (
int g=0; g<nGroup; g++) {
273 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndSecond:nSten", result);
276 for (
int g=0; g<nGroup; g++) {
279 result = result && (test.
numValues == nVal);
281 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndSecond:nVal", result);
284 for (
int g=0; g<nGroup; g++) {
287 for (
int i=0; i<nSten; i++) {
288 result = result && (test.
stencilSizes[i] == si2Sizes[g][i]);
291 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndSecond:Sizes", result);
294 for (
int g=0; g<nGroup; g++) {
297 for (
int i=0; i<nSten; i++) {
298 result = result && (test.
stencilStarts[i] == si2Starts[g][i]);
301 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndSecond:Starts", result);
304 for (
int g=0; g<nGroup; g++) {
307 for (
int i=0; i<nVal; i++) {
313 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndSecond:Offsets", result);
316 for (
int g=0; g<nGroup; g++) {
319 for (
int i=0; i<nVal; i++) {
320 result = result && (std::abs(test.
stencilWeights[i] - si2Weights[g][i]) < eps);
323 serialUnitResults.
UpdateResult(
"WENO:Stencils:SmIndSecond:Weights", result);
343 double vals[5] = {1, 1, 1, 1, 1};
344 double pvalExpRes = 1.0;
347 for (
int g=0; g<nGroup; g++) {
351 result = (std::abs(pval - pvalExpRes) < eps);
353 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:Equal", result);
365 double valsD[5] = {2, 1, 1, 1, 1};
366 double pvalExpResD = 1;
373 result = (std::abs(pval - pvalExpResD) < eps);
374 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:Discontinuous:Face-3/2", result);
390 result = (std::abs(pval - pvalExpResD) < eps);
391 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:Discontinuous:Face-1/2", result);
407 result = (std::abs(pval - pvalExpResD) < eps);
408 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:Discontinuous:Face+1/2", result);
424 result = (std::abs(pval - pvalExpResD) < eps);
425 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:Discontinuous:Face+3/2", result);
447 result = (std::abs(pval - pvalExpResD) < eps);
448 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:ReverseDiscont:Face+5/2", result);
462 result = (std::abs(pval - pvalExpResD) < eps);
463 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:ReverseDiscont:Face+3/2", result);
477 result = (std::abs(pval - pvalExpResD) < eps);
478 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:ReverseDiscont:Face+1/2", result);
492 result = (std::abs(pval - pvalExpResD) < eps);
493 serialUnitResults.
UpdateResult(
"WENO:ReconstPointVal:ReverseDiscont:Face-1/2", result);
514 double vals[3] = {1, 1, 1};
515 double pValExpRes = 1;
518 for (
int g=0; g<nGroups; g++) {
519 for (
int i=0; i<nSten; i++) {
525 result = result && (std::abs(pVal - pValExpRes) < eps);
528 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:Equal", result);
540 double valsD[5] = {2, 1, 1, 1, 1};
541 double pvalsExpResD[3] = {4/3.0, 1, 1};
544 for (
int i=0; i<nSten; i++) {
551 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
553 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:Discontinuous:Face-3/2", result);
562 pvalsExpResD[0] = 1/6.0;
563 pvalsExpResD[1] = 5/6.0;
567 for (
int i=0; i<nSten; i++) {
574 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
576 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:Discontinuous:Face-1/2", result);
586 pvalsExpResD[1] = 5/3.0;
587 pvalsExpResD[2] = 4/3.0;
590 for (
int i=0; i<nSten; i++) {
597 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
599 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:Discontinuous:Face+1/2", result);
610 pvalsExpResD[2] = 13/6.0;
613 for (
int i=0; i<nSten; i++) {
620 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
622 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:Discontinuous:Face+3/2", result);
640 pvalsExpResD[0] = 4/3.0;
645 for (
int i=0; i<nSten; i++) {
652 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
655 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:ReverseDiscont:Face+5/2", result);
664 pvalsExpResD[0] = 1/6.0;
665 pvalsExpResD[1] = 5/6.0;
669 for (
int i=0; i<nSten; i++) {
676 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
679 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:ReverseDiscont:Face+3/2", result);
689 pvalsExpResD[1] = 5/3.0;
690 pvalsExpResD[2] = 4/3.0;
693 for (
int i=0; i<nSten; i++) {
700 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
703 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:ReverseDiscont:Face+1/2", result);
714 pvalsExpResD[2] = 13/6.0;
717 for (
int i=0; i<nSten; i++) {
724 result = result && (std::abs(pval - pvalsExpResD[i]) < eps);
727 serialUnitResults.
UpdateResult(
"WENO:ReconstPointValSten:ReverseDiscont:Face-1/2", result);
748 double vals[3] = {1, 1, 1};
752 for (
int g=0; g<nGroups; g++) {
753 for (
int i=0; i<nSten; i++) {
757 result = result && (std::abs(si - siExpRes) < eps);
760 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:Equal", result);
770 double valsD[5] = {2, 1, 1, 1, 1};
771 double siExpResD[3] = {4/3.0, 0, 0};
774 for (
int i=0; i<nSten; i++) {
780 result = result && (std::abs(si - siExpResD[i]) < eps);
782 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:Discontinuous:Face-3/2", result);
791 siExpResD[0] = 10/3.0;
792 siExpResD[1] = 4/3.0;
796 for (
int i=0; i<nSten; i++) {
802 result = result && (std::abs(si - siExpResD[i]) < eps);
804 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:Discontinuous:Face-1/2", result);
814 siExpResD[1] = 4/3.0;
815 siExpResD[2] = 10/3.0;
818 for (
int i=0; i<nSten; i++) {
824 result = result && (std::abs(si - siExpResD[i]) < eps);
826 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:Discontinuous:Face+1/2", result);
837 siExpResD[2] = 4/3.0;
840 for (
int i=0; i<nSten; i++) {
846 result = result && (std::abs(si - siExpResD[i]) < eps);
848 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:Discontinuous:Face+3/2", result);
863 siExpResD[0] = 4/3.0;
868 for (
int i=0; i<nSten; i++) {
874 result = result && (std::abs(si - siExpResD[i]) < eps);
876 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:ReverseDiscont:Face+5/2", result);
885 siExpResD[0] = 10/3.0;
886 siExpResD[1] = 4/3.0;
890 for (
int i=0; i<nSten; i++) {
896 result = result && (std::abs(si - siExpResD[i]) < eps);
898 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:ReverseDiscont:Face+3/2", result);
908 siExpResD[1] = 4/3.0;
909 siExpResD[2] = 10/3.0;
912 for (
int i=0; i<nSten; i++) {
918 result = result && (std::abs(si - siExpResD[i]) < eps);
920 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:ReverseDiscont:Face+1/2", result);
931 siExpResD[2] = 4/3.0;
934 for (
int i=0; i<nSten; i++) {
940 result = result && (std::abs(si - siExpResD[i]) < eps);
942 serialUnitResults.
UpdateResult(
"WENO:SmoothInd:ReverseDiscont:Face-1/2", result);
961 double a[4] = {1, 3, 2, 4};
962 double b[4] = {1, 2, 3, 4};
963 double c[4] = {-1000, -1000, -1000, -1000};
964 double cExp[4] = {7, 10, 15, 22};
968 for (
int i=0; i<4; i++) {
969 result = result && (std::abs(c[i] - cExp[i]) < eps);
971 serialUnitResults.
UpdateResult(
"WENO:Project:Mult:MatMat", result);
978 double a[4] = {1, 3, 2, 4};
979 double b[2] = {5, 6};
980 double c[2] = {-1000, -1000};
981 double cExp[2] = {17, 39};
985 for (
int i=0; i<2; i++) {
986 result = result && (std::abs(c[i] - cExp[i]) < eps);
988 serialUnitResults.
UpdateResult(
"WENO:Project:Mult:MatVec", result);
1002 double uL[4] = {1, 1, 1, 5};
1003 double uR[4] = {2, 4, 4, 16};
1005 for (
int i=0; i<numDim+2; i++) ujump[i] = uR[i] - uL[i];
1013 for (
int iDim=0; iDim<numDim && result; iDim++) {
1015 for (
int i=0; i<numDim; i++) {
1024 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1032 for (
int i=0; i<numDim+2; i++) {
1035 result = result && (std::abs(ujump[i] - tmp[i]) < eps);
1037 serialUnitResults.
UpdateResult(
"WENO:Project:2D:Identity", result);
1040 if (!result)
return;
1044 for (
int iDim=0; iDim<numDim && result; iDim++) {
1052 fR[numDim+1] = 38.4;
1053 for (
int i=0; i<numDim; i++) {
1064 for (
int i=0; i<numDim+2; i++) fjump[i] = fR[i] - fL[i];
1067 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1077 for (
int i=0; i<numDim+2; i++) {
1080 result = result && (std::abs(fjump[i] - tmp[i]) < eps);
1082 serialUnitResults.
UpdateResult(
"WENO:Project:2D:RoeProp", result);
1085 if (!result)
return;
1093 double uL[5] = {1, 1, 1, 1, 5.5};
1094 double uR[5] = {2, 4, 4, 4, 20};
1096 for (
int i=0; i<numDim+2; i++) ujump[i] = uR[i] - uL[i];
1104 for (
int iDim=0; iDim<numDim && result; iDim++) {
1106 for (
int i=0; i<numDim; i++) {
1115 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1123 for (
int i=0; i<numDim+2; i++) {
1126 result = result && (std::abs(ujump[i] - tmp[i]) < eps);
1128 serialUnitResults.
UpdateResult(
"WENO:Project:3D:Identity", result);
1131 if (!result)
return;
1135 for (
int iDim=0; iDim<numDim && result; iDim++) {
1143 fR[numDim+1] = 46.4;
1144 for (
int i=0; i<numDim; i++) {
1155 for (
int i=0; i<numDim+2; i++) fjump[i] = fR[i] - fL[i];
1158 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1168 for (
int i=0; i<numDim+2; i++) {
1171 result = result && (std::abs(fjump[i] - tmp[i]) < eps);
1173 serialUnitResults.
UpdateResult(
"WENO:Project:3D:RoeProp", result);
1186 double uL[4] = {1, -1, -1, 5};
1187 double uR[4] = {2, -4, -4, 16};
1189 for (
int i=0; i<numDim+2; i++) ujump[i] = uR[i] - uL[i];
1197 for (
int iDim=0; iDim<numDim && result; iDim++) {
1199 for (
int i=0; i<numDim; i++) {
1208 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1216 for (
int i=0; i<numDim+2; i++) {
1219 result = result && (std::abs(ujump[i] - tmp[i]) < eps);
1221 serialUnitResults.
UpdateResult(
"WENO:Project:Neg:2D:Identity", result);
1224 if (!result)
return;
1228 for (
int iDim=0; iDim<numDim && result; iDim++) {
1234 fL[numDim+1] = -6.6;
1236 fR[numDim+1] = -38.4;
1237 for (
int i=0; i<numDim; i++) {
1248 for (
int i=0; i<numDim+2; i++) fjump[i] = fR[i] - fL[i];
1251 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1261 for (
int i=0; i<numDim+2; i++) {
1264 result = result && (std::abs(fjump[i] - tmp[i]) < eps);
1266 serialUnitResults.
UpdateResult(
"WENO:Project:Neg:2D:RoeProp", result);
1269 if (!result)
return;
1277 double uL[5] = {1, -1, -1, -1, 5.5};
1278 double uR[5] = {2, -4, -4, -4, 20};
1280 for (
int i=0; i<numDim+2; i++) ujump[i] = uR[i] - uL[i];
1288 for (
int iDim=0; iDim<numDim && result; iDim++) {
1290 for (
int i=0; i<numDim; i++) {
1299 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1307 for (
int i=0; i<numDim+2; i++) {
1310 result = result && (std::abs(ujump[i] - tmp[i]) < eps);
1312 serialUnitResults.
UpdateResult(
"WENO:Project:Neg:3D:Identity", result);
1315 if (!result)
return;
1319 for (
int iDim=0; iDim<numDim && result; iDim++) {
1325 fL[numDim+1] = -7.1;
1327 fR[numDim+1] = -46.4;
1328 for (
int i=0; i<numDim; i++) {
1339 for (
int i=0; i<numDim+2; i++) fjump[i] = fR[i] - fL[i];
1342 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1352 for (
int i=0; i<numDim+2; i++) {
1355 result = result && (std::abs(fjump[i] - tmp[i]) < eps);
1357 serialUnitResults.
UpdateResult(
"WENO:Project:Neg:3D:RoeProp", result);
1370 double uL[4] = {1, 2, 2, 8};
1371 double uR[4] = {2, 6, 6, 26};
1373 for (
int i=0; i<numDim+2; i++) ujump[i] = uR[i] - uL[i];
1381 for (
int iDim=0; iDim<numDim && result; iDim++) {
1383 for (
int i=0; i<numDim; i++) {
1392 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1400 for (
int i=0; i<numDim+2; i++) {
1403 result = result && (std::abs(ujump[i] - tmp[i]) < eps);
1405 serialUnitResults.
UpdateResult(
"WENO:Project:Alt:2D:Identity", result);
1408 if (!result)
return;
1412 for (
int iDim=0; iDim<numDim && result; iDim++) {
1418 fL[numDim+1] = 19.2;
1420 fR[numDim+1] = 87.6;
1421 for (
int i=0; i<numDim; i++) {
1432 for (
int i=0; i<numDim+2; i++) fjump[i] = fR[i] - fL[i];
1435 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1445 for (
int i=0; i<numDim+2; i++) {
1448 result = result && (std::abs(fjump[i] - tmp[i]) < eps);
1450 serialUnitResults.
UpdateResult(
"WENO:Project:Alt:2D:RoeProp", result);
1453 if (!result)
return;
1461 double uL[5] = {1, 2, 2, 2, 10};
1462 double uR[5] = {2, 6, 6, 6, 35};
1464 for (
int i=0; i<numDim+2; i++) ujump[i] = uR[i] - uL[i];
1472 for (
int iDim=0; iDim<numDim && result; iDim++) {
1474 for (
int i=0; i<numDim; i++) {
1483 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1491 for (
int i=0; i<numDim+2; i++) {
1494 result = result && (std::abs(ujump[i] - tmp[i]) < eps);
1496 serialUnitResults.
UpdateResult(
"WENO:Project:Alt:3D:Identity", result);
1499 if (!result)
return;
1503 for (
int iDim=0; iDim<numDim && result; iDim++) {
1509 fL[numDim+1] = 23.2;
1511 fR[numDim+1] = 114.6;
1512 for (
int i=0; i<numDim; i++) {
1523 for (
int i=0; i<numDim+2; i++) fjump[i] = fR[i] - fL[i];
1526 (&numDim, &uL[0], &uR[0], &gamma, &norm[0], &tmat[0], &tinv[0], &lambda[0]);
1536 for (
int i=0; i<numDim+2; i++) {
1539 result = result && (std::abs(fjump[i] - tmp[i]) < eps);
1541 serialUnitResults.
UpdateResult(
"WENO:Project:Alt:3D:RoeProp", result);
1558 double lambdaL[3][4] = {{1, 2, 2, 3}, {4, 2, 2, 0}, {1, -1, -1, -3}};
1559 double lambdaR[3][4] = {{1.5, 2, 2, 2.5}, {4, 1, 1, -2}, {0, -2, -2, -4}};
1560 double etaExp[3] = {0.25, 1, 0.5};
1561 double lambdaUseL[len*len];
1562 double lambdaUseR[len*len];
1564 for (
int iCase=0; iCase<nCases && result; iCase++) {
1565 for (
int i=0; i<len; i++) {
1566 for (
int j=0; j<len; j++) {
1568 lambdaUseL[i*len+j] = lambdaL[iCase][i];
1569 lambdaUseR[i*len+j] = lambdaR[iCase][i];
1571 lambdaUseL[i*len+j] = 0;
1572 lambdaUseR[i*len+j] = 0;
1578 if (std::abs(eta - etaExp[iCase]) > eps) {
1580 std::cout <<
"Case " << iCase <<
", eta (actual/expected) = " << eta <<
" / " << etaExp[iCase] << std::endl;
1584 serialUnitResults.
UpdateResult(
"WENO:EntropyFix:Eta", result);
int * stencilSizes
The number of weights for each stencil.
void TestWENO_Project(ix::test::results &serialUnitResults)
void ReconstPointVal(double vals[], CoeffsWENO &coeffs, int group, double &pVal)
double EntropyFixEta(int n, double lambdaL[], double lambdaR[])
int * stencilStarts
The starting index into the stencilWeight and stencilOffset arrays for each stencil.
int * stencilOffsets
The offsets wrt the grid point at which the stencil is being applied.
void TestWENO_EntropyFix(ix::test::results &serialUnitResults)
Encapsulating class for collections of test results.
StencilSet SmIndSecond(int group)
void ReconstPointValSten(double vals[], CoeffsWENO &coeffs, int group, int sten, double &pVal)
StencilSet SmIndFirst(int group)
void Project(int n, int m, double T[], double vals[], double res[])
void TestWENO_SmoothInd(ix::test::results &serialUnitResults)
void size_t int size_t int size_t int int int int double int int double double *void size_t int size_t int int int int int double int size_t size_t size_t double double *void size_t int size_t int size_t size_t int double int double double *void size_t size_t size_t double * a
Testing constructs for unit testing.
void TestWENO_ReconstPointVal(ix::test::results &serialUnitResults)
Encapsulation for a collection of operator stencils.
int numValues
The total number of weights for all stencils (reqd for Fortran)
int Lo(int group, int sten)
void UpdateResult(const std::string &name, const ValueType &result)
Updates an existing test result.
StencilSet Reconst(int group)
double * stencilWeights
The stencil weights.
void TestWENO_ReconstPointValSten(ix::test::results &serialUnitResults)
int numStencils
The number of stencils (e.g. interior + boundary)
void SmoothInd(double vals[], CoeffsWENO &coeffs, int group, int sten, double &si)
double LinWeight(int group, int sten)
subroutine sat_form_roe_matrices(ND, u_in, u_out, gamma, norm, tmat, tinv, lambda)
void FC_MODULE(euler, flux1d, EULER, FLUX1D)(const int *numDim
void TestWENO_Stencils(ix::test::results &serialUnitResults)