Skip to content
  • 0 赞同
    2 帖子
    3k 浏览
    V

    我希望能够在计算域中创建一个内部面,仅用来导出数据,不知道有什么方便的方法没有。用fluent网格导入后,内部面直接消失了。

  • MacOS原生OpenFOAM App

    OpenFOAM
    1
    0 赞同
    1 帖子
    3k 浏览
    C

    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系统下完全相同。

  • 当保安也需要硕士嘛

    CFD彩虹条
    2
    0 赞同
    2 帖子
    4k 浏览
    S

    @cfd-china 门槛啊,真高!

  • snappyHexMesh有些不懂求指导

    Meshy
    19
    0 赞同
    19 帖子
    23k 浏览
    T

    @shrine

    我上面说过的,字典文件中有一个坐标,这个坐标落在几何里面,生成的网格就在里面,落在几何外面,生成的网格就在外面
    66148774-6b5c-42db-a783-f365dc9e147d-image.png
    2.在生成几何时就对每一个面进行分part并命名,然后就可以对part分别命名,我是用ICEM画的stl几何,里面可以进行这个操作,其他软件我不了解
  • -1 赞同
    2 帖子
    5k 浏览
    Elibathe康E

    时间离散格式应该是计算时间导数的格式,模板没有限制;而推进格式应该要求模板是单侧偏心的。http://www.scholarpedia.org/article/General_linear_methods是一般的时间推进格式,偏心模板最多也就是隐式格式。

  • 这个六面体画网格报错

    Meshy
    2
    0 赞同
    2 帖子
    3k 浏览
    李东岳

    网格数量太多了。15510 * 16000 * 22个网格?

  • 求助:FLUENT模拟二维机翼不收敛

    Fluent
    7
    0 赞同
    7 帖子
    11k 浏览
    N

    @ildcfder 最后选用了耦合算法收敛了,谢谢提醒,一开始是密度基,后来改成压力基啦

  • 如何选择湍流模型

    Fluent
    5
    0 赞同
    5 帖子
    8k 浏览
    C

    @l-j刘侃 谢谢刘侃老师,参考文献对于T型管气液分离,大多用的RNG k-e模型,我回头认真比较一下,
    谢谢:xiexie:

  • 动量方程修改编程求助

    OpenFOAM
    4
    0 赞同
    4 帖子
    5k 浏览
    李东岳

    你这个方程看不太懂,为什么2个等号

    X是fx,那fx是什么?

  • 0 赞同
    5 帖子
    8k 浏览
    李东岳

    snappyHexMesh边界层这个问题有的时候确实不太好处理。目前我也没有什么太好的建议。看看有没有其他大佬关注关注 :jingya:

  • 1 赞同
    3 帖子
    6k 浏览

    @李东岳

    常见的问题是求$\mathbf A \cdot \mathbf x=\mathbf b$中的$\mathbf x$,可以有直接解法(如LU),也可以用迭代法(如Gauss-Seidal),求逆矩阵肯定是下下之选,原因有几点: 操作太多,$~O(N^3)$; 稀疏矩阵的逆矩阵不是稀疏的; 你要求得$\mathbf x$还要再乘一次,$~O(N^2)$ 逆矩阵求了之后没有用,因为CFD方程组是非线性的,每次求的矩阵$\mathbf A$都不一样,所以你求得的逆矩阵只用一次,下次迭代又得重新求解。如果是针对线性问题,每次针对不同的$\mathbf b$求对应的$\mathbf x$,用逆矩阵还勉强说得过去。 现代的CFD程序似乎迭代法用得更多,JFNK, IDR(s),最不济还有CG和BiCGSTAB.有的连矩阵都不需要组装,何苦去求逆...
  • 0 赞同
    2 帖子
    3k 浏览
    T

    已经解决了 找到KCS的draft 在setfields 或者 waveProperties 设置即可。

  • CFD青年成长支持计划(2021)

    公告
    137
    0 赞同
    137 帖子
    165k 浏览
    F

    想问一下李老师这个计划还有吗!!很想要这本湍流模型:mianmo:

  • 0 赞同
    4 帖子
    7k 浏览
    A

    @bestucan
    感谢您的回复!“不同方向的流动计算差异就大”这个解释很直接明了,我突然就有点明白这个网格线出现的原因了:xinxin:

  • 有关高斯积分积分点的确定

    Algorithm
    3
    0 赞同
    3 帖子
    8k 浏览
    C

    @kasitefy
    非常对。

    另外一个问题是这种加和的数值积分忒慢了

  • fluent封闭形成流体区域

    Meshy
    1
    0 赞同
    1 帖子
    3k 浏览

    QQ浏览器截图20220113163626.png
    问题:2021r2版本,在封闭形成流体区域的过程中,无法选择面。有哪位前辈指点一下吗

  • 0 赞同
    3 帖子
    6k 浏览
    R

    恩,对时域的数据用傅里叶变换到频率域上是工程用得最多的方法。

    知乎上3年前Heinrich写了一篇科普文,觉得特别浅显易懂。

    我在对升力系数做处理求karman vortex频率的时候,就用的Matlab。如果需要的话,我会贴在这。

    另外,PSD图,也就是频率域上的能量分布曲线,也是经常在和周期性相关的问题中出现。

  • 0 赞同
    6 帖子
    10k 浏览
    W

    @李东岳 哈哈,其实是从nodebb的帮助中抄来的:cheeky:

  • Janiele Luying Duan

    CFD彩虹条
    1
    0 赞同
    1 帖子
    3k 浏览
    C

    这个是哪国人的名字哟

  • 咨询一个periodic repeats问题

    Fluent
    4
    0 赞同
    4 帖子
    6k 浏览

    @ibelief 刚刚试了一下,还是不可以,可能是那个地方的网格不太好,差异比较大。谢谢你的回答