




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、復(fù)雜流動(dòng)直接數(shù)值模擬軟件Hoam-OpenCFD V1.7.2 使用手冊李新亮 中國科學(xué)院力學(xué)研究所第一章:軟件簡介1.1簡介1.2 軟件的安裝1.3 軟件的運(yùn)行第二章:三維計(jì)算軟件OpenCFD使用說明2.1 簡介2.2 控制文件opencfd.in 2.3 差分格式的選取2.3 網(wǎng)格文件2.4初值文件2.5 OpenCFD的運(yùn)行和輸出第三章 二維計(jì)算軟件OpenCFD2d使用說明3.1 簡介3.2 控制文件opencfd2d.in3.3 網(wǎng)格及初值文件3.4 算例附錄: OpenCFD 應(yīng)用算例 第一章 軟件Hoam-OpenCFD簡介 1.1 簡介 “復(fù)雜流動(dòng)的直接數(shù)值模擬” (Hoam
2、-OpenCFD)軟件是在本課題組已有數(shù)值方法及程序基礎(chǔ)上進(jìn)行整理、綜合及并行化而形成的一套并行計(jì)算流體力學(xué)軟件。該軟件的核心是可壓縮Navier-Stokes方程差分求解器。 本軟件的求解器可以求解直角坐標(biāo)、柱坐標(biāo)、軸對稱旋轉(zhuǎn)體坐標(biāo)及曲線坐標(biāo)的可壓縮Navier-Stokes方程。其差分庫包括目前流行的各類差分格式及本課題組構(gòu)造的多種差分方法。 本軟件包括兩部分:三維計(jì)算軟件OpenCFD和二維計(jì)算軟件OpenCFD2d。目前的最新版本是OpenCFD ver1.7.2 和OpenCFD2d ver1.5.1。 1.2 軟件安裝 本軟件需要Fortran 編譯器及MPI庫。在Linux及Wi
3、ndows環(huán)境下均可編譯。 在Linux 下安裝方法如下:1) 建立一個(gè)子目錄,將軟件的源程序拷貝入該子目錄。2) 鍵入make 進(jìn)行編譯即可得到可執(zhí)行文件。三維求解器為opencfd-1.7.2.out; 二維求解器為pencfd2d-1.5.1.out。3) 將可執(zhí)行文件拷貝到工作目錄中即可完成安裝。 本軟件同時(shí)支持單精度及雙精度計(jì)算,默認(rèn)為雙精度計(jì)算。如果用戶使用單精度計(jì)算,需要將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 文件中的編譯選項(xiàng)默認(rèn)編譯器為 Intel Fortran 編譯器, 如用于采用其他編譯器編譯,請根據(jù)該編譯器的特點(diǎn)修改 makefile 中的編譯選項(xiàng),以提高計(jì)算效率。 1.3 軟件的運(yùn)行方法運(yùn)行本軟件需要如下個(gè)文件:文件類型文件名備注1執(zhí)行程序opencfd-1.7.2.out2控制文件opencfd.in3網(wǎng)格文件ocfd-grid.dat對于均勻網(wǎng)格不需要網(wǎng)格文件(見控制文件的說明)4初值文件由控制文件指定默認(rèn)為opencfd.dat5用戶自定義數(shù)據(jù)文件
5、由控制文件和用戶自定義模塊決定用戶自定義的程序需要的文件建立一個(gè)子目錄,將這些文件拷貝到這個(gè)目錄,在并行計(jì)算機(jī)上提交作業(yè)即可運(yùn)行。不同計(jì)算機(jī)上提交作業(yè)的方法不同,例如mpirun -np 32 ./opencfd-1.7.2.out, 或 bsub -n 32 "mpijob ./opencfd-1.7.2.out" 等。 具體作業(yè)提交方法可查閱該計(jì)算機(jī)系統(tǒng)的使用手冊。 第二章 三維程序OpenCFD使用指南2.1 控制文件opencfd.in的填寫 控制文件包含了方程類型,數(shù)值方法,邊界條件,計(jì)算網(wǎng)格,輸出文件類型等重要信息。正確填寫該文件是使用本軟件的基礎(chǔ),該節(jié)是本軟件
6、使用的核心內(nèi)容。下面通過一個(gè)例子說明該文件的基本結(jié)構(gòu) 例1 槽道湍流的直接數(shù)值模擬表 2.1 opencfd.in 示例行 文件內(nèi)容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 給出了其中一個(gè)算例的控制文件opencfd.in。該算例計(jì)算時(shí)間發(fā)展槽道湍流的直接數(shù)值模擬。為了下文解釋方便,表中左側(cè)一列顯示了控制文件的行號控制文
11、件的內(nèi)容在表中右側(cè)一欄顯示。 控制文件包含了注釋行 (即本例子中以“”號開頭的行)和數(shù)據(jù)行。軟件根據(jù)控制文件中的位置讀取數(shù)據(jù),因此各行的含義固定,不能隨意移動(dòng)。 本軟件根據(jù)opencfd.in文件的數(shù)據(jù)決定計(jì)算采用的方程類型,邊界條件,數(shù)值方法及計(jì)算參數(shù)等。各參數(shù)的含義見表2.2 opencfd.in中各數(shù)據(jù)的含義行列含義31方程類型: 0 為N-S方程, 1為Euler 方程2是否計(jì)算被動(dòng)標(biāo)量方程: 0 不含被動(dòng)標(biāo)量,1含被動(dòng)標(biāo)量3坐標(biāo)系: 0 直角坐標(biāo)系; 1柱坐標(biāo);2 球坐標(biāo)系 (目前版本不支持); 3 曲線坐標(biāo)系 (目前版本只支持二維變換); 99 旋轉(zhuǎn)體專用求解器51I -方向的網(wǎng)格
12、數(shù) (nx) (總計(jì)算網(wǎng)格數(shù)為 nx*ny*nz)2J -方向的網(wǎng)格數(shù) (ny)3K-方向的網(wǎng)格數(shù) (nz) 71i- 方向的并行分割塊數(shù) 注:本軟件采用區(qū)域分解法進(jìn)行并行計(jì)算,延3個(gè)方向分別分割成npx0,npy0和npz0塊,總共為npx0*npy0*npz0塊。2j- 方向的并行分割塊數(shù)3k- 方向的并行分割塊數(shù)4LAP: 并行處理的交疊區(qū)的長度,詳見上篇:理論手冊。 該長度與數(shù)值方法有關(guān),具體選取見表 3 。 通常采用5,6階格式時(shí)LAP=3; 采用7,8階格式時(shí)LAP=4; 采用更高階格式時(shí) LAP=5。 設(shè)置的LAP過小會導(dǎo)致結(jié)果錯(cuò)誤 ; 設(shè)置的LAP過大會造成計(jì)算效率下降。91N
13、_MSG_SIZE MPI并行通信方式。0 默認(rèn)方式; 使用MPI_SENDRECV()函數(shù)一次完成發(fā)送/接收。-1 將二維數(shù)組切割成一維發(fā)送/接收-2 以“用戶自定義MPI數(shù)據(jù)類型”完成發(fā)送/接收-3 以“用戶自定義MPI數(shù)據(jù)類型”,且切割成一維完成發(fā)送/接收。> 0 的數(shù)據(jù)。 把MPI消息切割成N_MSG_SIZE 大小進(jìn)行傳輸。通常設(shè)置為默認(rèn)方式即可。 如果某些情況下出現(xiàn)“死鎖”或者效率低下等現(xiàn)象,再嘗試采用其他方式。2BLOCK_COMPACT_Z :采用緊致格式時(shí),本軟件采用分塊流水線方法進(jìn)行消息傳遞。該值為 Z向分塊的數(shù)目。如果不采用緊致格式計(jì)算, 該變量可忽略。3BLOCK
14、_COMPACT_Y :采用緊致格式時(shí),本軟件采用分塊流水線方法進(jìn)行消息傳遞。該值為 Y向分塊的數(shù)目。果不采用緊致格式計(jì)算, 該變量可忽略。111Iflag_grid(1) : I 向網(wǎng)格描述符。 如果該值為0, 則無需讀取一維網(wǎng)格文件ocfd-grid.dat. 通常為等距網(wǎng)格或需要二維、三維Jocabian變換的情況。 如果該值為1, 則需要讀取一維網(wǎng)格文件 ocfd-grid.dat(見3.3 節(jié))2Iflag_grid(2) :J 向網(wǎng)格描述符。 含義同上。3Iflag_grid(3): K 向網(wǎng)格描述符。 含義同上。4-6Iperiodic(1:3):描述I,J,K方向是否采用周期性
15、條件。 0: 非周期, 1: 周期。注:設(shè)計(jì)算域跨度為SLX, 網(wǎng)格點(diǎn)nx. 對于均勻的非周期網(wǎng)格,間距為 SLX/(nx-1); 對于均勻的周圍網(wǎng)格,間距為SLX/nx131SLx : I 向計(jì)算域的長度. 注: 對于均勻網(wǎng)格,SLX為物理空間實(shí)際計(jì)算域的長度。 如果采用非均勻網(wǎng)格,計(jì)算采用Jocabian變換; SLX指“計(jì)算空間”(Jocabian變換后的空間)的長度。 多數(shù)情況下,把物理域變換到0,1的計(jì)算域,這時(shí)SLX=1。 非均勻網(wǎng)格時(shí),SLX的值由Jocabian變換來定。 2SLy : J向計(jì)算域的長度。 含義同上。 3SLz : K向計(jì)算域的長度。 含義同上。151Re Re
16、ynolds 數(shù)2Ama Mach 數(shù) 3Gamma 比熱比 。 對于空氣=1.4. 4Pr Prandtl 數(shù)5Sc Schemit 數(shù) (包含被動(dòng)標(biāo)量計(jì)算時(shí)有效)6Iflag_Amu 粘性系數(shù)的計(jì)算方法。 0 采用Satherland公式計(jì)算;1 保持常數(shù)。7T_Ref Isplit: 參考溫度。 供Satherland公式計(jì)算粘性時(shí)用,是計(jì)算無量綱化時(shí)采用的特征溫度。通常采用來流溫度。Volume_Forcex: x方向的流場外加體積力。 多數(shù)情況下為0。 這幾個(gè)量目前只有“時(shí)間發(fā)展的槽道湍流”算例使用。目的是通過外加體積力防止湍流衰減。只有IBC (41行第1列)設(shè)定為101 時(shí)有效。
17、其他算例可忽略。Force_flag: > 0 表示定流量。 <0 表示定體積力。Flux_target: 流量的目標(biāo)值 Mass_target: 總質(zhì)量的目標(biāo)值。171dt 時(shí)間步長。如果計(jì)算發(fā)散,可以把時(shí)間步長調(diào)小一些。2end_time 結(jié)束時(shí)間, 當(dāng)時(shí)間推進(jìn)到end_time時(shí),計(jì)算結(jié)束。3Time_Advance 時(shí)間推進(jìn)方法。 3: 3階Runge-Kutta; 4: 4階Runge-Kutta ; 5: 優(yōu)化的4階Runge-Kutta4kstep_show: 計(jì)算每隔kstep_show步進(jìn)行一次結(jié)果打印5Kstep_save 每隔Kstep_save步存儲一次計(jì)算
18、文件6savefile : (整數(shù)) 指定輸出的數(shù)據(jù)文件名 0 默認(rèn)情況,輸出文件名為: OCFDxxxxxxx.dat;1 輸出文件名為: USRWxxxxxxx.dat2 輸出文件名為: USRW ;3 輸出的文件名為: opencfd.dat其中 USRW 為用戶輸入存儲文件名前綴。 xxxxxxx 7位數(shù)字,為計(jì)算的步數(shù)。 通常情況下設(shè)為默認(rèn)情況即可。 7readfile :(整數(shù))指定讀取的初值文件名: 0 使用默認(rèn)目錄和文件名 opencfd.dat。1由用戶指定文件名(第19行的第2個(gè)變量 USRR) 191(字符串)用戶指定的存儲文件名前綴 USRW2(字符串)用戶指定的初值文
19、件名 USRR3 (整數(shù))Init_stat 指定如何初始化計(jì)算。0 默認(rèn)情況。 讀取指定的數(shù)據(jù)文件。 默認(rèn)情況下讀取opencfd.dat. 如果Opencfd.msg 文件存在, 則讀取OCFDxxxxxxx.dat. 其中xxxxxxx是7位整數(shù),該數(shù)字從Opencfd.msg文件讀取。1 以均勻來流初始化流場。 (無需讀取初值文件)。 211Scheme_x+ NL NR I 方向無粘項(xiàng)正通量差分格式的內(nèi)點(diǎn)格式 (含義見表 )I 方向 正通量的差分方法描述。詳見 本章2.3節(jié)2NL : 左邊界 (I-) 的邊界格式點(diǎn)的數(shù)目。 3NR : 右邊界 (I+) 的邊界格式點(diǎn)的數(shù)目。 其后NL
20、 個(gè)分別為i=1, 2, 3 NL 點(diǎn)采用的差分格式 (邊界點(diǎn)格式)。(含義見表 )再其后NR個(gè)分別為i=Nx, Nx-1 Nx-NR+1 點(diǎn)采用的差分格式。23 I 方向無粘項(xiàng)負(fù)通量的差分格式描述。 含義同上。 通常無粘項(xiàng)采用迎風(fēng)差分格式。25 I 方向粘性項(xiàng)的差分格式描述。 含義同上。 通常粘性項(xiàng)采用中心差分格式。27 29 31 J方向無粘項(xiàng)正、負(fù)通量及粘性項(xiàng)的差分格式描述。 含義同上。333537 K方向無粘項(xiàng)正、負(fù)通量及粘性項(xiàng)的差分格式描述。 含義同上。391Ibc_user : 邊界條件類型如果該值為0,則不進(jìn)行邊界條件處理。如果為1 則采用用戶自己定義的邊界條件。 如果為其他值,
21、則調(diào)用已定義的一些邊界條件。詳見2.5.1 邊界條件描述2Nk 整型參數(shù)的個(gè)數(shù) (這些參數(shù)的含義由邊界條件處理程序定義)3Nr 實(shí)型參數(shù)的個(gè)數(shù)4Nk 個(gè)整型參數(shù), Nr個(gè)實(shí)型參數(shù)41湍流模型/LES模型描述431N_ana 調(diào)用后處理模塊的數(shù)目451K_ana1 調(diào)用的后處理程序后處理模塊2Kstep_ana1 多少步調(diào)用一次本后處理程序 3Nk 本后處理程序中需要輸入的整型參數(shù)的個(gè)數(shù)4Nr 本后處理程序中需要輸入的實(shí)型參數(shù)的個(gè)數(shù)5Nk 個(gè)整型參數(shù),Nr個(gè)實(shí)型參數(shù)。 參數(shù)的含義由后處理程序解釋47后處理模塊2, 格式同上下面詳細(xì)介紹一下控制文件opencfd.in的填寫。2.2.1 控制方程o
22、pencfd.in 第3行描述了控制方程的類型。 這一行須填寫3個(gè)參數(shù):FLAG_Equation , IFLAG_G, 和IFLAG_Coordinate。 則第一個(gè)參數(shù)(FLAG_Equation)決定了控制方程為N-S方程還是Euler方程。如果控制方程為NS方程,須在這個(gè)參數(shù)的位置填0;如果控制方程為Euler方程,則該參數(shù)為1。 第二個(gè)參數(shù)(IFLAG_G)決定了計(jì)算過程是否包含被動(dòng)標(biāo)量。如果IFLAG_G為1,則包含被動(dòng)標(biāo)量,為0則不包含被動(dòng)標(biāo)量。第三個(gè)參數(shù)(IFLAG_Coordinate)決定了控制方程采用的坐標(biāo)系。0 表示直角坐標(biāo)系,1為柱坐標(biāo)系,2為球坐標(biāo)系,3為曲線坐標(biāo)系
23、, 99為旋轉(zhuǎn)體坐標(biāo)系。關(guān)于這些坐標(biāo)系下的控制方程,請參考本手冊上篇理論手冊。2.2.2 并行分割與消息傳遞本軟件采用MPI-Fortran編制,采用并行計(jì)算。因此要求用戶在控制文件opencfd.in中輸入與并行計(jì)算有關(guān)的參數(shù)。第7行的前3個(gè)參數(shù)(npx0,npy0,npz0)為分別三個(gè)方向的并行分割數(shù)目,本軟件采用計(jì)算域三維分割并行計(jì)算(參加理論手冊)。計(jì)算域總共被分割為npx0*npy0*npz0塊,應(yīng)當(dāng)提交相應(yīng)數(shù)目的進(jìn)程。例如npx0=2,npy0=3,npz0=4說明計(jì)算域沿i- 方向分割為2塊,j-方向分割為3塊,k-方向分割為4塊。因此計(jì)算域被分割為2*3*4=24塊,應(yīng)當(dāng)采用2
24、4個(gè)進(jìn)程并行運(yùn)行。提交作業(yè)的時(shí)候應(yīng)當(dāng)提交24個(gè)進(jìn)程,否則會出錯(cuò)。例如在LSSC2上,應(yīng)采用 mpirun n 24 opencfd.out 或 mpirun n 12 np 24 opencfd.out運(yùn)行,提交24個(gè)進(jìn)程。第7行的第4個(gè)參數(shù)(LAP)為計(jì)算域重疊區(qū)(overlap)的寬度,為網(wǎng)格基架點(diǎn)的半寬度(見理論手冊)。該值與數(shù)值計(jì)算采用的計(jì)算方法有關(guān),通常為差分格式的網(wǎng)格基的半寬度。表2.4給出了不同的差分格式要求的LAP值。如果軟件中使用了多種差分格式,則該值應(yīng)當(dāng)取最大的LAP值。例如,對流項(xiàng)用3階迎風(fēng)格式,對應(yīng)的LAP=2,粘性項(xiàng)采用6階中心格式,對于的LAP=3。則在該軟件中應(yīng)當(dāng)
25、選取LAP=3。如果選取的LAP值小于3,則計(jì)算結(jié)果有誤;如果選取LAP大于3,雖然能保證結(jié)果正確,但計(jì)算效率會降低。第9行的第1個(gè)參數(shù)(N_MSG_SIZE)為消息塊的大小。為了提高效率,本軟件把長消息切割成N_MSG_SIZE大小的短消息發(fā)送(詳見理論手冊)。N_MSG_SIZE為每次發(fā)送的數(shù)據(jù)個(gè)數(shù)。例如N_MSG_SIZE512表示每次發(fā)送512個(gè)數(shù)據(jù)(通常為雙精度數(shù)據(jù),消息長度為512×84K 字節(jié))。通常每個(gè)并行機(jī)都有最優(yōu)化的消息長度,由此可確定本參數(shù)的大小,例如某并行機(jī)對于8K字節(jié)消息性能最優(yōu),這時(shí)N_MSG_SIZE應(yīng)設(shè)為8K/8=1024。N_MSG_SIZE =0
26、表示默認(rèn)信息發(fā)送方式。通常情況下可采用這種方式。此外N_MSG_SIZE1表示按照1維模式傳遞消息,通過實(shí)際測試發(fā)現(xiàn)很多情況下這種傳遞方式有更高的效率。如果用戶對并行計(jì)算不太熟悉,建議將N_MSG_SIZE設(shè)為-1。當(dāng)N_MSG_SIZE 被設(shè)為-2時(shí),除了按1維模式通信外,每次通信后都進(jìn)行同步(MPI_barrier),因此效率較低,但穩(wěn)定性較好。第9行的第2,3個(gè)參數(shù)(BLOCK_COMPACT_Z, BLOCK_COMPACT_Y)決定了分塊流水線的粒度。如果數(shù)值計(jì)算采用緊致型差分格式,則本軟件采用分塊流水線的方法進(jìn)行并行計(jì)算,這兩個(gè)值就是計(jì)算被切割成的塊數(shù)(詳見理論手冊)。這兩個(gè)值的大
27、小會影響到計(jì)算的效率,通常用戶可以把這個(gè)值定在416之間。該值的選取與計(jì)算規(guī)模及并行計(jì)算機(jī)的通訊性能等有關(guān)。如果不采用緊致型差分格式,則這兩個(gè)參數(shù)沒有被使用。2.2.3 流動(dòng)參數(shù)opencfd.in 的第15行為流動(dòng)參數(shù),分別為Reynolds數(shù)(Re),Mach數(shù)(Ama), 比熱比(gamma), Prantl 數(shù)(Pr),和Schmidt數(shù)(Sc)。這些流動(dòng)參數(shù)的含義見理論手冊。如果不包含被動(dòng)標(biāo)量的計(jì)算(IFLAG_G=0)則Sc不被使用。第15行的第6個(gè)參數(shù)Iflag_Amu 描述了粘性系數(shù)的計(jì)算方法。Iflag_Amu=0采用Satherland 公式計(jì)算。 Iflag_Amu=1
28、則粘性系數(shù)保持常數(shù)。2.2.4 差分格式 opencfd.in 中21-37行為差分格式描述區(qū)。指定內(nèi)點(diǎn)及各個(gè)邊界的采用的差分格式。差分格式用編碼表示,其對于關(guān)系如下: 表2.4 差分格式及所須的LAP值格式描述符格式LAP1011階迎風(fēng)后差11021階迎風(fēng)前差11033階迎風(fēng)后差21043階迎風(fēng)前差21055階迎風(fēng)后差31065階迎風(fēng)前差31077階迎風(fēng)后差41087階迎風(fēng)前差41099階迎風(fēng)后差51109階迎風(fēng)前差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階優(yōu)化
30、WENO-SYMBO-Limit 后差 (推薦)43244階優(yōu)化WENO-SYMBO-Limit 前差 (推薦)4400強(qiáng)制差分為0 (配合無反射邊界條件)14012階單邊后差 (邊界格式)24022階單邊前差 (邊界格式)2 2.3 網(wǎng)格文件如果整個(gè)計(jì)算域采用等距網(wǎng)格,則本軟件不用讀取網(wǎng)格文件,如果某個(gè)計(jì)算方向采用非等距網(wǎng)格,則需要讀取網(wǎng)格文件。當(dāng)計(jì)算采用直角坐標(biāo)、柱坐標(biāo)或球坐標(biāo)時(shí),讀取網(wǎng)格文件的程序如下: 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-三個(gè)方向的網(wǎng)格點(diǎn)數(shù)。 Iflag_grid(k) (k=1,2,3)反映了網(wǎng)格是否為均勻網(wǎng)格(見2.2.2節(jié))。 從上面程序可以看出,如果某個(gè)方向采用非均勻網(wǎng)格,則必須在文件ocfd-grid.dat中包含網(wǎng)格信息。網(wǎng)格信息包含網(wǎng)格坐標(biāo)(程序中的xx,yy及zz)及J
32、acobian變換系數(shù)(sx,sy,sz)。 其中xx(k)為 I-方向第k個(gè)點(diǎn)對應(yīng)的x-坐標(biāo)(在柱坐標(biāo)或球坐標(biāo)系下為r-坐標(biāo)),sx(k)為 I-方向第k個(gè)點(diǎn)的坐標(biāo)變換系數(shù) ,其中分別為物理坐標(biāo)和計(jì)算坐標(biāo)。關(guān)于坐標(biāo)變換Jacobian系數(shù)的定義及意義,詳見理論手冊。應(yīng)當(dāng)注意,網(wǎng)格文件ocfd-grid.dat為Fortran無格式文件(unformatted),用戶應(yīng)當(dāng)用“open(66,file='ocfd-grid.dat',form='unformatted')”的格式打開文件。2.4 初值及數(shù)據(jù)文件 本軟件需要用戶提供計(jì)算的初值,初值文件名由控制文件指
33、定,默認(rèn)為opencfd.dat。下面是讀取初值文件的一段程序,從中可以看出初值文件的格式。本軟件的流場輸出數(shù)據(jù)("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初值文件最開始包括兩個(gè)參數(shù),Istep 和tt,它們分別為當(dāng)前的計(jì)算步及無量綱時(shí)間步長。對于從最初開始的計(jì)算
35、,Istep=0, tt=0.0 。其后為密度d; i-, j-, k-三個(gè)方向的速度u, v, w ;溫度T。 由于三維流場的數(shù)據(jù)量通常很大,因此初值文件是將每個(gè)流場按k-方向切割成二維數(shù)據(jù)場進(jìn)行存儲。初值文件的具體格式見上面的程序。2.5 用戶自定義接口 本軟件為用戶提供了自定義模塊接口。通過自定義模塊,用戶可以編寫自己的邊界條件處理程序及分析(后處理)程序。2.5.1 邊界條件處理模塊如下為自定義邊界條件處理模塊,用戶可以在給的的區(qū)域添加自己的程序以處理邊界條件。 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! 請?zhí)砑幼约旱某绦騝- end其中 f 為守恒變量,d,u,v,w,T分別為密度,三個(gè)方向的速度和溫度。nx,ny,nz為局部三個(gè)方向的網(wǎng)格點(diǎn)。nx_global, ny_global,nz_global 為全局三個(gè)方向的網(wǎng)格點(diǎn)。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 數(shù)據(jù)分析程序,用來根據(jù)計(jì)算結(jié)果分析數(shù)據(jù)。用戶可根據(jù)需求,自行添加程序 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 工作數(shù)據(jù)區(qū),供各子程序使用 real tmpa(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP,11) real tmpb(nx,ny,nz,14)c-c 以下是已經(jīng)做好的一些分析程序 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 鈍錐(尖錐)繞流的數(shù)據(jù)處理程序 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為積分的終點(diǎn) 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 的運(yùn)行和輸出 2.6.1 OpenCFD的運(yùn)行 在工作目錄中準(zhǔn)備好可執(zhí)行文件opencfd.out, 控制文件opencfd.in, 網(wǎng)格文件ocfd-grid.dat 及初值文件 opencfd.dat 后就可以運(yùn)行本軟件了。用戶可以通過作業(yè)調(diào)度系統(tǒng)來提交作業(yè),具體方法由并行機(jī)的作業(yè)調(diào)度系統(tǒng)決定。例如在LSSC2上,可以用 mpirun n n1 np n2 opencfd.out 來運(yùn)行。其中n1為運(yùn)行節(jié)點(diǎn)數(shù),n2 為運(yùn)行進(jìn)程數(shù)。其中運(yùn)行的進(jìn)程數(shù)要與opencfd.in中的一致(即, n2=npx0*npy0
47、*npz0)否則運(yùn)行會出錯(cuò)。在LSSC2上也可用 bsub n n1 np n2 “mpijob opencfd.out”提交作業(yè)。 在深騰6800上,可以用 bsub n nn o output.dat “mpijob_qs ./opencfd.out” 來提交任務(wù)。2.6.2 OpenCFD的輸出 OpenCFD在計(jì)算過程中,將計(jì)算信息輸出到屏幕上(每隔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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物理跨學(xué)科教學(xué)的意義與作用
- 冰雪旅游的服務(wù)模式與創(chuàng)新分析
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識能力提升試卷A卷附答案
- 吸聲礦棉板合同范本
- 廠房買賣初步合同范例
- 商品輪胎出售合同范例
- 合同范本刪除刪
- 廚房與酒店合同范本
- 中學(xué)聘用合同范例
- 合同范本電影解說
- “雙減”下初中道德與法治分層作業(yè)設(shè)計(jì)研究 論文
- 實(shí)驗(yàn)室CNASCMA內(nèi)部審核檢查表
- 護(hù)理學(xué)概述課程
- 2022年常州工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試試題及答案解析
- 第一章《原子結(jié)構(gòu)與性質(zhì)》測試題 高二化學(xué)人教版(2019)選擇性必修2
- GB/T 22080-2016信息技術(shù)安全技術(shù)信息安全管理體系要求
- GB/T 13915-2013沖壓件角度公差
- 蹴球-公開課教學(xué)設(shè)計(jì)
- 瑜伽師地論(完美排版全一百卷)
- 主體結(jié)構(gòu)實(shí)體檢測方案
- 電焊工培訓(xùn)課件
評論
0/150
提交評論