不止一次听到有人抱怨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,所想即所得。

linux运行openfoam,OpenFOAM应用的准备工作相关推荐

  1. Jenkins打包部署项目到Windows或Linux运行

    准备工作 安装完Jenkins(插件等等).操作系统.git|svn 等等情况. 部署情况: 配置ftp服务或者配置ssh服务可以自行百度. 第一种:Jenkins部署项目到Linux,运行shell ...

  2. linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  3. 使用 CrossOver 在 Linux运行 Windows 软件(金测OK)

    使用 CrossOver 在 Linux运行 Windows 软件 即便是最忠实的 Linux 用户,有时候也需要运行一下 Windows  软件.有的用户为此保留了一台旧的 Windows PC,有 ...

  4. linux php-fpm启动失败,linux运行php-fpm遇到问题

    本篇文章给大家分享的是解决Linux运行PHP-fpm遇到的问题,有需要的朋友可以参考一下 按照前面可以运行,但是会报三个错误. 1.ERROR: failed to open error_log ( ...

  5. linux运行前探秘之四,Linux运行前探秘之四_内核解压缩_三_

    操作系统 PROGRAMLANGUAGE 编程语言 Linux运行前探秘之四 ---内核解压缩(三) 徐 炜 摘要:分析了Linux内核解压过程和算法,并分析了关键的源代码. 关键词:inflate: ...

  6. linux rc.d的作用,init.d,rc.d详解 Linux运行时详解

    Linux 启动时需要哪些步骤呢?本文将详细描述不同的运行级在启动中的作用. 对于那些在DOS/Win9x/NT 平台下的高级用户而言,Linux 似乎是一个怪物.没有config.sys ,没有 a ...

  7. 在linux怎样运行java,怎么在linux运行java

    怎么在linux运行java [2021-02-01 00:44:14]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  8. Linux运行级详解

    对于那些在DOS/Win9x/NT平台下的高级用户而言,Linux似乎是一个怪物.没有config.sys,没有 autoexec.bat,具有个人特色的机器配置不知道从何开始. 需要说明的是,很多人 ...

  9. 将c程序移植到linux,各位大侠:我把原来在linux运行的c程序移植到HPUNIX上出现了错误...

    各位大侠:我把原来在linux运行的c程序移植到HPUNIX上出现了错误 (2012-04-11 00:43:47) 标签: linux c程序 杂谈 各位大侠:我把原来在linux运行的c程序移植到 ...

  10. corssover linux运行无效,使用 CrossOver 在 Linux运行 Windows 软件(金测OK)

    使用 CrossOver 在 Linux运行 Windows 软件 即便是最忠实的 Linux 用户,有时候也需要运行一下 Windows  软件.有的用户为此保留了一台旧的 Windows PC,有 ...

最新文章

  1. Open×××的新钩子设计
  2. Spring boot 使用
  3. 洛谷 - P2051 [AHOI2009]中国象棋(计数dp)
  4. java职业教育考试题_Java认证考试中Java构造方法题目解答
  5. Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目
  6. 服务器上使用docker安装部署禅道zentao
  7. 当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.
  8. 【Python 脚本报错】AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法
  9. python开始_python开始的一天
  10. 零基础入门STM32编程——工具篇(四)
  11. echarts按照时间显示柱状图_百度Echarts 柱状图 动态显示
  12. 调用Android自带浏览器打开网页
  13. html怎么做一个正方形,使用HTML+CSS做一个正方体
  14. 微软亚洲研究院全球院友线上欢聚,共话新春
  15. 小米10获取root权限_2020年小米红米Miflash新版刷机救砖恢复去除ROOT权限教程
  16. Win8快速开关机的奥妙:假关机还是真休眠?
  17. 心情随笔--我与考研战友的故事
  18. [C4W1] Convolutional Neural Networks - Foundations of Convolutional Neural Networks
  19. C/C++在Java、Android和Objective-C三大平台下实现混合编程
  20. C 语言 结构体_finddata_t _findfirst, _findnext, _findclose 函数讲解

热门文章

  1. 运营之光2.0 我的互联网运营方法论与自白
  2. android 支付宝 40247,iOS——集成支付宝 系统繁忙,请稍后再试ALI40247
  3. 支持M1芯片AE2022已发布,After Effects 2022 for MAC中文安装教程,支持Monterey系统不闪退
  4. LeetCode 1240. Tiling a Rectangle with the Fewest Squares
  5. html 链接长宽,CSS实现长宽比的几种方案【转载】
  6. 如何实现通过Leaflet加载dwg格式的CAD图
  7. 2022-11-26 linux 通过blocking_notifier_chain_register、blocking_notifier_call_chain 接收温度变化信息控制风扇
  8. laravel的pluck用法
  9. 航程门业:如何选购实木复合门及如何保养
  10. 安装postman工具 出现请设置注册表项HKLM\Software\Microsoft\.NETFramework\InstallRoot,指向.NET Fra