分享

OpenFOAM应用的准备工作

 析模界 2023-10-23 发布于四川

不止一次听到有人抱怨OpenFOAM的学习极为陡峭(网络上、公众号后台中经常碰到)。有人说冲着OpenFOAM的免费Download而来,结果想要用上它却花费了巨量的时间成本,在使用过程中遇到了新的问题依然是一筹莫展。今天就站在一个应用者的角度来扯一扯OpenFOAM从零基础到切实的在工程中用起来需要准备哪些东西。

1 Linux基础

虽然说目前有些在Windows下能够操作的OpenFOAM版本,不过要真正的使用OF,估计还是得在Linux系统下。首先得选择一款Linux系统,跟Windows系统不同,Linux系统的种类有很多,不过鉴于OF与Ubuntu勾兑的比较紧密的缘故,如果对Linux一无所知的话,那就直接用Ubuntu吧。不过很多服务器使用的是CentOS、RHEL、Fedora、Debian什么的,这些都是主流的Linux系统,还有无数种非主流的Linux系统。

不要求对Linux系统达到精通,但至少应该熟悉下面的一些基础操作:

  • 文件操作。像文件创建、权限控制,文件访问、复制、搜索等命令的应用。目前OpenFOAM的所有参数输入都基于文本文件,因此这些基础的与文件相关的操作应该熟悉。
  • 软件安装与卸载。为了营造一个工作环境,安装和卸载软件是必不可少的操作。与windows操作系统不同,不同的Linux操作系统在安装和卸载软件方面的操作也会有很大的区别。

基本也差不多了。文件搜索命令需要重点掌握,不然后面会被OpenFOAM弄死。

2 OF帮助文档

这里的帮助不是OpenFOAM提供的UserGuide,而是代码文档。

OpenFOAM是一个庞大的代码库,遇到疑难问题想要靠鼠标一个个的去找似乎不太现实。OF在其安装路径下提供了代码的帮助文档,用户可以利用Doxygen自己产生网页文件。

以Ubuntu为例,该文件位于路径/opt/openfoam7/doc/Doxygen下,不过若想要生成html网页帮助,需要先安装Doxygen。

sudo apt-get install doxygen graphviz

在该文件路径下,OF为我们提供了编写完整的make文件,只需要直接执行即可。

cd /opt/openfoam7/doc/Doxygen
./Allwmake

等待一段时间后,会在当前路径下生成html文件夹。

可以利用命令打开:

firefox html/index.html

注:不要问为什么不进入到html文件夹中,我鼠标双击了一下,然后我的虚拟机就梆硬了。这个文件里头有14180万个文件及文件夹。

网页打开后如下图所示,可以看到网页上有个搜索框,后面在使用OF过程中遇到迷惑的地方都可以在这个搜索框中搜索。

比如下面搜索了关键字inletoutlet,下面就出来了很多与之相关的待选项。

3 参数输入

OpenFOAM的操作习惯与绝大多数的商用CFD操作习惯不同。商用CFD软件以Fluent为例(其他的也一样)。

在读入网格后,大多数商业软件的操作逻辑是这样的:

  • 选择物理模型。物理模型的选择可能会影响到材料介质属性的需求,因此常需要放在材料之前。
  • 指定材料介质。前面选择的物理模型会影响到介质属性的设置。如选择了能量模型,则需要指定材料介质的热参数。
  • 指定边界条件。同样物理模型会影响到边界条件的设置。不同的物理模型需要指定的边界参数存在差异。如选用了多相流模型,则需要在边界中指定各相的信息;选用了组分输运模型,则需要在边界中指定组分信息等。Fluent中是对指定的边界设置变量信息,如对速度入口边界需要指定入口速度、湍流信息、温度信息等。
  • 求解控制参数设置
  • 求解计算
  • 后处理

由于这些参数设置存在先后关系,因此很容易对输入的参数进行控制,当用户输入的数据存在问题时,也能够方便的提醒。

OpenFOAM则完全不同,其通过文本文件输入所有参数,各文件在准备过程中完全没有先后顺序。换句话说,在计算之前用户不会知道哪里的输入操作错误。在边界参数输入时,OF与Fluent的做法截然不同。Fluent是对几何边界进行物理参数指定,而OF则是对不同的待求物理量指定不同的边界处理方式。实质上OF的这种组织方式与绝大多数的商业软件都不同。很多从商业软件转过来的人可能会觉得极其的不习惯。

这种处理方式一个最大的好处是让用户对自己的问题了解更深,比如要使用icoFoam求解器,只需要求解压力与速度,因此只需要指定p文件与U文件;而换成simpleFoam求解器,除了要求解压力与速度外,还要求解湍流,若使用k-epsilon湍流模型,则需要额外补充k文件与epsilon文件。这个事情其实很烦,本来对OF的内部运作就不熟,我怎么会知道需要哪些文件呢?目前OpenFOAM采用的是模板的方式。个人觉得这对于新手来讲是一大挑战。

OF输入文件中随处可见的预定义关键字(比如入口边界类型就有几十种,搞得神经兮兮的,我倒是觉得CFX里头的5种边界打天下更符合工程习惯),也是一个很能恶心人的玩意儿,官方文档中没有任何的描述。所以利用好前面提到的代码文档是最重要的工作,搞不明白的就查,虽然查出来的是一堆多数人看不懂的程序代码解释,但聊胜于无。

总之,商用CFD软件类似Word,所见即所得;OpenFOAM类似Latex,所想即所得。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章