吾生有涯 学海无涯
析模有界 知识无界

小白学CFD|06 CFD

牛师兄:对于我们来说,CFD是解决问题的方法和手段,而非某种理论。
从上次小白借完书,时间已经过去了两周,这期间当然包含国庆度假周。然而这个度假周,小白哪儿也没去,窝在宿舍里看书,惹得宿舍里的几个哥们还以为小白是书呆子。
国庆收假后的第一天,一大早江师姐通知小白到实验室开会,说是牛师兄做完实验回来了,需要讨论一下课题。
牛师兄今年博三,年龄和小白一般大,这让小白感到有点儿自卑。据江师姐说,牛师兄主要研究CFD理论及新算法开发,仅两年就已经达到了博士毕业要求,目前只等完成毕业论文答辩了。实验室的流体仿真就是牛师兄引入的,在牛师兄来实验室之前都没人用这玩意儿,之前老蓝接了个流体仿真的项目,牛师兄用了一个暑假的时间去学习流体仿真软件,之后带领其他师兄师姐搞定项目,再之后从商用软件转入开源软件,再到后面的算法开发,正是牛师兄的努力,才使得实验室的流体仿真水平冠绝整个学院。也正因为如此,老蓝特别信任牛师兄,目前在实验室里,牛师兄是当之无愧的大师兄。
小白到达实验室后,发现江师姐和一个男生坐在桌子旁聊天,他推测那男生估计就是牛师兄了。身材高大,说话声音响亮,语速很快。
当小白打开实验室的门的时候,牛师兄就已经发现了他。
“嘿,白小白,搬张凳子来这边坐。”牛师兄说。
“你好,我是牛永林。“等小白搬来凳子,牛师兄自我介绍道。
“牛师兄好,我是小白,以后多关照哟。”白小白说道。
“今天我们讨论一下课题下一步工作,目前这个课题刚起步,没办法配备太多人手,我最近忙着写毕业论文,那么打头阵的估计就你们俩了,正好咱们项目可以分成两部分,一部分是数值模拟流程构造,另一部分是软件开发,凌芸和小白你们每人各负责一部分,程序部分就看小白的了,不过流程方面小白也得跟着走,不然软件也没法开发。”牛师兄情况准备差不多了后说道。
“凌芸,你在CFD仿真方面已经学了一年,应该有不错的底子。其实这个项目相对比较简单,你先尝试着做,有困难再找我。”牛师兄对江师姐说。
“嗯,大致思路我弄清楚了,不过后面实际仿真过程中可能会有一些细节问题,到时候再说吧。”江师姐说。
“嗯,项目进行过程中遇到任何问题都可以找我。我今天还有个实验要做,就不和你们扯了。“牛师兄说完话,起身从桌子上拿了个笔记本就出门了。

“小白,上次给你的书单,你看得怎样了?”江师姐问小白。
“看了一部分,还是有点儿迷糊。”小白有点不好意思,毕竟都过去半个多月了。
“嗯,怪我上次没给你说清楚,你可以先看看那本《计算流体力学:从实践中学习》,搞清楚下面几个问题后就可以暂时放一边。“江师姐说。
江师姐的问题:
  • CFD是什么?
  • CFD可以应用于哪些场合?
  • CFD是如何应用于工程的?
  • 常用的CFD软件有哪些?
带着问题去找答案,学习起来效率果然高了不少。经过三天的学习,小白自认为已经把这几个问题弄清楚了,他决定和江师姐探讨一下以确定自己理解的对不对。
这天早上,小白兴冲冲的来到实验室。然而发现江师姐没在,而牛师兄在座位上看书。小白准备找牛师兄请教一番。
“牛师兄,早啊。“小白走过去打招呼。
“嘿,小白,早。”牛师兄继续看书。
“师兄,最近在看计算流体力学,有些问题想让你帮我把把关,看我理解的对不对。”小白说。
1 CFD是什么

小白:“CFD是计算流体动力学(Computional Fluid Dynamic)的英文缩写,其利用计算机求解流体流动过程中的质量传递、能量传递、动量传递以及化学反应问题。CFD是一种方法或者工具,解决对象是流体力学问题,利用手段是数值计算。

牛师兄:“一般教科书上都是这么描述的。但我们不能仅限于理解教科书上的定义,我们需要额外理解几点内容。
理解的内容:
  • 计算机
  • 流体动力学
  • CFD是一种方法
  • 数值计算
小白:“这些我还真想过”。

1.1 计算机

牛师兄:“CFD中的C,是单词Computational的缩写,而非Computer,因此计算机并非是必不可少的。
小白:“不用计算机那用什么?
牛师兄:“还有很多啊,比如说人脑。开个玩笑而已,计算机只是用于计算而已,实际上计算机能完成的工作,人脑也能做,对不对。我要说的是,CFD中的C,指的是利用计算的方式来探索流体流动行为,除了这种方式,还有很多其他的方式,比如说利用实验的手段或数学推导的手段。实际上在计算机发明之前其实就已经有CFD的存在了。
小白:“噢,说得也是,条条大路通罗马。那又为何一提到CFD,人们想到的都是计算机呢?
牛师兄:“那是因为在CFD中,需要进行大量的数学计算,这些工作通常都由计算机来完成。现在计算机的计算能力已经远远超过人脑了,没有谁还用人脑去计算这些大量的数学方程了。
小白:“意思是CFD要求计算机具有强大的计算性能?
牛师兄:“那还用说么,计算机的计算性能越好,当然更有利于CFD计算。
小白:“计算性能指的是CPU么?
牛师兄:“不止是CPU,CFD计算考验的是整机性能,CPU、内存、硬盘等等都会对CFD计算快慢产生影响,而且一些看似毫无关联的硬件,如显卡、主板等都会对CFD计算产生影响。只要一个硬件有短板,整体计算速度都会降低。
”其中对于CPU来讲,影响计算速度的主要是主频和核心数。而在计算过程中,如果问题规模较小,我们通常选择高主频的CPU;而如果求解规模较大时,则通常选择核心数较多的CPU。当然如果你money很多的话,就弄一台主频和核心数都很多的CPU吧。
“内存在CFD计算过程中很重要,最主要的指标是容量与频率。当然容量是最重要的,当CFD问题规模很大时,内存不足根本就无法计算。而内存频率越高,访问速度越快。
“很多人忽略了硬盘在CFD计算中的作用。这里提到硬盘,倒不是指硬盘容量,而是指硬盘读写速度。在CFD计算过程中,可能会有大量文件读写操作,要知道文件的读写速度是很慢的,对于计算规模很大的问题,在计算过程中,可能需要不断的写入时间点数据,而一个数据文件可能动辄好几G,最麻烦的是这类文件需要不断的写入硬盘。这就像你坐地铁,起步两分钟到站停3分钟,时间都浪费在中间过程上了。因此做CFD计算,一块读写速度飞快的硬盘必不可少。
小白:”我们现在使用的计算机,再怎么弄也没办法提升计算性能啊。你看现在用的这台机器,只有4个内存插槽,就算用8G一根的内存条,也不过32G而已。再看CPU,这机器只能装一个CPU。有没有办法将多台计算机联合在一起进行CFD计算呢?
牛师兄:“当然是可以的。实际上现在一些大型的计算中心都不是一台机器,一般都是若干台计算机通过网络连接在一起,在进行计算时,这些连接在一起的计算机同时进行计算。通常我们将这种利用多台计算机同时执行某一项计算任务的模式称之为分布式计算。相同的道理,硬盘也可以采用多台机器,称之为分布式存储。而这些计算机,我们则称之为计算集群。
牛师兄:“通过计算集群可以大大扩展计算能力。以后有时间我再给你介绍咱们实验室的计算集群。虽然只有5台机器,但原理是一样的。

1.2 流体动力学

小白:”师兄,CFD简称计算流体动力学,这里的D是动力学Dynamics的缩写,为什么是动力学呢?
牛师兄:“那你说说,动力学与静力学之间最大的区别在哪里?
小白:“动力学包含流体运动,静力学不考虑流体运动?
牛师兄:“嗯,他们最大的区别在于是否考虑流体速度,再回忆流体力学课程中所讲述的流体静力学问题,是不是都是在流体保持静止的时刻对其进行力学分析?
小白:“好像真的是这样,静力学都是考虑流体在静止条件下的压力分布。那按这种思路,流体动力学就应该是考虑流体在运动过程中的物理量分布了?
牛师兄:“大致是这样。CFD实际上要解决的是流体运动过程中的物理量分布。
小白:"都有哪些物理量呢?"
牛师兄:“跟你所要研究的物理现象有关。比如说你要研究单纯流体的流动,要考虑的物理量可能就只是速度和压力,如果你要考虑热量传递的话,物理量就需要包含温度了,再比如说你要考虑化学反应,那物理量可能就又要包含化学组分了。
小白:“我看计算流体力学与流体力学教材中,将速度称之为速度场,压力称之为压力场,还有随处可见的流场,这里的指的是什么呢?
牛师兄:“所谓的场,我们其实也可以称之为区域。以前学物理的时候我们接触过电场、磁场的概念,流场与之类似,指的是特定区域内流体的各物理量分布。注意这里的区域概念。那么问题来了,对于空间上的某一点,能不能说该位置的流场?你可以先思考一下,以后有时间再讨论这话题。

1.3 CFD是一种方法

牛师兄:“CFD是一种解决实际工程问题的方法或工具。这个要仔细体会。
小白:“我觉得这句话并没有需要特别注意的啊。"
牛师兄:”如果你不将CFD当做工作,你可能会陷入到CFD学习的怪圈中。
小白:“什么样的怪圈?
牛师兄:”就是你不断的学习CFD的理论和应用技巧,永远也学不完。
小白:“何解?
牛师兄:“CFD本质上是一种方法,可以说只要有流体流动的地方就可以使用CFD,那有流体流动的地方有多少?数都数不清的吧,你能把这些领域都学一遍?活到老学到老么?
小白:“师兄您的意思是说我们学习自己领域的理论,而只是将CFD作为工具处理本领域的流动问题,至于CFD是怎么运作的,可以不用管,对么?
牛师兄:“当你的时间有限的时候可以不用管,如果你有大把的时间可以挥霍,自然是可以管一管的。毕竟咱们并不是搞CFD算法研究的。
小白:“听你这么说,我就放心了。这下可以少操很多心了。

1.4 数值计算

牛师兄:“你们是不是有一门《数值分析》的课程?
小白:“嗯,是有这么一门课,不过要到下半学期才开始上呢。
牛师兄:“这门课要学仔细点儿,对于理解CFD的工作原理很有用。
小白:“CFD是一种数值计算方法?
牛师兄:“是的。CFD本质上是一种数值计算方法。你们数值分析课程中所要学习到的如插值、数值积分和数值微分、代数方程组求解等内容都会在CFD中应用到。
2 CFD应用场合
  • 只要存在流体流动的场合均可应用CFD。随着计算机技术及计算机计算能力的发展,CFD以及广泛应用于航空航天、造船、汽车、食品、能源、石油化工、生物医学等领域,而且还在不断的向其他行业扩展。
3 CFD如何应用于工程
要将CFD应用于工程,需要做很多的工作,一般来讲,CFD工程应用都可以分为三个阶段:前处理计算求解以及计算后处理

3.1 前处理

计算前处理的主要目的在于使计算机识别现实世界计算机和人脑有很大的不同,要想让计算机识别真实世界是一件不太容易的事情。
举个简单的例子,如图所示,杯子里有水。 

人类的识别方式可能是通过视觉将光学图像送入大脑,再凭借记忆将图像识别为杯子和水。
但是要让计算机来识别可就有点儿麻烦了。我们该怎样告诉计算机“这里有个杯子,杯子中有半杯水”这一事实呢?
首先要告诉计算机“这里有个杯子”。我们需要告诉计算机:
  • 杯子的尺寸。杯子的形状是怎样的?圆柱形还是圆台形?半径及壁厚等尺寸参数需要定义。
  • 杯子的空间属性。杯子是放在地上的还是放在桌子上?我们需要给它一个定位尺寸。 
    其次,我们需要告诉计算机“杯子中有水”。杯具的是,计算机可不知道什么水是什么玩意儿。不过我们可以告诉计算机:
  • 杯子中盛装的物质的各种物理性质。比如说水的密度、粘度、比热等。
  • 杯子中装了多少水。比如说告诉计算机水位高度或者水的体积。 
    通过提供以上信息,计算机就能识别出“杯子中装了水”这一物理现实。
前处理的作用就在如此,要告诉计算机流体流动发生的场合、流体属性、流体流动遵循的物理规则等。CFD前处理包含以下一些内容:
  • 定义流动计算域建立流体流动区域。告诉计算机流体流动发生的场合。
  • 计算域离散将流动计算区域离散成网格单元。
  • 指定计算控制方程告诉计算机所要解决的流体流动遵循的物理规则。
  • 定义边界流动条件特定流动问题有特定的流动边界条件。
  • 定义初始时刻流动条件告诉计算机,零时刻计算域处于何种状态。
  • 求解参数定义 如指定串行或并行计算、计算过程监测、离散算法指定等。
  • 输出参数定义定义计算过程中一些计算参数输出。

3.2 计算求解

  • 计算求解通常由计算机自动完成,一般不需要人工干预。在前处理指定完毕后,求解器读取所有的求解参数进行自动求解计算,直至求解完成。

3.3 计算后处理

通过计算后处理将计算求解得到的数据以直观的方式展示出来,便于解读和工程应用。数据展现的方式包括:
  • 数据表每一个网格节点上的物理量数据,通常为压力、速度等原始变量。
  • 曲线图反映物理量变化规律
  • 云图反映物理量空间分布
  • 矢量图反映矢量空间分布
  • 动画以动画形式反应物理量随时间变化
4 CFD软件

CFD本身是一种数值计算方法,常常将其编制为计算机程序。当前有很多CFD软件可用于工程流体计算,根据软件功能,可分为通用软件专业软件根据软件源代码是否公开,可分为商业软件开源软件根据软件在CFD过程中的位置,可分为前处理软件求解器软件后处理软件

4.1 通用软件及专业软件

  • 通用软件设计用于所有的CFD场合,求解的是通用流体控制方程。通用软件的前处理对象普遍,能应付大多数的工程问题。然而也正是因为要保证通用性,而牺牲了部分性能。通用CFD软件很多,比较常用的如ANSYS系列的FLUENT及CFX、CD-Adapco公司的STAR CCM+及STAR CD、ESI公司的Fastran及ACE+、CHAM公司的Phoenics、Metacomp公司的CFD++、Altair公司的Acusolve等
  • 专业软件专为某一行业设计的CFD软件。专业CFD软件如用于泵阀压缩机的PumpLinx、NUMECA;用于火灾消防的pyrosim及FDS等;用于建筑物暖通计算的Flovent及AirPak等;用于电子散热的Flotherm及Icepak等,专业软件在特定的行业上具备通用软件无可比拟的建模和计算精度优势。

4.2 商业软件及开源软件

  • 商业软件软件源代码不公开,需要花钱购买的软件。上网提到的CFD软件都是商业软件,都需要花费不少的银子才能使用。
  • 开源软件源代码公开的软件,用户可以自己进行编译也可以对源代码进行修改形成自己的计算软件。目前CFD开源软件也不少,比较出名的如OpenFoam、SU2等都是比较好的开源CFD软件。

4.3 前处理及后处理软件

前面提到的CFD软件基本上都是求解器软件(不排除 一些软件包含前后处理),当前市面上还存在一些专业前后处理软件。
  • 前处理软件对于CFD前处理软件,其主要任务是进行网格划分。代表性的CFD商用前软件包括ICEM CFD、Pointwise、Gridgen、GridPro等,开源前处理软件如Gmsh、Salome等
  • 后处理软件后处理软件也有不少,代表性的商用后处理软件包括Tecplot、Ensight等,开源的如ParaView等

本篇文章来源于微信公众号: CFD之道

赞(10) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《小白学CFD|06 CFD》
文章链接:https://www.topcfd.cn/10740/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册