DualSPHysics源码结构解读,新手入门

2024-01-26 04:52

本文主要是介绍DualSPHysics源码结构解读,新手入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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整个执行过程可以简单理解为前处理、计算、后处理:

  1. 初始化参数定义:用户编写Def文件(.xml,利用xml语言定义模拟的几何、本构参数等)。
  2. GenCase根据Def文件生成DualSPHysics运行所需结构文件(前处理)。GenCase可以创建粒子的初始状态(位置、速度和密度),并为模拟定义不同的SPH参数。
  3. 主程序DualSPHysics 读取GenCase 生成的文件,执行计算
  4. 输出特定结果如VTK,CSV格式(后处理)。
    官网提供的工作流程图如下:
    在这里插入图片描述

这篇关于DualSPHysics源码结构解读,新手入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645683

相关文章

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a