马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
[这个贴子最后由boling2000在 2002/07/02 08:44am 编辑]
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)
C ,(((Y(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX)
C ,(((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)
C ,(((Y(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX)
C ,(((Z(I,J,K),I=1,IMAX),J=1,JMAX),K=1,KMAX)
C ,(((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)
C ,((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 10 N=1,NBLOCK
READ(IUNIT) (((X(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
C ,(((Y(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
C ,(((Z(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
10 CONTINUE
XYZ 文件, 多块(multi-block), 加 IBlank:
READ(IUNIT) NBLOCK
READ(IUNIT) (IMAX(N),JMAX(N),KMAX(N),N=1,NBLOCK)
DO 10 N=1,NBLOCK
READ(IUNIT) (((X(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
C ,(((Y(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
C ,(((Z(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
C ,(((IBLANK(I,J,K),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
10 CONTINUE
XYZ 文件, 二维, 多块(multi-block)
READ(IUNIT) NBLOCK
READ(IUNIT) (IMAX(N),JMAX(N),N=1,NBLOCK)
DO 10 N=1,NBLOCK
READ(IUNIT) ((X(I,J),I=1,IMAX(N)),J=1,JMAX(N))
C ,((Y(I,J),I=1,IMAX(N)),J=1,JMAX(N))
10 CONTINUE
空气动力学结果文件 (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 10 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))
C ,M=1,5)
10 CONTINUE
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 10 N=1,NBLOCK
READ(IUNIT) ((((F(I,J,K,M),I=1,IMAX(N)),J=1,JMAX(N)),K=1,KMAX(N))
C ,M=1,NFUN)
10 CONTINUE
函数名称文件:
函数名称文件是一ASCII文件,列有函数文件中数组变量的对应名称。
以下为一例子:
density
pressure
u;velocity vector
v
w
temperature
turbulence energy
...
...
注意事项:
1 名称的数量和排列次序与函数文件中数组变量相同。
2 分割号 ";" 表示向量行的开始。";"之右为向量名,";"之左为X分量。其下
两行为Y分量和Z分量。
:em27: |