VisIt简单的数据编写Word格式.docx
- 文档编号:8598242
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:17
- 大小:308.47KB
VisIt简单的数据编写Word格式.docx
《VisIt简单的数据编写Word格式.docx》由会员分享,可在线阅读,更多相关《VisIt简单的数据编写Word格式.docx(17页珍藏版)》请在冰点文库上搜索。
};
floatzonal[NZ-1][NY-1][NX-1],nodal[NZ][NY][NX];
float*vars[]={(float*)zonal,(float*)nodal};
/*Createzonalvariable*/
for(k=0;
k<
NZ-1;
++k)
for(j=0;
j<
NY-1;
++j)
for(i=0;
i<
NX-1;
++i,++index)
zonal[k][j][i]=(float)index;
/*Createnodalvariable.*/
NZ;
NY;
NX;
++i)
nodal[k][j][i]=sqrt(i*i+j*j+k*k);
/*Usevisit_writertowritearegularmeshwithdata.*/
write_regular_mesh("
vwregmesh.vtk"
0,dims,nvars,vardims,
centering,varnames,vars);
return0;
}
函数:
write_regular_mesh("
0,dims,nvars,vardims,centering,varnames,vars);
参数说明:
"
:
vtk文件名(constchar*);
0:
useBinary,0为ASCII,非0为二进制(int);
dims:
{nI,nJ,nK},各方向的结点数(三维int数组);
nvars:
变量数目(int);
vardims:
每个变量的维数,标量1维,矢量3维(nars维int数组);
centering:
每个变量的定心,0表示基于单元,非0表示基于结点(nars维int数组);
varnames:
变量名字(nars维constchar*)
vars:
变量数组,大小为结点/单元*vardims[i](float二维数组)
VTK文件格式(ASCII):
#vtkDataFileVersion2.0
WrittenusingVisItwriter
ASCII
DATASETRECTILINEAR_GRID
DIMENSIONS102030
X_COORDINATES10float
0.000000000000e+001.000000000000e+002.000000000000e+003.000000000000e+004.000000000000e+005.000000000000e+006.000000000000e+007.000000000000e+008.000000000000e+009.000000000000e+00
Y_COORDINATES20float
0.000000000000e+001.000000000000e+002.000000000000e+003.000000000000e+004.000000000000e+005.000000000000e+006.000000000000e+007.000000000000e+008.000000000000e+009.000000000000e+001.000000000000e+011.100000000000e+011.200000000000e+011.300000000000e+011.400000000000e+011.500000000000e+011.600000000000e+011.700000000000e+011.800000000000e+011.900000000000e+01
Z_COORDINATES30float
0.000000000000e+001.000000000000e+002.000000000000e+003.000000000000e+004.000000000000e+005.000000000000e+006.000000000000e+007.000000000000e+008.000000000000e+009.000000000000e+001.000000000000e+011.100000000000e+011.200000000000e+011.300000000000e+011.400000000000e+011.500000000000e+011.600000000000e+011.700000000000e+011.800000000000e+011.900000000000e+012.000000000000e+012.100000000000e+012.200000000000e+012.300000000000e+012.400000000000e+012.500000000000e+012.600000000000e+012.700000000000e+012.800000000000e+012.900000000000e+01
CELL_DATA4959
SCALARSzonalfloat
LOOKUP_TABLEdefault
0.000000000000e+001.000000000000e+002.000000000000e+003.000000000000e+00
省略
4.955000000000e+034.956000000000e+034.957000000000e+034.958000000000e+03
POINT_DATA6000
SCALARSnodalfloat
省略
3.518522262573e+013.536948013306e+013.558089447021e+013.581898880005e+01
绘图结果(mesh+nodal):
●直线网格数据
#defineNX4
#defineNY5
/*Rectilinearmeshcoordinates.*/
floatx[]={0.,1.,2.5,5.};
floaty[]={0.,2.,2.25f,2.55f,5.};
floatz[]={0.};
intdims[]={NX,NY,1};
intndims=2;
/*ZonalandNodalvariabledata.*/
floatzonal[NY-1][NX-1],nodal[NY][NX];
/*Infoaboutthevariablestopasstovisit_writer.*/
float*vars[]={(float*)zonal,(float*)nodal};
/*Createazonalvariable.*/
inti,j,index=0;
for(j=0;
for(i=0;
zonal[j][i]=(float)index;
/*Createanodalvariable.*/
index=0;
nodal[j][i]=(float)index;
/*Passthedatatovisit_writertowriteaVTKfile.*/
write_rectilinear_mesh("
vwrect2d.vtk"
0,dims,x,y,z,nvars,
vardims,centering,varnames,vars);
write_rectilinear_mesh("
0,dims,x,y,z,nvars,vardims,centering,varnames,vars);
x,y,z:
各方向的结点坐标数组(长度为dims[i]);
DIMENSIONS451
X_COORDINATES4float
0.000000000000e+001.000000000000e+002.500000000000e+005.000000000000e+00
Y_COORDINATES5float
0.000000000000e+002.000000000000e+002.250000000000e+002.549999952316e+005.000000000000e+00
Z_COORDINATES1float
0.000000000000e+00
CELL_DATA12
0.000000000000e+001.000000000000e+002.000000000000e+003.000000000000e+004.000000000000e+005.000000000000e+006.000000000000e+007.000000000000e+008.000000000000e+009.000000000000e+001.000000000000e+011.100000000000e+01
POINT_DATA20
●曲线网格数据(必须提供每个点的X、Y、Z坐标)
#defineNY3
#defineNZ2
/*Curvilinearmeshpointsstoredx0,y0,z0,x1,y1,z1,...*/
floatpts[]={0,0.5,0,1,0,0,2,0,0,
3,0.5,0,0,1,0,1,1,0,
2,1,0,3,1,0,0,1.5,0,
1,2,0,2,2,0,3,1.5,0,
0,0.5,1,1,0,1,2,0,1,
3,0.5,1,0,1,1,1,1,1,
2,1,1,3,1,1,0,1.5,1,
1,2,1,2,2,1,3,1.5,1
/*Zonalandnodalvariabledata.*/
nodal[k][j][i]=index;
/*Passthedatatovisit_writertowriteabinaryVTKfile.*/
write_curvilinear_mesh("
vwcurv3d.vtk"
0,dims,pts,nvars,
write_curvilinear_mesh("
0,dims,pts,nvars,vardims,centering,varnames,vars);
pts:
nI*nJ*nK*3的数组,结点坐标(x0,y0,z0,x1,y1,z1……)
DATASETSTRUCTURED_GRID
DIMENSIONS432
POINTS24float
0.000000000000e+005.000000000000e-010.000000000000e+001.000000000000e+00
1.000000000000e+003.000000000000e+001.500000000000e+001.000000000000e+00
CELL_DATA6
0.000000000000e+001.000000000000e+002.000000000000e+003.000000000000e+004.000000000000e+005.000000000000e+00
POINT_DATA24
2.000000000000e+012.100000000000e+012.200000000000e+012.300000000000e+01
●点网格数据
#defineNPTS100
/*Createsomepointsanddatatosave.*/
inti;
floatpts[NPTS][3],data[NPTS];
intvardims[]={1,3};
data"
ptsvec"
float*vars[]={(float*)pts,data};
for(i=0;
NPTS;
{
/*Makeapoint.*/
floatt=((float)i)/((float)(NPTS-1));
floatangle=3.14159*10.*t;
pts[i][0]=t*cos(angle);
pts[i][1]=t*sin(angle);
pts[i][2]=t;
/*Makeascalar*/
data[i]=t*cos(angle);
}
/*Passthemeshanddatatovisit_writer.*/
write_point_mesh("
vwpoint3d.vtk"
1,NPTS,(float*)pts,nvars,
vardims,varnames,vars);
write_point_mesh("
1,NPTS,(float*)pts,nvars,vardims,varnames,vars);
NPTS:
网格点的数目;
结点的位置信息(x1,y1,z1,x2,y2,z2……);
变量数组,大小为结点/单元数*vardims[i](float二维数组)
DATASETUNSTRUCTURED_GRID
POINTS100float
0.000000000000e+000.000000000000e+000.000000000000e+009.596678428352e-03
9.898989796638e-011.000000000000e+00-2.725916419877e-051.000000000000e+00
CELLS100200
10
199
CELL_TYPES100
1
CELL_DATA100
POINT_DATA100
SCALARSdatafloat
0.000000000000e+000.000000000000e+000.000000000000e+009.59667842835
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisIt 简单 数据 编写