tecplot导入dat或者plt数据文件

  • Language: Chinese
  • UTF8 4空格缩进 大括号对齐
  • C++23
  • Tecplot 360 EX 2022 R1

​ 接上一篇文章,在这里放上tecplot导入dat和plt数据文件的格式要求,给出了简单的示例代码。

​ 先说一下,dat是Tecplot Data Loader。

在这里插入图片描述

​ 这里我导入的文件格式如下:

在这里插入图片描述

​ 红框内的是“数据抬头”,就是告诉tecplot我想要怎样绘制图形。

​ Title= 设定名称,任意设置

​ variables= “x”,“y” 给定有几个坐标 “T” 绘制的数据

​ zone 绘制区域 f=fepoint绘制类型

​ 通过数据抬头,你可以将你的数据绘制成线型图,柱状图以及彩色的云图等等。对这一部分感兴趣的可以看这篇博客:1-学习tecplot360 - 猪冰龙 - 博客园 (cnblogs.com)

​ 基础出图的教程可以看这个:科研小白SCI出图-part1-tecplot基础出图 - 知乎 (zhihu.com)

​ 上面的数据出图如下:

在这里插入图片描述

​ 类似的导入plt文件具体详细实现可以看这篇:[matlab数据转换为tecplot格式ASCII码格式下的plt文件]_fetetrahedron-CSDN博客

​ 本博客只是贴出一小段自己的save_data以供参考和自己以后使用:

/*输出数据*/
/*函数第一个参数是为了命名,第二个参数是为了以后添加功能,比如选择输出哪些数据,
第三个参数是选择输出dat文件的位置。
如果不能在目标文件夹创建文件(比如你没创建那么一个文件夹的话),就在当前目录输出文件
强烈建议自己对输入输出文件创立文件夹,而不是直接输出在程序同级目录
*/
int sava_data(int OutPut_step,int di=2,string local_string = "./OutPut_data/data")
{
	ofstream f1;
	string f_name = local_string + to_string(OutPut_step) + ".dat";
	//cout<<f_name<<endl;
	f1.open(f_name, ios::app);
	//如果无法在指定路径创建或打开文件,则直接在main同级目录下生成data文件
	if (!f1)
	{
		std::cerr << "error:can't creat/open -- " << f_name << std::endl;
		f1.open("data"+ to_string(OutPut_step)+".dat", ios::app);
		//数据抬头
		f1 << R"(Title="contour")"<<endl;
		f1 << R"(variables ="x", "y", "T")"<< endl;
		f1 << R"(Zone I = 100, J = 100 F = POINT)"<< endl;
		//按列输入数据
		for (int j = 0; j < m; j++)
		
		{
			for (int i = 0; i < n; i++)
			{
				f1 << i << "\t" << j << "\t" << rho[i][j] << endl;
			}
		}
		return 1;
	}
	else
	{
		//数据抬头
		f1 << R"(Title="contour")"<<endl;
		f1 << R"(variables ="x", "y", "T")"<< endl;
		f1 << R"(Zone I = 100, J = 100 F = POINT)"<< endl;
		//按列输入数据
		for (int j = 0; j < m; j++)
		{
			for (int i = 0; i < n; i++)
			{
				f1 << i << "\t" << j << "\t" << rho[i][j] << endl;
			}
		}
	}
	f1.close();
	//cout<<"end"<<endl;
	return  0;
}

​ 输出plt文件代码,这个比上一个简略:

void save_data(int iter)
{
	ostringstream f1;
	f1 << "fpcTecplot_" << iter << ".plt";
	f1 << scientific; 
	f1.precision(4);  
	ofstream out(f1.str().c_str());
	//数据抬头
	out << "VARIABLES = \"X\"\n";
	out << "\"Y\"" << endl;
	out << "\"arho\"" << endl;
	out << "\"brho\"" << endl;
	out << "\"au\"" << endl;
	out << "\"av\"" << endl;
	out << "\"bu\"" << endl;
	out << "\"bv\"" << endl;
	out << "\"U\"" << endl;
	out << "\"V\"" << endl;
	out << "\"P\"" << endl;
	out << "ZONE T=\"G1\" " << "I=" << NX + 1 << ',' << ' ' << "J=" << NY + 1 << endl;
	out << "DT=(SINGLE SINGLE SINGLE SINGLE SINGLE SINGLE SINGLE)" << endl;

	for (int j = 0; j <= NY; j++)
		for (int i = 0; i <= NX; i++)
		{
			out << i << '\t' << j << '\t' << arho[i][j] << '\t' << brho[i][j] << '\t' << au[i][j] << '\t' << av[i][j] << '\t'
				<< bu[i][j] << '\t' << bv[i][j] << '\t' << u[i][j] << '\t' << v[i][j] << '\t'
				<< (arho[i][j] + brho[i][j]) / 3. + Gc / 3. * arho[i][j] * brho[i][j] << endl;
		}
}

 '\t' << v[i][j] << '\t'
				<< (arho[i][j] + brho[i][j]) / 3. + Gc / 3. * arho[i][j] * brho[i][j] << endl;
		}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值