陳 軍,李 婷,禹政陽(yáng)
(成都信息工程大學(xué)資源與環(huán)境學(xué)院,成都 610225)
水質(zhì)模型模擬污染物在水環(huán)境中的運(yùn)動(dòng)和遷移,是水生態(tài)環(huán)境評(píng)價(jià)、水污染預(yù)警預(yù)報(bào)的重要工具。近幾十年來(lái),國(guó)內(nèi)外許多學(xué)者在水質(zhì)模擬方面已開(kāi)展了大量的研究工作[1-11]。二維水質(zhì)模型研究污染物在水平方向上的擴(kuò)散,常用于大型河流的水質(zhì)模擬,逐漸成為流域水質(zhì)模擬的重點(diǎn)研究方向。
二維水質(zhì)模型將流域按一定的空間規(guī)則劃分為大量不相互重疊的空間網(wǎng)格,通過(guò)網(wǎng)格的污染物遷移模擬污染物的空間擴(kuò)散;將污染物擴(kuò)散過(guò)程按一定時(shí)間間隔分解為大量的時(shí)間片元,通過(guò)時(shí)間片的迭代模擬污染物的時(shí)間變化規(guī)律。因此,二維水質(zhì)模型屬于計(jì)算密集性運(yùn)算,隨著網(wǎng)格劃分空間精度和時(shí)間片元的較小,運(yùn)算量呈倍增加。傳統(tǒng)的CPU計(jì)算難以實(shí)現(xiàn)高精度的二維水質(zhì)模擬。由于GPU強(qiáng)大的并行計(jì)算能力,將通用計(jì)算引入到水質(zhì)模擬成為未來(lái)的趨勢(shì)[12-15]。然而,在目前顯卡硬件條件下,一次送入GPU的數(shù)據(jù)大小有一定限制。對(duì)于大型流域,網(wǎng)格空間尺度精細(xì)到一定尺度后,GPU很難一次性讀入。因此,如何實(shí)現(xiàn)流域范圍的水質(zhì)實(shí)時(shí)模擬,成為水質(zhì)模擬必須解決的關(guān)鍵問(wèn)題。
另一方面,流域的前期水情是影響水質(zhì)模擬精度的重要因素。由于數(shù)據(jù)獲取能力的限制,流域的前期水動(dòng)力和水質(zhì)數(shù)據(jù)往往難以獲取。為解決該問(wèn)題,目前大多數(shù)模型采用“預(yù)熱”的方式,即利用有限的觀察數(shù)據(jù)對(duì)模型進(jìn)行多年的迭代,將迭代結(jié)果作為流域前期水情,典型的如SWAT[16-20],這種方式最大問(wèn)題是性能問(wèn)題;另一部分模型要求輸入河道所有位置上的水深和污染物濃度數(shù)據(jù),典型的如EFDC[21-23]。由于難以獲取河道所有位置上的水深和濃度,一般采用空間離散的觀測(cè)點(diǎn)插值得到??臻g插值的誤差則成為該方法中前期水情誤差的主要來(lái)源。
為此,本文提出一種基于通用計(jì)算的流域水質(zhì)實(shí)時(shí)模擬方法。通過(guò)降低模擬網(wǎng)格規(guī)模和水質(zhì)模擬的并行化設(shè)計(jì),以提升水質(zhì)模擬性能;通過(guò)引入穩(wěn)定流場(chǎng)[24-28],以提升水質(zhì)模擬的精度。實(shí)驗(yàn)證明,相對(duì)于傳統(tǒng)水質(zhì)模擬,其性能提升顯著,模擬精度達(dá)到要求,其成果具有一定的理論意義和實(shí)踐價(jià)值。
在二維水質(zhì)模型中,基本計(jì)算單元稱為“微元”,它代表了水體的一個(gè)微小區(qū)域?!拔⒃敝g無(wú)縫連接,以模擬研究區(qū)域的水體。流域的水質(zhì)模擬采用微元的污染物模擬計(jì)算實(shí)現(xiàn)。為便于通用計(jì)算,本文將“微元”設(shè)定為規(guī)則的矩形網(wǎng)格,即對(duì)流域按相等的分辨率劃分為一定數(shù)量的行和列構(gòu)成的矩陣,矩陣中每一個(gè)單元為二維水質(zhì)模型中的“微元”,也是柵格模式下的一個(gè)像元。
柵格模式的劃分雖然便于通用計(jì)算處理,但隨著分辨率的提高,像元數(shù)量的增加,存儲(chǔ)和計(jì)算量成倍增加。如果將流域的整個(gè)矩形區(qū)域的像元均放置于顯存,在現(xiàn)有技術(shù)下所能表達(dá)的流域范圍和分辨率有限。
為河道設(shè)置最大水體范圍,并假定在模擬時(shí)段內(nèi)水和污染物運(yùn)動(dòng)局限于該范圍內(nèi)的像元。以此為基礎(chǔ),將流域范圍內(nèi)的像元分為兩類,一類為水體像元,另一類為外部像元。由于現(xiàn)實(shí)中水體像元僅占全流域范圍的一小部分,如果僅將水體像元放入顯存中運(yùn)算,則在相同的顯存下支持更大范圍和更高分辨率的流域水質(zhì)模擬。
然而,在二維水質(zhì)模型中,每一個(gè)像元均需要與周圍8鄰域像元進(jìn)行水和污染物交換,需要將與水體鄰接的外部像元的相關(guān)屬性同時(shí)存儲(chǔ)到顯存中。將與水體鄰接的外部像元稱為邊界像元,則參與水質(zhì)模擬的網(wǎng)格包括水體像元和邊界像元兩部分,如圖1所示。其中,水體像元為實(shí)際水質(zhì)計(jì)算的網(wǎng)格單元,邊界像元為鄰接的水體像元提供鄰接屬性的網(wǎng)格單元。
圖1 流域水質(zhì)模擬網(wǎng)格劃分Fig.1 The classification of cells for watershed water quality simulation
模擬網(wǎng)格集合M表示為:
M={celln| 1≤n≤Nm}
(1)
式中:Nm為集合中模擬網(wǎng)格的個(gè)數(shù);n為各模擬網(wǎng)格在集合中存儲(chǔ)的序號(hào),用于唯一標(biāo)識(shí)每一個(gè)模擬網(wǎng)格。
在通用計(jì)算中,水質(zhì)模擬所需的地形、水深、水速、污染物濃度均表達(dá)成長(zhǎng)度為Nm的數(shù)組,模擬網(wǎng)格的數(shù)量決定了流域的水質(zhì)模擬所需的顯存大小。表1給出了實(shí)驗(yàn)流域不同空間分辨率下模擬網(wǎng)格數(shù)量。從表1可見(jiàn),模擬網(wǎng)格數(shù)量不及網(wǎng)格總數(shù)的1%,并且隨分辨率的增加,占比不斷減小,并無(wú)限接近水體占整體流域的比例。因此,在流域中定義模擬網(wǎng)格,降低了水質(zhì)模擬計(jì)算的顯存需求,為流域尺度的水質(zhì)模擬通用計(jì)算奠定了基礎(chǔ)。
表1 不同柵格分辨率條件下的模擬網(wǎng)格數(shù)量及占比Tab.1 The number and proportion of simulated grids under different grid resolution conditions
模擬網(wǎng)格在污染物擴(kuò)散與遷移計(jì)算時(shí),需要周圍8鄰域網(wǎng)格的屬性信息。因此,在模擬網(wǎng)格劃分的基礎(chǔ)上,還要構(gòu)建網(wǎng)格鄰域拓?fù)?。?duì)于每一個(gè)模擬網(wǎng)格,其8鄰域按照?qǐng)D2所示的順序編碼,依次記錄鄰域網(wǎng)格在模擬網(wǎng)格集合中的序號(hào)。
圖2 中心網(wǎng)格的8鄰域編碼Fig.2 8 Neighborhood coding of the center cell
為便于水質(zhì)模擬的通用計(jì)算,模擬網(wǎng)格的鄰域拓?fù)湟膊捎脭?shù)組表示。由于一個(gè)模擬網(wǎng)格有8個(gè)鄰域編碼,鄰域拓?fù)鋽?shù)組的大小是Nm的8倍。為便于鄰域網(wǎng)格的檢索,鄰域拓?fù)鋽?shù)組按模擬網(wǎng)格序號(hào)的順序依次存儲(chǔ)。
可并行性是通用計(jì)算的基本要求。在通用計(jì)算中,一個(gè)任務(wù)被劃分為大量的子任務(wù),這些子任務(wù)的執(zhí)行過(guò)程具有相對(duì)獨(dú)立性。為實(shí)現(xiàn)基于通用計(jì)算的水質(zhì)模擬,水質(zhì)模擬過(guò)程也應(yīng)該進(jìn)行可并行性分解。水質(zhì)模擬包括時(shí)間迭代和空間迭代。時(shí)間迭代是從上一個(gè)時(shí)間片的污染物狀態(tài)得到下一個(gè)時(shí)間片的模擬結(jié)果,時(shí)間片之間是串行的。因此,水質(zhì)模型的并行化關(guān)鍵在于空間迭代。柵格像元之間的計(jì)算獨(dú)立性,是水質(zhì)模型通用計(jì)算的關(guān)鍵。而柵格像元之間的計(jì)算獨(dú)立性,要求在模型中,模擬網(wǎng)格僅能修改它自身的屬性,不能修改其他網(wǎng)格的屬性。
為實(shí)現(xiàn)水質(zhì)模擬的通用計(jì)算,將模擬網(wǎng)格的屬性cell表示為一個(gè)多元組:
cell={H,s,b,Wf,vf,cf,Wt,vt,ct}
(2)
式中:H為網(wǎng)格的地形高度;s為網(wǎng)格類型,分為水體像元和邊界像元兩類;b為網(wǎng)格的鄰域拓?fù)湫畔?;Wf、vf、cf分別表示時(shí)間片上網(wǎng)格的初始水深、水速和污染物濃度;Wt、vt、ct分別表示時(shí)間片上網(wǎng)格的終止水深、水速和污染物濃度。
在時(shí)間片上,依據(jù)模擬網(wǎng)格的{Wf,vf,cf},計(jì)算得到該時(shí)間片的{Wt,vt,ct,}。下一個(gè)時(shí)間片計(jì)算時(shí),將其進(jìn)行交換。這種表示方法確保了時(shí)間片之間的數(shù)據(jù)獨(dú)立性。
水動(dòng)力模型是水質(zhì)模型的基礎(chǔ)。通過(guò)水動(dòng)力模型,模擬出網(wǎng)格的水深和水速,依據(jù)水深和水速,模擬污染物的擴(kuò)散、遷移和衰減。在一個(gè)時(shí)間片上,模擬網(wǎng)格的水動(dòng)力模擬核心在于水深、水速的計(jì)算。對(duì)于流域任一模擬網(wǎng)格,在模擬時(shí)表示為中心網(wǎng)格r,其8鄰域網(wǎng)格表示為b。時(shí)間片上的水動(dòng)力模擬按如下方式進(jìn)行。
2.3.1 模擬網(wǎng)格水深的計(jì)算
在柵格模式下,模擬網(wǎng)格的水體看作為一個(gè)立方體水柱。由于模擬網(wǎng)格為柵格模式下的一個(gè)像元。模擬網(wǎng)格的水量V由式(3)計(jì)算:
V=WC2
(3)
式中:W為模擬網(wǎng)格的水深;C為像元分辨率。
(4)
網(wǎng)格供水主要途徑為降水和支流入?yún)R。在僅考慮干流河道網(wǎng)格的水質(zhì)模型中,上游干流入流、支流入?yún)R、排污口均被假設(shè)為一個(gè)位于河道的水源點(diǎn)。由于流域中降水最終通過(guò)上游來(lái)水、支流入?yún)R方式進(jìn)入模擬河段,而河道上的降水量對(duì)于整個(gè)流域而言僅占很小一部分,因此模型中忽略降水項(xiàng)。對(duì)于河道的水源點(diǎn),以流量為單位輸入模型。設(shè)某水源點(diǎn)流量為ξ,m3/s,則時(shí)間片上水源點(diǎn)所在網(wǎng)格因供水增加的水深ξr為:
(5)
式中:N為一個(gè)小時(shí)的時(shí)間片數(shù)。
(6)
式中:(Δx、Δy)為鄰域網(wǎng)格坐標(biāo)相對(duì)中心網(wǎng)格坐標(biāo)的偏移,像素;vmax表示時(shí)間片上允許的最大速度標(biāo)量。
依據(jù)式(6),當(dāng)模擬網(wǎng)格水速等于vmax時(shí),網(wǎng)格水流100%流出。因此,水質(zhì)模擬的時(shí)間片間隔Δt可采用下式來(lái)計(jì)算[29]:
(7)
2.3.2 模擬網(wǎng)格的水速計(jì)算
(8)
式中:α為與地表摩擦力、重力加速度和水體密度等相關(guān)的常量。
(9)
2.3.3 時(shí)間片上水動(dòng)力模擬的并行計(jì)算流程
為保證水動(dòng)力計(jì)算的可并行性,時(shí)間片上的水動(dòng)力模擬分兩步進(jìn)行。第一步,水速增量計(jì)算。首先依據(jù)水源點(diǎn)供水量計(jì)算模擬網(wǎng)格的水量增量,然后進(jìn)行水速增量模擬,計(jì)算各網(wǎng)格單元新的水深和水速;第二步,水流遷移計(jì)算。以第一步得到的網(wǎng)格單元新水深和水速為基礎(chǔ),進(jìn)行水流遷移計(jì)算,得到的水深和水速作為下一個(gè)時(shí)間片的初始水深和水速。
將水質(zhì)模擬與水動(dòng)力模型耦合,在水速增量、水流遷移環(huán)節(jié)中加入污染物遷移、擴(kuò)散和衰減計(jì)算。
2.4.1 水速增量環(huán)節(jié)中的水質(zhì)模擬
(10)
在水速增量環(huán)節(jié)中,同時(shí)考慮污染物降解。污染物降解系數(shù)以天為單位,需要將其換算到一個(gè)時(shí)間片上污染物的降解率。設(shè)污染物降解系數(shù)在流域內(nèi)為一個(gè)常數(shù)kd,則時(shí)間上污染物降解率kr為:
kr=1-(1-kd)1/(24×N)
(11)
2.4.2 水流遷移環(huán)節(jié)中的水質(zhì)模擬
(12)
2.4.3 污染物擴(kuò)散模擬
在二維水質(zhì)模型中,中心網(wǎng)格r向鄰域網(wǎng)格b擴(kuò)散,導(dǎo)致中心網(wǎng)格污染物減少;鄰域網(wǎng)格b向中心網(wǎng)格r擴(kuò)散,導(dǎo)致中心網(wǎng)格污染物增加。將污染物擴(kuò)散系數(shù)設(shè)置為一個(gè)常量E,則相鄰兩網(wǎng)格單元因擴(kuò)散導(dǎo)致的污染物實(shí)際遷移量與它們的濃度差有關(guān)。
將相鄰兩網(wǎng)格單元的水均看作為一個(gè)立方體水柱,水柱的高度等于水深,并認(rèn)為污染物擴(kuò)散發(fā)生在兩水柱交疊區(qū)域,其水柱高度Wbr為:
Wbr=max[min(Hr+Wr,Hb+Wb)-max(Hr,Hb),0]
(13)
式中:Hr、Hb分別表示中心網(wǎng)格和鄰域網(wǎng)格的地形高度,m。
圖3 污染物擴(kuò)散交疊區(qū)Fig.3 The contaminant diffusion overlap zone
為定量描述水流混合模擬導(dǎo)致的污染物濃度變化,將E換算到時(shí)間片上污染物向外擴(kuò)散的距離e:
(14)
(15)
式中:W為流域出口控制點(diǎn)水深;下標(biāo)表示模擬小時(shí)數(shù);n為當(dāng)前已模擬的小時(shí)數(shù);h為前推小時(shí)數(shù);A為累積誤差閾值。
為提高模型模擬精度,利用實(shí)際水位和濃度數(shù)據(jù)對(duì)模型參數(shù)進(jìn)行率定,率定后vmax=2 m/s、α=0.12、σ=0.995、kd=0.05、E=0.08。將牡丹江中游2012年5月1日0時(shí)各水源點(diǎn)瞬時(shí)流量代入模型中,基于流域90 m地形數(shù)據(jù)創(chuàng)建穩(wěn)定流場(chǎng)。各水源點(diǎn)瞬時(shí)流量和濃度如表2所示。
表2 不同柵格分辨率條件下的流域水質(zhì)模擬時(shí)間Tab.2 The time of water quality simulation at different grid resolutions
從表2可見(jiàn),模擬網(wǎng)格總數(shù)在20 000以內(nèi)時(shí),GPU和CPU均可完成流域水質(zhì)模擬,GPU比CPU快10倍左右;隨著流域分辨率提高,網(wǎng)格規(guī)模及每小時(shí)迭代次數(shù)成倍增加,CPU耗時(shí)越來(lái)越多,僅能通過(guò)幾小時(shí)水質(zhì)模擬所需時(shí)間估算2年水質(zhì)模擬總時(shí)間,而GPU仍能滿足流域水質(zhì)實(shí)時(shí)模擬要求。
為合理模擬流域前期水情,引入穩(wěn)定流場(chǎng)以解決由空間離散的觀測(cè)點(diǎn)水深和濃度插值生成初始邊界條件造成的誤差問(wèn)題。假定流域存在若干個(gè)水源點(diǎn),其流量恒定,通過(guò)徑流匯流模型不斷迭代,直至流域出口處的水深、水速和濃度最終趨于穩(wěn)定。顯然,現(xiàn)實(shí)中不存在穩(wěn)定水源,穩(wěn)定流場(chǎng)也不可能存在。但在一個(gè)具體的時(shí)間點(diǎn)上,流域干流河道上的干流入流點(diǎn)、支流入?yún)R點(diǎn)和排污點(diǎn)均存在瞬時(shí)流量和濃度。如果以模擬時(shí)段的起始時(shí)刻各水源點(diǎn)的瞬時(shí)流量作為穩(wěn)定供水量,瞬時(shí)濃度作為穩(wěn)定污染源排放濃度,通過(guò)模型迭代創(chuàng)建的穩(wěn)定流場(chǎng)可近似作為模擬時(shí)段的前期水情。在穩(wěn)定流場(chǎng)創(chuàng)建過(guò)程中,采用式(16)定量描述穩(wěn)定流場(chǎng)是否創(chuàng)建完成。
(16)
式中:W為流域出口控制點(diǎn)水深;下標(biāo)表示模擬小時(shí)數(shù);n為當(dāng)前已模擬的小時(shí)數(shù);h為前推小時(shí)數(shù);A為累積誤差閾值。
為提高模型模擬精度,利用實(shí)際水位和濃度數(shù)據(jù)對(duì)模型參數(shù)進(jìn)行率定,率定后vmax=2 m/s、α=0.12、σ=0.995、kd=0.05、E=0.08。將牡丹江中游2012年5月1日0時(shí)各水源點(diǎn)瞬時(shí)流量代入模型中,基于流域90 m地形數(shù)據(jù)創(chuàng)建穩(wěn)定流場(chǎng)。各水源點(diǎn)瞬時(shí)流量和濃度如表3所示。
表3 起始時(shí)間各水源點(diǎn)瞬時(shí)流量和化學(xué)需氧量濃度Tab.3 The instantaneous flow rate and COD concentration of each water source at the start time
在h=10 h、A=0.05的條件下,疊加表4所示的水源點(diǎn)初始流量和濃度,迭代200 h后穩(wěn)定流場(chǎng)生成,如圖4所示。
圖4 實(shí)驗(yàn)流域穩(wěn)定流場(chǎng)創(chuàng)建過(guò)程Fig.4 The stable flow field creation process of experimental basin
圖5為牡丹江中游2012年5月1日0時(shí)穩(wěn)定流場(chǎng)下模擬的初始化學(xué)需氧量濃度分布圖。將水質(zhì)監(jiān)控?cái)嗝娴哪M初始濃度、IDW插值的初始濃度與實(shí)測(cè)濃度對(duì)比,結(jié)果如表4所示。從表4可見(jiàn),穩(wěn)定流場(chǎng)模擬的流域初始濃度分布更貼近實(shí)際情況,為流域高精度水質(zhì)模擬奠定了基礎(chǔ)。
表4 水質(zhì)監(jiān)控?cái)嗝娉跏紳舛饶M精度對(duì)比Tab.4 The comparison of simulation accuracy of initial concentration of water quality monitoring sections
將牡丹江中游2012年5月1日至2014年4月30日干流入流點(diǎn)、支流入?yún)R點(diǎn)和排污點(diǎn)逐小時(shí)的流量和濃度代入穩(wěn)定流場(chǎng)進(jìn)行模型迭代,得到模擬時(shí)段內(nèi)逐小時(shí)的河道化學(xué)需氧量濃度分布。采集該流域溫春大橋和海浪水質(zhì)監(jiān)測(cè)斷面柵格單元逐小時(shí)的模擬濃度,制作濃度變化曲線,與實(shí)測(cè)濃度和EFDC模型(已進(jìn)行最優(yōu)化參數(shù)率定)分別進(jìn)行對(duì)比,如圖6所示。
圖6 水質(zhì)監(jiān)測(cè)斷面模擬濃度與實(shí)測(cè)濃度對(duì)比Fig.6 The comparison of simulated concentration and measured concentration of water quality monitoring sections
從圖6可見(jiàn),本文模型對(duì)溫春大橋斷面和海浪河斷面的濃度變化趨勢(shì)擬合效果均達(dá)到EFDC模型相近的效果。將斷面的實(shí)測(cè)濃度cr與模擬濃度cm按下式計(jì)算擬合度R:
(17)
式中:N為斷面實(shí)測(cè)濃度序列個(gè)數(shù)。
斷面模擬精度如表5所示。從表5中可見(jiàn),兩個(gè)監(jiān)測(cè)斷面的模擬精度均達(dá)到85%以上,與EFDC模型具備相近的模擬精度。
表5 模擬時(shí)段內(nèi)水質(zhì)監(jiān)測(cè)斷面模擬精度Tab.5 The simulation accuracy of water quality monitoring sections during simulation period
由于二維水質(zhì)模擬屬于計(jì)算密集型運(yùn)算,高精度網(wǎng)格劃分和計(jì)算性能的瓶頸之間難以調(diào)和的矛盾,迫切需要引入通用計(jì)算來(lái)提升流域水質(zhì)模擬的性能和效率。本文從水質(zhì)模擬的性能和模擬精度兩方面進(jìn)行了探討。在水質(zhì)模型性能方面,以通用計(jì)算為框架,針對(duì)流域空間尺度,將河道及邊緣柵格作為模擬網(wǎng)格,降低了網(wǎng)格規(guī)模,為流域精細(xì)化水質(zhì)模擬奠定了基礎(chǔ)。之后,針對(duì)通用計(jì)算對(duì)數(shù)據(jù)并行化要求,將水質(zhì)模擬的各個(gè)階段,包括水速增量、水流遷移和污染物擴(kuò)散模擬,均進(jìn)行了并行化設(shè)計(jì)。實(shí)驗(yàn)發(fā)現(xiàn),將通用計(jì)算引入到水質(zhì)模擬,可極大地提高模擬性能,使流域水質(zhì)實(shí)時(shí)模擬成為現(xiàn)實(shí)。
為提高水質(zhì)模擬精度,引入了穩(wěn)定流場(chǎng)。在水質(zhì)模擬時(shí),首先將初始時(shí)刻流域水源點(diǎn)的流量和濃度進(jìn)行迭代,直至流域出口的水深和濃度穩(wěn)定為止,將模擬出來(lái)的穩(wěn)定流場(chǎng)作為水質(zhì)模擬的前期水情進(jìn)行模擬時(shí)段的水質(zhì)模擬。對(duì)比發(fā)現(xiàn),本文的前期水情模擬方法相對(duì)于傳統(tǒng)的空間插值具有更高的可信度。
最后,通過(guò)牡丹江中游2年的水質(zhì)模擬,證明了在模擬網(wǎng)格相當(dāng)?shù)臈l件下,本文方法將水質(zhì)模擬時(shí)間從傳統(tǒng)水質(zhì)模擬的4.5 h縮短到幾分鐘,并且還達(dá)到了傳統(tǒng)水質(zhì)模擬相近的精度,這為流域水質(zhì)實(shí)時(shí)模擬奠定了基礎(chǔ)。
□