Plot3d 数据格式 您所在的位置:网站首页 icem怎么导出stl文件 Plot3d 数据格式

Plot3d 数据格式

2023-08-30 04:36| 来源: 网络整理| 查看: 265

转自:http://quaintchewster.is-programmer.com/posts/33016

http://hi.baidu.com/necrohan/blog/item/4997711f294102fde0fe0b8e.html

 

其实早已熟悉,只是借来存档一下。此外,以前不知iblank的unformatted格式写法,这个博文居然有。

 

 

PLOT3D文件格式     FLOW3D可以导出的数据格式有限,说明中说支持tecplot,但是是需要tecplot插件的,而且要360版本才行,找了2个插件可是不能用,而且插件的功能好像很有限。 PLOT3D格式的数据可以在后处理时导出,为此查了一下PLOT3D格式的数据,实在不行再转为tecplot格式的数据。 PLOT3D 数据格式 PLOT3D数据格式源于NASA,广泛用于规则网格的CFD数据文件。PLOT3D文件可以是ASCII, 也可是Fortran unformatted 或 C binary形式。 PLOT3D文件分为网格文件(XYZ 文件), 空气动力学结果文件 (Q 文件)和通用结果文件(函数文件 + 函数名称文件)。网格文件中可加入所谓的IBlank参数。 IBlank参数的定义: IBlank是在每一网格点上给出的一个正数值,定义如下: 0 - 计算域之外,非流体点 1 - 正常点 2 - 固面边界点 负数 - 分块网格界面点,其数值为相邻网格块的块号 以下为各文件使用FORTRAN读入的语句,所有文件均为无格式文件。 网格文件(XYZ文件): XYZ 文件, 单块(single-block): READ(IUNIT) IMAX,JMAX,KMAX READ(IUNIT) (((X(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX),&             (((Y(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX),&             (((Z(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX) XYZ 文件, 单块(single-block), 加 IBlank: READ(IUNIT) IMAX,JMAX,KMAX READ(IUNIT) (((X(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX),&             (((Y(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX),&             (((Z(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX),&             (((IBLANK(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX) XYZ 文件, 二维, 单块(single-block): READ(IUNIT) IMAX,JMAX READ(IUNIT) ((X(I,J),I=1,IMAX),J=1,JMAX),&             ((Y(I,J),I=1,IMAX),J=1,JMAX) XYZ 文件, 多块(multi-block) READ(IUNIT) NBLOCK READ(IUNIT) (IMAX(N),JMAX(N),KMAX(N),N=1,NBLOCK) DO N=1,NBLOCK READ(IUNIT) (((X(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)),&             (((Y(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)),&             (((Z(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)) ENDDO XYZ 文件, 多块(multi-block), 加 IBlank: READ(IUNIT) NBLOCK READ(IUNIT) (IMAX(N),JMAX(N),KMAX(N),N=1,NBLOCK) DO N=1,NBLOCK READ(IUNIT) (((X(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)),&             (((Y(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)),&             (((Z(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)),&             (((IBLANK(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)) ENDDO XYZ 文件, 二维, 多块(multi-block) READ(IUNIT) NBLOCK READ(IUNIT) (IMAX(N),JMAX(N),N=1,NBLOCK) DO N=1,NBLOCK READ(IUNIT) ((X(I,J),I=1,IMAX(N)),J=1,JMAX(N)),&             ((Y(I,J),I=1,IMAX(N)),J=1,JMAX(N)) ENDDO 空气动力学结果文件 (Q 文件)(Q 文件定义过窄,现已很少使用。): Q 文件专为外流空气动力学设计,对三维流动,数组变量如下: Q1 - 无量纲 密度 Q2 - 无量纲 X-动量 Q3 - 无量纲 Y-动量 Q4 - 无量纲 Z-动量 Q5 - 无量纲 总能 另加4个参数: FSMACH - 自由流马赫数 ALPHA - 攻角 RE     - 雷诺数 TIME   - 时间 Q 文件, 单块(single-block): READ(IUNIT) IMAX,JMAX,KMAX READ(IUNIT) FSMACH,ALPHA,RE,TIME READ(IUNIT) ((((Q(I,J,K,M),I=1,IMAX),J=1,JMAX),K=1,KMAX),M=1,5) Q 文件, 二维, 单块(single-block): READ(IUNIT) IMAX,JMAX READ(IUNIT) FSMACH,ALPHA,RE,TIME READ(IUNIT) (((Q(I,J,M),I=1,IMAX),J=1,JMAX),M=1,4) Q 文件, 多块(multi-block): READ(IUNIT) NBLOCK READ(IUNIT) (IMAX(N),JMAX(N),KMAX(N),N=1,NBLOCK) DO N=1,NBLOCK READ(IUNIT) FSMACH,ALPHA,RE,TIME READ(IUNIT)((((Q(I,J,K,M),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)),M=1,5) ENDDO Q 文件定义过窄,现已很少使用。大多CFD工作者使用通用结果文件,即 所谓的函数文件(function file)。函数文件中可定义任意数量的数组变量, 其名称在另一函数名称文件(function name file)中给出。 函数文件: 函数文件, 单块(single-block): READ(IUNIT) IMAX,JMAX,KMAX READ(IUNIT) ((((F(I,J,K,M),I=1,IMAX),J=1,JMAX),K=1,KMAX),M=1,NFUN) 函数文件, 二维, 单块(single-block): READ(IUNIT) IMAX,JMAX READ(IUNIT) (((F(I,J,M),I=1,IMAX),J=1,JMAX),M=1,NFUN) 函数文件, 多块(multi-block): READ(IUNIT) NBLOCK READ(IUNIT) (IMAX(N),JMAX(N),KMAX(N),N=1,NBLOCK) DO N=1,NBLOCK READ(IUNIT) ((((F(I,J,K,M),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N)),M=1,NFUN) ENDDO 函数名称文件: 函数名称文件是一ASCII文件,列有函数文件中数组变量的对应名称。以下为一例子: density pressure u;velocity vector v w temperature turbulence energy ... ... 注意事项: 1 名称的数量和排列次序与函数文件中数组变量相同。 2 分割号 ";" 表示向量行的开始。";"之右为向量名,";"之左为X分量。其下两行为Y分量和Z分量。 http://www.grc.nasa.gov/WWW/wind/valid/plot3d.html 下面例子假设网格文件句柄为7,结果文件句柄为8。 2D, Whole, Formatted, Single-Block Grid and Solution       parameter ( imax = 100 )       parameter ( jmax = 100 )       integer i       integer j       integer m       integer n       integer ni       integer nj       real mach   ! freestream Mach number       real alpha ! freestream angle-of-attack       real reyn   ! freestream Reynolds number       real time   ! time       real x(imax,jmax)       real y(imax,jmax)       real q(imax,jmax,4)       open ( unit=7, form='formatted', file='2D.x' )       open ( unit=8, form='formatted', file='2D.q' )       read(7,*) ni, nj       read(7,*)      &    (( x(i,j), i=1,ni), j=1,nj),      &    (( y(i,j), i=1,ni), j=1,nj)       read(8,*) ni, nj       read(8,*) mach, alpha, reyn, time       read(8,*) ((( q(i,j,n), i=1,ni), j=1,nj), n=1,4) 3D, Whole, Unformatted, Multi-Block Grid and Solution       parameter ( imax = 100 )       parameter ( jmax = 100 )       parameter ( kmax = 100 )       parameter ( nbmax = 10 )       integer i       integer j       integer m       integer n       integer nblocks       integer ni (nbmax)       integer nj (nbmax)       integer nk (nbmax)       real mach   ! freestream Mach number       real alpha ! freestream angle-of-attack       real reyn   ! freestream Reynolds number       real time   ! time       real x(imax,jmax,kmax,nbmax)       real y(imax,jmax,kmax,nbmax)       real z(imax,jmax,kmax,nbmax)       real q(imax,jmax,kmax,nbmax,5)       open ( unit=7, form='unformatted', file='3D.x' )       open ( unit=8, form='unformatted', file='3D.q' )       read(7) nblocks       read(7) ( ni(m), nj(m), nk(m), m = 1, nblocks )       do m = 1, nblocks         read(7)      &    ((( x(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)),      &    ((( y(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)),      &    ((( z(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m))       enddo       read(8) nblocks       read(8) ( ni(m), nj(m), nk(m), m = 1, nblocks )       do m = 1, nblocks         read(8) mach, alpha, reyn, time         read(8)      &    (((( q(i,j,k,m,n), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)), n=1,5)       enddo TECPLOT 的 PREPLOT 可以把 PLOT3D 文件转为 TECPLOT 格式。(没有测试) 20090526 add 由于后来发现可以用flow3d自带的命令行方式后处理提取数据,所以这个方法放弃。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有