你会喜欢那个 Pi 的一些 CFD 吗?

2023 年 4 月 24 日• 10 分钟阅读    

我[编辑。Travis Carrigan] 几乎可以在任何地方找到项目灵感。虽然许多想法转瞬即逝,只能在一两天的工作中引起足够的关注,但有些想法会留下来并像滚雪球一样发展成有趣的项目。这是对其中一个想法转变的项目的看法,我可以在手掌中运行 CFD 计算的想法。

在收到我正在从事的另一个项目的 Arduino Uno 后,这个项目的想法在 10 月份开始具体化。如果你没见过,Uno 很小,大约只有一张信用 卡那么大。这让我想到,如果我可以在计算机上运行关于 Uno 大小的 CFD 计算会怎么样?电话是合乎逻辑的选择。但是为 iPhone 或 Android 编译像 OpenFOAM 这样的东西听起来太令人生畏了,甚至无法考虑。树莓派怎么样?

Raspberry Pi Foundation 开发的 Raspberry Pi 于 2012 年春季首次推出,第一天就出货了 100,000 块板子!目标是将负担得起的计算机带入课堂,并向孩子们传授计算原理。但爱好者们将目光投向了这个有趣的小板,它可以输出 1080p 视频并与许多传感器和其他设备接口。现在,在发布两年后,野外有超过 250 万个 Raspberry Pi。

你会喜欢那个 Pi 的一些 CFD 吗?的图1

信用 卡大小的树莓派。

鸣叫

做完研究后,我决定暂时搁置 Pi。然后,在 2 月初,一篇#SimulationFriday 帖子引起了我的注意。这是 Momentum Analysis 发布的一条推文,其中包含在两个 Raspberry Pi 上运行的驱动腔 OpenFOAM 案例的图片!

你会喜欢那个 Pi 的一些 CFD 吗?的图2

通过动量分析组装的两个 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 上注册并关注他们,您将获得折扣。

  • 树莓派 - B 型

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

  • Cyntech Blackberry Raspberry Pi 保护套带 SD 卡保护套

  • HDMI转HDMI线2m V1.4(镀金)

  • Raspberry Pi 散热器套件

Model B Pi 配备 512MB RAM,而 Model A 只有 256MB。这对于编译软件和运行 CFD 计算都很重要。我选择多花一点钱购买预装了 NOOBS 的高性能 SD 卡。NOOBS(全新开箱即用软件)包允许轻松安装许多受支持的 Linux 发行版,包括基于流行的 Debian 操作系统的官方 Raspbian 发行版。

散热器很有趣。我希望能够在不显着缩短 Pi 寿命的情况下将 700Mhz 处理器超频到 1Ghz。虽然散热器不会散发那么多热量,但它们看起来确实很酷。

你会喜欢那个 Pi 的一些 CFD 吗?的图3

三个小散热片附在电路板上。

Pi 的 OpenFOAM

上周一切都到了,所以我只有几天的时间来触及表面。但我做的第一件事是加载动量分析博客文章,这样我就可以配置我的 Pi 来运行 OpenFOAM。在应用了所有必要的更新并进行了一些设置后,我下载了 OpenFOAM,并在不到一个小时的时间内让空腔案例运行起来。我在 Raspberry Pi 上运行 OpenFOAM。我能够在手掌大小的设备上运行 CFD 模拟。Momentum Analysis 非常感谢,因为他们的说明很准确。感谢你们!

你会喜欢那个 Pi 的一些 CFD 吗?的图4

在我的手掌中运行 CFD 计算。

几天后,我决定在 Raspberry Pi 上的 OpenFOAM 中运行 Pointwise 生成的网格。我对 NACA 0012 以对流的攻角进行了稳态 RANS 计算。该解决方案在五分钟内收敛。我欣喜若狂!我不仅可以在 Raspberry Pi 上运行 CFD 问题,而且可以在 Pi 上运行我们的网格。

如果您对本案例感兴趣,可以下载并亲自试用。

你会喜欢那个 Pi 的一些 CFD 吗?的图5

NACA 0012 的速度场。此解决方案由 Raspberry Pi 计算得出。

树莓派的 SU2

我已经实现了我的目标。我在掌中进行了 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 版本!

你会喜欢那个 Pi 的一些 CFD 吗?的图6

第一次尝试在树莓派上编译 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,这里有一些我在此过程中学到的经验教训。

  1. 使用良好的电源。我怎么强调都不过分。虽然 Raspberry Pi 板不需要那么多电源,但一旦插入电源,它就会开始增加。Pi 需要 5V 1A 电源。大多数手机充电器都可以使用,但根据我的经验,有些会出现故障。我建议使用稳定的东西,最好是 5.25V,以解决任何轻微的压降和 2A,允许更多外围设备直接插入电路板。

  2. 给 Raspberry Pi 一个静态 IP 地址并启用 SSH。如果您打算进行任何类型的开发或 CFD,请放弃命令行的 GUI 和 SSH 到 Pi。告诉我的路由器给 Pi 一个静态 IP 是不够的,我还必须编辑网络接口文件。这是一个很棒的视频,介绍了如何为您的 Pi 提供静态 IP 地址。此外,您还需要启用 SSH,因为它默认处于关闭状态。这可以通过 raspi-config 来完成,raspberry Pi 软件配置工具如下所示。使用配置实用程序通过“高级选项”菜单启用 SSH。

  3. 扩展文件系统并调整 CPU/GPU 内存分配。如果使用 NOOBS 包安装 Raspbian,文件系统会自动占用整个 SD 卡。但是,如果您以其他方式安装操作系统,则需要手动扩展文件系统以利用卡上的所有可用内存。您也可以使用 raspi-config 实用程序执行此操作。您可能还想为 GPU 提供最小内存量。这可以使用相同的实用程序来完成。

  4. 最后,超频。Raspberry Pi 不会产生太多热量,也不会消耗太多电力。通过超频利用效率。股票 Raspberry Pi 以 700 Mhz 运行。我已将 CPU 超频至 1GHz,据我所知,它的马力增加了 50%。这是散热器派上用场的地方。

脚注

本文最初由 Travis Carrigan 撰写,他是一个真正的 CFD 书呆子。如果他从事此类工作只是为了好玩,想象一下他会给您使用 Cadence Fidelity CFD 的 CFD 项目带来什么样的热情和专业知识。今天开始讨论。

文章来源:cadence博客

默认 最新
当前暂无评论,小编等你评论哦!
点赞 1 评论 收藏
关注