Skip to content

OpenFOAM

OpenFOAM交流区

4.5k Topics 26.5k Posts
  • 13 Posts
    2k Views
    O

    @李子橙 我的困难还不是很细节的 局限于 我不懂他的整体结构,哪一步在干什么,我该怎么把他跟OpenfoamV2106的流体求解器连起来,openfoam的这种求解器太过复杂,我想搞明白需要很久的时间,所以我干脆去看理论直接自己在OpenFOAMv2106里自己定义固体算法的类自己重新写了,毕竟本身fsifoam我还是得修改成我需要的固体求解,因为算法还是有不同。而且我需要对它很明白才能实现,权衡再三,我是觉得自己写反而更快

  • 3 Posts
    761 Views
    香柏树

    @李东岳 谢谢李老师!我更改下试试

  • 如何在湍流模型中读取压力场

    5
    5 Posts
    1k Views
    F

    @fangyuanaza 解决了这个问题,代码分享如下,以免大家有需要:

    const volScalarFields& p = this->db().objectRegistry::lookupObject<volScalarField>("p")

    经过Info输出发现,确实是每一步的压力场

  • 3 Posts
    899 Views
    Number44N

    经验之谈,如果是复杂翼型这种网格的话,用RANS算的问题应该不大,我算过挺多的了,开非正交修正,能算。
    不过还是想想法,尽量提高网格质量吧。

  • MacOS原生OpenFOAM App

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

  • nonNewtonianIcoFoam 量纲报错

    3
    3 Posts
    671 Views

    @李东岳 这个因为OpenFOAM官方给的是cross的case,所以里边的量纲是我根据OpenFOAM里边相关物理量的量纲自己弄的,应该是我弄错了,老师您的默认值是自己设置的吗

  • 4 Posts
    1k Views
    五好青年

    kubuntu
    manjaro
    archlinux
    centOS

  • 2 Posts
    579 Views
    T

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

  • OpenFOAM 里计算Cp,Cf等参数

    10
    10 Posts
    4k Views
    Z

    @calrel 非常感谢

  • 动量方程修改编程求助

    4
    4 Posts
    864 Views
    李东岳

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

    X是fx,那fx是什么?

  • 多出口入口的边界设置问题

    5
    5 Posts
    1k Views
    B

    @李东岳 好的谢谢老师指点:ok2:

  • 关于paraview的镜像后处理

    Moved
    14
    14 Posts
    7k Views
    Y

    @李东岳 我也是,no data to extrude6e2e697a-d8c9-4c0e-bdbf-b00adca9ecca-image.png

  • 2 Posts
    553 Views
    V

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

  • OpenFOAMv7 wave Generation Problem

    1
    1 Posts
    481 Views
    T

    Hi all, I had an issue when using OFv7 to simulation a ship in wave condition.

    As far as I know, OpenFOAM has included its own wave generation tool since OFv5.

    To start with, I copied the DTCHullWave tutorial case into my own directory then I replaced the STL file and then did my own blockMesh, refineMesh and snappyHexMesh etc. Then I did renumberMesh, the error reported:

    --> FOAM FATAL IO ERROR:
    Essential entry 'value' missing

    file: /home/OpenFOAM/OpenFOAM-7/run/KCSDRIFTINWAVE/0/U.boundaryField.inlet from line 31 to line 31.

    Then I had to add value in alpha.water and U files in 0 folder (value $internalField; in both inlet BCs in both files)

    Then setWaves and decomposePar ran smoothly without any error.

    Finally, running interFoam, error reads: Unknown patchField type waveVelocity for patch type patch; (/0/U.boundaryField.inlet)

    I think the same error will reported in 0/alpha.water.inlet as well for Unknown patchField type waveAlpha for patch type patch;

    Please let me know if you have any hints to resolve this issue! Btw I am using OF version 7 and the patches of waveAlpha and waveVelocity should have been included in OFv7, and I can run DTCHullWave tutorial case without any error!

    Btw, I am not sure whether it is worth installing a third-party wave generation tool eg. waves2Foam in OpenFOAM v7? But I think waves2Foam is not compatible with OpenFOAMv7.

    Sorry for using English instead of Chinese due to the lack of Chinese character coding input on the workstation.

    Any help will be appreciated!
    Tony

  • 主机并行运算问题

    36
    36 Posts
    5k Views
    李东岳

    @青山 他们做服务器,你跑CFD算例跟他们说对比结果,估计他们彻底懵掉了,哈哈。

    谢谢,新年好,剩下10天过年了:high: :high:

  • 3 Posts
    792 Views
    Prometheus10P

    @李东岳 我也不太清楚,东岳老师。:143:

  • 3 Posts
    776 Views
    L

    @bestuca十分感谢您!:xinxin2:

  • 10 Posts
    2k Views
    Q

    @星星星星晴 雀食祖传的,而且还得把 Fortran 的转成 OpenFOAM 。。。

  • 并行计算MPI的问题

    7
    7 Posts
    2k Views
    bestucanB

    从你给出的输出看,两个版本都没有指定 mpi 版本

    不过,你这两个版本差异属实有些大:chouchou:

    不过OF2的,不指定都不知道能不能过

    这个命令查看MPI版本。看看,应该没法符合两个版本的要求。

    mpirun --version
  • 管道流RANS计算湍流模型的选择

    5
    5 Posts
    1k Views
    Z

    @一颗鸭蛋 好的,谢谢