数值风云

MacOS原生OpenFOAM App

OpenFOAM是一款开源的CFD软件,功能很强大,而且可扩展性非常强。这里的可扩展性指的是在OpenFOAM的基础上可以自己开发各种求解器解决一些特定的问题。然而,OpenFOAM也存在开源软件的普遍问题:学习曲线较陡。尤其是软件安装,这第一步就会劝退一大批人。不论是OpenFOAM官网还是一些网上的教程,针对MacOS系统下的安装全都是基于Docker或者其他的虚拟机。其逻辑都是通过虚拟机虚拟出Linux系统,然后在虚拟的Linux系统里面使用OF。这种方式存在很多问题,最大的问题就是运行效率低,自己开发求解器的时候不容易调试。所以,最好的解决方案就是在MacOS系统下从OF源码编译出原生的程序,但是几乎所有平台都没有给出这种解决方案!即使找到了某种方式进行编译,也是非常麻烦,需要解决很多第三方依赖库和编译器的问题,非常浪费时间还不一定能搞定!基于此,本人花了一些时间将OpenFOAM的主流的版本编译为原生的app,解决了以上所有的这些繁琐的问题,非常容易使用。尤其对于一些初学者或者编程不太熟悉的用户,以前可能从来无法实现或者需要很长时间才能实现的问题,现在可以在一分钟之内解决问题。本文主要介绍如何下载和使用OpenFOAM
app
。下面是详细介绍文本,同时也配有亲手操作的演示视频: 见B站

1. 下载

下载很简单(如图1所示),查看可用版本并通过 解锁
按钮进行相应的下载操作(如下截图所示)。如果网站上没有列出您的目标版本,可以发送请求到进行私人定制。


图1: 访问下载页面,轻轻点击[解锁]按钮即可通过说明步骤获取

2. 安装

如果第一步完成,则相应的软件下载链接通过邮件发送给您。比如OpenFOAM-9的Apple
Silicon芯片版本(下面的过程全部以此版本为例进行讲解),下载得到的app文件为
OpenFOAM-9-darwin-arm64.dmg
镜像文件。双击打开即可得到如下图所示的内容,与常规的MacOS的app安装一样,只需要简单地将OpenFOAM-9 拖入左边的 Applications目录即可完成安装。


图2: OpenFOAM-9-darwin-arm64.dmg镜像文件中的内容

拖入完成之后,即可在LaunchPad中发现OpenFOAM-9 app,如下图所示:


图3: OpenFOAM-9-darwin-arm64.dmg
app安装完成后即可出现在launchpad中

app的文件列表

安装完成之后的app位于路径 /Applications/OpenFOAM-9.app/Contents
中,其中的文件列表如下图所示。其中 MacOS 目录中存放初始化脚本;
Resources/bin 中存放所有的可执行文件; Resources/lib
中存放所有的动态库文件; Resources/etc 中存放所有的环境配置文件;
Resources/OpenFOAM-9.sparsebundle 为存放源代码的Case
sensitive镜像文件(用于存放OpenFOAM源代码的,因为OF的源代码的文件名是区分大小写的,然而MacOS的默认文件系统是不区分文件名大小写的,所以通过创建一个区分大小写的disk
image是比较明智的选择)。


图4:OpenFOAM-9
app的路径和文件列表

详细的文件列表请访问原文查看

3. 加载OpenFOAM环境

完成以上步骤之后就跟其他所有系统或者平台下使用OpenFOAM没有区别了,只需要加载环境变量就行。

首次安装后的环境加载

首次安装后加载环境很容易,只需要打开lunchpad并用鼠标点击 OpenFOAM-9
app ( 图3 ) 即可。
然后会弹出一个小对话框(如下图所示),提示本需要用户进行安全确认。


图5: OpenFOAM-8-x86_64
app首次打开的安全验证提示

对于所有不是App
Store里面下载的软件,都会有此提示。只需要在系统的Security &
Privacy里面点击允许即可。

  • Step 1


图6:在系统的安全&隐私管理里面允许运行OpenFOAM app

  • Step 2


图7:在系统的安全&隐私管理里面允许运行OpenFOAM app

细心的同学可能发现,上面的几个截图里面的app名字是OpenFOAM-8-x86_64,这是因为我写这篇博文的时候用的是M1芯片的MacBook,而举例使用的OpenFOAM-9-arm64
app就是本机器下编译的,所以不会出现安全验证的提示。为了给大家展示这个安全验证的提示信息,所以上面的截图运行的x86_64架构的app是另一个Inter芯片的MacBook上编译的。一般情况下,除了开发者自己的电脑,其他人安装app并第一次打开的时候都会出现以上的安全验证提示。

安全验证允许之后,会弹出一个终端窗口(如图8所示),在这个终端窗口里已经自动加载了OpenFOAM环境,可以运行OF自带的求解器,所有的相关的环境变量都有效。总之一句话,在这个终端窗口里可以做所有OpenFOAM的工作。


图8: 运行OpenFOAM app所弹出的终端窗口

自动加载OpenFOAM环境

通过上面的方式(直接点击OpenFOAM
app,在弹出的终端里面进行工作)可以工作,但是如果关闭这个窗口或者在其他的终端窗口里面是没有加载OF环境的,也就意味着无法运行OF的程序。我个人喜欢的一种方式就是在系统环境profile文件里面加入一段代码(如下所示),让其自动加载OpenFOAM环境:
随便打开一个终端都可以使用OpenFOAM

# =========== OpenFOAM initialization start ===========
FOAM_DISK_IMAGE=/Applications/OpenFOAM-9.app/Contents/Resources/OpenFOAM-9.sparsebundle
FOAM_MOUNT_POINT=/Volumes/OpenFOAM-9
FOAM_VERSION=9
if [ ! -f ${FOAM_MOUNT_POINT}/etc/bashrc ]; then
   hdiutil attach -quiet -mountpoint ${FOAM_MOUNT_POINT} ${FOAM_DISK_IMAGE} && . ${FOAM_MOUNT_POINT}/etc/bashrc
else
   source ${FOAM_MOUNT_POINT}/etc/bashrc
fi
# =========== OpenFOAM initialization end ===========

只需要复制以上代码并粘贴到 ~/.bash_profile
文件中并保存即可。这样以后随便打开一个终端都能使用OpenFOAM了,就不用再在Launchpad里面点击OpenFOAM
app了。

至此,在Mac系统安装原生OpenFOAM软件及加载环境的步骤就全部完成了,非常容易,一分钟之内就可以完成!
从此开始,在Mac系统下使用OpenFOAM与Linux系统下完全相同。

1 个赞

你好,我想问下贵网站提供的 OpenFOAM-7 trial 是完整的吗? 有什么限制吗? 我试着装了下,运行不了 自带算例 flange。 我的系统是 mac os big sur。

另外,我想问下 OF v2112 就可以编译安装(不需要docker)到 mac 上了吗? 和你的这个有何不同呢?

可以原生编译安装v2112!请在主页的【解锁】按钮下查看详情也有联系方式,解锁其他版本。

我的意思是: 我在mac big sur上按照 官方已经给出的 编译安装(不用docker)方法,很容易就装好了v2112 。

不知你为什么又要搞一个,是你这个和官方的有什么差别吗?

哦,你说这个呀,没啥区别啊,你觉得容易你就搞咯,自己编译自己玩就行了呀!我也很很容易就编译装上了啊,但是不代表对所有人都能容易的搞定啊!OF-7/8/9/dev呢?Foam-extend-4.1呢?你也能简单的装上?Mac的M芯片版本呢?既然你能容易搞定,那你就可能无法理解我为什么搞这个了,也没有讨论的必要了吧。