Delft3D的编译及运行


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课程,在文尾可以下载课件。

环境及软件准备

整个编译工作需要软件的支持,所以先需要下载软件。主要有四个:

  1. TortoiseSVN
  2. Microsoft Visual Studio 2010 or newer, including C++ compiler.
  3. Intel Fortran compiler, version 12.0 or newer.
  4. 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的支持也选择上​

2015需要选择

对于WIN10来说,网上有人说IVF集成的时候会出问题,所以需要安装下面:

win10

在安装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。.

64与32的修改

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长/

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Delft3D模型是由荷兰Delft水利研究所(Deltares)开发的一种水动力学和河流/河口水质模拟软件。该模型被广泛应用于河流、河口和海岸工程、海洋和湖泊环境研究以及城市防洪和水资源管理等领域。 Delft3D模型具有三个主要组成部分:FLOW、WAVE和MOHID。FLOW模块用于模拟水流、水位和泥沙输运,可以对水流的速度、垂向和轴向分布进行精确计算。WAVE模块用于模拟波浪的形成、传播和相互作用,可以预测波浪的高度、周期和方向等参数。MOHID模块用于模拟水质和河流生态系统,可以研究水中溶解氧、盐度、营养盐和藻类等的浓度分布和变化。 Delft3D模型采用基于网格的计算方法,将模拟区域划分为数以万计的小网格,对各网格内的物理、化学和生物过程进行建模和计算。同时,该模型还考虑了潮汐、风力、气压和地球引力等外部驱动力的影响,能够准确模拟不同时间尺度下的水动力学和水质变化。 Delft3D模型具有强大的可视化能力,可以将模拟结果以图像、动画和报告等形式展现出来,便于用户进行分析和决策。此外,该模型还具有开放源代码和模块化设计的特点,可以通过添加用户自定义模块和参数,实现更多特定应用的模拟。 总之,Delft3D模型是一种功能强大的水动力学和水质模拟软件,可用于各种水环境研究和工程应用,为科学家和工程师们提供了重要的工具和支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值