54 std::array<SpatialDomains::PointGeom *, 8> v,
55 std::array<SpatialDomains::SegGeomUniquePtr, 12> &segVec,
56 std::array<SpatialDomains::QuadGeomUniquePtr, 6> &faceVec)
58 std::array<std::array<int, 2>, 12> edgeVerts = {{{{0, 1}},
70 std::array<std::array<int, 4>, 6> faceEdges = {{{{0, 1, 2, 3}},
78 for (
int i = 0; i < 12; ++i)
80 segVec[i] =
CreateSegGeom(i, v[edgeVerts[i][0]], v[edgeVerts[i][1]]);
84 std::array<SpatialDomains::QuadGeom *, 6> faces;
85 for (
int i = 0; i < 6; ++i)
87 std::array<SpatialDomains::SegGeom *, 4> face;
88 for (
int j = 0; j < 4; ++j)
90 face[j] = segVec[faceEdges[i][j]].get();
94 faces[i] = faceVec[i].get();
121 std::array<SpatialDomains::PointGeom *, 8> v = {
122 v0.get(), v1.get(), v2.get(), v3.get(),
123 v4.get(), v5.get(), v6.get(), v7.get()};
124 std::array<SpatialDomains::SegGeomUniquePtr, 12> segVec;
125 std::array<SpatialDomains::QuadGeomUniquePtr, 6> faceVec;
132 unsigned int numQuadPoints = 6;
140 basisKeyDir1, basisKeyDir1, basisKeyDir1, hexGeom.get());
145 hexExp->GetCoords(c0, c1, c2);
146 std::shared_ptr<StdRegions::StdHexExp> stdHex =
147 std::dynamic_pointer_cast<StdRegions::StdHexExp>(hexExp);
148 stdHex->GetCoords(c0, c1, c2);
149 double epsilon = 1.0e-8;
150 BOOST_CHECK_CLOSE(c0[0], -1.0, epsilon);
151 BOOST_CHECK_CLOSE(c0[1], -0.76505532392946474, epsilon);
152 BOOST_CHECK_CLOSE(c0[2], -0.28523151648064510, epsilon);
153 BOOST_CHECK_CLOSE(c0[3], 0.28523151648064510, epsilon);
154 BOOST_CHECK_CLOSE(c0[4], 0.76505532392946474, epsilon);
155 BOOST_CHECK_CLOSE(c0[5], 1.0, epsilon);
177 std::array<SpatialDomains::PointGeom *, 8> v = {
178 v0.get(), v1.get(), v2.get(), v3.get(),
179 v4.get(), v5.get(), v6.get(), v7.get()};
180 std::array<SpatialDomains::SegGeomUniquePtr, 12> segVec;
181 std::array<SpatialDomains::QuadGeomUniquePtr, 6> faceVec;
188 unsigned int numQuadPoints = 6;
196 basisKeyDir1, basisKeyDir1, basisKeyDir1, hexGeom.get());
201 hexExp->GetCoords(c0, c1, c2);
203 double epsilon = 1.0e-8;
204 BOOST_CHECK_EQUAL(c0[0], 0.0);
205 BOOST_CHECK_CLOSE(c0[1], .05873616902, epsilon);
206 BOOST_CHECK_CLOSE(c0[2], .17869212088, epsilon);
207 BOOST_CHECK_CLOSE(c0[3], .32130787912, epsilon);
208 BOOST_CHECK_CLOSE(c0[4], .44126383098, epsilon);
209 BOOST_CHECK_CLOSE(c0[5], .5, epsilon);
221 unsigned int numQuadPoints = 1;
222 unsigned int numModes = 1;
233 pointExp->GetCoords(c0, c1, c2);
235 std::shared_ptr<StdRegions::StdPointExp> stdPoint =
236 std::dynamic_pointer_cast<StdRegions::StdPointExp>(pointExp);
244 stdPoint->GetCoords(c0_arr, c1_arr, c2_arr);
246 double epsilon = 1.0e-8;
247 BOOST_CHECK_CLOSE(c0, -1.0, epsilon);
248 BOOST_CHECK_CLOSE(c0_arr[0], -1.0, epsilon);
251 BOOST_CHECK_EQUAL(pointExp->GetGeomFactors(),
nullptr);