輸出Tecplot格式的數據文件

Tecplot輸出文件格式

如果想將你的雲圖數據輸出,對於整塊的塊狀結構數據,我的輸出方法如下:

#include <fstream>
string fileName;//你的文件名
int x0,x1,y0,y1,z0,z1;//你儲存數據的三維數組對應的下限和上限
//你X,Y,Z所對應的格點數量
int Grid_X=x1-x0+1;
int Grid_Y=y1-y0+1;
int Grid_Z=z1-z0+1;
ofstream fout;
fout.open(fileName+".dat", ios::ate); 
fout << "TITLE = \"contour\"\nvariables = \"x\", \"y\", \"z\", \"value\"\nZone I = " << Grid_Z << ", J = " << Grid_Y << ", K = " << Grid_X << " F = POINT" << endl;
for (int i = domain.x0; i <= domain.x1; i++){
	for (int j = domain.y0; j <= domain.y1; j++){
		for (int k = domain.z0; k <= domain.z1; k++){
			fout << i << "\t" << j << "\t" << k << "\t" << value[i][j][k] << endl;
		}
	}
}
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 ”,一般用於離散塊數據的輸出,如果沒記錯的話,是對應於標籤,同一個標籤一起輸出,然後再對應輸出下一個標籤的值。雖然不會有循環嵌套順序的問題,但一定要對應好,第一個標籤塊的第一個數據對應第二個標籤塊的第一個數據,雖然輸出方式有改變,但對應不能變,否則就亂套了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章