title: Delft3D的编译及运行
tags: 1000天持续行动,Delft3D
date: 2017-8-21
categories : [应用方法]
Delft3D的编译及运行
·[264]|1000天行动计划
这节主要讲述Delft3D的编译及运行,前面给小白的视角讲述了下载及安装,但新版本的软件包界面并不提供模型的运行程序,需要自己编译。
今天这节和前几篇可以说是使用模型的准备工作,还没有涉及到具体模型的概念,仅仅是软件的概念。这些教程是面对的小白用户,所以我有必要多啰嗦
一些。
要说清楚编译这个问题,先从模型构建及使用的方式衍变开始。我将其分为三个阶段,科学家困难模式,学者中等模式,研究生容易模式。
- 困难模式。我们知道数学模型本身内部是很多个数学方程组,那个年代的通过数学模型解决问题,就需要去手动列方程,然后求解方程,可以想象这个过程必然是庙堂之上的东西,一般人没有深厚的数学功底是无法做的。后来有了计算机,科学家们就可以把这些数学方程采用计算机程序语言表达出来(主要是fortan),进而用计算机求解。即使这样,代码都是自己写的,所以方程中的参数都是在代码内部,仅仅自己能用。
- 中等模式。随着计算机的普及,模型应用的广泛,必然科学家们也感觉到模型的复用问题,所以就考虑将参数从代码中抽离出来,放在一个地方(通常是一个文本文件),使用者仅仅需要更改这些参数,同时由于不同模型数组大小不同,计算机需要依据此管理内存,所以需要针对具体情况设置好需要的数组大小,那么每次都需要将其编译后,可以运行使用。这个阶段的数学模型,相对上个阶段较为容易,其仅仅需要修改相应参数,但由于其并没有界面,同时还需要自己编译,需要计算机编程基础,操作上仍然有一定难度。
- 容易模式。计算机行业的快速发展也会推动数学模型的发展,随着Fortan的发展,其有了动态数组(根据条件自动判断),同时将汇总的参数分类,在可视化的界面上表达出来,就形成了目前易用的商业软件包,也就是说目前几乎所有的模型软件其界面基本是用来设置参数的,然后将这些参数传递给方程计算。这个阶段,使用模型的难度大大降低,门槛也随之降低(当然,门槛降低随之带来的模型的滥用,这不是本节重点,不展开)。
那么,编译和运行的含义就比较明了。Delft3D是一套软件包,其是模型的前处理部分,通过界面来设置参数及模型输入条件,但其运行部分也就是模型计算的内核在其开源后需要通过自己编译后配置好。本节就来进行这些工作,老规矩先对整体有个把握,再具体到每一部分细节。
整个过程基本为 http://oss.deltares.nl/web/delft3d/source-code 页面的翻译,并对一些地方进行了一些额外说明。同时也参考了相应的web课程,在文尾可以下载课件。
环境及软件准备
整个编译工作需要软件的支持,所以先需要下载软件。主要有四个:
- 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++
Microsoft Visual Studio 2010 or newer, including C++ compiler.
(https://wenku.baidu.com/view/6b53b47502768e9951e73860.html)
微软的IDE集成,网络教程较多,不赘述。需要注意的是,对于2015版本。
对于visual studio 2015,安装过程记得安装以下两个插件:
- “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 直接运行,直接运行例子目下的run_***.bat
。
需要注意的是,上述的命令是默认为编译的为64位的文件,如果是32位文件,则需要修改运行命令中的参数,右键点击上述文件,找到下面的代码,修改为WIN32。.
2 界面运行,界面运行需要将生成的bin目录下的win32/64可执行程序,放置在相应的界面安装目录下的win32/64,覆盖原来的文件。
然后在界面中操作运算即可。
课件下载:[Delft3D-开源版编译.pdf](./_attachment/Delft3D 开源版编译.pdf)
小结
介绍了Deflt3D的编译及运行的方法,特别是编译的过程,自己也出现了很多bug,一般可在官网搜索相应的错误查看。
1 http://oss.deltares.nl/web/delft3d/source-code
成为水环境领域的数据工程师而努力持续学习,在水环境和计算机海洋中驰骋,力求每天进步一点点。
微信公众号 | 水环境编Cheng长
网 站 | www.comieswater.com
2017-8-21
folder=/微信公众号/水环境编Cheng长/