153 vector<int> iEdge_01;
154 vector<int> iEdge_12;
155 vector<int> iEdge_20;
156 vector<int> iEdge_03;
157 vector<int> iEdge_13;
158 vector<int> iEdge_23;
159 vector<int> iFace_012;
160 vector<int> iFace_013;
161 vector<int> iFace_123;
162 vector<int> iFace_203;
163 vector<int> interiorVolumePoints;
167 for(
int z=0, index=0; z<npts; ++z){
168 for(
int y=0; y<npts-z; ++y){
169 for(
int x=0; x<npts-z-y; ++x, ++index){
171 if( isVertex(x,y,z,npts) ){
173 vertex.push_back(index);
175 }
else if( isEdge(x,y,z,npts) ){
177 if( isEdge_01(x,y,z,npts) ){
179 iEdge_01.push_back(index);
181 }
else if( isEdge_12(x,y,z,npts) ){
183 iEdge_12.push_back(index);
185 }
else if( isEdge_20(x,y,z,npts) ){
187 iEdge_20.insert(iEdge_20.begin(), index);
189 }
else if( isEdge_03(x,y,z,npts) ){
191 iEdge_03.push_back(index);
193 }
else if( isEdge_13(x,y,z,npts) ){
195 iEdge_13.push_back(index);
197 }
else if( isEdge_23(x,y,z,npts) ){
199 iEdge_23.push_back(index);
203 }
else if( isFace(x,y,z,npts) ) {
205 if( isFace_012(x,y,z,npts) ){
207 iFace_012.push_back(index);
209 }
else if( isFace_013(x,y,z,npts) ){
211 iFace_013.push_back(index);
213 }
else if( isFace_123(x,y,z,npts) ){
215 iFace_123.push_back(index);
217 }
else if( isFace_203(x,y,z,npts) ){
219 iFace_203.push_back(index);
224 interiorVolumePoints.push_back(index);
232 for(
unsigned int n=0; n<vertex.size(); ++n){
234 map.push_back(vertex[n]);
237 for(
unsigned int n=0; n<iEdge_01.size(); ++n){
239 map.push_back(iEdge_01[n]);
242 for(
unsigned int n=0; n<iEdge_12.size(); ++n){
244 map.push_back(iEdge_12[n]);
247 for(
unsigned int n=0; n<iEdge_20.size(); ++n){
249 map.push_back(iEdge_20[n]);
252 for(
unsigned int n=0; n<iEdge_03.size(); ++n){
254 map.push_back(iEdge_03[n]);
257 for(
unsigned int n=0; n<iEdge_13.size(); ++n){
259 map.push_back(iEdge_13[n]);
262 for(
unsigned int n=0; n<iEdge_23.size(); ++n){
264 map.push_back(iEdge_23[n]);
267 for(
unsigned int n=0; n<iFace_012.size(); ++n){
269 map.push_back(iFace_012[n]);
272 for(
unsigned int n=0; n<iFace_013.size(); ++n){
274 map.push_back(iFace_013[n]);
277 for(
unsigned int n=0; n<iFace_123.size(); ++n){
279 map.push_back(iFace_123[n]);
282 for(
unsigned int n=0; n<iFace_203.size(); ++n){
284 map.push_back(iFace_203[n]);
287 for(
unsigned int n=0; n<interiorVolumePoints.size(); ++n){
289 map.push_back(interiorVolumePoints[n]);
293 Array<OneD, NekDouble> points[3];
297 for(
unsigned int index=0; index<map.size(); ++index){
299 points[0][index] =
m_points[0][index];
300 points[1][index] =
m_points[1][index];
301 points[2][index] =
m_points[2][index];
305 for(
unsigned int index=0; index<map.size(); ++index){
307 m_points[0][index] = points[0][map[index]];
308 m_points[1][index] = points[1][map[index]];
309 m_points[2][index] = points[2][map[index]];