当前位置: 首页 > news >正文

Linux下 REEF3D及DIVEMesh 源码编译安装及使用

目录

软件介绍

基本依赖

一、源码下载

1、REEF3D

2、DIVEMesh

二、解压缩

三、编译安装

1、REEF3D

2、DIVEMesh

四、算例测试


软件介绍

        REEF3D是一款开源流体动力学框架,提供计算流体力学及波浪模型。软件采用高效并行化设计,可以在大规模处理器集群上运行。高阶时空离散化方案确保了数值计算的精确性和稳定性,模块化编程方法使该框架能集成多种流动求解器。针对海岸、海洋以及水力工程流动问题,框架提供定制化的多物理场求解器以应对各类典型工况(如泥沙输运、浮体动力学等)根据波浪或流动条件的不同,可以选择的水动力模块包括:REEF3D::CFD、REEF3D::NHFLOW、REEF3D::FNPF、REEF3D::SFLOW。软件由挪威科技大学(NTNU)开发,采用C++编写,支持CUDA加速,具有高效并行计算能力。

        REEF3D::CFD:用于求解三维N-S方程,对于具有复杂自由表面的近场模拟,系统通过结合水平集方法的两相流技术实现界面捕捉。

        REEF3D::NHFLOW:是具有激波捕捉功能的非静水N-S方程求解器,采用高效的\sigma坐标系网格方法。

        REEF3D::FNPF:是三维全非线性势流求解器。采用大规模并行化设计,可在各类水深条件下生成相位解析的大范围海况模拟。

        REEF3D::SFLOW:是深度平均模型求解器。通过求解非静水浅水方程,适用于近岸水动力学及河流流动模拟。

        DIVEMesh是REEF3D的前处理程序,用于网格划分。

基本依赖

1、C++编译工具

2、Make编译工具

3、Hypre

4、OpenMPI

5、Eigen(源码自带)

一、源码下载

        软件完全开源,最新版本为25.02,可通过下面的链接进行源码访问。

Source Code – REEF3D (wordpress.com)https://reef3d.wordpress.com/source-code/

1、REEF3D

        ①可以在终端通过git获取源码:

git clone https://github.com/REEF3D/REEF3D.git REEF3D

        ②可以在github网站获取源码:

2、DIVEMesh

        ①可以在终端通过git获取源码:

git clone https://github.com/REEF3D/DIVEMesh.git DIVEMesh

        ②可以在github网站获取源码:

二、解压缩

        如果是通过第二种方式下载的软件压缩包,可以通过下面命令解压缩:

unzip REEF3D-master.zip
unzip DIVEMesh-master.zip

三、编译安装

1、REEF3D

        ①安装好OpenMPI、Hypre之后,修改REEF3D的Makefile文件,主要是修改变量BIN和HYPRE_DIR的值,BIN是软件安装路径(即REEF3D可执行程序位置),HYPRE_DIR为hypre安装路径。

        ②通过make命令开始编译,多核处理器可以通过make -j 并行编译。

make -j8

        编译完成:

2、DIVEMesh

        ①修改DIVEMesh的Makefile文件,主要是修改变量BIN的值,BIN是软件安装路径(即DIVEMEesh可执行程序位置)。

        ②通过make命令开始编译,多核处理器可以通过make -j 并行编译。

make -j8

        编译完成:

四、算例测试

        我们使用官方提供的Tutorials/REEF3D_CFD/11_1 2D Dam Break(2D溃坝)算例进行测试。算例文件夹内容如下:

其中control.txt是用于控制网格相关参数的,ctrl.txt是用于控制求解相关参数的:

control.txt:

ctrl.txt:

        ①运行DIVEMesh

mpirun -np 4 DiveMESH

        ②运行REEF3D

mpirun -np 4 REEF3D

        我们使用后处理软件Paraview对计算结果进行可视化。

相关文章:

  • 【JavaWeb后端开发03】MySQL入门
  • 无需接线!虚幻引擎变量跨次元绑定的无线电奥秘
  • 转化率提升47%?亚马逊用户行为预测模型深度解读
  • 数据结构中的各种排序
  • 量子计算在金融领域的应用与展望
  • DeepSeek智能时空数据分析(二):3秒对话式搞定“等时圈”绘制
  • iOS 中的虚拟内存 (理解为什么需要虚拟内存)
  • npm -v npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。来看看永久修改执行策略!
  • 【手机】vivo手机应用声音分离方案
  • 【Spring】深入解析 Spring AOP:切面优先级、切点表达式、自定义注解并实现、Spring AOP 的几种实现方式
  • Java 设计模式心法之第3篇 - 总纲:三大流派与导航地图
  • POSIX多线程,解锁高性能编程
  • 【iOS】Blocks学习
  • LangChain实现PDF中图表文本多模态数据向量化及RAG应用实战指南
  • 【身份证扫描件识别表格】如何识别大量身份证扫描件将内容导出保存到Excel表格,一次性处理多张身份证图片导出Excel表格,基于WPF和腾讯云的实现方案
  • Elasticsearch插件:IDEA中的Elasticsearch开发利器
  • LabVIEW 开发中数据滤波方式的选择
  • Ansys electronics安装多版本simulink打开s-function冲突解决方法
  • LlamaIndex 生成的本地索引文件和文件夹详解
  • [BJDCTF2020]EzPHP
  • 夜读丨一位医生0点后的朋友圈
  • 探索未来课堂更多可能,“人工智能课堂分析循证实验室”在沪成立
  • 谁在贩卖个人信息?教培机构信息失守,电商平台“订单解密”
  • 对话地铁读书人|来自法学副教授的科普:读书日也是版权日
  • 人民网评:官方轻踩刹车,智能驾驶不能“蒙眼狂奔”
  • 海口市美兰区委副书记、区长吴升娇去世,终年41岁