53 unsigned int numPoints = 6;
61 basisKeyDir1, basisKeyDir1);
63 unsigned int numEQ = 4;
69 double epsilon = 1.0e-8;
71 Exp->GetCoords(c0, c1, c2);
73 Exp->PhysInterpToSimplexEquiSpaced(c0, out, numEQ);
74 for (
int j = 0, cnt = 0; j < numEQ; ++j)
76 for (
int i = 0; i < numEQ; ++i)
78 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * i / (numEQ - 1.0),
83 Exp->PhysInterpToSimplexEquiSpaced(c1, out, numEQ);
84 for (
int j = 0, cnt = 0; j < numEQ; ++j)
86 for (
int i = 0; i < numEQ; ++i)
88 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * j / (numEQ - 1.0),
96 using namespace LibUtilities;
99 PointsType PointsTypeDir2 = eGaussRadauMAlpha1Beta0;
103 unsigned int numPoints = 6;
104 unsigned int numEQ = 4;
106 const PointsKey PointsKeyDir1(numPoints, PointsTypeDir1);
107 const BasisKey basisKeyDir1(basisTypeDir1, numEQ, PointsKeyDir1);
108 const PointsKey PointsKeyDir2(numPoints - 1, PointsTypeDir2);
109 const BasisKey basisKeyDir2(basisTypeDir2, numEQ, PointsKeyDir2);
113 basisKeyDir1, basisKeyDir2);
120 double epsilon = 1.0e-8;
122 Exp->GetCoords(c0, c1, c2);
124 Exp->PhysInterpToSimplexEquiSpaced(c0, out, numEQ);
125 for (
int j = 0, cnt = 0; j < numEQ; ++j)
127 for (
int i = 0; i < numEQ - j; ++i)
129 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * i / (numEQ - 1.0),
134 Exp->PhysInterpToSimplexEquiSpaced(c1, out, numEQ);
135 for (
int j = 0, cnt = 0; j < numEQ; ++j)
137 for (
int i = 0; i < numEQ - j; ++i)
139 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * j / (numEQ - 1.0),
147 using namespace LibUtilities;
150 PointsType PointsTypeDir2 = eGaussRadauMAlpha1Beta0;
151 PointsType PointsTypeDir3 = eGaussRadauMAlpha2Beta0;
156 unsigned int numPoints = 10;
157 unsigned int numEQ = 8;
160 const PointsKey PointsKeyDir1(numPoints, PointsTypeDir1);
161 const PointsKey PointsKeyDir2(numPoints - 1, PointsTypeDir2);
162 const PointsKey PointsKeyDir3(numPoints - 1, PointsTypeDir3);
163 const BasisKey basisKeyDir2(basisTypeDir2, numEQ, PointsKeyDir2);
164 const BasisKey basisKeyDir1(basisTypeDir1, numEQ, PointsKeyDir1);
165 const BasisKey basisKeyDir3(basisTypeDir3, numEQ, PointsKeyDir3);
169 basisKeyDir1, basisKeyDir2, basisKeyDir3);
176 basisKeyDir1, basisKeyDir2, basisKeyDir3, PointsTypeEq);
182 Exp->GetCoords(c0, c1, c2);
188 ExpEq->GetCoords(ceq0, ceq1, ceq2);
192 double epsilon = 1.0e-8;
198 Exp->PhysInterpToSimplexEquiSpaced(c0, out, numEQ);
200 for (
int k = 0; k < numEQ; ++k)
202 for (
int j = 0; j < numEQ - k; ++j)
204 for (
int i = 0; i < numEQ - k - j; ++i)
206 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * i / (numEQ - 1.0),
213 Exp->PhysInterpToSimplexEquiSpaced(c1, out, numEQ);
215 for (
int k = 0; k < numEQ; ++k)
217 for (
int j = 0; j < numEQ - k; ++j)
219 for (
int i = 0; i < numEQ - k - j; ++i)
221 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * j / (numEQ - 1.0),
228 Exp->PhysInterpToSimplexEquiSpaced(c2, out, numEQ);
230 for (
int k = 0; k < numEQ; ++k)
232 for (
int j = 0; j < numEQ - k; ++j)
234 for (
int i = 0; i < numEQ - k - j; ++i)
236 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * k / (numEQ - 1.0),
245 using namespace LibUtilities;
249 PointsType PointsTypeDir3 = eGaussRadauMAlpha1Beta0;
254 unsigned int numPoints = 10;
255 unsigned int numEQ = 8;
258 const PointsKey PointsKeyDir1(numPoints, PointsTypeDir1);
259 const PointsKey PointsKeyDir2(numPoints, PointsTypeDir2);
260 const PointsKey PointsKeyDir3(numPoints - 1, PointsTypeDir3);
261 const BasisKey basisKeyDir1(basisTypeDir1, numEQ, PointsKeyDir1);
262 const BasisKey basisKeyDir2(basisTypeDir2, numEQ, PointsKeyDir2);
263 const BasisKey basisKeyDir3(basisTypeDir3, numEQ, PointsKeyDir3);
267 basisKeyDir1, basisKeyDir2, basisKeyDir3);
274 basisKeyDir1, basisKeyDir2, basisKeyDir3, PointsTypeEq);
280 Exp->GetCoords(c0, c1, c2);
286 ExpEq->GetCoords(ceq0, ceq1, ceq2);
290 double epsilon = 1.0e-8;
296 Exp->PhysInterpToSimplexEquiSpaced(c0, out, numEQ);
298 for (
int k = 0; k < numEQ; ++k)
300 for (
int j = 0; j < numEQ; ++j)
302 for (
int i = 0; i < numEQ - k; ++i)
304 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * i / (numEQ - 1.0),
311 Exp->PhysInterpToSimplexEquiSpaced(c1, out, numEQ);
313 for (
int k = 0; k < numEQ; ++k)
315 for (
int j = 0; j < numEQ; ++j)
317 for (
int i = 0; i < numEQ - k; ++i)
319 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * j / (numEQ - 1.0),
326 Exp->PhysInterpToSimplexEquiSpaced(c2, out, numEQ);
328 for (
int k = 0; k < numEQ; ++k)
330 for (
int j = 0; j < numEQ; ++j)
332 for (
int i = 0; i < numEQ - k; ++i)
334 BOOST_CHECK_CLOSE(out[cnt++], -1.0 + 2.0 * k / (numEQ - 1.0),
346 unsigned int numPoints = 10;
347 unsigned int numModes = 8;
355 basisKeyDir1, basisKeyDir1);
357 unsigned int numEQ = 4;
364 double epsilon = 1.0e-8;
366 Exp->GetCoords(c0, c1, c2);
368 for (
int j = 0, cnt = 0; j < numEQ; ++j)
370 for (
int i = 0; i < numEQ; ++i)
372 in[cnt++] = -1.0 + 2.0 * i / (numEQ - 1.0);
376 Exp->EquiSpacedToPhys(numEQ, in, phys);
377 for (
int j = 0, cnt = 0; j < numPoints; ++j)
379 for (
int i = 0; i < numPoints; ++i)
381 BOOST_CHECK_CLOSE(phys[cnt], c0[cnt], epsilon);
386 for (
int j = 0, cnt = 0; j < numEQ; ++j)
388 for (
int i = 0; i < numEQ; ++i)
390 in[cnt++] = -1.0 + 2.0 * j / (numEQ - 1.0);
393 Exp->EquiSpacedToPhys(numEQ, in, phys);
394 for (
int j = 0, cnt = 0; j < numPoints; ++j)
396 for (
int i = 0; i < numPoints; ++i)
398 BOOST_CHECK_CLOSE(phys[cnt], c1[cnt], epsilon);
410 Nektar::LibUtilities::eGaussRadauMAlpha1Beta0;
416 unsigned int numPoints = 6;
429 basisKeyDir1, basisKeyDir2);
431 unsigned int numEQ = 4;
438 double epsilon = 1.0e-8;
440 Exp->GetCoords(c0, c1, c2);
442 for (
int j = 0, cnt = 0; j < numEQ; ++j)
444 for (
int i = 0; i < numEQ - j; ++i)
446 in[cnt++] = -1.0 + 2.0 * i / (numEQ - 1.0);
449 Exp->EquiSpacedToPhys(numEQ, in, phys);
450 for (
int j = 0, cnt = 0; j < numPoints - 1; ++j)
452 for (
int i = 0; i < numPoints; ++i)
454 BOOST_CHECK_CLOSE(phys[cnt], c0[cnt], epsilon);
459 for (
int j = 0, cnt = 0; j < numEQ; ++j)
461 for (
int i = 0; i < numEQ - j; ++i)
463 in[cnt++] = -1.0 + 2.0 * j / (numEQ - 1.0);
466 Exp->EquiSpacedToPhys(numEQ, in, phys);
467 for (
int j = 0, cnt = 0; j < numPoints - 1; ++j)
469 for (
int i = 0; i < numPoints; ++i)
471 BOOST_CHECK_CLOSE(phys[cnt], c1[cnt], epsilon);