OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型、计算参数、流程控制参数等,均为通过修改对应的文本文件来进行指定。那么什么时候该用哪些文件,该修改哪些参数,要了这些则需要花费时间去了解OpenFOAM的内部运作机理。

1 CFD的一般流程

如果只是将OpenFOAM当做一款CFD软件的话,则其使用流程与其他的商用CFD软件使用流程一致。通常的CFD使用流程包括以下几个步骤:

  • 问题定义与规划
    通常利用CFD来求解工程流动问题,并不是一上来就使用软件的,除非你对于所要解决的问题细节非常熟悉。一般情况下,在进行CFD计算之前,需要对所涉及的物理问题进行仔细的分析,比如说计算中涉及到哪些物理模型,流动是层流还是湍流,要计算哪些物理量,采用什么样的计算域,计算域能否简化等等。

  • 计算区域几何构建
    在对问题进行了仔细分析的基础上,可以开始考虑构建计算区域了。在构建计算区域的过程中,需要考虑的是:计算区域可否利用对称性或周期性条件?是否可以利用2D模型?一些细小的特征是否可以简化掉?计算域中是否包含有运动区域?等等。
    在模型规划完毕后,即可着手模型的创建。创建几何模型的工具很多,有的是采用外部CAD软件,也有一些CAE前处理软件具备一定的几何创建功能。但不管采用何种方式进行几何的创建,最终是要将这些几何模型划分为计算网格。因此在创建几何模型时,也要顾及一下后面使用的网格划分软件了,虽然说目前主流的高端的网格生成软件能够支持非常多的几何格式,但是也不排除有悲剧的事情发生对不,万一你创建的几何模型人家就是不支持呢?

  • 计算网格划分
    网格划分一直都是CFD计算过程中比较热门的话题,人们也常常习惯于将计算过程中发生的种种问题都归结到网格身上,虽然很多时候往往是人的问题。但是网格在计算过程中的作用的确非常重要,其影响计算精度和收敛性。在CFD应用过程中,可以利用专业的网格生成工具创建网格。

  • 计算模型选择及参数设置
    选择什么样的计算模型,一般在问题规划过程中已经确定好了,但是模型选择之后还需要设置与模型相关的参数,不同的物理模型涉及到的参数也不同,因此这方面如果想要做好的话,则需要去理解物理模型背后的数学物理原理。

  • 物性参数设置
    需要指定哪些物性参数,有时候也是和物理模型相关的。通常单纯的流动问题,只需要指定流体的粘度和密度即可;若涉及到传热,则需要额外指定比热及热膨胀系数。因此

  • 边界条件及初始条件指定
    很重要的内容,通常情况下直接决定了计算结果的正确与否,而且很多时候还会影响到计算收敛性和稳定性。需要按照实际情况进行设置。

  • 离散算法指定
    决定了计算的精度和收敛快慢。

  • 计算控制参数指定
    如残差标准、迭代次数、时间步长等等参数的指定。

当上述步骤都做完了之后,就可以启动求解器进行迭代计算了。计算完毕后进行后处理。OpenFOAM如果作为一款CFD软件来使用的话,同样也是按照以上的工作流程来进行。

2 最简单的OpenFOAM案例

以OpenFOAM提供的测试案例来描述OpenFOAM工程文件的组织形式,此案例是OpenFOAM提供的。

  • 启动终端terminal
  • 执行命令从OpenFOAM实例文件中拷贝cavity文件夹到当前路径下
cd $FOAM_RUN
cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity .
  • 执行命令生成计算网格
blockMesh
  • 执行命令进行计算
icoFoam
  • 进行后处理
paraFoam

自动启动ParaView软件进行后处理。


本OpenFOAM系列会在微信公众号定期推送。

转载于:https://www.cnblogs.com/LSCAX/p/6258031.html

【一起学OpenFOAM】03 OpenFOAM基本使用流程相关推荐

  1. 【OpenFOAM】——OpenFOAM入门算例学习

    1  明确目标--为啥费老大劲儿学习OpenFOAM 学习OpenFOAM主要出于课题需要,希望实现以下几个目标: l  [ ]学会用SnappyHexMesh生成高质量网格: l  [ ]学习使用O ...

  2. 零起点学算法03——超简单模仿算术题

    零起点学算法03--超简单模仿算术题 Description 计算机计算能力很强哦.  让计算机帮你算其实也很容易,不过要学好计算机语言哦.  下面请看一个例子:要求计算机计算1+2的值并输出.  这 ...

  3. 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()

    一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-03:请求模块urllib. urllib.request.urllib.parse.ur ...

  4. 【零基础 快速学Java】韩顺平 p104-147 流程控制:顺序、分支、循环、跳转 控制语句 (if、for、while、dowhile、break、continue、return)

    课程 p104-147 流程控制介绍 在程序种,程序运行的流程控制决定程序是如何执行的. 主要有三大流程控制语句: 顺序控制 分支控制 循环控制 顺序 简单理解就是从头到尾. 分支控制if-else ...

  5. 大数据应该这样学:数据挖掘与数据分析知识流程梳理

    编辑文章 数据挖掘和数据分析的不同之处: 在应用工具上,数据挖掘一般要通过自己的编程来实现需要掌握编程语言:而数据分析更多的是借助现有的分析工具进行. 在行业知识方面,数据分析要求对所从事的行业有比较 ...

  6. Lesson 03:运算符与流程控制

    1 运算符 基本算术运算符:+ - * / % (1)自增运算符.自减运算符:++ -- (2)关系运算符和boolean运算符: == 等于 != 不等于 < 小于 > 大于 <= ...

  7. 跟我一起学.NetCore之Asp.NetCore启动流程浅析

    前言 一个Asp.NetCore项目,知道大概的启动流程是有必要的,比如后续遇见配置信息覆盖等相关问题时也大概知道是什么原因,了解原因之后,再去搜索引擎找答案,否则目标不明确,茫茫人海怎么会一下找到自 ...

  8. 小汤学编程之JAVA基础day04——流程结构

    一.认识流程图 二.顺序结构 三.选择结构 四.循环结构 五.扩展&代码块的概念 一.认识流程图 二.顺序结构 体现在程序进入某个方法后,从上到下没有分支的顺序执行. 三.选择结构 1.if选 ...

  9. S5PV210 Uboot开发与移植03:Uboot启动流程详解

    目录 1. start.S解析 1.1 uboot入口分析 1.2 头文件包含 1.2.1 config.h 1.2.2 version.h 1.2.3 asm/proc/domain.h 1.2.4 ...

最新文章

  1. 在浏览器中进行深度学习:TensorFlow.js (四)用基本模型对MNIST数据进行识别
  2. 【Netty】IO 模型简介 ( Netty 特点 | Netty 应用场景 | Java 三种 IO 模型 | BIO 模型 )
  3. 手把手教你创建自己的Altium Designer集成元件库
  4. BZOJ.4552.[HEOI2016/TJOI2016]排序(线段树合并/二分 线段树)
  5. 想要高清壁纸,高图桌面壁纸网站值得收藏!
  6. 线程池原理及python实现
  7. ajax 弹框 示例,AJAX实现鼠标经过弹出详细介绍示例
  8. Redis入门之 redis set集合的操作
  9. ipset-linux防火墙的扩展实现对指定ip的限制访问
  10. linux服务器学习笔记:linux如何远程登录?
  11. vue 圆形百分比进度条_vue圆形进度条
  12. 网赚 CashFiesta 简介及操作攻略
  13. Python练习:炉石传说荣誉室返尘最优策略
  14. 基于html+css的购物网站前端页面【折扣社】前端网站
  15. 普罗米修斯(prometheus)应用
  16. 【求助】BEXCEL文件如何编辑?
  17. Oracle 12c 数据库的环境搭建以及安装过程
  18. 数据结构中树的直径问题
  19. 通达信波段顶底指标公式,抓到真正顶底并且绝对精准可能吗?
  20. 统信软件:第一份收入破亿的答卷

热门文章

  1. 爬虫入门之request
  2. C语言中exit(0) 、exit(1) 和return的区别
  3. tutorabc怎么学英文?我来说说自己的真实感受!
  4. 从DbgView探究Windows内存管理笔记
  5. 【历史上的今天】10 月 7 日:数据结构领域图灵奖得主诞生;第一台晶体管计算机的原型;Dropbox 创始人出生
  6. 音频时分多路复用(TDM)
  7. org.apache.jasper.JasperException: /jstl.jsp异常处理
  8. 更改tomcat文件导致项目无法启动记录org.apache.jasper.JasperException
  9. matlab导入地图文件,matlab 外部数据导入方法详解
  10. 笔记:STM32中寄存器地址与指针的转换