Linux下Palabos源码编译安装及使用

目录

软件介绍

基本依赖

其它可选依赖

一、源码下载

二、解压缩(通过方式1下载源码.zip格式)

三、编译安装

3.1 自带算例

​编辑3.2 自行开发算例

四、简单使用

4.1 串行运行

4.2 并行运行

4.3 查看结果


软件介绍

        Palabos是一款基于LBM(格子Boltzmann方法)的开源软件,也是为数不多的基于LBM方法的计算流体力学软件,由来自不同国家的多位学者合作开发完成,主要用于流体模拟。Palobos集成了多个LBM模型。它采用c++编写,可实现MPI并行,并采用了多种优化措施。它能将计算结果输出为VTK形式,并采用诸如paraview等开源的后处理软件进行数据分析处理。

        Palabos的主要特点在于,其在并行结构上采取并行机制与模型分离的方式,使得应用建模与并行机制不相关。这也使得PalaBos的易于扩展。

基本依赖

1、C++编译器;

2、clang-format代码格式化工具;

3、make自动化编译工具;

4、cmake跨平台安装工具。

以上依赖项可以通过以下命令安装:

sudo apt install gcc clang clang-format cmake make

其它可选依赖

1、OpenMPI:用于并行计算;

2、imagemagick:用于计算生成GIF图片;

3、HDF5:用于输出HDF5文件;

4、ccache:用于加速编译过程。

以上依赖项可以通过以下命令安装:

sudo apt install libopenmpi-dev imagemagick libhdf5-dev libhdf5-mpi-dev ccache

一、源码下载

方式1:通过访问Palabos官网下载。

方式2:通过git下载。使用命令行跳转到需要存储Palabos源码的文件夹,如E:\software

cd /mnt/e/software

        命令行输入:

git clone https://gitlab.com/unigespc/palabos.git

二、解压缩(通过方式1下载源码.zip格式)

unzip palabos-master.zip

三、编译安装

3.1 自带算例

        Palabos提供了多个算例,如图所示:

        用户可以对不同的算例进行单独编译,形成单个算例对应的可执行文件。以cavity2D为例,编译步骤如下。

        第一步:进入算例所在文件夹。

cd /mnt/e/software/palabos-master/examples/showCases/cavity2d/build/

        第二步:使用cmake构建。

cmake ..

        第三步:算例编译。

make

        编译完成:

3.2 自行开发算例

        软件支持自定义开发,需要在二次开发的路径下使用cmake工具进行构建,流程与自带算例编译相同。

四、简单使用

4.1 串行运行

        以经典CFD算例——方腔驱动流(顶盖驱动流)为例: 

./cavity2D

        计算完成:

4.2 并行运行

         Palabos支持并行运行,运行方式为(以4核运行cavity2D为例):

mpirun -np 4 ./cavity2D

4.3 查看结果

        可在当前算例文件夹下查看计算过程中保存的GIF图片和VTK文件。

cavity2D

        也可以利用Paraview等后处理软件查看VTK文件,如下图

cavity2D

         下图为cavity3D计算结果在paraview软件中的显示:

cavity3D

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EXCEL怎样把筛选后含有公式的数据,复制粘贴到同一行的其它列?

自excel2003版之后,常规情况下,复制筛选后的数据,会忽略隐藏行,仅复制其筛选后的数据,粘贴则是粘贴到连续单元格区域,不管行是在显示状态还是隐藏状态。 一、初始数据: 二、题主的复制粘贴问题…

windows驱动开发-内核调度(一)

驱动层面的调度和同步一向是内核中比较困难的部分,和应用层不一样,内核位于系统进程下,所以它的调度和同步一旦出现纰漏,那会影响所有的程序,而内核并不具备对于这种情况下的纠错能力,没有异常手段能够让挂…

植物生态化学计量主要理论和假说

1 功能关联假说 描述化学计量特征与植物生长功能的关联, 主要包括: (1) 生长速率假说(Growth Rate Hypothesis) (Sterner & Elser, 2002): 随生长速率增加, 植物N:P和C:P呈降低趋势, 而P 含量呈增加趋势。该假说有助于理解植物生长速率的调控机制, 但受其他因素调控…

计算机网络实验——学习记录七(IP协议)

1. Linux下虚拟的以太网卡的MTU1500; 2. nping --udp -p4499 -g40321 -c1 --data-length 1400 192.168.57.254 (1)nping 命令创建指定大小的数据包; (2)--udp 指定nping命令创建的数据包是udp数据报&…

深入了解JS作用域

在JavaScript中,作用域(Scope)是指变量的可访问性或可见性的范围。了解作用域是非常重要的,因为它决定了变量在代码中的访问范围,以及变量的生命周期。 1.全局作用域(Global Scope)&#xff1a…

EPAI手绘建模APP动画编辑器、信息、工程图

④ 动画:打开关闭动画编辑器。APP中动画包含两个部分,动画编辑器和动画控制器。动画编辑器用来编辑动画。具体来说,选中一个模型后,给模型添加移动、旋转、缩放三种关键帧,不同的模型添加不同的关键帧,实现…

40.乐理基础-拍号-什么是一拍

拍: 首先 以Y分音符的时长为一拍 这一句话,然后拍是音乐中的时长单位,但这个时长单位有点特殊,它并不是完全绝对的某一个时间,而正是因为如此,所以不能用 秒 之类的,已经很确定很绝对的时间单位…

CMakeLists.txt语法规则:部分常用命令说明三

一. 简介 前面几篇文章学习了CMakeLists.txt语法中 add_executable命令,add_library命令,aux_source_directory命令,include_directories命令,add_subdirectory 命令的简单使用。文章如下: CMakeLists.txt语法规则&…

matlab例题大全

1.第1章 MATLAB系统环境 1.1 注:plot函数为画图函数。例plot(x1,y1,:,x2,y2,*); 1.2 注:root为求根函数。p为方程变量前面系数矩阵。 1.3 注: 2*x3y-1*z 2; 8*x2*y3*z 4; 45*x3*y9*z 23 求:x,y,z的…

前端工程化的基本介绍

文章目录 一、概念二、前端工程化的细节模块化组件化规范化 一、概念 工程化,可以理解为使用一些方式,去改良提高行业中现有的步骤、设计、应用方式。前端工程化,就是指对前端进行一些流程的标准化,让开发变得更有效率&#xff0…

IDEA 算法要点和难点,实际案例应用,代码实例和解析

"IDEA" 全称是 "International Data Encryption Algorithm"(国际数据加密算法),它是一种对称密钥块加密算法。IDEA 是由瑞士联邦理工学院(ETH Zrich)的 Xuejia Lai 和 James L. Massey 在 1990 年提出的。该算法设计用于替代 DES(Data Encryption St…

关于位操作符的实际应用<C语言>

前言 位操作符在C语言初学阶段相对其他操作符来说,是一种难度比较大的操作符,且运用较少的一类操作符,但是位操作符并不是“一无是处”,合理运用的位操作符,在某些场景下可以优化算法,提高代码的执行效率&a…

Vue框架知识点表格总结

今年的就业形势是真的严峻,后端java的薪资直线下降,不仅薪资大幅下降,而且要求也提高了不少,很多后端java开发岗位,都要求会前端Vue框架以及一些其他前端框架。所以以后前后端都得熟练开发。以后前后端分离&#xff0c…

PyQt5:Qt Designer使用重载的自定义类提升控件

1,以QPushButton举例 2,右击需要提升的控件,选择【提升为...】 3,添加自定义类,不用管 .h 的后缀,不影响使用。 4,完成 5,说明:自定义类的:__init__()方法…

基于STC12C5A60S2系列1T 8051单片机的IIC通信的0.96寸4针OLED12864显示16行点x16列点字模的功能

基于STC12C5A60S2系列1T 8051单片机的IIC通信的0.96寸4针OLED12864显示16行点x16列点字模的功能 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器OLED12864简…

抖音直播间小风车怎么挂?直播间小风车跳转微信怎么开通!

抖音直播已经成为了一个非常受欢迎的直播平台,而在直播间引流也是用户非常关注的一个话题。而针对这个问题,抖音也提供了一种非常好用的小工具——小风车,可以帮助用户在直播间进行引流。那么,抖音直播间小风车怎么挂?…

记录几种排序算法

十种常见排序算法可以分类两大类别:比较类排序和非比较类排序。 常见的快速排序、归并排序、堆排序以及冒泡排序等都属于比较类排序算法。比较类排序是通过比较来决定元素间的相对次序,其时间复杂度不能突破 O(nlogn)。在冒泡排序之类的排序中&…

扩展学习|本体研究进展

文献来源: 王向前,张宝隆,李慧宗.本体研究综述[J].情报杂志,2016,35(06):163-170. 一、本体的定义 本体概念被引入人工智能、知识工程等领域后被赋予了新的含义。然而不同的专家学者对本体的理解不同,所给出的定义也有所差异。 人工智能领域的学者Neches(1991)等人对…

Java ~ Lock【目录】

一 Lock(锁) Lock(锁) 《Java ~ Lock【源码】》《Java ~ Lock【总结】》 未完待续…

一些水到渠成的困惑

一、纹波和噪声 什么是纹波?什么是噪声? 两者是怎么产生的? 有什么区别与联系? 在电路中怎么规避?什么样的电路设计? 1.1电源纹波到底是什么? 二、EMC、EMI、ESR 三、二极管、电容不一样的…