在收到我正在从事的另一个项目的 Arduino Uno 后,这个项目的想法在 10 月份开始具体化。如果你没见过,Uno 很小,大约只有一张信用 卡那么大。这让我想到,如果我可以在计算机上运行关于 Uno 大小的 CFD 计算会怎么样?电话是合乎逻辑的选择。但是为 iPhone 或 Android 编译像 OpenFOAM 这样的东西听起来太令人生畏了,甚至无法考虑。树莓派怎么样?
Raspberry Pi Foundation 开发的 Raspberry Pi 于 2012 年春季首次推出,第一天就出货了 100,000 块板子!目标是将负担得起的计算机带入课堂,并向孩子们传授计算原理。但爱好者们将目光投向了这个有趣的小板,它可以输出 1080p 视频并与许多传感器和其他设备接口。现在,在发布两年后,野外有超过 250 万个 Raspberry Pi。
信用 卡大小的树莓派。
做完研究后,我决定暂时搁置 Pi。然后,在 2 月初,一篇#SimulationFriday 帖子引起了我的注意。这是 Momentum Analysis 发布的一条推文,其中包含在两个 Raspberry Pi 上运行的驱动腔 OpenFOAM 案例的图片!
通过动量分析组装的两个 Pi 集群。图片来自 Momentum Analysis。
顺便说一句,#SimulationFriday 是 Twitter 上的一个很棒的标签,工程师们每周五都会在上面发布模拟照片和视频。
Momentum Analysis 的人员使用了 Rheologic 提供的 OpenFOAM 构建。终于,有一个适用于 Pi 的构建,我再也不用担心自己编译它了。我可以获得一个 Pi 并立即启动并运行!
几天后,Momentum Analysis 写了一篇很棒的操作方法博客文章,内容是关于设置他们称之为 twoPi 集群的内容。在文章中,他们讨论了如何设置 Pi、获取 OpenFOAM 二进制文件,甚至描述了他们执行的一些测试。
好的。是时候买一个我自己的 Pi 了。
我应该在他们的帖子发布后不久提到,我偶然发现了另一篇关于达拉斯/沃思堡地区 40 节点 Raspberry Pi 集群的文章。构建质量令人难以置信,我鼓励您查看YouTube 上的视频。
在购买 Raspberry Pi 之前,我做了很多研究。我了解到的是,虽然电路板的价格约为 35 美元,但配件可以加起来。除非您家里有充电器、数据线和键盘。环顾四周后,我知道我需要什么,也知道我会在哪里购买所有东西。我选择了 ModMyPi。ModMyPi 开始为 Pi 制造外壳,但此后很快开始销售一系列配件。虽然他们不隶属于 Raspberry Pi 基金会,但他们将 5% 的利润回馈给该基金会。
我没有购买他们的工具包,而是决定坚持使用最基本的必需品,只是找到我还没有拥有的东西。如果您有兴趣进行相同的实验,下面是我从 ModMyPi 购买的所有物品的列表。请注意,自从我购买这些商品后,价格略有上涨。如果您在 Twitter 上注册并关注他们,您将获得折扣。
Model B Pi 配备 512MB RAM,而 Model A 只有 256MB。这对于编译软件和运行 CFD 计算都很重要。我选择多花一点钱购买预装了 NOOBS 的高性能 SD 卡。NOOBS(全新开箱即用软件)包允许轻松安装许多受支持的 Linux 发行版,包括基于流行的 Debian 操作系统的官方 Raspbian 发行版。
散热器很有趣。我希望能够在不显着缩短 Pi 寿命的情况下将 700Mhz 处理器超频到 1Ghz。虽然散热器不会散发那么多热量,但它们看起来确实很酷。
三个小散热片附在电路板上。
上周一切都到了,所以我只有几天的时间来触及表面。但我做的第一件事是加载动量分析博客文章,这样我就可以配置我的 Pi 来运行 OpenFOAM。在应用了所有必要的更新并进行了一些设置后,我下载了 OpenFOAM,并在不到一个小时的时间内让空腔案例运行起来。我在 Raspberry Pi 上运行 OpenFOAM。我能够在手掌大小的设备上运行 CFD 模拟。Momentum Analysis 非常感谢,因为他们的说明很准确。感谢你们!
在我的手掌中运行 CFD 计算。
几天后,我决定在 Raspberry Pi 上的 OpenFOAM 中运行 Pointwise 生成的网格。我对 NACA 0012 以对流的攻角进行了稳态 RANS 计算。该解决方案在五分钟内收敛。我欣喜若狂!我不仅可以在 Raspberry Pi 上运行 CFD 问题,而且可以在 Pi 上运行我们的网格。
如果您对本案例感兴趣,可以下载并亲自试用。
NACA 0012 的速度场。此解决方案由 Raspberry Pi 计算得出。
我已经实现了我的目标。我在掌中进行了 CFD 计算。但我无法摆脱这样一个事实,即我并没有真正做过任何新的事情。动量分析人员已经这样做了……并行。我能做些什么不同的事情?换一个求解器怎么样?输入 SU2。
几年前,斯坦福大学航空航天系航空航天设计实验室的一个小组发布了一个开源 CFD 求解器。斯坦福大学非结构化软件套件或 SU2 是一组用于求解偏微分方程(包括 CFD 问题)的 C++ 工具。该团队于今年 1 月发布了代码的 3.0 版。
在过去的几周里,我一直在探索 SU2 的一些内部 CFD 工作,所以我对代码有点熟悉并且可以可靠地构建它。所以,我决定在 Raspberry Pi 上下载源代码并尝试编译它。我的新目标是为 Raspberry Pi 打包 SU2 二进制文件并运行 NACA 0012 问题。说起来容易做起来难。
我不想做任何花哨的事情,所以我只需要一个基本的单线程编译。我遵循了 SU2 开发人员提供的精心编写的安装指南,仅使用前缀参数配置了 makefile,然后发出 make 命令来编译源代码。构建大约 30 分钟后,Pi 抛出了一条神秘的错误消息。不久之后,所有应用程序都崩溃了,GUI 也没有响应。不幸的是,Pi 没有配备电源开关,所以关闭设备只是拔掉电源的问题,这是我此时所能做的。
我重新接通电源以重新打开 Raspberry Pi,但遇到了内核恐慌。精彩的。
拔掉电源。重新连接电源。内核恐慌。
拔掉电源。重新连接电源。没有什么。现在 Pi 将无法启动。
我将电路板从外壳中拉出,并使用电路板上的两个触点测试了电压。没电。结果是保险丝烧断了,需要几分钟才能复位。伟大的。长话短说,这个过程重复了六次,然后运行 fsck 实用程序。
问题出在 SD 卡或电源上。我的猜测是主板、以太网电缆、HDMI 电缆、SD 卡和 USB 键盘加密狗消耗的电流超过了 ASUS Nexus 7 充电器可以处理的电流。这反过来又将电压降至 4.75V 以下并导致了一些不稳定。从那以后,我用 5V 2.1A iPad 3 充电器更换了电源,并且没有遇到任何稳定性问题。
另一个潜在的问题是内存。我一直在监视构建期间的内存使用情况,并注意到它逐渐达到 512MB 的限制。因此,使用 raspi-config 实用程序,我禁用了 GUI 并允许 GPU 访问最小内存量。接下来,我在我的家庭网络上为 Pi 提供了一个静态 IP,并启用了 SSH 访问。不再需要 HDMI 电缆和 USB 加密狗。这不仅解决了内存问题,而且我的稳定性问题也更少了。
每次尝试新事物时,我都会重新尝试构建,每次都更进一步。我估计整个构建需要大约三个小时才能完成。完成后,我运行 make install,然后存档并压缩结果。我现在有了 SU2 的 Raspberry Pi Raspbian 版本!
第一次尝试在树莓派上编译 SU2。
我做的第一件事是浏览详细的快速入门教程,以确保至少 SU2_CFD 可以正常工作。果然,NACA 0012 的稳定欧拉计算在三分钟内收敛。
SU2 团队慷慨地提出在他们的网站上托管二进制文件以供下载。如果您想要用于 Raspberry Pi 的 SU2,请访问 http://su2.stanford.edu/download.html。您可能会注意到 Pi 也有一个 SU2_EDU 链接。它即将推出,但稍后会详细介绍。
这是一个伟大的项目。虽然我对 Momentum Analysis 和 Rheologic 所做的工作感到满意,但我很高兴我没有停止使用预编译的 OpenFOAM 构建。撕毁电子设备、解密错误消息以及学习如何在适合我手掌的设备上编译和运行 CFD 软件真是太棒了。
如果您对这个项目感兴趣并计划购买自己的 Raspberry Pi,这里有一些我在此过程中学到的经验教训。
本文最初由 Travis Carrigan 撰写,他是一个真正的 CFD 书呆子。如果他从事此类工作只是为了好玩,想象一下他会给您使用 Cadence Fidelity CFD 的 CFD 项目带来什么样的热情和专业知识。今天开始讨论。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删