Delft3D的水動力模擬教程

開始進入Delft3D的水動力學習,也就是D-Flow模塊,這個是水質及其他模擬的基礎。回想自己當時學習模型時,是從WASP開始入門的,學習其的手冊,結果沒有入了門,為啥?因為里面的概念非常的多,且沒有很好的Step by step,自己雖然仔細的一點點認真的學,但實在是學不下去,后來通過諸如MIKE,EE,Delft3D這類商業軟件入了門,因為其的手冊非常的詳細,且有較多的案例,視頻資料等,跟著操作慢慢了解這些概念,逐漸摸到了模型的門道。所以,入門的關鍵就是對「概念」的認識,并有案例作為「實踐」基礎,這次教程并不是手冊的翻譯,而更多的是注解,對一些關鍵的概念進行解釋拓展,幫助大家迅速的掌握水動力的模擬。

?

Delft3D-Flow模塊

我們學習的材料就是Delft3D-Flow的手冊,商業軟件的手冊編排的非常的合理,也非常的貼心,就連學習順序都安排上了。手冊可以分為兩大部分,模型的操作手冊和理論機理。這里簡單說說兩者的區別,對于現代主流模型都是容易模式版本。

·困難模式 

數學模型本身內部是很多個數學方程組,那個年代的通過數學模型解決問題,就需要去手動列方程,然后求解方程,可以想象這個過程必然是廟堂之上的東西,一般人沒有深厚的數學功底是無法做的。…… 

·中等模式 

隨著計算機的普及,模型應用的廣泛,必然科學家們也感覺到模型的復用問題,所以就考慮將參數從代碼中抽離出來,放在一個地方(通常是一個文本文件),使用者僅僅需要更改這些參數,同時由于不同模型數組大小不同,計算機需要依據此管理內存,所以需要針對具體情況設置好需要的數組大小,那么每次都需要將其編譯后,可以運行使用。…… 

·容易模式 

計算機行業的快速發展也會推動數學模型的發展,隨著Fortan的發展,其有了動態數組(根據條件自動判斷),同時將匯總的參數分類,在可視化的界面上表達出來,就形成了目前易用的商業軟件包,……

Delft3D的編譯及運行

所謂的操作手冊是介紹如何通過「參數配置和數據的輸入」來構建一個模型,并且如何處理「模擬結果」,最終完成模擬,而理論部分則是介紹其模型背后的機理過程和數值計算過程,是調試模型(也稱調參)的關鍵。舉個例子,通常我們購買的數碼產品里面會附帶使用說明書,那么這些就是操作手冊,而對于維修工程師而言,他們往往還會有手機的設計手冊,里面會描述電路、芯片的參數及連接方式,對于用戶可能只看操作手冊就可以了,但是想透徹的掌握這個手機的方方面面,就需要研究設計手冊了。同理,對于模型而言,如果你僅僅是模型的用戶,或者你有好的師兄師姐已經為你搭建好了模型,可能稍微培訓下,跟著說明書,就能簡單的操作已經構建好的模型并用起來,但是你如果是模型工程師,操作模型遠遠不夠,你還有掌握模型內在的機理過程。

回到D-Flow,手冊內容章節清晰,前8章為操作部分,之后就是模型的理論部分,之前的入門文章中有提到過,快速的入門路徑是從操作開始的。

為了構建水動力模型,你需要去準備一些配置文件,這些文件中包括了用來描述物理現象的參數,還有求解物理、化學方程的數值參數,另外還包括一些控制情景及輸出模擬結果的設置。這些參數都可能對結果影響很大,所有的輸入文件被存儲在MDF的文件中。

雖然我們學習的是Delft3D,但是在這個過程中我盡可能的提煉目前主流模型所共有的東西,這樣可以觸類旁通了。上面這段話是什么意思呢?

模型的參數可以分為幾種類型:

  1. 機理過程的參數。這種參數主要是生化過程的參數化之后的幾個變量的值,這些值會影響物理化學等過程,這類參數也是我們做模型時候最應該關注的,比如水動力中擴散系數,糙率等等,水質中的降解系數等。在大量的模型相關的論文中,這些出鏡率是最高的,也就是這些才是真·參數。
  2. 數值計算參數。目前大部分復雜的水質模型是沒有解析解的,這時候往往采用的是數值求解的方式,這時候就會有數值求解相關的參數,這類參數影響的是我們計算的精度和效率,往往非常的復雜,徹底弄明白需要非常好的數學功底,但是我們是研究環境模型的,這些參數只需要了解和設置幾個關鍵的參數即可,如計算步長等,其他的等需要的時候再去研究,不需要花費過多的精力。
  3. 模型設置參數。這類參數呢,主要是用于控制模型的行為的,比如輸出的結果的頻次,小時還是天的,輸出哪些變量,或者輸出的垂向哪層的結果,這些配置就像我們常用軟件的設置一樣,屬于外部的參數類,與環境模型關系不大,大多數不會影響計算,而是影響模型輸出的結果,這些參數一般隨著對模型的了解會逐漸的熟練,開始的時候默認即可。但是,如果錯誤的設置,可能會導致你無法得到結果,所以說其也比較的重要。

總結下,在開始的時候,我們的目標是讓模型能夠完成,起碼能運行成功有一個結果,這時候重點設置好數值計算參數和模型設置參數。當模型能夠成功運行之后,開始關注機理過程的參數,了解模型的行為,逐漸的掌握水環境的模型。

之后根據提供的Step by step來進行建模的學習,這部分的內容在官網上有視頻,同時手冊中也非常的詳細,我會從新手的角度做些注釋。

建模過程

構建一個地表水的水動力模型,我們需要多種類型的信息,如模擬的區域范圍(也就是水體和陸地交界及水位邊界或者開邊界的位置所圍繞的區域),水底地形,區域內的幾何特征,如水工構筑物,排口,最后需要模擬結果的輸出和存儲。由于目前復雜的水動力模型是沒有解析解的,所以我們都需要網格,與網格相關的內容:

  • 合理的選擇模擬的區域及范圍。
  • 確定邊界(開邊界)條件的位置和類型,諸如是水位邊界、流量邊界、流速邊界
  • 確定陸地-水交界邊界(閉邊界)范圍
  • 生成網格
  • 在網格中生成地形
  • 在網格中設置相關的參數,如邊界條件位置,觀測點位置,排口位置
  • 定義模型的時間參數,如開始和結束時間,多種時間相關的函數,如開邊界的時間序列,風向和風速時間序列,流量時間序列,濃度時間序列和其他水流的相關物質的時間序列
?

時間函數(time functions)這里稍微解釋下所謂的時間函數,函數在數學中是一種變量到另外一種變量的過程,在模型中的時間函數,可以理解為一種隨時間變化的過程,具體這個函數可以是一個公式,自變量為t(時間),也可以直接為一組時間序列值,如流量時間序列。

?
date Q(cms)
1   0.4
2   0.6
3   0.7
……

上面的與網格相關的內容,除了最后兩個,都是在使用Flow之前要準備好的,至于網格和地形之前都有寫過了。


文章來源: 水環境編Cheng長     作者:Comies

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1