孫豪宇,鄔群勇*
(1. 福州大學(xué)空間數(shù)據(jù)挖掘與信息共享教育部重點(diǎn)實(shí)驗(yàn)室,福建 福州 350108;2. 衛(wèi)星空間信息技術(shù)綜合應(yīng)用國(guó)家地方聯(lián)合工程研究中心,福建 福州 350108;3. 數(shù)字中國(guó)研究院(福建),福建 福州 350108)
近年來(lái),城市空氣污染問(wèn)題愈演愈烈[1],直接影響到人們的身體健康[2]。研究城市街區(qū)大氣污染源擴(kuò)散規(guī)律,進(jìn)而預(yù)防或者減少城市中大氣污染物,對(duì)于改善和保護(hù)人類的生存環(huán)境具有重要意義。
隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,計(jì)算流體動(dòng)力學(xué)(Computa-tional Fluid Dynamics,CFD)技術(shù)得到飛速進(jìn)步與成熟[3]。Fluent是一款國(guó)際流行的商用CFD軟件包,在流體、熱傳遞和化學(xué)反應(yīng)等領(lǐng)域有廣泛的應(yīng)用。Fluent對(duì)污染物傳輸和擴(kuò)散有較好的模擬能力[4-6],但是,F(xiàn)luent為適應(yīng)各個(gè)領(lǐng)域的需求,設(shè)計(jì)了復(fù)雜的面板參數(shù),計(jì)算中需要用戶輸入的操作較多且專業(yè)要求較高,導(dǎo)致操作困難。因此,研究人員基于Fluent軟件擴(kuò)展衍生了針對(duì)于不同領(lǐng)域的易于操作和理解的仿真平臺(tái)。如李湘平等[7]實(shí)現(xiàn)電磁軌道發(fā)射彈丸內(nèi)部磁場(chǎng)仿真;宋先知等[8]開(kāi)發(fā)熱力射流調(diào)制與流場(chǎng)計(jì)算分析軟件;李慧等[9]研發(fā)地鐵通風(fēng)系統(tǒng);鄭朝亮等[10]實(shí)現(xiàn)裝甲車輛紅外仿真程序;Mengqi Li等[11]實(shí)現(xiàn)油罐車流場(chǎng)分析及仿真;Qiang Liu等12]研發(fā)板坯連鑄機(jī)二冷系統(tǒng)的凝固與優(yōu)化研究平臺(tái)。這些仿真平臺(tái)主要是對(duì)Fluent最基本的日志文件或者用戶自定義函數(shù)進(jìn)行簡(jiǎn)單修改操作,并未真正實(shí)現(xiàn)基于Fluent二次開(kāi)發(fā)的接口,因此,軟件的功能可擴(kuò)展和維護(hù)性較差。
本文的創(chuàng)新在于提出GUI命令流參數(shù)化設(shè)計(jì)方法及TUI命令流封裝方法,解決了Fluent命令編寫困難,復(fù)雜和可讀性差的問(wèn)題,為不同領(lǐng)域Fluent定制開(kāi)發(fā)提供統(tǒng)一接口。城市街區(qū)大氣污染擴(kuò)散仿真軟件(PSDS)具有參數(shù)設(shè)置少,功能可擴(kuò)展,操作簡(jiǎn)單,良好維護(hù)性等特征,可以簡(jiǎn)單快速的實(shí)現(xiàn)城市街區(qū)大氣污染擴(kuò)散仿真。
Fluent仿真首先需要解析以網(wǎng)格劃分文件(.msh)形式存儲(chǔ)的計(jì)算幾何模型,獲取邊界條件等計(jì)算幾何模型參數(shù)信息,其次根據(jù)Fluent提供的GUI和TUI兩種命令流設(shè)置模擬參數(shù)[7]。本文解析計(jì)算幾何模型文件,研究GUI命令流參數(shù)化設(shè)計(jì)方法及TUI命令流封裝方法,實(shí)現(xiàn)對(duì)Fluent二次開(kāi)發(fā)的仿真簡(jiǎn)化方法。
計(jì)算幾何模型文件(.msh)是Fluent進(jìn)行計(jì)算的基礎(chǔ)和前提,也是獲取計(jì)算幾何模型信息的必要途徑。計(jì)算幾何模型文件實(shí)質(zhì)上是以.msh為后綴的文本文件,按照l(shuí)isp語(yǔ)句的結(jié)構(gòu)進(jìn)行組織。表1是計(jì)算幾何模型文件的數(shù)據(jù)類型和組織格式。
計(jì)算幾何模型文件主要是由維度、節(jié)點(diǎn)、面、單元和區(qū)域構(gòu)成,節(jié)點(diǎn)組成面,面圍成單元,單元組成區(qū)域。通過(guò)表1數(shù)據(jù)類型及組織格式對(duì)文件進(jìn)行讀取,可以獲取計(jì)算幾何模型的邊界條件等信息,為Fluent計(jì)算模型的封裝提供必要輸入。
作為設(shè)置邊界條件的輸入?yún)?shù),需要自動(dòng)獲取計(jì)算幾何模型中各種邊界類型的邊界名,基于以上對(duì)于.msh文件的解析,邊界在.msh文件中的組織類似(45 (7 pres-sure-outlet outlet1)()),其中45為標(biāo)識(shí)數(shù)、7為邊界id、pressure-outlet為邊界類型、outlet1為邊界名。因此,本文提出逐行讀取文件流,對(duì)文件中以(45開(kāi)頭的行字符串進(jìn)行截取,得到計(jì)算幾何模型的邊界類型及邊界名。偽代碼如下:
streamReader獲取逐行讀取網(wǎng)格文件流
While(line為空)
if(line的開(kāi)頭字符串為:”(45”)
boundary[0]賦值邊界類型
boundary[1]賦值邊界名
將boundary二維數(shù)組添加到boundarys列表

表1 計(jì)算幾何模型文件數(shù)據(jù)類型及組織格式
Fluent GUI(Graphical User Interface)腳本命令流可以通過(guò)兩種方式獲得。一是通過(guò)操作Fluent軟件,而生成記錄每一步操作的日志文件(Journal File),這種方式可以方便的獲取腳本命令流,但因Fluent軟件的復(fù)雜性,對(duì)其進(jìn)行修改非常繁瑣;二是使用文本編輯器用Scheme語(yǔ)言編寫,這種方式編寫腳本命令工作量巨大且復(fù)雜。本文研究GUI命令流參數(shù)化設(shè)計(jì)方法,通過(guò)界面編程的方式自動(dòng)編寫腳本命令,既解決腳本命令編寫復(fù)雜,又能解決腳本命令修改困難的問(wèn)題。
Fluent GUI以命令流的形式將計(jì)算過(guò)程中的每一步操作記錄在日志文件中(.jou),通過(guò)研究Fluent生成的日志文件,其命令流組織規(guī)則如下:
第一,每種操作函數(shù)的第一個(gè)參數(shù)為文本類型的參數(shù),這個(gè)參數(shù)用于指定操作位置。
第二,每條操作函數(shù)命令后有一條激活函數(shù)命令(cx-gui-do cx-activate-item)。
第三,操作函數(shù)中若是有列表類型的參數(shù),且列表參數(shù)值為索引號(hào),那么可以用對(duì)應(yīng)的實(shí)際名稱替換該索引號(hào)。
基于GUI命令流組織規(guī)則,搭建交互窗口進(jìn)行參數(shù)傳遞,通過(guò)文件流寫入方式實(shí)現(xiàn)journal文件的參數(shù)化自動(dòng)生成。如對(duì)于穩(wěn)態(tài)計(jì)算中迭代步數(shù)設(shè)置的腳本命令,可以利用上述方法思想編寫偽代碼如下:
streamWriterLine("(cx-gui-do cx-set-integer-entry "Run Calculation*Table1*IntegerEntry10(Number of Iterations)" "+numberOFIterations+")");
streamWriterLine ("(cx-gui-do cx-activate-item "Run Calculation*Table1*IntegerEntry10(Number of Iterations)")");
其中streamWriterLine為文件流寫入方法,numberOFIterations為傳入的迭代步數(shù)參數(shù),這就是將參數(shù)化思想融入腳本命令編程的體現(xiàn)。
通過(guò)GUI命令流參數(shù)化設(shè)計(jì)方法可以實(shí)現(xiàn)對(duì)GUI腳本命令進(jìn)行參數(shù)化編程,進(jìn)而開(kāi)發(fā)出符合針對(duì)各領(lǐng)域的仿真平臺(tái)。但是,GUI命令流組織比較松散,很難將其封裝為可以通用的方法模塊進(jìn)行調(diào)用,而且GUI命令需要調(diào)用窗口顯示,執(zhí)行效率相對(duì)較低。Fluent TUI(Text-based User Interface)命令可以直接在Fluent的控制臺(tái)(Console)窗口中輸入并執(zhí)行,也可以在文本編輯器中編寫命令代碼并保存為日志文件(.jou),由Fluent讀取日志文件來(lái)執(zhí)行文件中的命令,可以很好的解決GUI存在的以上問(wèn)題。
TUI腳本命令由目錄和命令組成,即首先選擇目錄,然后執(zhí)行該目錄下相應(yīng)的命令,F(xiàn)luent TUI提供了14大類一級(jí)目錄,分別對(duì)應(yīng)功能如表2。

表2 Fluent TUI一級(jí)目錄命令
本文提出將TUI命令封裝為一系列簡(jiǎn)單易用的方法模塊,解決TUI命令可讀性差且編寫復(fù)雜的問(wèn)題。TUI命令由目錄和目錄下的命令函數(shù)以及命令函數(shù)的輸入?yún)?shù)值三個(gè)部分組成,輸入?yún)?shù)值最常用的有yes(縮寫y),no(縮寫n)和文本,yes和no用于詢問(wèn)是否選擇某操作(方法),文本用于設(shè)置實(shí)數(shù)值等。參照表2以及TUI命令的組成規(guī)則,可以得到Fluent功能對(duì)應(yīng)的TUI命令。如定義邊界條件的目錄為/define/boundary-conditions/,定義速度入口邊界條件的命令函數(shù)為velocity-inlet,命令函數(shù)需要的輸入?yún)?shù)根據(jù)模型選擇的不同而不同,如湍流模型選擇層流,其它模型方程全部關(guān)閉,則需要輸入的參數(shù)有邊界名、速度方法(三種)、參考框架(兩種)、速度大小和初始表壓。如果設(shè)置邊界名為inlet1的速度入口邊界條件,速度方法選擇第三種,參考框架選擇第一種,速度大小為10m/s,初始表壓為101325pa,則對(duì)應(yīng)的參數(shù)為inlet1 n n y y n 10 n 101325。因此完整的TUI命令為:/define/boundary-conditions/ velocity-inlet inlet1 n n y y n 10 n 101325。
通過(guò)以上研究發(fā)現(xiàn)對(duì)于TUI命令的使用有兩個(gè)主要的難點(diǎn):一是參數(shù)非固定,根據(jù)不同情況會(huì)發(fā)生相應(yīng)的變化;二是參數(shù)多用n y這樣的值,可讀性差,不利于理解和編寫。本文提出利用面向?qū)ο蠓椒▽?shí)現(xiàn)TUI腳本命令的封裝,將各功能的TUI命令流封裝為簡(jiǎn)單易用的功能對(duì)象。具體封裝流程為:根據(jù)封裝的功能對(duì)象所包含的方法設(shè)計(jì)各接口類,逐一實(shí)現(xiàn)各接口中的方法,形成實(shí)現(xiàn)類;將接口中各方法復(fù)雜的輸入?yún)?shù)封裝為參數(shù)類,便于方法調(diào)用,最后得到繼承于實(shí)現(xiàn)類的功能對(duì)象類,該類中方法的參數(shù)為便于調(diào)用的參數(shù)封裝類。
以設(shè)置邊界條件TUI命令的封裝過(guò)程為例闡述以上封裝方法,封裝流程如圖1。城市街區(qū)污染擴(kuò)散仿真涉及能量方程模型、湍流模型、輻射模型、組分模型四種模型,根據(jù)對(duì)Fluent TUI命令的研究,共需要設(shè)計(jì)十個(gè)接口;邊界條件涉及速度入口(velocity-inlet)、壓力入口(pressure-inlet)、質(zhì)量流入口(mass-flow-inlet)、壓力出口(pressure-outlet)、質(zhì)量流出口(mass-flow-outlet)五種邊界類型,對(duì)應(yīng)需要在上面十個(gè)接口下分別設(shè)計(jì)五個(gè)方法。接口設(shè)計(jì)完成后,提供一個(gè)實(shí)現(xiàn)類實(shí)現(xiàn)所有接口。但是,由于Fluent軟件操作的復(fù)雜性,實(shí)現(xiàn)類中的每個(gè)方法涉及參數(shù)眾多,導(dǎo)致開(kāi)發(fā)者調(diào)用這些方法仍然比較復(fù)雜,因此,對(duì)每個(gè)方法的參數(shù)進(jìn)行封裝形成參數(shù)類。最后設(shè)計(jì)一個(gè)最終對(duì)開(kāi)發(fā)者開(kāi)放的邊界條件設(shè)置類對(duì)象(BoundaryConditionSet)。該對(duì)象簡(jiǎn)單明了,易用理解和調(diào)用,可以非常簡(jiǎn)單的返回所需邊界條件設(shè)置的TUI命令。如選擇湍流模型為層流時(shí),獲取設(shè)置速度入口的邊界條件TUI命令偽代碼為:

圖1 邊界條件TUI封裝流程
創(chuàng)建邊界條件設(shè)置類對(duì)象BoundaryConditionSet BCS
創(chuàng)建參數(shù)封裝類對(duì)象BCP_OFFOFF.VI vi
輸入vi成員變量值
輸出TUI命令字符串TUI=BCS.Set_OFFOFF(vi: vi)
依據(jù)上述設(shè)計(jì)思路,完成邊界條件設(shè)置的TUI命令流封裝,為Fluent提供簡(jiǎn)單易用的二次開(kāi)發(fā)庫(kù),解決Fluent TUI腳本命令可讀性差,難以編寫的難題。最后可以利用文件流的方式實(shí)現(xiàn)TUI命令的寫入,靈活方便的得到自組織的Fluent腳本命令流日志文件(.jou)。對(duì)于得到的命令流日志文件(.jou)可以后臺(tái)調(diào)用Fluent進(jìn)行執(zhí)行。后臺(tái)執(zhí)行Fluent日志文件的命令格式為fluent x1d -g -tx2-i journal,其中x1取值為2或3,代表計(jì)算模型的維度;x2取值為處理器個(gè)數(shù),即并行核數(shù);journal為日志文件(.jou)路徑;-g代表Fluent后臺(tái)運(yùn)行。
利用上文研究的GUI命令流參數(shù)化設(shè)計(jì)方法及TUI命令流封裝方法,采用VS2015開(kāi)發(fā)平臺(tái),基于.NET Framework技術(shù)開(kāi)發(fā)城市街區(qū)大氣污染擴(kuò)散仿真平臺(tái)(PSDS)。該平臺(tái)源碼已上傳至GitHub托管平臺(tái):https:∥github.com/Mekeater/PSDS。PSDS仿真操作流程如圖2所示。

圖2 仿真操作流程
通過(guò)簡(jiǎn)單界面交互而實(shí)現(xiàn)自動(dòng)組織和生成復(fù)雜的腳本命令日志文件(.jou)。模擬參數(shù)設(shè)置包括兩種模式,一種是簡(jiǎn)要模式,交互界面如圖3,該模式所需參數(shù)設(shè)置較少,根據(jù)常規(guī)污染源擴(kuò)散模擬計(jì)算的參數(shù)設(shè)置經(jīng)驗(yàn)[13-14],對(duì)專業(yè)性參數(shù)進(jìn)行了默認(rèn)設(shè)置,如物理模型選擇能量方程,標(biāo)準(zhǔn)k-ε雙方程湍流模型以及組分運(yùn)輸方程等,該模式簡(jiǎn)單易操作,適合沒(méi)有太多流體力學(xué)基礎(chǔ)的用戶,可以快速對(duì)污染擴(kuò)散進(jìn)行計(jì)算模擬;另一種是專家模式,交互界面如圖4,適合有較強(qiáng)流體力學(xué)基礎(chǔ)的用戶,可以進(jìn)行更多模擬參數(shù)的設(shè)置,專家模式相比簡(jiǎn)要模式開(kāi)放了更多的參數(shù)設(shè)置,可以由用戶根據(jù)情況選擇和設(shè)置更多合適的參數(shù),共包括八大模塊。兩種模式的交互界面如圖3。模型參數(shù)設(shè)置完成后生成腳本命令日志文件(.jou)。

圖3 簡(jiǎn)要模式交互界面

圖4 專家模式交互界面
生成的日志文件(.jou)需要后臺(tái)調(diào)用Fluent執(zhí)行文件中的腳本命令內(nèi)容,首先自動(dòng)獲取模擬參數(shù)設(shè)置所生成的日志文件(.jou),然后,后臺(tái)調(diào)用Fluent執(zhí)行該日志文件中的腳本命令,交互界面如圖5。ANSYS Fluent具有成熟的并行策略[7],PSDS計(jì)算求解模塊可以選擇并行或者串行執(zhí)行腳本命令,通過(guò)并行的方式調(diào)用Fluent執(zhí)行腳本命令,可以很大程度上提高計(jì)算效率,使得計(jì)算時(shí)間大大縮短。

圖5 計(jì)算求解交互界面
模擬計(jì)算求解完成后會(huì)自動(dòng)生成整個(gè)模型和指定模型截面處的相關(guān)計(jì)算值存儲(chǔ)于文本類型文件中,生成文件存儲(chǔ)內(nèi)容包括節(jié)點(diǎn)數(shù)、xyz坐標(biāo)值,以及坐標(biāo)值處對(duì)應(yīng)的壓力值、速度大小值、速度角度值以及各個(gè)組分質(zhì)量分?jǐn)?shù)值。同時(shí)將利用Fluent后處理生成的整個(gè)模型以及指定模型截面處的壓力云圖和矢量圖,速度大小云圖和矢量圖,以及各個(gè)組分質(zhì)量分?jǐn)?shù)的云圖和矢量圖以圖片的形式存儲(chǔ)。文本數(shù)據(jù)用作污染擴(kuò)散分析的基礎(chǔ)數(shù)據(jù),圖片用作對(duì)計(jì)算結(jié)果的基礎(chǔ)可視化和分析。
數(shù)據(jù)采用本地文件目錄樹(shù)的方式進(jìn)行存儲(chǔ)管理,如圖6所示。根目錄下包含以模擬計(jì)算工程名為名稱的子目錄,即每次模擬計(jì)算都會(huì)自動(dòng)在根目錄創(chuàng)建一個(gè)子目錄,該子目錄的名稱以工程名命名,同時(shí)會(huì)自動(dòng)在子目錄下再創(chuàng)建三個(gè)子目錄用以存儲(chǔ)日志文件(.jou)、整個(gè)模型以及指定模型截面處的計(jì)算值文本文件和圖片文件。對(duì)于整個(gè)模型的圖片命名規(guī)則為“工程名_Body_2個(gè)整數(shù)組合_time”,指定模型截面處的圖片命名規(guī)則為“工程名_截面名_2個(gè)整數(shù)組合_time”,2個(gè)整數(shù)組合為n行2列的二維網(wǎng)格的索引號(hào),如圖7所示,time為時(shí)間值,對(duì)于穩(wěn)態(tài)計(jì)算time取值為空,對(duì)于瞬態(tài)計(jì)算time代表時(shí)間值。如test_Body_10_0001.jpg為test模擬計(jì)算工程中在1秒時(shí)的速度云圖;test_y26_01_為test穩(wěn)態(tài)模擬計(jì)算工程中在截面y26處的壓力矢量圖。該命名規(guī)則可以在程序中快速的調(diào)用所需的圖片進(jìn)行展示。

圖6 數(shù)據(jù)存儲(chǔ)目錄樹(shù)

圖7 二維網(wǎng)格索引號(hào)
影響城市大氣污染擴(kuò)散的因素主要包括泄漏源(形態(tài)、位置、泄漏氣體密度等)、氣象條件(風(fēng)向風(fēng)速、濕度、大氣穩(wěn)定度等)以及地表情況等[15]。利用PSDS軟件進(jìn)行城市街區(qū)氯氣擴(kuò)散仿真,驗(yàn)證依據(jù)論文提出的Fluent二次開(kāi)發(fā)技術(shù)方法研發(fā)的PSDS平臺(tái),簡(jiǎn)單易用,可以快速實(shí)現(xiàn)城市街區(qū)大氣污染擴(kuò)散的仿真。根據(jù)仿真結(jié)果分析風(fēng)速以及污染源釋放的質(zhì)量通量大小對(duì)于氯氣擴(kuò)散的影響。研究區(qū)域?yàn)楹?jiǎn)化城市街區(qū),街區(qū)內(nèi)有大小不一的建筑樓,污染源為持續(xù)釋放氯氣污染物的簡(jiǎn)化立方體。模擬區(qū)域示意圖如圖8所示。
本文采用ANSYS集成到Workbench中的DesignModeler進(jìn)行幾何建模,采用Meshing軟件對(duì)幾何模型進(jìn)行非結(jié)構(gòu)化網(wǎng)格劃分。模型選擇能量方程、標(biāo)準(zhǔn)k-ε雙方程湍流模型以及組分運(yùn)輸方程,考慮重力且重力方向?yàn)閆軸方向,重力大小為-9.81m/s2。利用基于壓力基求解器的非穩(wěn)態(tài)流算法,速度壓力用SIMPLE法耦合,在時(shí)間方向上采用二階隱式格式離散。左側(cè)面(left)和前方面(front)設(shè)置為速度入口邊界條件;右側(cè)面(right)和后方面(behind)設(shè)置為出流邊界條件;污染源(pollution)設(shè)置為質(zhì)量流入口邊界條件;剩余研究區(qū)域的上方和下方以及建筑物設(shè)置為無(wú)滑移壁面。以上設(shè)置既可以通過(guò)PSDS軟件的專家模式進(jìn)行設(shè)置,也可以通過(guò)PSDS軟件的簡(jiǎn)要模式進(jìn)行快速設(shè)置,本實(shí)驗(yàn)采用簡(jiǎn)要模式進(jìn)行參數(shù)設(shè)置。

圖8 模擬區(qū)域示意圖
設(shè)置污染源以6kg/m2-s的質(zhì)量通量釋放氯氣,分別對(duì)速度入口風(fēng)速為6m/s、9m/s、12m/s的氯氣擴(kuò)散情況進(jìn)行快速仿真。
仿真結(jié)果在建筑物的水平截面處,時(shí)間分別為5s、10s、20s、30s、40s五個(gè)時(shí)刻的氯氣擴(kuò)散情況對(duì)比如圖9所示。由圖分析可得到以下氯氣擴(kuò)散規(guī)律:①氯氣整體向下風(fēng)方向擴(kuò)散,且在擴(kuò)散初始時(shí)間段,風(fēng)速越大向下風(fēng)向的擴(kuò)散范圍越大,但污染源周邊的高濃度范圍越少。這是因?yàn)檩^小的風(fēng)速導(dǎo)致氯氣擴(kuò)散速度較慢,使得大多氯氣集中在污染源周邊形成高濃度區(qū)域,而較大的風(fēng)速導(dǎo)致氯氣擴(kuò)散速度快,使得污染源周邊的氯氣快速向遠(yuǎn)處擴(kuò)散,進(jìn)而污染源周邊高濃度區(qū)域越少,下風(fēng)向的氯氣擴(kuò)散范圍越大。②隨著擴(kuò)散時(shí)間的增加,風(fēng)速越小下風(fēng)向氯氣范圍越大且濃度越高。這是因?yàn)轱L(fēng)速越大氯氣就被越快的吹散,擴(kuò)散范圍及濃度增長(zhǎng)速度較慢,而風(fēng)速越小氯氣就有更多的時(shí)間積累,擴(kuò)散范圍及濃度增長(zhǎng)速度較快。③建筑物對(duì)于氯氣擴(kuò)散具有明顯的阻擋作用。由圖可明顯看出污染源所在街道的氯氣經(jīng)過(guò)第一排建筑物的阻擋后,在第二條街道濃度驟減。
由以上分析可以證實(shí)風(fēng)速以及建筑物在城市污染源擴(kuò)散中的重要作用,合理的規(guī)劃城市建筑,建造具有更好通風(fēng)效應(yīng)和建筑物布局的城市街區(qū)對(duì)于污染擴(kuò)散具有重要的意義。

圖9 不同風(fēng)速氯氣擴(kuò)散仿真
設(shè)置速度入口風(fēng)速為6m/s,分別對(duì)污染源釋放質(zhì)量通量為3kg/m2-s和6kg/m2-s的氯氣擴(kuò)散情況進(jìn)行快速仿真。
仿真結(jié)果在建筑物的水平截面處,時(shí)間分別為5s、10s、20s、30s、40s五個(gè)時(shí)刻的氯氣擴(kuò)散情況對(duì)比如圖10所示。由圖中可以看出污染物整體向下風(fēng)向擴(kuò)散,在同一時(shí)間,污染源處質(zhì)量通量越大,下風(fēng)向污染范圍越大濃度越高,隨著時(shí)間的增加,下風(fēng)向污染擴(kuò)散范圍不斷增加。這是因?yàn)槲廴驹促|(zhì)量通量越大,每一時(shí)刻就有更多的氯氣被風(fēng)帶到下風(fēng)向,使得下風(fēng)向污染范圍越大濃度越高,隨著時(shí)間的增加,污染物持續(xù)向下風(fēng)向擴(kuò)散,導(dǎo)致下風(fēng)向污染擴(kuò)散范圍不斷增加。

圖10 不同質(zhì)量通量氯氣擴(kuò)散仿真
本文提出GUI命令流參數(shù)化設(shè)計(jì)方法及TUI命令流封裝方法,研發(fā)了城市街區(qū)大氣污染擴(kuò)散仿真軟件(PSDS),實(shí)現(xiàn)了城市街區(qū)氯氣擴(kuò)散的仿真,主要結(jié)論如下:
1) 通過(guò)界面編程的方式自動(dòng)編寫腳本命令,實(shí)現(xiàn)了GUI命令流參數(shù)化設(shè)計(jì)方法,解決了GUI命令編寫困難和修改復(fù)雜的問(wèn)題。
2) TUI命令流封裝方法將TUI命令封裝為一系列簡(jiǎn)單易用的方法模塊,解決了TUI命令可讀性差且編寫復(fù)雜的問(wèn)題,為Fluent擴(kuò)展定制開(kāi)發(fā)提供統(tǒng)一接口。
3) PSDS軟件操作簡(jiǎn)便,易于理解,解決Fluent軟件操作復(fù)雜,專業(yè)理論知識(shí)要求過(guò)高等問(wèn)題,可為城市街區(qū)大氣污染擴(kuò)散模擬提供簡(jiǎn)單易用的研究工具。