DualSPHysics v5.0源码编译教程,新手入门

目录

  • 一、前期准备
    • 1. 安装C++编译器
    • 2. 安装CUDA
  • 二、下载源码
  • 三、编译
  • 四、报错解决
  • 五、验证

一、前期准备

DualSPHysics是可以编译运行在CPU和GPU上的,所以需要安装C++编译器:例如gcc,和CUDA编译器:nvcc。
如果电脑上不支持CUDA,那么DualSPHysics也是可以运行的,只使用了CPU的那部分,而不用GPU。

这里需要注意的是,如果要使用可执行文件在GPU上运行DualSPHysics,仅需要支持NVIDIA CUDA的GPU卡,并且必须安装最新版本的GPU驱动程序。 但是,要编译源代码,必须在计算机上安装GPU编程语言CUDA和nvcc编译器。 CUDA Toolkit 的版本要对应DualSPHysics的版本。例如由下图可知,DualSPHysics v5.0对应到的CUDA版本最高为9.2,而DualSPHysics v5.2对应到的CUDA版本最高为11.7。如果下载更高的CUDA版本,将会出问题。
DualSPHysics v5.0源码编译教程,新手入门_第1张图片
我们是要编译源代码,所以需要下载CUDA Toolkit(里边包含了编程语言CUDA和nvcc编译器)

1. 安装C++编译器

以下是一些常用的C++编译器,只要电脑中有其中一个就可以了。
DualSPHysics v5.0源码编译教程,新手入门_第2张图片
比如我之前电脑下载了Visual Studio,里边就包含MSVC,是C++编译器的一种,可以直接使用。
DualSPHysics v5.0源码编译教程,新手入门_第3张图片

2. 安装CUDA

首先要查看自己的电脑系统是否支持CUDA。
具体查看方式:计算机管理–>设备管理器–>显示适配器
DualSPHysics v5.0源码编译教程,新手入门_第4张图片

因为CUDA是NVIDIA旗下产品,所以DualSPHysics v5.0及以前版本只能在NVIDIA上运行,在AMD上是不行的。但是V5.2版本及以后是可以运行在AMD GPU上的

DualSPHysics v5.0源码编译教程,新手入门_第5张图片
或者看自己电脑里有没有NVIDIA控制面板,如果有的话,则支持CUDA
DualSPHysics v5.0源码编译教程,新手入门_第6张图片

DualSPHysics_v5.0及以前版本是不支持AMD的,但是最新版的DualSPHysics_v5.2我发现在change list里说明最新版是支持AMD GPUs的。本文讨论的是V5.0版本。
DualSPHysics v5.0源码编译教程,新手入门_第7张图片

下载安装CUDA注意DualSPHysics v5.0对应的一定要下载v9.2版本的CUDA,具体下载安装可以参考我另一篇教程:https://blog.csdn.net/changyana/article/details/135876568
完成后,在cmd里输入nvcc -V,可以看到CUDA的版本,则表示安装成功!
DualSPHysics v5.0源码编译教程,新手入门_第8张图片

二、下载源码

直接下载整个包或者从github上拉源码都是可以的。
我是直接下载的整个包,下载地址:https://dual.sphysics.org/downloads/,填写个人信息,然后选择需要的版本进行下载。(我选择的是DualSPHysics_v5.0.1.zip进行下载,没有下最新版的DualSPHysics_v5.2.1.zip)
DualSPHysics v5.0源码编译教程,新手入门_第9张图片
这两个版本的区别是:
① DualSPHysics updated for latest compilers (Visual Studio 2022 (v143), gcc 11.2, CUDA 11.7).官方支持的编译环境从Visual Studio 2015变到了Visual Studio 2022
② DualSPHysics compiled for AMD GPUs as well.同时也支持了AMD,之前只支持NVIDIA)
如下图,左边红色是v5.0的编译器,右边绿色是v5.2的编译器。
在这里插入图片描述
如下图,是v5.2的change list
DualSPHysics v5.0源码编译教程,新手入门_第10张图片

下载解压完之后,进入src文件夹,可以看到编译所需的内容。
DualSPHysics v5.0源码编译教程,新手入门_第11张图片

三、编译

在Windows系统上,可以使用VisualStudio进行编译,也可以使用CMAKE进行编译。
本文尝试用Visual Studio进行编译,DualSPHysics_v5.0对应的VisualStudio是2015版本。我的Visual Studio之前下载的是2019版本,但是也可以使用2015的编译器,办法是在Visual Studio 2019里安装 Visual Studio 2015 的“MSVC v140 - VS 2015 C++ 编译器工具集”(Visual C++ 14.0),具体安装过程如下:
打开Visual Studio Installer
DualSPHysics v5.0源码编译教程,新手入门_第12张图片
然后点击修改
DualSPHysics v5.0源码编译教程,新手入门_第13张图片
进入之后在“使用C++的桌面开发”里勾选MSVC v140 - VS 2015 C++ 生成工具 (v14.00),然后点击右下角的修改。等待安装完成。
DualSPHysics v5.0源码编译教程,新手入门_第14张图片
等待安装完成后,重启Visual Studio 2019。然后在Visual Studio 2019中打开项目。
DualSPHysics v5.0源码编译教程,新手入门_第15张图片
选择DualSPHysics_v5.0–>src–>VS–>DualSPHysics5Re_vs2015.sln打开。
DualSPHysics v5.0源码编译教程,新手入门_第16张图片
打开之后软件给我提示可以升级到最新的。我这里选择不升级,因为要用匹配的2015版本进行编译的。
DualSPHysics v5.0源码编译教程,新手入门_第17张图片
然后给它进行匹配使用2015版本的工具集:
在项目上右键,然后点击“属性”
DualSPHysics v5.0源码编译教程,新手入门_第18张图片
在配置属性——>常规——>平台工具集,下拉菜单里边选择Visual Studio 2015(v140),点击右下角的确定,这样就可以使用2015进行编译了。
DualSPHysics v5.0源码编译教程,新手入门_第19张图片
之后还需要配置一下编译的类型。在上方的配置下拉框里选择Release。
(Release构建出来的DualSPHysics是可以使用GPU&CPU,而下方的ReleaseCPU是只针对CPU,不能使用GPU)
DualSPHysics v5.0源码编译教程,新手入门_第20张图片

更改完之后,点击右键进行生成编译。等待编译成功…
DualSPHysics v5.0源码编译教程,新手入门_第21张图片

四、报错解决

  1. 如果报错说MSB4019 找不到导入的项目“D:\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 9.2.props”。
    解决办法:https://blog.csdn.net/changyana/article/details/135881246
  2. 如果报错说错误MSB8036 The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting “Retarget solution”.找不到 Windows SDK 版本 8.1。请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
    解决办法:https://blog.csdn.net/changyana/article/details/135884668
    没有什么报错的话就跑起来了,等待编译
    DualSPHysics v5.0源码编译教程,新手入门_第22张图片
    编译完成后,就会提示生成成功
    DualSPHysics v5.0源码编译教程,新手入门_第23张图片

五、验证

查看编译完成的地址:在项目属性里可以看到路径
DualSPHysics v5.0源码编译教程,新手入门_第24张图片
然后可以看到该目录下的这几个文件都是最新的,时间都是刚刚更改编译后的时间
DualSPHysics v5.0源码编译教程,新手入门_第25张图片
我们来跑一个案例测试一下。
可以直接运行DualSPHysics/examples下的示例,如图,选择第一个主要示例编译运行。
先以文本形式打开wCaseDambreak_win64_GPU.bat,可以看到这里默认就是调用刚刚编译生成的DualSPHysics可执行文件,如果自己更改了刚刚源码编译生成的路径,这里也需要对应更改一下(注意这个示例还使用了其它后处理的文件,比如partvtk和partvtkout等,所以要注意调用路径的正确性。。。)
DualSPHysics v5.0源码编译教程,新手入门_第26张图片

如果直接就是默认的路径,上边已经确认了,直接双击wCaseDambreak_win64_GPU.bat运行
DualSPHysics v5.0源码编译教程,新手入门_第27张图片
计算完成之后会提示All done
DualSPHysics v5.0源码编译教程,新手入门_第28张图片
接着刷新一下就可以看到在同级目录下生成了案例_out文件夹,里边就是DualSPHysics计算生成的结果。
DualSPHysics v5.0源码编译教程,新手入门_第29张图片
使用可视化软件打开看看,我这里是使用了ParaView进行展示的。
图片:
DualSPHysics v5.0源码编译教程,新手入门_第30张图片

视频:

ParaView展示DualSPHysics案例

可以看到由自己编译出的DualSPHysics进行计算是没有问题的!

你可能感兴趣的:(DualSPHysics,编译,动画,c++)