OpenCFDver1.7.2使用手册_第1页
OpenCFDver1.7.2使用手册_第2页
OpenCFDver1.7.2使用手册_第3页
OpenCFDver1.7.2使用手册_第4页
OpenCFDver1.7.2使用手册_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、复杂流动直接数值模拟软件Hoam-OpenCFD V1.7.2 使用手册李新亮 中国科学院力学研究所第一章:软件简介1.1简介1.2 软件的安装1.3 软件的运行第二章:三维计算软件OpenCFD使用说明2.1 简介2.2 控制文件opencfd.in 2.3 差分格式的选取2.3 网格文件2.4初值文件2.5 OpenCFD的运行和输出第三章 二维计算软件OpenCFD2d使用说明3.1 简介3.2 控制文件opencfd2d.in3.3 网格及初值文件3.4 算例附录: OpenCFD 应用算例 第一章 软件Hoam-OpenCFD简介 1.1 简介 “复杂流动的直接数值模拟” (Hoam

2、-OpenCFD)软件是在本课题组已有数值方法及程序基础上进行整理、综合及并行化而形成的一套并行计算流体力学软件。该软件的核心是可压缩Navier-Stokes方程差分求解器。 本软件的求解器可以求解直角坐标、柱坐标、轴对称旋转体坐标及曲线坐标的可压缩Navier-Stokes方程。其差分库包括目前流行的各类差分格式及本课题组构造的多种差分方法。 本软件包括两部分:三维计算软件OpenCFD和二维计算软件OpenCFD2d。目前的最新版本是OpenCFD ver1.7.2 和OpenCFD2d ver1.5.1。 1.2 软件安装 本软件需要Fortran 编译器及MPI库。在Linux及Wi

3、ndows环境下均可编译。 在Linux 下安装方法如下:1) 建立一个子目录,将软件的源程序拷贝入该子目录。2) 键入make 进行编译即可得到可执行文件。三维求解器为opencfd-1.7.2.out; 二维求解器为pencfd2d-1.5.1.out。3) 将可执行文件拷贝到工作目录中即可完成安装。 本软件同时支持单精度及双精度计算,默认为双精度计算。如果用户使用单精度计算,需要将OpenCFD.h (或OpenCFD2d.h) 中integer,parameter:OCFD_REAL_KIND=8, OCFD_DATA_TYPE=MPI_DOUBLE_PRECISION 改为:inte

4、ger,parameter:OCFD_REAL_KIND=4, OCFD_DATA_TYPE=MPI_REAL 即可。makefile 文件中的编译选项默认编译器为 Intel Fortran 编译器, 如用于采用其他编译器编译,请根据该编译器的特点修改 makefile 中的编译选项,以提高计算效率。 1.3 软件的运行方法运行本软件需要如下个文件:文件类型文件名备注1执行程序opencfd-1.7.2.out2控制文件opencfd.in3网格文件ocfd-grid.dat对于均匀网格不需要网格文件(见控制文件的说明)4初值文件由控制文件指定默认为opencfd.dat5用户自定义数据文件

5、由控制文件和用户自定义模块决定用户自定义的程序需要的文件建立一个子目录,将这些文件拷贝到这个目录,在并行计算机上提交作业即可运行。不同计算机上提交作业的方法不同,例如mpirun -np 32 ./opencfd-1.7.2.out, 或 bsub -n 32 "mpijob ./opencfd-1.7.2.out" 等。 具体作业提交方法可查阅该计算机系统的使用手册。 第二章 三维程序OpenCFD使用指南2.1 控制文件opencfd.in的填写 控制文件包含了方程类型,数值方法,边界条件,计算网格,输出文件类型等重要信息。正确填写该文件是使用本软件的基础,该节是本软件

6、使用的核心内容。下面通过一个例子说明该文件的基本结构 例1 槽道湍流的直接数值模拟表 2.1 opencfd.in 示例行 文件内容123456789101112131415161718192021222324252627282930313233343536373839404142434445# OpenCFD 1.7.2/1.7.1 input file#IFLAG_Equation (0 NS, 1 Euler),IFLAG_G,IFLAG_Coordinate (0 Car, 1 Por, 2 Spher) 0 0 0 # nx ny nz 128 161 128# npx0 npy0

7、npz0 LAP 2 4 4 4# N_MSG_SIZE BLOCK_COMPACT_Z BLOCK_COMPACT_Y OCFD_Barrier 0 5 5 0# Iflag_grid(1),Iflag_grid(2),Iflag_grid(3) Iperiodic(1:3) 0 1 0 1 0 1# SLx, SLy SLz 6.28318530717958d0 2.d0 3.14159265358979d0# Re Ama gamma Pr Sc Iflag_Amu (0: Sutherland, 1 constant) T_Ref Isplit Volume_Forcex Force_

8、flag Flux_target Mass_target 12000.d0 6.d0 1.4d0 0.7d0 1.d0 0 288.15 0 0.0006 1.d0 2.d0 2.d0# dt end_time NUM_Time_Advance kstep_show Kstep_save save_file read_file 0.003d0 10000.d0 3 10 10000 0 0# name of savefile, name of initial data file , Init_stat'', '' , 0# Scheme_x+ NL NR 107

9、 0 0# Scheme_x- NL NR 108 0 0 # Scheme_x0 NL NR 204 0 0 # Scheme_y+ NL NR i=1 2 3 4 Nx Nx-1 Nx-2 107 4 3 402 201 103 105 401 103 105# Scheme_y- NL NR i=1 2 3 Nx Nx-1 Nx-2 Nx-3 108 3 4 402 104 106 401 201 104 106 # Scheme_y0 NL NR i=1 2 3 4 Nx Nx-1 Nx-2 Nx-3 204 4 4 402 201 202 203 401 201 202 203 #

10、Scheme_z+ NL NR 107 0 0 # Scheme_z- NL NR 108 0 0 # Scheme_z0 NL NR 204 0 0 # IBC nk nr Tw 101 0 1 1.d0 # nk nr Turb_model ! RANS & LES modeling 1 0 0 # N_ana 1 #Ian1 Kstep_ana1 nk nr IF_Statistics_init 110 100 1 0 1 表2.1 给出了其中一个算例的控制文件opencfd.in。该算例计算时间发展槽道湍流的直接数值模拟。为了下文解释方便,表中左侧一列显示了控制文件的行号控制文

11、件的内容在表中右侧一栏显示。 控制文件包含了注释行 (即本例子中以“”号开头的行)和数据行。软件根据控制文件中的位置读取数据,因此各行的含义固定,不能随意移动。 本软件根据opencfd.in文件的数据决定计算采用的方程类型,边界条件,数值方法及计算参数等。各参数的含义见表2.2 opencfd.in中各数据的含义行列含义31方程类型: 0 为N-S方程, 1为Euler 方程2是否计算被动标量方程: 0 不含被动标量,1含被动标量3坐标系: 0 直角坐标系; 1柱坐标;2 球坐标系 (目前版本不支持); 3 曲线坐标系 (目前版本只支持二维变换); 99 旋转体专用求解器51I -方向的网格

12、数 (nx) (总计算网格数为 nx*ny*nz)2J -方向的网格数 (ny)3K-方向的网格数 (nz) 71i- 方向的并行分割块数 注:本软件采用区域分解法进行并行计算,延3个方向分别分割成npx0,npy0和npz0块,总共为npx0*npy0*npz0块。2j- 方向的并行分割块数3k- 方向的并行分割块数4LAP: 并行处理的交叠区的长度,详见上篇:理论手册。 该长度与数值方法有关,具体选取见表 3 。 通常采用5,6阶格式时LAP=3; 采用7,8阶格式时LAP=4; 采用更高阶格式时 LAP=5。 设置的LAP过小会导致结果错误 ; 设置的LAP过大会造成计算效率下降。91N

13、_MSG_SIZE MPI并行通信方式。0 默认方式; 使用MPI_SENDRECV()函数一次完成发送/接收。-1 将二维数组切割成一维发送/接收-2 以“用户自定义MPI数据类型”完成发送/接收-3 以“用户自定义MPI数据类型”,且切割成一维完成发送/接收。> 0 的数据。 把MPI消息切割成N_MSG_SIZE 大小进行传输。通常设置为默认方式即可。 如果某些情况下出现“死锁”或者效率低下等现象,再尝试采用其他方式。2BLOCK_COMPACT_Z :采用紧致格式时,本软件采用分块流水线方法进行消息传递。该值为 Z向分块的数目。如果不采用紧致格式计算, 该变量可忽略。3BLOCK

14、_COMPACT_Y :采用紧致格式时,本软件采用分块流水线方法进行消息传递。该值为 Y向分块的数目。果不采用紧致格式计算, 该变量可忽略。111Iflag_grid(1) : I 向网格描述符。 如果该值为0, 则无需读取一维网格文件ocfd-grid.dat. 通常为等距网格或需要二维、三维Jocabian变换的情况。 如果该值为1, 则需要读取一维网格文件 ocfd-grid.dat(见3.3 节)2Iflag_grid(2) :J 向网格描述符。 含义同上。3Iflag_grid(3): K 向网格描述符。 含义同上。4-6Iperiodic(1:3):描述I,J,K方向是否采用周期性

15、条件。 0: 非周期, 1: 周期。注:设计算域跨度为SLX, 网格点nx. 对于均匀的非周期网格,间距为 SLX/(nx-1); 对于均匀的周围网格,间距为SLX/nx131SLx : I 向计算域的长度. 注: 对于均匀网格,SLX为物理空间实际计算域的长度。 如果采用非均匀网格,计算采用Jocabian变换; SLX指“计算空间”(Jocabian变换后的空间)的长度。 多数情况下,把物理域变换到0,1的计算域,这时SLX=1。 非均匀网格时,SLX的值由Jocabian变换来定。 2SLy : J向计算域的长度。 含义同上。 3SLz : K向计算域的长度。 含义同上。151Re Re

16、ynolds 数2Ama Mach 数 3Gamma 比热比 。 对于空气=1.4. 4Pr Prandtl 数5Sc Schemit 数 (包含被动标量计算时有效)6Iflag_Amu 粘性系数的计算方法。 0 采用Satherland公式计算;1 保持常数。7T_Ref Isplit: 参考温度。 供Satherland公式计算粘性时用,是计算无量纲化时采用的特征温度。通常采用来流温度。Volume_Forcex: x方向的流场外加体积力。 多数情况下为0。 这几个量目前只有“时间发展的槽道湍流”算例使用。目的是通过外加体积力防止湍流衰减。只有IBC (41行第1列)设定为101 时有效。

17、其他算例可忽略。Force_flag: > 0 表示定流量。 <0 表示定体积力。Flux_target: 流量的目标值 Mass_target: 总质量的目标值。171dt 时间步长。如果计算发散,可以把时间步长调小一些。2end_time 结束时间, 当时间推进到end_time时,计算结束。3Time_Advance 时间推进方法。 3: 3阶Runge-Kutta; 4: 4阶Runge-Kutta ; 5: 优化的4阶Runge-Kutta4kstep_show: 计算每隔kstep_show步进行一次结果打印5Kstep_save 每隔Kstep_save步存储一次计算

18、文件6savefile : (整数) 指定输出的数据文件名 0 默认情况,输出文件名为: OCFDxxxxxxx.dat;1 输出文件名为: USRWxxxxxxx.dat2 输出文件名为: USRW ;3 输出的文件名为: opencfd.dat其中 USRW 为用户输入存储文件名前缀。 xxxxxxx 7位数字,为计算的步数。 通常情况下设为默认情况即可。 7readfile :(整数)指定读取的初值文件名: 0 使用默认目录和文件名 opencfd.dat。1由用户指定文件名(第19行的第2个变量 USRR) 191(字符串)用户指定的存储文件名前缀 USRW2(字符串)用户指定的初值文

19、件名 USRR3 (整数)Init_stat 指定如何初始化计算。0 默认情况。 读取指定的数据文件。 默认情况下读取opencfd.dat. 如果Opencfd.msg 文件存在, 则读取OCFDxxxxxxx.dat. 其中xxxxxxx是7位整数,该数字从Opencfd.msg文件读取。1 以均匀来流初始化流场。 (无需读取初值文件)。 211Scheme_x+ NL NR I 方向无粘项正通量差分格式的内点格式 (含义见表 )I 方向 正通量的差分方法描述。详见 本章2.3节2NL : 左边界 (I-) 的边界格式点的数目。 3NR : 右边界 (I+) 的边界格式点的数目。 其后NL

20、 个分别为i=1, 2, 3 NL 点采用的差分格式 (边界点格式)。(含义见表 )再其后NR个分别为i=Nx, Nx-1 Nx-NR+1 点采用的差分格式。23 I 方向无粘项负通量的差分格式描述。 含义同上。 通常无粘项采用迎风差分格式。25 I 方向粘性项的差分格式描述。 含义同上。 通常粘性项采用中心差分格式。27 29 31 J方向无粘项正、负通量及粘性项的差分格式描述。 含义同上。333537 K方向无粘项正、负通量及粘性项的差分格式描述。 含义同上。391Ibc_user : 边界条件类型如果该值为0,则不进行边界条件处理。如果为1 则采用用户自己定义的边界条件。 如果为其他值,

21、则调用已定义的一些边界条件。详见2.5.1 边界条件描述2Nk 整型参数的个数 (这些参数的含义由边界条件处理程序定义)3Nr 实型参数的个数4Nk 个整型参数, Nr个实型参数41湍流模型/LES模型描述431N_ana 调用后处理模块的数目451K_ana1 调用的后处理程序后处理模块2Kstep_ana1 多少步调用一次本后处理程序 3Nk 本后处理程序中需要输入的整型参数的个数4Nr 本后处理程序中需要输入的实型参数的个数5Nk 个整型参数,Nr个实型参数。 参数的含义由后处理程序解释47后处理模块2, 格式同上下面详细介绍一下控制文件opencfd.in的填写。2.2.1 控制方程o

22、pencfd.in 第3行描述了控制方程的类型。 这一行须填写3个参数:FLAG_Equation , IFLAG_G, 和IFLAG_Coordinate。 则第一个参数(FLAG_Equation)决定了控制方程为N-S方程还是Euler方程。如果控制方程为NS方程,须在这个参数的位置填0;如果控制方程为Euler方程,则该参数为1。 第二个参数(IFLAG_G)决定了计算过程是否包含被动标量。如果IFLAG_G为1,则包含被动标量,为0则不包含被动标量。第三个参数(IFLAG_Coordinate)决定了控制方程采用的坐标系。0 表示直角坐标系,1为柱坐标系,2为球坐标系,3为曲线坐标系

23、, 99为旋转体坐标系。关于这些坐标系下的控制方程,请参考本手册上篇理论手册。2.2.2 并行分割与消息传递本软件采用MPI-Fortran编制,采用并行计算。因此要求用户在控制文件opencfd.in中输入与并行计算有关的参数。第7行的前3个参数(npx0,npy0,npz0)为分别三个方向的并行分割数目,本软件采用计算域三维分割并行计算(参加理论手册)。计算域总共被分割为npx0*npy0*npz0块,应当提交相应数目的进程。例如npx0=2,npy0=3,npz0=4说明计算域沿i- 方向分割为2块,j-方向分割为3块,k-方向分割为4块。因此计算域被分割为2*3*4=24块,应当采用2

24、4个进程并行运行。提交作业的时候应当提交24个进程,否则会出错。例如在LSSC2上,应采用 mpirun n 24 opencfd.out 或 mpirun n 12 np 24 opencfd.out运行,提交24个进程。第7行的第4个参数(LAP)为计算域重叠区(overlap)的宽度,为网格基架点的半宽度(见理论手册)。该值与数值计算采用的计算方法有关,通常为差分格式的网格基的半宽度。表2.4给出了不同的差分格式要求的LAP值。如果软件中使用了多种差分格式,则该值应当取最大的LAP值。例如,对流项用3阶迎风格式,对应的LAP=2,粘性项采用6阶中心格式,对于的LAP=3。则在该软件中应当

25、选取LAP=3。如果选取的LAP值小于3,则计算结果有误;如果选取LAP大于3,虽然能保证结果正确,但计算效率会降低。第9行的第1个参数(N_MSG_SIZE)为消息块的大小。为了提高效率,本软件把长消息切割成N_MSG_SIZE大小的短消息发送(详见理论手册)。N_MSG_SIZE为每次发送的数据个数。例如N_MSG_SIZE512表示每次发送512个数据(通常为双精度数据,消息长度为512×84K 字节)。通常每个并行机都有最优化的消息长度,由此可确定本参数的大小,例如某并行机对于8K字节消息性能最优,这时N_MSG_SIZE应设为8K/8=1024。N_MSG_SIZE =0

26、表示默认信息发送方式。通常情况下可采用这种方式。此外N_MSG_SIZE1表示按照1维模式传递消息,通过实际测试发现很多情况下这种传递方式有更高的效率。如果用户对并行计算不太熟悉,建议将N_MSG_SIZE设为-1。当N_MSG_SIZE 被设为-2时,除了按1维模式通信外,每次通信后都进行同步(MPI_barrier),因此效率较低,但稳定性较好。第9行的第2,3个参数(BLOCK_COMPACT_Z, BLOCK_COMPACT_Y)决定了分块流水线的粒度。如果数值计算采用紧致型差分格式,则本软件采用分块流水线的方法进行并行计算,这两个值就是计算被切割成的块数(详见理论手册)。这两个值的大

27、小会影响到计算的效率,通常用户可以把这个值定在416之间。该值的选取与计算规模及并行计算机的通讯性能等有关。如果不采用紧致型差分格式,则这两个参数没有被使用。2.2.3 流动参数opencfd.in 的第15行为流动参数,分别为Reynolds数(Re),Mach数(Ama), 比热比(gamma), Prantl 数(Pr),和Schmidt数(Sc)。这些流动参数的含义见理论手册。如果不包含被动标量的计算(IFLAG_G=0)则Sc不被使用。第15行的第6个参数Iflag_Amu 描述了粘性系数的计算方法。Iflag_Amu=0采用Satherland 公式计算。 Iflag_Amu=1

28、则粘性系数保持常数。2.2.4 差分格式 opencfd.in 中21-37行为差分格式描述区。指定内点及各个边界的采用的差分格式。差分格式用编码表示,其对于关系如下: 表2.4 差分格式及所须的LAP值格式描述符格式LAP1011阶迎风后差11021阶迎风前差11033阶迎风后差21043阶迎风前差21055阶迎风后差31065阶迎风前差31077阶迎风后差41087阶迎风前差41099阶迎风后差51109阶迎风前差52012阶中心差分12024阶中心差分22036阶中心差分32048阶中心差分420510阶中心差分53015阶WENO后差 (Jiang & Shu )33025阶W

29、ENO前差(Jiang & Shu )33037阶WENO后差(Jiang & Shu )43047阶WENO前差(Jiang & Shu )43057阶WENO-Z后差 ( )43067阶WENO-Z前差43079阶WENO 后差53089阶WENO前差53098阶GVC 后差 53108阶GVC前差53116阶GVC 后差 43126阶GVC前差43132阶NND 后差 23142阶NND前差23197阶WENO-Limit 后差 43207阶WENO-Limit 前差43217阶WENOZ-Limit 后差 43227阶WENOZ-Limit 前差43234阶优化

30、WENO-SYMBO-Limit 后差 (推荐)43244阶优化WENO-SYMBO-Limit 前差 (推荐)4400强制差分为0 (配合无反射边界条件)14012阶单边后差 (边界格式)24022阶单边前差 (边界格式)2 2.3 网格文件如果整个计算域采用等距网格,则本软件不用读取网格文件,如果某个计算方向采用非等距网格,则需要读取网格文件。当计算采用直角坐标、柱坐标或球坐标时,读取网格文件的程序如下: real*8 xx(nx), sx(nx),yy(ny),sy(ny),zz(nz),sz(nz) open(66,file='ocfd-grid.dat',form=&

31、#39;unformatted') if(Iflag_grid(1).eq.1) read(66) xx,sx if(Iflag_grid(2).eq.1) read(66) yy,sy if(Iflag_grid(3).eq.1) read(66) zz,sz close(66)其中nx,ny,nz分别为I-,j-,k-三个方向的网格点数。 Iflag_grid(k) (k=1,2,3)反映了网格是否为均匀网格(见2.2.2节)。 从上面程序可以看出,如果某个方向采用非均匀网格,则必须在文件ocfd-grid.dat中包含网格信息。网格信息包含网格坐标(程序中的xx,yy及zz)及J

32、acobian变换系数(sx,sy,sz)。 其中xx(k)为 I-方向第k个点对应的x-坐标(在柱坐标或球坐标系下为r-坐标),sx(k)为 I-方向第k个点的坐标变换系数 ,其中分别为物理坐标和计算坐标。关于坐标变换Jacobian系数的定义及意义,详见理论手册。应当注意,网格文件ocfd-grid.dat为Fortran无格式文件(unformatted),用户应当用“open(66,file='ocfd-grid.dat',form='unformatted')”的格式打开文件。2.4 初值及数据文件 本软件需要用户提供计算的初值,初值文件名由控制文件指

33、定,默认为opencfd.dat。下面是读取初值文件的一段程序,从中可以看出初值文件的格式。本软件的流场输出数据("OCFDxxxxxxx.dat")也是同样格式。 parameter(nx=2200,ny=53,nz=128)real*8 d(nx,ny,nz),u(nx,ny,nz),v(nx,ny,nz), w(nx,ny,nz),T(nx,ny,nz)real*8 ttinteger Istep,i,j,k open(70,file='opencfd.dat',form='unformatted') read(70) istep,ti

34、me call read_3d(70,d,nx,ny,nz) call read_3d(70,u,nx,ny,nz) call read_3d(70,v,nx,ny,nz) call read_3d(70,w,nx,ny,nz) call read_3d(70,T,nx,ny,nz) close(70) endsubroutine read_3d(no,u,nx,ny,nz) real*8 u(nx,ny,nz) do k=1,nz read(no) u(:,:,k) enddo end初值文件最开始包括两个参数,Istep 和tt,它们分别为当前的计算步及无量纲时间步长。对于从最初开始的计算

35、,Istep=0, tt=0.0 。其后为密度d; i-, j-, k-三个方向的速度u, v, w ;温度T。 由于三维流场的数据量通常很大,因此初值文件是将每个流场按k-方向切割成二维数据场进行存储。初值文件的具体格式见上面的程序。2.5 用户自定义接口 本软件为用户提供了自定义模块接口。通过自定义模块,用户可以编写自己的边界条件处理程序及分析(后处理)程序。2.5.1 边界条件处理模块如下为自定义边界条件处理模块,用户可以在给的的区域添加自己的程序以处理边界条件。 subroutine BC_USER(f,d,u,v,w,T,g,nx,ny,nz,LAP,tt,BC_XYZ, * nx_

36、global,ny_global,nz_global,IFLAG_G, * Pr,Re,Ama,gamma,IFLAG_Coordinate,IBC_USER, * xx,yy,zz,sx,sy,sz,SLX,SLY,SLZ,hx,hy,hz,Axx2d,Azz2d, * nparameters,rparameters,userdata1) include 'OpenCFD.h' integer nx,ny,nz,LAP,i,j,k,ierr,IFLAG_Coordinate,IFLAG_G integer KBC, BC_XYZ(10,6),nx_global,ny_glob

37、al,nz_global real SLX,SLY,SLZ,hx,hy,hz,Pr,Re,Ama,gamma,tt real xx(1-LAP:nx+LAP),yy(1-LAP:ny+LAP),zz(1-LAP:nz+LAP) real sx(1-LAP:nx+LAP),sy(1-LAP:ny+LAP),sz(1-LAP:nz+LAP) real f(nx,ny,nz,6) real,dimension (1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP): * d,u,v,w,T,g real,dimension(1-LAP:nx+LAP,1-LAP:nz+LAP

38、): Axx2d,Azz2d integer nparameters(100),IBC_USER real rparameters(1000),userdata1(USER_DATA_SIZE)c-c! 请添加自己的程序c- end其中 f 为守恒变量,d,u,v,w,T分别为密度,三个方向的速度和温度。nx,ny,nz为局部三个方向的网格点。nx_global, ny_global,nz_global 为全局三个方向的网格点。2.5.2 自定义后处理程序如下是后处理程序,用户可以在指定的位置添加自己的程序。c- subroutine OCFD_analysis(nx,ny,nz,LAP, *

39、 nx_global,ny_global,nz_global, *Istep,tt,f,d,u,v,w,t,g,Amu,Re,Ama,gamma,Pr,Sc,IFLAG_G, * xx,yy,zz,sx,sy,sz,hx,hy,hz,Axx2d,Azz2d, * NUM_Methodx,NUM_Methody,NUM_Methodz, * Iana_USER,nparameters,rparameters,Kstep_average, * tmpa,tmpb, * USER_f_averaged)c 数据分析程序,用来根据计算结果分析数据。用户可根据需求,自行添加程序 include '

40、;OpenCFD.h' integer nx,ny,nz,LAP,nx_global,ny_global,nz_global real f(nx,ny,nz,6) real,dimension(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP): * d,u,v,w,T,g real Amu(nx,ny,nz) integer nparameters(100),Iana_USER,IB real rparameters(1000) real Re,Ama,gamma,Pr,Sc,Cv,tt integer i,j,k,IFLAG_G,Istep,ierr,K

41、step_average integer NUM_Methodx(4,3),NUM_Methody(4,3),NUM_Methodz(4,3) real xx(1-LAP:nx+LAP),yy(1-LAP:ny+LAP),zz(1-LAP:nz+LAP) real sx(1-LAP:nx+LAP),sy(1-LAP:ny+LAP),sz(1-LAP:nz+LAP) real Axx2d(1-LAP:nx+LAP,1-LAP:nz+LAP), * Azz2d(1-LAP:nx+LAP,1-LAP:nz+LAP) real hx,hy,hz,E1,E0c-c USer Defined data,

42、you can modify it real USER_f_averaged(nx,nz,15)c-c 工作数据区,供各子程序使用 real tmpa(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP,11) real tmpb(nx,ny,nz,14)c-c 以下是已经做好的一些分析程序 if(Iana_USER.eq.101) thenc 各向同性湍流的分析程序 call analysis_box(nx,ny,nz,LAP, * nx_global,ny_global,nz_global, *Istep,tt,f,d,u,v,w,t,Amu, * Re,Ama,

43、gamma,Pr,hx,sx,NUM_Methodx(1,3)c else if(Iana_USER.eq.102) thenc 钝锥(尖锥)绕流的数据处理程序 call OCFD_analysis_user_bluntcone(nx,ny,nz,LAP, * nx_global,ny_global,nz_global, *Istep,tt,f,d,u,v,w,t,g,Amu, * Re,Ama,gamma,Pr,Sc,IFLAG_G, * xx,yy,zz,Axx2d,Azz2d, * hx,hy,hz,NUM_Methodx(1,3),Iana_USER, * nparameters,rp

44、arameters,USER_f_averaged,Kstep_average) else if (Iana_USER.eq.103) thenc 平板湍流声场处理程序, IB为积分的终点 IB=nparameters(3) call acoustic_flatplate(nx,ny,nz,LAP,d,u,v,w,T,Amu, * Pr,Re,Ama,gamma,hx,hy,hz,xx,yy,zz,sx,sy,sz,Istep,tt,IB, * NUM_Methodx(1,3),NUM_Methody(1,3),NUM_Methodz(1,3), * tmpa(1-LAP,1-LAP,1-LA

45、P,1),tmpa(1-LAP,1-LAP,1-LAP,2), * tmpa(1-LAP,1-LAP,1-LAP,3),tmpa(1-LAP,1-LAP,1-LAP,4), * tmpa(1-LAP,1-LAP,1-LAP,5),tmpa(1-LAP,1-LAP,1-LAP,6), * tmpb(1,1,1,1),tmpb(1,1,1,2),tmpb(1,1,1,3),tmpb(1,1,1,4), * tmpb(1,1,1,5),tmpb(1,1,1,6),tmpb(1,1,1,7),tmpb(1,1,1,8), * tmpb(1,1,1,9) else if (Iana_USER.eq.1)

46、 thenc 请用户添加自己的分析程序 endif end2.6 OpenCFD 的运行和输出 2.6.1 OpenCFD的运行 在工作目录中准备好可执行文件opencfd.out, 控制文件opencfd.in, 网格文件ocfd-grid.dat 及初值文件 opencfd.dat 后就可以运行本软件了。用户可以通过作业调度系统来提交作业,具体方法由并行机的作业调度系统决定。例如在LSSC2上,可以用 mpirun n n1 np n2 opencfd.out 来运行。其中n1为运行节点数,n2 为运行进程数。其中运行的进程数要与opencfd.in中的一致(即, n2=npx0*npy0

47、*npz0)否则运行会出错。在LSSC2上也可用 bsub n n1 np n2 “mpijob opencfd.out”提交作业。 在深腾6800上,可以用 bsub n nn o output.dat “mpijob_qs ./opencfd.out” 来提交任务。2.6.2 OpenCFD的输出 OpenCFD在计算过程中,将计算信息输出到屏幕上(每隔Kstep_show步显示一次信息),输出形式如下:-Istep= 1 tt= 1.00000000000000D-003 - CPU (wall) time is 3.33136606216431 Averaged Total Energy is 45.0052112308551 Residual of d,u,g are 8.77841631897407D-002 0.200491136069070 0.00000000000000D+000 -Istep= 2 tt= 2.00000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论