学习CFD差不多四年了,所谓学而不思则罔,我觉得很有必要停下脚步,仔细思量下一步该如何走。
总感觉CFD像是算命,CFDer就像是算命先生。用少量的信息去推知未知信息。不知道什么时候听到的一句关于数学用途的话,“数学的作用是预测”,当时是嗤之以鼻的,但是现在想想,还真是那么一回事儿。我们不管是研究什么,最终的目的都是预测,以已知预测未知。理论研究也好,试验研究也罢,都没办法跳脱这个圈子。我们究竟该以一种什么样的态度去对待CFD?CFD在我们的科研工作中应当处于一个什么样的地位?
CFD是将数值计算技术与流体动力学相结合的一门交叉学科。我个人认为,流体力学应当处于一个主要未知,数值计算是其辅助作用的。换一个角度,流体力学是目的,数值计算是手段。我们最终要解决的是关于流体力学方面的问题。因此,在我们的学习过程中,应当将流体力学当做主要的内容,各种流体现象的物理解释、数学描述都应当了然于胸,这样在计算过程中才不至于迷失方向。而数值计算作为一个工具,一个解决流体力学问题的手段,更多的反应到了我们所使用的软件中。不管是商用软件也好,自己编程实现也罢,最终目的无非是求解我们所定义的物理过程的数学方程。
现在的大部分硕士生,都处于利用软件阶段。我碰到很多人问我到底CFD该如何学习,很多时候我都不会跟他们就这个问题进行深谈,一方面,我自己对于CFD的理解还不深,我怕误人子弟。另一方面,其实我自己都是在走弯路,甚至现在都还在走。由于目前的商用CFD软件通常都是英文的,对于英语基础不太好的人来讲,学好这么一款英文的软件的确是一件很费心的事情。我学软件的方式与大多数人可能不同,我喜欢从软件帮助的tutorial开始,通过大量的例子练习达到熟悉软件的目的,在对软件熟悉了之后,再从软件帮助开始,进而学习软件的工作原理。这种学习方式的一个最大优点在于入门快,通常一个星期就能使用软件,然而一个却存在一个极大的缺陷,基础部牢靠。遇到问题喜欢依葫芦画瓢,却不知其所以然。而且在很多情况下,本末倒置。从实际来说,软件作为一个工具,我们不应当在工具的使用上浪费太多的时间,我们应当将更多的时间用在关注的问题上。
谈CFD是不能离开试验的。试验数据作为验证手段是利用CFD进行科学研究的必要工具,然而现在国内的流体研究的条件相对于国外来说,并不算先进。除了一些重点大学外,很多学校流体学生根本就接触不到试验,但是,没有试验我们就不能进行CFD计算么?其实,作为学生,我们更应当注意的是,我们关键是要学到解决问题的方法,而不是问题本身。那么,在没有试验数据做参考的情况下,我们应当如何开展CFD的学习呢?我觉得有必要关注一下几点:
1) CFD基本知识的学习。这主要包括一些数值算法,如有限体积法的原理、数值稳定性分析等等。这一类知识是通用的,只有学好了这些,才有可能用好CFD软件。
2) 流体力学一定要深入的学习。这个是最本质的东西,我们要在脱离了CFD软件之后还能够对流动现象进行定性分析。讲到这里,大家不妨想象一下,如果脱离了电脑,我们对于流体方面的知识还剩下多少?这个才是你的真实水平。
3) 软件的使用。这个其实是为工作准备的。人活在这个世界上始终是要吃饭的,我们也必须掌握一技之长。没有了实验数据,但是我们必须明白软件计算的缺陷在哪里,在什么地方可以提高精度,以及计算结果的定性分析。
4) 我们平时可以找一些通用的验证实例,使用软件进行计算,然后利用案例提供的结果进行比较,找出问题所在,努力提高自己的CFD应用水平。
我想在这里简单谈谈自己四年来对于CFD软件使用的体会。
首先是建模软件。在刚开始接触CFD的时候,我最先接触的CFD软件是CFX5.6,那个版本稍微有点老。CFX5.6带有自己的前处理器CFX-build,是一个PATRAN核心的前处理器,包含几何建模、划分网格等功能,还算比较可以,现在估计用的人不多了。这个前处理器采用的建模方式和patran一样,可以通过点线面体的顺序建立几何,也可以直接建立三维几何体。划分网格的方式有很多,我对这个软件的使用并不是很熟悉,只会创建四面体网格,呵呵。CFX的操作界面还是比较好的,全部都是视窗操作,很适合新手入门。而且CFX的思想也很顺,从计算域、材料、边界条件、初始条件、求解控制依次进行设置,很符合CFD定义的习惯。
其实很多时候我们的模型都很复杂,若采用CAE软件提供的建模工具可能很难满足建模的要求。这时候,我们可以采用三维软件进行模型的建立。对于机械专业的学生来说,可能这个是先天优势,他们自本科就开始3D软件的使用。三维软件有很多,最常使用的有CATIA,UG,PROE,SOLIDWORKS等,当然还远不止这些,用户在选用这些软件进行CAE模型创建时,首先要确认你所使用的软件创建的模型能够被CAE前处理软件识别。有很多种中间格式如igs,stp,x_t等都能被这些软件输出,在这些格式中,一些格式可能兼容性比较差,容易丢失几何信息,如igs格式。我个人的经验:使用x_t格式兼容性比较好,通常只要不是非常复杂的曲面,几何信息都不会丢失。
谈完了几何,现在可以谈前处理软件了。在此之前要先谈一下前处理的概念及范畴。前处理的英文单词也可以翻译成预处理。这就有意思了,为谁预处理?其实是为求解器预处理。大家可能见过饭馆中的厨房工作,一般大厨烧菜的原材料都是经过预处理的,他进行烹调的时候只需要将材料放入锅中,至于洗菜、切肉等工作都是由别人做的。CAE前处理器的功能就在这里。我们的求解器并不能理解现实世界,因此需要使用者将信息提供给它。另外,目前的CAE软件计算都是采用以大化小的方式,将一个完整的模型切割成小的块,然后求解在小块中进行,其实体现了一个微元的思想。因此,前处理器还必须包含了将大的计算区域切割分解成小区域的能力。其次,还必须具备模型定义、边界定义、求解控制定义等功能。
前处理软件很多,大家的心目中首先显现的肯定是各种网格划分软件。不错,网格划分软件就是一种典型的前处理器。网格划分软件真的如天上繁星,数都数不清。不过我们只要使用几个有代表性的就可以了。通常流体计算中最著名的前处理器包括:ICEM CFD,gridgen, TureGrid,gridPro等,固体计算中常用的前处理器有:Hypermesh,ANSA,patran,femap等。当然这些软件存在交叉,比如icem CFD,hypermesh既可以划分固体网格也可以划分流体网格。我用得最多的还是ICEM CFD。虽然这款软件的bug很多,但是它有一些特性很吸引我,比如,我喜欢像一个雕刻师一样的将一个整体块切割成符合几何形状的块,我也喜欢它的多种输出接口,它支持超过200种求解器;另外这款软件的界面要相对其他软件更符合人们的习惯。对于hypermesh,我其实还是比较赞赏的,但是可能是我用不熟练的原因,我始终觉得它的那个用户界面很难受。
说完了前处理器,也该谈一谈求解器了。CFD求解器数量要远多于前处理器及后处理器。但是我们通常听到或见到的只是一些通用求解器,例如CFX, FLUENT, STAR-CD, phonecis等等。这些通用求解器的应用范围很广,而且应用于工业上精度还行。它们各自有各自的优点。比如star-cd做燃烧很强,目前广泛应用于内燃机燃烧模拟,FLUENT在各方面表现比较均衡,在不可压缩领域处于绝对领先地位,而且其动网格技术也别具特色。CFX的用户界面我认为最符合使用者的习惯,而且自从被ansys公司收购后,目前被整合在workbench中,与ansys进行双向流固耦合计算,比较方便。当然,fluent也被ansys收购,遗憾的是,目前尚不能与ansys进行双向流固耦合,只能进行单向耦合计算。除了这些最著名的通用计算软件外,还有比如flow-3d适合自由界面捕捉,在VOF方面有独特造诣,适合于铸造、水利等行业。Numeca是专为叶轮机械设计的,在叶轮机械建模、分网、计算方面独领风骚。Pumlinx 是一款专门针对泵进行计算的软件,在泵设计中有自己的特色。Star-ccm+号称是新一代流体计算软件,沿袭了star-cd的特色,界面上更加友好。Esi-cfd是cfdrc软件被ESI公司收购后换的新名字,其中的fastran在超高音速计算方面特别有优势。当然,流体计算软件远不止上面列举的这些,我们可以根据实际工作需要,选取最适合的软件。
在CFD后处理方面,目前应用最多的可能是tecpolt。
我想原因大概有以下一些:
1)tecplot体积小巧,功能比较强大,一般CFD需要的后处理功能它都具备
2)tecplot比较容易学习,不像一些高端后处理软件如ensigh,难以入门。
3)tecplot拥有的数据接口很多,可以读入非常多的CFD计算数据。其实,CFX的后处理软件CFX-POST也是一款非常好的后处理工具,现在新版本的ANSYS中已经将其改名为CFD-POST。利用CFD-POST我们可以制作出非常专业的后处理图形、曲线、数据、视频等。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删