输出Tecplot格式的数据文件

た 入场券 2023-07-22 09:05 134阅读 0赞

Tecplot输出文件格式

如果想将你的云图数据输出,对于整块的块状结构数据,我的输出方法如下:

  1. #include <fstream>
  2. string fileName;//你的文件名
  3. int x0,x1,y0,y1,z0,z1;//你储存数据的三维数组对应的下限和上限
  4. //你X,Y,Z所对应的格点数量
  5. int Grid_X=x1-x0+1;
  6. int Grid_Y=y1-y0+1;
  7. int Grid_Z=z1-z0+1;
  8. ofstream fout;
  9. fout.open(fileName+".dat", ios::ate);
  10. fout << "TITLE = \"contour\"\nvariables = \"x\", \"y\", \"z\", \"value\"\nZone I = " << Grid_Z << ", J = " << Grid_Y << ", K = " << Grid_X << " F = POINT" << endl;
  11. for (int i = domain.x0; i <= domain.x1; i++){
  12. for (int j = domain.y0; j <= domain.y1; j++){
  13. for (int k = domain.z0; k <= domain.z1; k++){
  14. fout << i << "\t" << j << "\t" << k << "\t" << value[i][j][k] << endl;
  15. }
  16. }
  17. }
  18. fout.close();

标签 I、J、K 对应于你 Z、Y、X 所对应格点数量,循环嵌套对应的就是从最外层到最内层为 x、y、z,这个千万不要错,错了,当你Z、Y、X 所对应格点数量不同时,就会错误,一样的时候是看不出来的。
如果是二维的,标签 I、J 对应于 Y、X 循环嵌套对应从最外层到最内层为 x、y 。
标签“ F = POINT ”很重要,是说明,按照tecplot中的POINT形式读取数据。也就是一行一个点,x y z value。
此外还有一个标签叫做 “ F = BLOCK ”,一般用于离散块数据的输出,如果没记错的话,是对应于标签,同一个标签一起输出,然后再对应输出下一个标签的值。虽然不会有循环嵌套顺序的问题,但一定要对应好,第一个标签块的第一个数据对应第二个标签块的第一个数据,虽然输出方式有改变,但对应不能变,否则就乱套了。。。

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读

    相关 log4j滚动输出压缩文件

    本片文章接演上一篇[log4j 同时按日期和文件大小分割日志][log4j] 因为需求需要,将原来默认切分生成的文件输出为压缩包的格式,不要源文件的格式,这样能节省存储空间。