104{
121
122 std::array<SpatialDomains::PointGeom *, 8> v = {
123 v0.get(), v1.get(), v2.get(), v3.get(),
124 v4.get(), v5.get(), v6.get(), v7.get()};
125 std::array<SpatialDomains::SegGeomUniquePtr, 12> segVec;
126 std::array<SpatialDomains::QuadGeomUniquePtr, 6> faceVec;
128
133 unsigned int numQuadPoints = 6;
135 quadPointsTypeDir1);
137 quadPointsKeyDir1);
138
139
142 basisKeyDir1, basisKeyDir1, basisKeyDir1, hexGeom.get());
143
144
145 int nq0 = 3;
146 int nq1 = 3;
148
149
151
152 orient = StdRegions::eDir1FwdDir1_Dir2FwdDir2;
153 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
154 BOOST_CHECK_EQUAL(idmap[0], 0);
155 BOOST_CHECK_EQUAL(idmap[1], 1);
156 BOOST_CHECK_EQUAL(idmap[2], 2);
157 BOOST_CHECK_EQUAL(idmap[3], 3);
158 BOOST_CHECK_EQUAL(idmap[4], 4);
159 BOOST_CHECK_EQUAL(idmap[5], 5);
160 BOOST_CHECK_EQUAL(idmap[6], 6);
161 BOOST_CHECK_EQUAL(idmap[7], 7);
162 BOOST_CHECK_EQUAL(idmap[8], 8);
163
164 orient = StdRegions::eDir1FwdDir1_Dir2BwdDir2;
165 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
166 BOOST_CHECK_EQUAL(idmap[0], 6);
167 BOOST_CHECK_EQUAL(idmap[1], 7);
168 BOOST_CHECK_EQUAL(idmap[2], 8);
169 BOOST_CHECK_EQUAL(idmap[3], 3);
170 BOOST_CHECK_EQUAL(idmap[4], 4);
171 BOOST_CHECK_EQUAL(idmap[5], 5);
172 BOOST_CHECK_EQUAL(idmap[6], 0);
173 BOOST_CHECK_EQUAL(idmap[7], 1);
174 BOOST_CHECK_EQUAL(idmap[8], 2);
175
176 orient = StdRegions::eDir1BwdDir1_Dir2FwdDir2;
177 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
178 BOOST_CHECK_EQUAL(idmap[0], 2);
179 BOOST_CHECK_EQUAL(idmap[1], 1);
180 BOOST_CHECK_EQUAL(idmap[2], 0);
181 BOOST_CHECK_EQUAL(idmap[3], 5);
182 BOOST_CHECK_EQUAL(idmap[4], 4);
183 BOOST_CHECK_EQUAL(idmap[5], 3);
184 BOOST_CHECK_EQUAL(idmap[6], 8);
185 BOOST_CHECK_EQUAL(idmap[7], 7);
186 BOOST_CHECK_EQUAL(idmap[8], 6);
187
188 orient = StdRegions::eDir1BwdDir1_Dir2BwdDir2;
189 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
190 BOOST_CHECK_EQUAL(idmap[0], 8);
191 BOOST_CHECK_EQUAL(idmap[1], 7);
192 BOOST_CHECK_EQUAL(idmap[2], 6);
193 BOOST_CHECK_EQUAL(idmap[3], 5);
194 BOOST_CHECK_EQUAL(idmap[4], 4);
195 BOOST_CHECK_EQUAL(idmap[5], 3);
196 BOOST_CHECK_EQUAL(idmap[6], 2);
197 BOOST_CHECK_EQUAL(idmap[7], 1);
198 BOOST_CHECK_EQUAL(idmap[8], 0);
199
200 orient = StdRegions::eDir1FwdDir2_Dir2FwdDir1;
201 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
202 BOOST_CHECK_EQUAL(idmap[0], 0);
203 BOOST_CHECK_EQUAL(idmap[1], 3);
204 BOOST_CHECK_EQUAL(idmap[2], 6);
205 BOOST_CHECK_EQUAL(idmap[3], 1);
206 BOOST_CHECK_EQUAL(idmap[4], 4);
207 BOOST_CHECK_EQUAL(idmap[5], 7);
208 BOOST_CHECK_EQUAL(idmap[6], 2);
209 BOOST_CHECK_EQUAL(idmap[7], 5);
210 BOOST_CHECK_EQUAL(idmap[8], 8);
211
212 orient = StdRegions::eDir1FwdDir2_Dir2BwdDir1;
213 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
214 BOOST_CHECK_EQUAL(idmap[0], 2);
215 BOOST_CHECK_EQUAL(idmap[1], 5);
216 BOOST_CHECK_EQUAL(idmap[2], 8);
217 BOOST_CHECK_EQUAL(idmap[3], 1);
218 BOOST_CHECK_EQUAL(idmap[4], 4);
219 BOOST_CHECK_EQUAL(idmap[5], 7);
220 BOOST_CHECK_EQUAL(idmap[6], 0);
221 BOOST_CHECK_EQUAL(idmap[7], 3);
222 BOOST_CHECK_EQUAL(idmap[8], 6);
223
224 orient = StdRegions::eDir1BwdDir2_Dir2FwdDir1;
225 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
226 BOOST_CHECK_EQUAL(idmap[0], 6);
227 BOOST_CHECK_EQUAL(idmap[1], 3);
228 BOOST_CHECK_EQUAL(idmap[2], 0);
229 BOOST_CHECK_EQUAL(idmap[3], 7);
230 BOOST_CHECK_EQUAL(idmap[4], 4);
231 BOOST_CHECK_EQUAL(idmap[5], 1);
232 BOOST_CHECK_EQUAL(idmap[6], 8);
233 BOOST_CHECK_EQUAL(idmap[7], 5);
234 BOOST_CHECK_EQUAL(idmap[8], 2);
235
236 orient = StdRegions::eDir1BwdDir2_Dir2BwdDir1;
237 exp3d->ReOrientTracePhysMap(orient, idmap, nq0, nq1);
238 BOOST_CHECK_EQUAL(idmap[0], 8);
239 BOOST_CHECK_EQUAL(idmap[1], 5);
240 BOOST_CHECK_EQUAL(idmap[2], 2);
241 BOOST_CHECK_EQUAL(idmap[3], 7);
242 BOOST_CHECK_EQUAL(idmap[4], 4);
243 BOOST_CHECK_EQUAL(idmap[5], 1);
244 BOOST_CHECK_EQUAL(idmap[6], 6);
245 BOOST_CHECK_EQUAL(idmap[7], 3);
246 BOOST_CHECK_EQUAL(idmap[8], 0);
247}
Describes the specification for a Basis.
Defines a specification for a set of points.
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
@ eGaussLobattoLegendre
1D Gauss-Lobatto-Legendre quadrature points
@ eModified_A
Principle Modified Functions .
std::shared_ptr< HexExp > HexExpSharedPtr
unique_ptr_objpool< HexGeom > HexGeomUniquePtr
unique_ptr_objpool< PointGeom > PointGeomUniquePtr