6 using namespace Nektar;
 
    8 int main(
int argc, 
char *argv[])
 
   10     Array<OneD,NekDouble>  fce; 
 
   11     Array<OneD,NekDouble>  xc0,xc1,xc2; 
 
   15         fprintf(stderr,
"Usage: XmlToTecplotWireFrame  meshfile\n");
 
   24     string meshfile(argv[argc-1]);
 
   30     int expdim   = mesh->GetMeshDimension();
 
   40             string   outname(strtok(argv[argc-1],
"."));
 
   42             FILE *fp = fopen(outname.c_str(),
"w");
 
   47             int nverts = mesh->GetNvertices();
 
   49             fprintf(fp,
"Variables = x, y\n");
 
   50             fprintf(fp,
"Zone,N=%d, E=%d,DATAPACKING=POINT,ZONETYPE=FEQUADRILATERAL\n",nverts,(
int)(trigeom.size()+quadgeom.size()));
 
   52             for(
int i = 0; i < nverts; ++i)
 
   54                 mesh->GetVertex(i)->GetCoords(x,y,z);
 
   55                 fprintf(fp,
"%lf %lf\n",x,y);
 
   59             for(triIter = trigeom.begin(); triIter != trigeom.end(); ++triIter)
 
   61                 fprintf(fp,
"%d %d %d %d\n",(triIter->second)->GetVid(0)+1,(triIter->second)->GetVid(1)+1,(triIter->second)->GetVid(2)+1,(triIter->second)->GetVid(2)+1);
 
   65             for(quadIter = quadgeom.begin(); quadIter != quadgeom.end(); ++quadIter)
 
   67                 fprintf(fp,
"%d %d %d %d\n",(quadIter->second)->GetVid(0)+1,(quadIter->second)->GetVid(1)+1,(quadIter->second)->GetVid(2)+1,(quadIter->second)->GetVid(3)+1);
 
   75             string   outname(strtok(argv[argc-1],
"."));
 
   77             FILE *fp = fopen(outname.c_str(),
"w");
 
   89             int nverts = mesh->GetNvertices();
 
   96             for(tetIter = tetgeom.begin(); tetIter != tetgeom.end(); ++tetIter)
 
   98                 for(i = 0; i < 4; ++i)
 
  100                     int vid = (tetIter->second)->GetVid(i);
 
  101                     if(vertid.count(vid) == 0)
 
  103                         vertord.push_back(vid);
 
  109             for(pyrIter = pyrgeom.begin(); pyrIter != pyrgeom.end(); ++pyrIter)
 
  111                 for(i = 0; i < 5; ++i)
 
  113                     int vid = (pyrIter->second)->GetVid(i);
 
  114                     if(vertid.count(vid) == 0)
 
  116                         vertord.push_back(vid);
 
  123             for(prismIter = prismgeom.begin(); prismIter != prismgeom.end(); ++prismIter)
 
  125                 for(i = 0; i < 5; ++i)
 
  127                     int vid = (prismIter->second)->GetVid(i);
 
  128                     if(vertid.count(vid) == 0)
 
  130                         vertord.push_back(vid);
 
  136             for(hexIter = hexgeom.begin(); hexIter != hexgeom.end(); ++hexIter)
 
  138                 for(i = 0; i < 6; ++i)
 
  140                     int vid = (hexIter->second)->GetVid(i);
 
  141                     if(vertid.count(vid) == 0)
 
  143                         vertord.push_back(vid);
 
  149             ASSERTL0(cnt == nverts,
"Vertex count did not match");
 
  151             fprintf(fp,
"Variables = x, y, z\n");
 
  152             fprintf(fp,
"Zone,N=%d, E=%d,DATAPACKING=POINT,ZONETYPE=FEBRICK\n",nverts,(
int)(tetgeom.size() + pyrgeom.size() + prismgeom.size() + hexgeom.size()));
 
  154             Array<OneD, NekDouble> xc(nverts),yc(nverts),zc(nverts);
 
  157             for(i = 0; i < nverts; ++i)
 
  159                 mesh->GetVertex(vertord[i])->GetCoords(x,y,z);
 
  160                 fprintf(fp,
"%lf %lf %lf \n",x,y,z);
 
  167             for(tetIter = tetgeom.begin(); tetIter != tetgeom.end(); ++tetIter)
 
  170                 fprintf(fp,
"%d %d %d %d %d %d %d %d\n",
 
  171                         vertid[(tetIter->second)->GetVid(0)]+1,
 
  172                         vertid[(tetIter->second)->GetVid(1)]+1,
 
  173                         vertid[(tetIter->second)->GetVid(2)]+1,
 
  174                         vertid[(tetIter->second)->GetVid(2)]+1,
 
  175                         vertid[(tetIter->second)->GetVid(3)]+1,
 
  176                         vertid[(tetIter->second)->GetVid(3)]+1,
 
  177                         vertid[(tetIter->second)->GetVid(3)]+1,
 
  178                         vertid[(tetIter->second)->GetVid(3)]+1);
 
  182             for(pyrIter = pyrgeom.begin(); pyrIter != pyrgeom.end(); ++pyrIter)
 
  184                 fprintf(fp,
"%d %d %d %d %d %d %d %d\n",
 
  185                         vertid[(pyrIter->second)->GetVid(0)]+1,
 
  186                         vertid[(pyrIter->second)->GetVid(1)]+1,
 
  187                         vertid[(pyrIter->second)->GetVid(3)]+1,
 
  188                         vertid[(pyrIter->second)->GetVid(2)]+1,
 
  189                         vertid[(pyrIter->second)->GetVid(4)]+1,
 
  190                         vertid[(pyrIter->second)->GetVid(4)]+1,
 
  191                         vertid[(pyrIter->second)->GetVid(4)]+1,
 
  192                         vertid[(pyrIter->second)->GetVid(4)]+1);
 
  195             for(prismIter = prismgeom.begin(); prismIter != prismgeom.end(); ++prismIter)
 
  197                 fprintf(fp,
"%d %d %d %d %d %d %d %d\n",
 
  198                         vertid[(prismIter->second)->GetVid(0)]+1,
 
  199                         vertid[(prismIter->second)->GetVid(1)]+1,
 
  200                         vertid[(prismIter->second)->GetVid(3)]+1,
 
  201                         vertid[(prismIter->second)->GetVid(2)]+1,
 
  202                         vertid[(prismIter->second)->GetVid(4)]+1,
 
  203                         vertid[(prismIter->second)->GetVid(4)]+1,
 
  204                         vertid[(prismIter->second)->GetVid(5)]+1,
 
  205                         vertid[(prismIter->second)->GetVid(5)]+1);
 
  208             for(hexIter = hexgeom.begin(); hexIter != hexgeom.end(); ++hexIter)
 
  210                 fprintf(fp,
"%d %d %d %d %d %d %d %d\n",
 
  211                         vertid[(hexIter->second)->GetVid(0)]+1,
 
  212                         vertid[(hexIter->second)->GetVid(1)]+1,
 
  213                         vertid[(hexIter->second)->GetVid(3)]+1,
 
  214                         vertid[(hexIter->second)->GetVid(2)]+1,
 
  215                         vertid[(hexIter->second)->GetVid(4)]+1,
 
  216                         vertid[(hexIter->second)->GetVid(5)]+1,
 
  217                         vertid[(hexIter->second)->GetVid(7)]+1,
 
  218                         vertid[(hexIter->second)->GetVid(6)]+1);
 
  225         ASSERTL0(
false,
"Expansion dimension not recognised");