/[escript]/branches/domexper/dudley/src/Mesh_tet4.c
ViewVC logotype

Diff of /branches/domexper/dudley/src/Mesh_tet4.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3116 by jfenwick, Sun Aug 29 23:14:35 2010 UTC revision 3117 by jfenwick, Mon Aug 30 02:10:26 2010 UTC
# Line 182  Dudley_Mesh* Dudley_TriangularMesh_Tet4( Line 182  Dudley_Mesh* Dudley_TriangularMesh_Tet4(
182             out->Nodes->globalDegreesOfFreedom[k]=Nstride0*(global_i0%NDOF0)             out->Nodes->globalDegreesOfFreedom[k]=Nstride0*(global_i0%NDOF0)
183                                                 +Nstride1*(global_i1%NDOF1)                                                 +Nstride1*(global_i1%NDOF1)
184                                                 +Nstride2*(global_i2%NDOF2);                                                 +Nstride2*(global_i2%NDOF2);
185  //     printf("N=%d: %f,%f,%f\n", k, out->Nodes->Coordinates[INDEX2(0,k,DIM)],  /*     printf("N=%d: %f,%f,%f\n", k, out->Nodes->Coordinates[INDEX2(0,k,DIM)],
186  //      out->Nodes->Coordinates[INDEX2(1,k,DIM)],          out->Nodes->Coordinates[INDEX2(1,k,DIM)],
187  //      out->Nodes->Coordinates[INDEX2(2,k,DIM)]);          out->Nodes->Coordinates[INDEX2(2,k,DIM)]);*/
188           }           }
189         }         }
190       }       }
# Line 212  Dudley_Mesh* Dudley_TriangularMesh_Tet4( Line 212  Dudley_Mesh* Dudley_TriangularMesh_Tet4(
212    
213         index_t v[8];         index_t v[8];
214  /*     in non-rotated orientation the points are numbered as follows:  /*     in non-rotated orientation the points are numbered as follows:
215         The top face (clockwise= 0,1,3,2), bottom face (4,5,7,6)*/         The bottom face (anticlockwise= 0,1,3,2), top face (anticlockwise 4,5,7,6)*/
216         if ((global_adjustment+i0+i1+i2)%2==0)         if ((global_adjustment+i0+i1+i2)%2==0)
217         {         {
218  // printf("Type0 %d, %d, %d\n",i0,i1,i2);  // printf("Type0 %d, %d, %d\n",i0,i1,i2);
# Line 230  Dudley_Mesh* Dudley_TriangularMesh_Tet4( Line 230  Dudley_Mesh* Dudley_TriangularMesh_Tet4(
230  // printf("Type1 %d, %d, %d\n",i0,i1,i2);  // printf("Type1 %d, %d, %d\n",i0,i1,i2);
231         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees
232    
233         v[0]=node0+Nstride2;         v[0]=node0+Nstride1;         // node 0 ends up in position 2
234         v[2]=node0;         v[2]=node0+Nstride1+Nstride2;    // node 2 ends up in position 6
235         v[6]=node0+Nstride1;         v[6]=node0+Nstride2;         // node 6 ends up in position 4
236         v[4]=node0+Nstride1+Nstride2;         v[4]=node0;              // node 4 ends up in position 0
237    
238         v[1]=node0+Nstride0+Nstride2;         v[1]=node0+Nstride0+Nstride1;    // node 1 -> pos 3
239         v[3]=node0+Nstride0;         v[3]=node0+Nstride2+Nstride1+Nstride0;   // node 3-> pos 7
240         v[7]=node0+Nstride1+Nstride0;         v[7]=node0+Nstride0+Nstride2;    // node 7 -> pos 5
241         v[5]=node0+Nstride2+Nstride1+Nstride0;         v[5]=node0+Nstride0;         // node 5 -> pos 1
242         }         }
243    
244    // for (int z=0;z<8;++z)
245    // {
246    //     printf("z[%d]=%d\n", z, v[z]);
247    //
248    // }
249    
250    
251  //     index_t a=node0, b=node0+Nstride0, c=node0+Nstride1+Nstride0, d=node0+Nstride1;  //     index_t a=node0, b=node0+Nstride0, c=node0+Nstride1+Nstride0, d=node0+Nstride1;
252  //     index_t e=node0+Nstride2, f=node0+Nstride2+Nstride0, g=node0+Nstride2+Nstride1+Nstride0,  //     index_t e=node0+Nstride2, f=node0+Nstride2+Nstride0, g=node0+Nstride2+Nstride1+Nstride0,
253  //       h=node0+Nstride2+Nstride1;  //       h=node0+Nstride2+Nstride1;
# Line 266  Dudley_Mesh* Dudley_TriangularMesh_Tet4( Line 274  Dudley_Mesh* Dudley_TriangularMesh_Tet4(
274         out->Elements->Nodes[INDEX2(2,k+2,NN)] =v[0];         out->Elements->Nodes[INDEX2(2,k+2,NN)] =v[0];
275         out->Elements->Nodes[INDEX2(3,k+2,NN)] =v[6];         out->Elements->Nodes[INDEX2(3,k+2,NN)] =v[6];
276    
277    
278         out->Elements->Nodes[INDEX2(0,k+3,NN)] =v[1];         out->Elements->Nodes[INDEX2(0,k+3,NN)] =v[1];
279         out->Elements->Nodes[INDEX2(1,k+3,NN)] =v[0];         out->Elements->Nodes[INDEX2(1,k+3,NN)] =v[0];
280         out->Elements->Nodes[INDEX2(2,k+3,NN)] =v[3];         out->Elements->Nodes[INDEX2(2,k+3,NN)] =v[3];
# Line 278  Dudley_Mesh* Dudley_TriangularMesh_Tet4( Line 287  Dudley_Mesh* Dudley_TriangularMesh_Tet4(
287         out->Elements->Nodes[INDEX2(3,k+4,NN)] =v[3];         out->Elements->Nodes[INDEX2(3,k+4,NN)] =v[3];
288    
289    
290    // for (int z=0;z<5;++z)
291    // {
292    // printf("E %d:",z);
293    //    for (int q=0;q<4;++q)
294    //    {
295    //  index_t id=out->Elements->Nodes[INDEX2(q,z,NN)];
296    //  printf("   %d = %f, %f, %f\n", id, out->Nodes->Coordinates[INDEX2(0,id,DIM)],
297    //      out->Nodes->Coordinates[INDEX2(1,id,DIM)], out->Nodes->Coordinates[INDEX2(2,id,DIM)]);
298    //    }
299    // printf("\n");}
300    
301    
302  /*  /*
303  for (int j=0;j<4;++j)  for (int j=0;j<4;++j)
304  {  {
# Line 325  for (int j=0;j<4;++j) Line 346  for (int j=0;j<4;++j)
346                out->FaceElements->Owner[k+1]=myRank;                out->FaceElements->Owner[k+1]=myRank;
347            // in the element generation this face is a,b,c,d which is split by a-c            // in the element generation this face is a,b,c,d which is split by a-c
348    
349            index_t v[4];            index_t n4=node0+Nstride2;
350              index_t n5=node0+Nstride0+Nstride2;
351              index_t n6=node0+Nstride1+Nstride2;
352              index_t n7=node0+Nstride0+Nstride1+Nstride2;
353    
354            if ((global_adjustment+i0+i1)%2==0)            if ((global_adjustment+i0+i1)%2==0)
355            {            {
356          v[0]=node0+Nstride1+Nstride2;   // node 6              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n4;
357          v[1]=node0+Nstride2+Nstride1+Nstride0; // node 7              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n5;
358          v[2]=node0+Nstride2;    // node 4              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n6;
359          v[3]=node0+Nstride0+Nstride2;   // node 5  
360                out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n5;
361              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n7;
362              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n6;
363              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[3];  
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[0];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[3];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[2];  
364    
365            }            }
366            else            else
367            {            {
368          v[0]=node0+Nstride2;        // node4              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n4;
369          v[1]=node0+Nstride0+Nstride2;   // node5              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n5;
370          v[2]=node0;         // node0              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n7;
371          v[3]=node0+Nstride0;        // node1  
372                out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n4;
373              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n7;
374              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n6;
375              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[2];  
376    
377              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[3];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[1];  
378            }            }
379  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],
380  // out->FaceElements->Nodes[INDEX2(2,k,NN)]);  // out->FaceElements->Nodes[INDEX2(2,k,NN)]);
# Line 387  for (int j=0;j<4;++j) Line 406  for (int j=0;j<4;++j)
406                out->FaceElements->Tag[k+1]=BOTTOMTAG;                out->FaceElements->Tag[k+1]=BOTTOMTAG;
407                out->FaceElements->Owner[k+1]=myRank;                out->FaceElements->Owner[k+1]=myRank;
408    
409            index_t v[4];            index_t n0=node0;
410              index_t n1=node0+Nstride0;
411              index_t n2=node0+Nstride1;
412              index_t n3=node0+Nstride1+Nstride0;
413    
414            if ((global_adjustment+i0+i1+local_NE2-1)%2==0)            if ((global_adjustment+i0+i1+local_NE2-1)%2==0)
415            {            {
416          v[0]=node0;     // node 0  //          out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];
417          v[1]=node0+Nstride0;    // node 1  //          out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[3];
418          v[2]=node0+Nstride1;    // node 2  //          out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[2];
419          v[3]=node0+Nstride1+Nstride0;   // node 3  //
420    //          out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[0];
421              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];  //          out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[1];
422              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[3];  //          out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[3];
423              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[2];  
424                out->FaceElements->Nodes[INDEX2(0,k,NN)]=n0;
425              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n3;
426              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n2;
427              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[3];  
428                out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n0;
429                out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n1;
430                out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n3;
431    
432    
433            }            }
434            else            else
435            {            {
         v[0]=node0+Nstride2;    // 4  
         v[1]=node0+Nstride0+Nstride2;   //5  
         v[2]=node0;     // 0  
         v[3]=node0+Nstride0;    // 1  
   
436    
437              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n0;
438              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[2];              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n1;
439              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n2;
440    
441              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n1;
442              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[2];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n3;
443              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[3];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n2;
444            }            }
445    
446  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],
# Line 456  for (int j=0;j<4;++j) Line 476  for (int j=0;j<4;++j)
476                 out->FaceElements->Tag[k+1]=LEFTTAG;                 out->FaceElements->Tag[k+1]=LEFTTAG;
477                 out->FaceElements->Owner[k+1]=myRank;                 out->FaceElements->Owner[k+1]=myRank;
478                
479            index_t v[4];            index_t n0=node0;
480              index_t n2=node0+Nstride1;
481              index_t n4=node0+Nstride2;
482              index_t n6=node0+Nstride1+Nstride2;
483              
484             if ((global_adjustment+0+i1+i2)%2==0)             if ((global_adjustment+0+i1+i2)%2==0)
485         {         {
486         v[0]=node0+Nstride1+Nstride2;    // 6              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n0;
487         v[1]=node0+Nstride2;         // 4              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n4;
488         v[2]=node0+Nstride1;         // 2              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n6;
489         v[3]=node0;  
490              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n0;
491              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[3];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n6;
492              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n2;
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[0];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[3];  
493         }         }
494         else         else
495         {         {
496         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees
497         v[0]=node0+Nstride1;     // 2  
498         v[1]=node0+Nstride1+Nstride2;    // 6              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n0;
499         v[2]=node0;      // 0              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n4;
500         v[3]=node0+Nstride2; // 4              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n2;
501    
502              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n4;
503              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[2];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n6;
504              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n2;
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[1];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[3];  
505         }         }
506  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],
507  // out->FaceElements->Nodes[INDEX2(2,k,NN)]);  // out->FaceElements->Nodes[INDEX2(2,k,NN)]);
# Line 515  for (int j=0;j<4;++j) Line 531  for (int j=0;j<4;++j)
531                 out->FaceElements->Tag[k+1]=RIGHTTAG;                 out->FaceElements->Tag[k+1]=RIGHTTAG;
532                 out->FaceElements->Owner[k+1]=myRank;                 out->FaceElements->Owner[k+1]=myRank;
533    
534            index_t v[4];            index_t n1=node0+Nstride0;
535              index_t n3=node0+Nstride0+Nstride1;
536              index_t n5=node0+Nstride0+Nstride2;
537              index_t n7=node0+Nstride0+Nstride1+Nstride2;
538             if ((global_adjustment+local_NE0-1+i1+i2)%2==0)             if ((global_adjustment+local_NE0-1+i1+i2)%2==0)
539         {         {
540         v[0]=node0+Nstride0+Nstride2;    // 5              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n1;
541         v[1]=node0+Nstride2+Nstride1+Nstride0; // 7              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n3;
542         v[2]=node0+Nstride0;     // 1              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n5;
543         v[3]=node0+Nstride1+Nstride0;    // 3  
544                out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n3;
545                out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n7;
546              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n5;
             out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[3];  
             out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[1];  
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[0];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[3];  
547         }         }
548         else         else
549         {         {
550         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees
551         v[0]=node0+Nstride2;         // 4  
552         v[1]=node0+Nstride1+Nstride0;    // 3              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n1;
553         v[2]=node0+Nstride0+Nstride2;    // 5              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n7;
554         v[3]=node0+Nstride0;         // 1              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n5;
555    
556              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n1;
557              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[2];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n3;
558              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[1];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n7;
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[1];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[3];  
559         }         }
560  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],  // printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],
561  // out->FaceElements->Nodes[INDEX2(2,k,NN)]);  // out->FaceElements->Nodes[INDEX2(2,k,NN)]);
# Line 578  for (int j=0;j<4;++j) Line 587  for (int j=0;j<4;++j)
587                 out->FaceElements->Tag[k+1]=FRONTTAG;                 out->FaceElements->Tag[k+1]=FRONTTAG;
588                 out->FaceElements->Owner[k+1]=myRank;                 out->FaceElements->Owner[k+1]=myRank;
589    
590            index_t v[4];            index_t n0=node0;
591              index_t n1=node0+Nstride0;
592              index_t n4=node0+Nstride2;
593              index_t n5=node0+Nstride0+Nstride2;
594    
595             if ((global_adjustment+i0+0+i2)%2==0)             if ((global_adjustment+i0+0+i2)%2==0)
596         {         {
597         v[0]=node0+Nstride2;         // 4              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n0;
598         v[1]=node0+Nstride0+Nstride2;    // 5              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n1;
599         v[2]=node0;              // 0              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n5;
600         v[3]=node0+Nstride0;         // 1  
601                out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n0;
602                out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n5;
603              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n4;
             out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[1];  
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[3];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[1];  
604    
605    
606         }         }
607         else         else
608         {         {
609         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees
610         v[0]=node0+Nstride1+Nstride2;    // 6  
611         v[1]=node0+Nstride2+Nstride1+Nstride0;   // 7              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n0;
612         v[2]=node0+Nstride2;         // 4              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n1;
613         v[3]=node0+Nstride0+Nstride2;    // 5              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n4;
614    
615              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n1;
616              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[3];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n5;
617              out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[2];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n4;
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[0];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[3];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[1];  
618    
619         }         }
620  /*printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],  /*printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],
# Line 641  out->FaceElements->Nodes[INDEX2(2,k+1,NN Line 644  out->FaceElements->Nodes[INDEX2(2,k+1,NN
644                 out->FaceElements->Tag[k+1]=BACKTAG;                 out->FaceElements->Tag[k+1]=BACKTAG;
645                 out->FaceElements->Owner[k+1]=myRank;                 out->FaceElements->Owner[k+1]=myRank;
646    
647            index_t v[4];            index_t n2=node0+Nstride1;
648              index_t n6=node0+Nstride1+Nstride2;
649              index_t n7=node0+Nstride0+Nstride1+Nstride2;
650              index_t n3=node0+Nstride0+Nstride1;
651    
652             if ((global_adjustment+i0+local_NE1-1+i2)%2==0)             if ((global_adjustment+i0+local_NE1-1+i2)%2==0)
653         {         {
654         v[0]=node0+Nstride2+Nstride1+Nstride0;   // 7              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n2;
655         v[1]=node0+Nstride1+Nstride2;        // 6              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n6;
656         v[2]=node0+Nstride1+Nstride0;        // 3              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n3;
657         v[3]=node0+Nstride1;             // 2  
658                out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n6;
659                out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n7;
660              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n3;
             out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[1];  
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[2];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[3];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[1];  
661    
662    
663         }         }
664         else         else
665         {         {
666         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees         // this form is rotated around the 0,2,4,6 face clockwise 90 degrees
667         v[0]=node0+Nstride1+Nstride0;    // 3              out->FaceElements->Nodes[INDEX2(0,k,NN)]=n2;
668         v[1]=node0+Nstride1;         // 2              out->FaceElements->Nodes[INDEX2(1,k,NN)]=n6;
669         v[2]=node0+Nstride0;         // 1              out->FaceElements->Nodes[INDEX2(2,k,NN)]=n7;
670         v[3]=node0;              // 0  
671                out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=n2;
672              out->FaceElements->Nodes[INDEX2(0,k,NN)]=v[0];              out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=n7;
673              out->FaceElements->Nodes[INDEX2(1,k,NN)]=v[2];              out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=n3;
             out->FaceElements->Nodes[INDEX2(2,k,NN)]=v[3];  
   
             out->FaceElements->Nodes[INDEX2(0,k+1,NN)]=v[0];  
             out->FaceElements->Nodes[INDEX2(1,k+1,NN)]=v[3];  
             out->FaceElements->Nodes[INDEX2(2,k+1,NN)]=v[1];  
674    
675         }         }
676  /*printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],  /*printf("%d: %d, %d, %d\n", k,out->FaceElements->Nodes[INDEX2(0,k,NN)],  out->FaceElements->Nodes[INDEX2(1,k,NN)],

Legend:
Removed from v.3116  
changed lines
  Added in v.3117

  ViewVC Help
Powered by ViewVC 1.1.26