找回密码
 立即注册
Qt开源社区 门户 查看内容

树莓派上的CFD计算:-)

2019-2-15 07:03| 发布者: admin| 查看: 2704| 评论: 0

摘要: 作者:CFD界 我喜欢在任何地方找到项目灵感。虽然很多想法稍纵即逝,一般不超过一两个工作日。但是总有一些idea萦绕我心头,最终落实为一些有意思的项目。下面就让我介绍一下其中一个idea:在我的掌上设备进行CFD计 ...
作者:CFD界

我喜欢在任何地方找到项目灵感。虽然很多想法稍纵即逝,一般不超过一两个工作日。但是总有一些idea萦绕我心头,最终落实为一些有意思的项目。下面就让我介绍一下其中一个idea:在我的掌上设备进行CFD计算。

回溯到十月份,我因为在一个项目使用了Arduino Uno(译者注:一种微控制器型号),随后便有了这个CFD项目的灵感。如果你之前没见过Uno,那么我可以告诉你它只有信用卡大小。这不禁让我思考,是否可以在Uno这种尺寸的微型电脑上进行CFD计算呢。我曾考虑用手机上进行,但是在苹果或安卓上编译OpenFOAM等开源CFD软件的的难度让我生畏。

那么,为什么不试试树莓派(Raspberry Pi)呢?



信用卡大小的35美元Raspberry Pi

Raspberry Pi 基金会开发的35美元的树莓派。是一个只有信用卡大小的微型电脑,其系统基于Linux。在2012年春季首发的当天售出了10万套! 树莓派的目标是给教学提供一个经济实惠的电脑,告诉孩子们电脑运行以及编程的原理。但是发烧友们发现,这个小小的开发板尽然可以运行1080P的视频,以及数量众多的传感器和其它设备接口。现在,发布两年之后,累计有超过250万套树莓派。

二月初,Momentum Analysis发布了一条消息,他们的OpenFOAM的方腔流案例竟然在两个树莓派上成功运行了!



Momentum Analysis用两块Raspberry Pi组成的集群

Momentum Analysis的人员使用Rheologic所提供的OpenFOAM编译版。最终编译成了针对树莓派的二进制版,我不再需要自己编译它。我可以直接买一个树莓派,立即启动并运行!

几天之后,Momentum Analysis撰写了一篇很棒的博文,内容涉及如何构建他们称之为两个派的计算集群。在文章中,他们讨论了如何设置树莓派,如何获取编辑OpenFOAM获得的二进制文件,甚至描述了他们执行的一些测试。

好了。是时候在我自己的树莓派运行CFD了。

顺便提一下,就在Momentum Analysis发布的博文不久,我看到了一篇关于达拉斯/沃斯堡地区的人员搭建40个派集群的文章。效果令人难以置信...

在树莓派进行CFD计算

在我购买树莓派之前,我做了很多研究。我的经验是,当开发板价格在35美元左右时,配件可以叠加组装。当然你必须要有充电器,电缆和键盘。环顾四周后,我想清楚了自己需要什么以及在哪里购买所需的东西。我选择了ModMyPi。ModMyPi开始只是为树莓派制造外壳,但很快就开始销售一系列配件。虽然他们并不隶属于Raspberry Pi基金会,但他们将5%的利润捐赠给基金会。

我没有购买ModMyPi的整套套件,只是购买了一些必要的配件。如果您有兴趣进行相同的实验,以下是我从ModMyPi购买的所有内容的列表。请注意,自从我购买这些物品后价格略有上涨。


  • 树莓派- B系列

  • 预装NOOBS的16GB三星Micro SD卡(Class 10 UHS-I)

  • Cyntech的树莓派开发板,带SD卡插槽

  • HDMI转换线2米1.4V(镀金)

  • 树莓派散热套件


B系列的树莓派配备了512MB的内存,而A型只有256MB。这对于编译软件和运行CFD计算都很重要。我选择在预装NOOBS的高性能SD卡上多花一点钱。NOOBS(New Out of Box Software)软件包允许轻松安装许多支持的Linux发行版,包括基于Debian 系统的官方Raspbian发行版。

散热片很意思。我希望能够将700Mhz处理器超频到1Ghz而不会显着缩短树莓派的寿命。虽然散热片不会消散那么多热量,但它们看起来很酷。



开发板上集成的三个小型散热片

树莓派上的OpenFOAM

上周我收到了所有东西,所以我只有几天的时间进行一些浅显的研究。我做的第一件事是按照Momentum Analysis的博客文章,配置我的树莓派来运行OpenFOAM。在进行必要的更新和设置后,我下载了OpenFOAM并在不到一个小时的时间内运行了方腔流cavity案例。我在树莓派上运行了OpenFOAM。

我竟然能够在手掌大小的设备上运行CFD模拟了!



在掌上设备进行CFD计算

几天后,我决定用树莓派版的OpenFOAM对Pointwise生成的网格进行测试。我对NACA 0012迎角进行了稳态RANS计算,结果在五分钟内收敛。我欣喜若狂!我不仅可以在树莓派上运行CFD,而且可以在树莓派上测试我们的网格。

SU2 for the Raspberry Pi

我实现了我的目标。我在掌上设备进行了CFD计算。但是,我只是重复了别人的工作。Momentum Analysis人员已经这样做了。而且是并行计算。我能做些什么不同的事情?能否使用不同的求解器呢?何不尝试一下SU2。

几年前,斯坦福大学航空航天系航空航天设计实验室的一个小组发布了一个开源CFD求解器。 Stanford University Unstructured软件套件,简称SU2,求解偏微分方程的C++工具集。该团队在今年1月发布了3.0版的代码。

在过去的几周里,我一直在探索使用SU2进行一些CFD的内部研究,所以我对代码有点熟悉,能够可靠地编译它。所以,我决定下载SU2源代码并尝试在树莓派上编译它。我的新目标是为树莓派打包SU2二进制文件并运行NACA 0012案例。但是,说起来容易做起来难。



NACA 0012的速度场,计算结果来自Raspberry Pi

我不想做一些花哨的工作,只想实现一个简单的单线程编译版。我按照SU2开发人员提供的安装指南,仅使用prefix参数配置makefile,然后用make命令来编译源代码。在编译大约30分钟后,树莓派抛出了一个含糊不清的错误消息。不久之后,所有应用程序崩溃,GUI没有响应。更不幸的是,树莓派没有配备电源开关,所以只能拔掉电源关闭设备。目前为止,这就是我在树莓派对SU2 做的所有工作。

我重新连接了电源,重启树莓派,收到内核错误的消息...

关闭电源,重启电源,内核错误...

关闭电源,重启电源。没有反应。现在树莓派再也没法载入了...

我从外壳中抽出电路板,测试电路板上的两个触点电压。没有电压。这就表明保险丝已烧断,需要几分钟才能复位。长话短说,通过使用fsck套件,这个过程重复了六次...

问题要么是SD卡,要么是供电。我猜测是主板,以太网线,HDMI线,SD卡和USB键盘加密狗等设备的电流超出了ASUS Nexus 7充电器的承载能力。这反过来又将电压降拉到了4.75V以下,造成电压不稳定。因此,我用5V 2.1A的 iPad 3充电器取代了之前的电源,再也没有遇到任何稳定性问题。

另一个潜在的问题是内存受限。我在编译的时候监控内存的使用情况,观察到内存超出了152MB的限制。因此,我使用raspi-config工具禁用了GUI,使GPU的内存访问量最小。接着,我给树莓派分配了家庭网络的静态IP,启用了SSH访问。不再需要HDMI线和USB加密狗。这不仅解决了内存问题,稳定性问题也更少了。

每当我尝试新的东西时,我都会重新尝试编译,每次都离成功进一步。我估计整个编译需要大约三个小时才能完成。编译一完成,我运行make install然后存档并压缩结果。

我首先通过SU2自带的算例来确保SU2_CFD能运作。果然,针对NACA 0012的稳态欧拉计算在三分钟内收敛。

我现在有一个树莓派版本的SU2!

CFD计算派!

这是一个很棒的项目。虽然我对Momentum Analysis和Rheologic所做的工作感到满意,但我更庆幸我没有止步于他们提供的预编译OpenFOAM。这个项目暴露了树莓派电子设备在编译OpenFOAM时遇到的一些问题,解决了错误信息,并让我学会了如何在掌上设备上编译和运行CFD软件。

如果您对这个项目感兴趣并计划购买自己的树莓派,下面有一些我总结的经验教训。

1、选择好的电源

我特别强调这一点。虽然树莓派电路板不需要那么大的功率,但外接设备会加大功率需求。树莓派本身需要5V 1A的电源。大多数手机充电器都能让它正常工作,但根据我的经验,有些可能无效。我建议使用稳定的电源,最好是5.25V和2A,以应对任何轻微的电压降和接入更多的外围设备。

2、为树莓派提供静态IP地址,启用SSH

如果您计划进行任何类型的开发或CFD计算,请放弃使用GUI并启用树莓派的SSH。仅让路由器给树莓派分配一个静态IP是不够的,还必须编辑网络接口文件。下面是一个不错的视频,描述了如何为你的Pi提供静态IP地址。

同时,你需要手动启用SSH,因为SSH默认是关闭的。可以通过树莓派的软件配置工具raspi-config实现。

3、展开文件系统并调整CPU / GPU内存分配比例

如果您使用NOOBS包安装树莓派,文件系统将自动占用整个SD卡。但是,如果以其他方式安装操作系统,则需要手动扩展文件系统,以利用SD卡上所有的可用内存。您也可以使用raspi-config工具执行此操作。您可能还希望为GPU提供最少的内存量。这可以使用相同的工具完成。

4、超频

最后,超频。树莓派不会产生太多热量,也不会消耗太多能量。可以通过超频来提高效率。树莓派的默认频率为700Mhz。我把CPU超频到1GHz,增加了50%的性能。这时散热片就派上用场了。

好了,你要不要也来点CFD树莓派?



CFD中文网 | CFD界 | CFD百科

本文素材来自网络 可阅读原文跳转

-------------------------------------------------------------------------
我们尊重原创,也注重分享,如若侵权请联系qter@qter.org。
-------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了