DualSPHysics代码下载,进入官网:https://dual.sphysics.org/
可以看到下载的地方有①Full package ②Source code,官方的解读是:如果你只是想运行案例的话就下载Full package,如果想要自己进行修改构建的话,下载Source code
来看一下2个里包含的文件区别:可以看到①Full package包含的更全面,②Source code里有的①里都有。而且①里有更多的examples,示例里有仿真运行视频,可以更好地帮助新手理解DualSPHysics都可以实现哪些功能。
所以本人选择下载Full package。
进入之后填写个人信息,然后选择最新版本进行下载。
下载解压完就可以看到整个代码结构,接下来从上往下进行讲解:
-
bin:可执行文件(自己编译或者自己修改部分源码重新生成新的代码程序都在此文件夹下)
-
doc:文件,很有用
guides里重点要看的有:
DualSPHysics_v5.0_GUIDE(在Wiki里,很齐全,包括:可以仿真的类型,CPU/GPU的应用,运行DualSPHysics,编译DualSPHysics,案例,修改DualSPHysics适应自己的应用,DualSPHysics的新功能,DualSPHysics未来的发展等,相关参考等),
还有XML_GUIDE_v5.0.pdf(xml的配置文件),
可以了解的有:
ExampleCodeModification_Lisbon2018.pdf是 O. García-Feal 在 2018 年第四届 DualSPHysics 用户研讨会上发表的演示文稿“DualSPHysics 上的开发:代码修改和扩展示例”的副本,展示了如何添加新功能。
PostprocessingCalculations_v5.0.pdf:解释如何计算数值大小。
ExternalModelsConversion_GUIDE.pdf:介绍如何使用开源代码将三维模型的任何外部几何图形的文件格式转换为VTK、PLY或STL。
help文件夹里包含了各种情况代码执行的参数示例。
-
examples:示例,里边包含了xml配置,可执行文件(.bat后缀文件)以及执行出的视频。
具体示例代码分析:例如,打开一个可执行文件的源码
具体代码解析如下:
双击可执行文件进行运行,然后在同级目录下会产生一个_out的输出文件,里边就是有生成的仿真粒子文件,基本结构如图。
-
src:源代码(包括src_extra和src_mphase都是源代码,只不过是不同的功能分支),如果需要自己修改代码,则在此处进行。src里包含了lib/source/VS文件夹。
lib包含编译所需的库(.a和.lib)。
source包含DualSPHysics v5.0的源文件(.cpp、.cu和.h)。 Linux的makefile和CMAKE.txt也包含在这个文件夹中。
VS包含Visual Studio(Community 2015)for Windows项目。 -
CHANGES.txt:版本变更历史,里边罗列了每一版的改变。
-
Files_DualSPHysics_v5.0.pdf:文件结构
DualSPHysics整个执行过程可以简单理解为前处理、计算、后处理:
- 初始化参数定义:用户编写Def文件(.xml,利用xml语言定义模拟的几何、本构参数等)。
- GenCase根据Def文件生成DualSPHysics运行所需结构文件(前处理)。GenCase可以创建粒子的初始状态(位置、速度和密度),并为模拟定义不同的SPH参数。
- 主程序DualSPHysics 读取GenCase 生成的文件,执行计算
- 输出特定结果如VTK,CSV格式(后处理)。
官网提供的工作流程图如下: