找回密码
 注册
查看: 1777|回复: 7

请教有关Tecplot的问题

[复制链接]
发表于 2004-3-2 17:28:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好!
   我在用vc++输出Tecplot的文件格式时出现如图所示的错误提示。
开始我认为是文件结尾多了一行所以我就打开文件删除最后的空行。结果可以了。于是我修改vc++程序,在最后不输出空行。可是还是出现同样的问题。于是我就在最后加了一个空行又可以了。总之是只要我在文件后修改一下(增加或删除一行)就可以了。我不知道这是什么问题。向大家请教。谢谢!

                                               
                                                   
发表于 2004-3-2 23:03:40 | 显示全部楼层

请教有关Tecplot的问题

我也听人说遇到这样的问题,不过我用Fortran就没碰到过。
有谁知道吗?
发表于 2004-3-4 23:04:59 | 显示全部楼层

请教有关Tecplot的问题

你看看你的数据文件内容是不是出了问题
发表于 2004-3-5 09:55:00 | 显示全部楼层

请教有关Tecplot的问题

应该是你的两个方向的网格长度数量和你的实际数据文件组数不一致。比如:there are 10 grids in x-direction and 10 grids in y-direction,but in your data file there are only 9 grids in x-direction or 11 grids in y-direction.
 楼主| 发表于 2004-3-5 19:47:25 | 显示全部楼层

请教有关Tecplot的问题

谢谢大家的提示,我查看了应该不是这些原因。我输出了一个最简单的数据。还是不行。
VARIABLES = "X","Y","T"
ZONE T= "1",N=4,E=1,F=FEPOINT,ET=quadrilateral
100.000000          100.000000          0.000000
120.000000          100.000000          0.000000
100.000000          120.000000          0.000000
120.000000          120.000000          0.000000
1        3        4        2
但只要在后面增加或删除一行就可以了。
希望大家帮忙。谢谢!
发表于 2004-3-6 06:48:03 | 显示全部楼层

请教有关Tecplot的问题

是不是你没输出回车符?
fortran是自动加回车符的
c++没有
 楼主| 发表于 2004-3-6 11:11:00 | 显示全部楼层

请教有关Tecplot的问题

谢谢你们的帮助。我在VC++中是用\n进行换行回车的。代码如下
CStdioFile file;
file.Open("G:\\浓度场的坐标.plt",CFile::modeCreate+CFile::modeWrite);
CString str10;
CString str11;
CString str12;
CString str13,str14,str15,str16;
str10.Format("VARIABLES = \042X\042,\042Y\042,\042C\042\n");
str11.Format("ZONE I=%d,J=%d,F=POINT \n",(m_cellNodeX-1),(m_cellNodeY-1));
file.Write((LPCSTR)str10,str10.GetLength());
file.Write((LPCSTR)str11,str11.GetLength());
float * m_coordinate;
int * m_nodenumber;
for(int nn=0;nn<m_cellArray.GetSize();nn++)
{
m_coordinate=m_cellArray[nn]->GetCellCenter();
str14.Format("%f",m_coordinate[0]);
        str15.Format("%f",m_coordinate[1]);
//str16.Format("%f\n",m_cellArray[nn]->GetConcentration());
//str16.Format("%f\n",m_cellArray[nn]->GetCellState());
if(nn==m_cellArray.GetSize()-1)
str16.Format("%f\n",m_cellArray[nn]->GetOrientation());
else
         str16.Format("%f\n",m_cellArray[nn]->GetOrientation());
file.Write((LPCSTR)str14,str14.GetLength());
file.Seek(20-str14.GetLength(),CFile::current);
        file.Write((LPCSTR)str15,str15.GetLength());
file.Seek(20-str15.GetLength(),CFile::current);
        file.Write((LPCSTR)str16,str16.GetLength());

}
file.Close();
发表于 2004-3-9 04:00:19 | 显示全部楼层

请教有关Tecplot的问题

怎么搞这么复杂
印象中C++应该是这样的
cout<<x<y<<t<<endl;
上面的程序和你的输出文件不一样啊
VARIABLES = "X","Y","T"
ZONE T= "1",N=4,E=1,F=FEPOINT,ET=quadrilateral
100.000000          100.000000          0.000000
120.000000          100.000000          0.000000
100.000000          120.000000          0.000000
120.000000          120.000000          0.000000
1        3        4        2
code:
str11.format("ZONE I=%d,J=%d,F=POINT \n",(m_cellNodeX-1),(m_cellNodeY-1));
没有ET=quadrilateral ?
for循环
for(int nn=0;nn<m_cellArray.GetSize();nn++)
{
}
只输出了x, y, and T
最后的单元
1        3        4        2
从那里输出的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表