張文戟
(山西省水利水電科學研究院,山西 太原 030002)
在對濱海潮汐水域惠安核電廠溫排放的數(shù)值模擬工作中,濱海地區(qū)大面積水域平面二維網(wǎng)絡(luò)系統(tǒng)的生成是基礎(chǔ)性的工作。網(wǎng)絡(luò)點的布置以及生成網(wǎng)格的合理程度,直接影響到后續(xù)工作的科學性和可靠性。因此,在設(shè)計工作中要準確把握各項原始數(shù)據(jù),充分分析地形特點,嚴格按照設(shè)計原則布置網(wǎng)格點,最終生成合理的網(wǎng)格系統(tǒng),為惠安核電廠溫排放的數(shù)值模擬工作打下堅實的基礎(chǔ)。
網(wǎng)格系統(tǒng)的生成有著廣泛的實用價值,可分為規(guī)則的網(wǎng)格系統(tǒng)和不規(guī)則的網(wǎng)格系統(tǒng)兩大類。規(guī)則的網(wǎng)格系統(tǒng)是在給出規(guī)則的離散數(shù)據(jù)點的情況下建立的矩形網(wǎng)格。而在實際測量中,一般測出的數(shù)據(jù)都是非規(guī)則的離散數(shù)據(jù)點,這就要求建立更具靈活性和適應(yīng)性的三角形網(wǎng)格系統(tǒng)。
目前國內(nèi)外常用的三角形網(wǎng)格生成方法有徑向掃描生成三角形網(wǎng)格、區(qū)域生成三角形網(wǎng)格和自動聯(lián)結(jié)三角形網(wǎng)格3種方法。
徑向掃描生成三角形網(wǎng)格:一是建立三角網(wǎng)的開始點。該點要求靠近所設(shè)計區(qū)域的中心,以該點為結(jié)點向其他所有點做連線并計算距離和方位。二是對所連線的點以方位為序進行排列,把排好位置的點依次連線,形成一系列細長三角形。在鏈接處理過程中,通過鏈接把數(shù)據(jù)儲存起來并由這個鏈接形成一個邊界條件。每掃描一次發(fā)現(xiàn)三角形凹處即填補,然后將形成鏈接的結(jié)點與前后兩個結(jié)點進行分析比較,并檢查其是否形成內(nèi)部三角形。如果形成則將其加入到數(shù)據(jù)庫中并將第二點去掉,重復(fù)處理并使結(jié)點形成凸形三角形邊界。三是測試所被連成沒有覆蓋的三角形網(wǎng)有的點,并對每個三角形及與其鄰接三角形進行測試。
生成三角形網(wǎng)格區(qū)域:將某個給定區(qū)域上的數(shù)據(jù)點分為邊界結(jié)點集和內(nèi)節(jié)點集,如果在內(nèi)節(jié)點集中存在一點使得該點與邊界點集中的任意一點的連線與邊界線只相交于一點,則稱該區(qū)域是一個星型區(qū)域,該點為星型區(qū)域的星型點。然后按照劃分區(qū)域為大單元、優(yōu)化大單元、劃分小單元、優(yōu)化小單元四個步驟最終生成三角形網(wǎng)。
自動聯(lián)結(jié)三角形網(wǎng)格離散點較多,只能將每個靠近的離散點組合形成三角形網(wǎng)格的方法。該方法思路清晰、簡單易懂、便于程序的編寫,因此,本文采用自動聯(lián)結(jié)三角形網(wǎng)格法。
通過在任務(wù)區(qū)域內(nèi)合理分區(qū)布點,選擇基礎(chǔ)三角形,不斷向外擴展,覆蓋整個區(qū)域,然后根據(jù)所給地形圖刪除地形邊界外部以及島嶼內(nèi)部的三角形,最終形成給定區(qū)域的平面二維網(wǎng)格系統(tǒng)。
3.2.1 分區(qū)規(guī)劃
各區(qū)網(wǎng)格點間步長不等,要按等比遞增數(shù)值進行分配,本次設(shè)計采用的步長為125 m,250 m,500 m,1 000 m,2 000 m。由于污染物排放口及其附近區(qū)域要求精度較高,此次采用步長125 m布點。在相鄰兩級的網(wǎng)格區(qū)布置上,下級的駐點必須是上級的格點。
區(qū)域分布比例既要考慮精度及后續(xù)數(shù)據(jù)可靠程度,又要考慮工作量。為在區(qū)域比例上平衡矛盾,在保證排污口附近網(wǎng)格密集程度的前提下,各區(qū)控制面積隨步長的增大而適當增大。
3.2.2 區(qū)域布點
區(qū)域布點分兩步進行:第一步,各區(qū)域以相應(yīng)步長并以區(qū)域范圍控制點提供的布點范圍進行布置;第二步,以邊界外圍區(qū)域和內(nèi)部島嶼邊界為界限,對第一步分區(qū)成果進行篩選、核查。
采用自動聯(lián)結(jié)三角形網(wǎng)方法,在布點分區(qū)完成后,將其中彼此最靠近的三點構(gòu)成三角形,從而形成無交叉、無重復(fù)的三角形網(wǎng)。
第一,選定第一個三角形將其3個頂點的點號分別存入ver(1,1),ver(1,2),ver(1,3)中。三角形的第1個頂點ver(1,1)是n個離散點中左下角的點。然后將距離該點最近的點輸入ver(1,2)中為第2個頂點,找出距離此二點連線中點最近且不與這兩點在一直線上的點輸入到ver(1,3)中,作為第3個頂點。
第二,以三角形為基礎(chǔ)分別以其各邊向外擴展。先從其中一條邊開始,位于對頂點同側(cè)的點予以排除。為實現(xiàn)這一目的,要求在搜索擴展點之前限定尋點范圍并用叉積判別正負區(qū)原理來實現(xiàn)。方法如下:判斷點 m 和點 n 是否在直線(P1,P2)異側(cè),設(shè) m,n,P1,P2坐標分別為(x1,y1),(x2,y2),(x3,y3),(x4,y4),令 a=(y3-y1)×(x4-x1)-(y4-y1)×(x3-x1),b=(y3-y2)×(x4-x2)-(y4-y2)×(x3-x2),f=a×b,顯然,當 f大于 0 時,m,n 位于(P1,P2)異側(cè);當 f小于 0 時,m,n 位于(P1,P2)同側(cè);當f等于0時,m或n位于直線上。因此,與對頂點在被擴展直線異側(cè)的點才具有被擴展性。
在尋點范圍明確后,利用余弦定理找出各點中與擴展邊上兩點組成的角為最大者即為所求。至此,待擴展三角形的一邊已擴展完成。依此方法逐一進行,就可將此三角形擴展完全。然后,依此方法進入下一個三角形的擴展,進而擴展到整個區(qū)域。在具體的擴展中,還應(yīng)注意以下問題:
第一,擴展的終止條件。在程序中具體實施三角形擴展時,設(shè)l為形成的計數(shù)號,k為用來擴展的三角形計數(shù)號。隨著擴展工作不斷進行,l和k均不斷增大,且k總是小于l。開始時,l的增大速度比k快,到擴展工作的末段,由于相互重復(fù)擴展的三角形逐漸增多,k的增長速度將超過l,當l等于k時,停止擴展。
第二,是對某條邊的重復(fù)擴展問題。由于待擴展的三角形號k在循環(huán)擴展過程中始終小于已生成的三角形數(shù)l,因此會出現(xiàn)有一些邊還沒來得及擴展就被新生成的三角形占用了。算上其歸屬的擴展三角形,這條邊已被重復(fù)用作兩次,已不再具備擴展資格。因此,在對某三角形一邊擴展之前,要對其進行審查。具體方法是:對待擴展邊是否已被擴展三角形以外的其他三角形占有進行判別。如果是,則取消其擴展資格;若不是,方可進行擴展,確保其擁有被擴展的資格后方可進行,否則會大量生成重復(fù)、交叉的三角形,并有可能引起不規(guī)則三角形的出現(xiàn)。
在濱海潮汐水域的數(shù)值模擬計算中,網(wǎng)格布置工作質(zhì)量的可靠度起著決定作用。因此,有必要對網(wǎng)格布置進行分類及細化,以達到提高研究精度的目的。
作為科學研究的基礎(chǔ)性手段,平面二維網(wǎng)格系統(tǒng)的布置不僅可以對大面積水域的數(shù)值模擬作基礎(chǔ)性研究,甚至可以應(yīng)用于更多的科研領(lǐng)域,如地下水、大面積鹽堿土壤、地理信息系統(tǒng)及高空氣象。通過對網(wǎng)格細化提高研究的精度是一種切實可行的研究方法,該方法已在濱?;莅埠穗娬竟こ讨羞M行了推廣應(yīng)用,并取得了較好的效果。