Delft3D的編譯及運行
Delft3D的編譯及運行
·[264]1000天行動計劃
今天這節和前幾篇可以說是使用模型的準備工作,還沒有涉及到具體模型的概念,僅僅是軟體的概念。這些教程是面對的小白用戶,所以我有必要多啰嗦一些。
要說清楚編譯這個問題,先從模型構建及使用的方式衍變開始。我將其分為三個階段,科學家困難模式,學者中等模式,研究生容易模式。
困難模式。我們知道數學模型本身內部是很多個數學方程組,那個年代的通過數學模型解決問題,就需要去手動列方程,然後求解方程,可以想像這個過程必然是廟堂之上的東西,一般人沒有深厚的數學功底是無法做的。後來有了計算機,科學家們就可以把這些數學方程採用計算機程序語言表達出來(主要是fortan),進而用計算機求解。即使這樣,代碼都是自己寫的,所以方程中的參數都是在代碼內部,僅僅自己能用。
中等模式。隨著計算機的普及,模型應用的廣泛,必然科學家們也感覺到模型的復用問題,所以就考慮將參數從代碼中抽離出來,放在一個地方(通常是一個文本文件),使用者僅僅需要更改這些參數,同時由於不同模型數組大小不同,計算機需要依據此管理內存,所以需要針對具體情況設置好需要的數組大小,那麼每次都需要將其編譯後,可以運行使用。這個階段的數學模型,相對上個階段較為容易,其僅僅需要修改相應參數,但由於其並沒有界面,同時還需要自己編譯,需要計算機編程基礎,操作上仍然有一定難度。
容易模式。計算機行業的快速發展也會推動數學模型的發展,隨著Fortan的發展,其有了動態數組(根據條件自動判斷),同時將匯總的參數分類,在可視化的界面上表達出來,就形成了目前易用的商業軟體包,也就是說目前幾乎所有的模型軟體其界面基本是用來設置參數的,然後將這些參數傳遞給方程計算。這個階段,使用模型的難度大大降低,門檻也隨之降低(當然,門檻降低隨之帶來的模型的濫用,這不是本節重點,不展開)。
那麼,編譯和運行的含義就比較明了。Delft3D是一套軟體包,其是模型的前處理部分,通過界面來設置參數及模型輸入條件,但其運行部分也就是模型計算的內核在其開源後需要通過自己編譯後配置好。本節就來進行這些工作,老規矩先對整體有個把握,再具體到每一部分細節。
整個過程基本為 http://oss.deltares.nl/web/delft3d/source-code 頁面的翻譯,並對一些地方進行了一些額外說明。
環境及軟體準備
整個編譯工作需要軟體的支持,所以先需要下載軟體。主要有四個:
TortoiseSVN
Microsoft Visual Studio 2010 or newer, including C++ compiler.
Intel Fortran compiler, version 12.0 or newer.
Python (https://www.python.org/downloads).
下載地址可以具體去搜索,需要注意的是3和4需要配好。
下面詳細介紹每個軟體及需要注意的事項。
TortoiseSVN
版本控制系統,該軟體是一個版本控制器,用人話說就是正常下載器就好了。其實質就是在我們的通常的文件目錄附加了版本的信息,因為開源軟體不斷的更新,不同版本不能衝突,所以需要用這類軟體,這裡我們只需要知道這個軟體相當於軟體下載工具即可。下載的操作成為,檢出(check out)。
操作過程為:
1 下載客戶端
2 安裝客戶端,客戶端和語言包
3 下載源代碼 尋找地址 https://svn.oss.deltares.nl
在tags下找到版本(複製地址目錄地址,如下)
https://svn.oss.deltares.nl/repos/delft3d/tags/7204/
4 下載:新建目錄後(名稱最好英文,無空格),輸入帳號密碼(delft網站登錄的)
5 需要說明的是由於網路問題,經常下載失敗。則需要按照下列方式繼續下載。
下載失敗(清理—-再更新)
6 下載完成
下載完成後,應該是上圖所示的目錄,大小一般500-600m左右,只會多不會少。
VS C++
「Common Tools for Visual C++ 2015」:通用V C++2015工具包
「Microsoft Foundation Classes for C++」 微軟基礎Classes C++工具包
第三個關於xp的支持也選擇上
對於WIN10來說,網上有人說IVF集成的時候會出問題,所以需要安裝下面:
在安裝Microsoft Visual Studio 2015的時候,如果硬碟空間充足,一定要全部安裝,如果不太夠一定要選擇WIN10 SDK(我的筆記本是WIN10,64位機子,可能與這個有關)
IVF
Intel Fortran compiler, version 12.0 or newer.
這個就是Fortran的編譯器了,教程也很多,需要注意的是和VS配對的問題。
Python
Python正常安裝下載就可以了
編譯
1 Python腳本生成對應工具版本的工程文件
在Src目錄下運行prepare_sln,運行完成後生成工程文件以sln後綴名
2 用VS進行編譯,記得用管理員模式打開軟體VS,載入上一步驟生成的工程文件。
3 選擇版本進行編譯(64位或32位)
4 編譯完成(生成了BIN文件夾),檢查子目錄是否有exe及dll文件。
需要說明的是,這部分的編譯最容易出問題,裡面有各種bug,不同的版本編譯也會有不同的問題,自己編譯就多次失敗,所以一定要耐心,然後在官網論壇上搜索試試。
運行計算
主要有兩種方式,一種是代碼版本的直接運行。另外則是通過界面運行。
1 直接運行,直接運行例子目下的。
需要注意的是,上述的命令是默認為編譯的為64位的文件,如果是32位文件,則需要修改運行命令中的參數,右鍵點擊上述文件,找到下面的代碼,修改為WIN32。.
2 界面運行,界面運行需要將生成的bin目錄下的win32/64可執行程序,放置在相應的界面安裝目錄下的win32/64,覆蓋原來的文件。
然後在界面中操作運算即可。
小結
介紹了Deflt3D的編譯及運行的方法,特別是編譯的過程,自己也出現了很多bug,一般可在官網搜索相應的錯誤查看。
成為水環境領域的數據工程師而努力持續學習,在水環境和計算機海洋中馳騁,力求每天進步一點點。
1 http://oss.deltares.nl/web/delft3d/source-code
2017-8-21


TAG:水環境編Cheng長 |