Skip to main content

How can I transfer data from c++ programming into Tecplot?

Submitted by arkakoee on

I wrote a code with c++ and now I wat to transport them to Tecplot for showing result in charts.

How can i do that?

 

Use this if you like. The variables names are self explanatory. 
 
 
void PlotTecCoordConnWithNodalFields(const char * filename, 
    const CoordConn &MD, 
    const double *nodalfieldtoplot,
    const int NFields)
{
  // Open file to plot
  std::fstream outfile;
  outfile.open(filename, std::ios::out);
  
  // Line 1:
  if( MD.spatial_dimension==2 )
    outfile<<"VARIABLES = \"X\", \"Y\" ";
  else if( MD.spatial_dimension==3)
    outfile<<"VARIABLES = \"X\", \"Y\", \"Z\" ";
  
  for(int i=1; i<=NFields; i++)
    {
      char var1[100] = "F";
      char var2[100];
      sprintf(var2, "%d", i);
      strcat(var1, var2);
      outfile<<", \""<<var1<<"\" ";
    }
  outfile<<"\n";
  
  // Line 2:
  outfile<<"ZONE t=\"t:0\", N="<<MD.nodes<<", E="<<MD.elements<<", F=FEPOINT, ET=";
  if(MD.nodes_element==3)
    outfile<<"TRIANGLE";
  else if(MD.nodes_element==4 && MD.spatial_dimension==2)
    outfile<<"QUADRILATERAL";
  else if(MD.nodes_element==4)
    outfile<<"TETRAHEDRON";
  else if(MD.spatial_dimension==3 && MD.nodes_element==8)
    outfile<<"BRICK";
  else
    {
      std::cerr<<"\nPlottingUtils.cpp- PlotTecCoordConnWithNodalFields()- "
      <<"Unknown element type provided. \n";
      exit(1);
    }
  outfile<<"\n";
  
  std::cout.precision(16);
  
  // Nodal coordinates and field values
  for(int i=0; i<MD.nodes; i++)
    {
      for(int k=0; k<MD.spatial_dimension; k++)
outfile<<std::scientific<<MD.coordinates[i*MD.spatial_dimension+k]<<" ";
      
      if(nodalfieldtoplot!=0)
for(int f=0; f<NFields; f++)
 outfile<<std::scientific<<nodalfieldtoplot[i*NFields+f]<<" ";
      outfile<<"\n";
    }
  
  // Connectivity
  for(int e=0; e<MD.elements; e++)
    {
      for(int k=0; k<MD.nodes_element; k++)
outfile<<MD.connectivity[e*MD.nodes_element+k]<<" ";
      outfile<<"\n";
    }
  
  outfile.close();
}

Fri, 03/16/2012 - 07:12 Permalink