CFD属于CAE技术中比较难的一款软件,主要原因就是流体的特点决定了,因为相比于固体,流体太容易变形了,分子之间的距离比较大。所以,导致了一系列的问题。常常的结果是,忙了半天或者很长,根本得不到结果,所以在CFD的学习中,更加强调方法的学习。
本文将结合我自己的亲身经历,从一个CFD的小白,到今天有一定CFD使用经验的“职场小达人”。重点介绍自己在学习CFD过程中,走了那些弯路。毕竟,教训比经验更深刻!希望您在学习CFD的过程中,少走一些弯路,少花一些时间。
毋庸置疑,未来试验鉴定活动将极大依靠建模和仿真工具,特别是在航天航空和深海工程等领域。
惠老师提供的案例图一
一、本科阶段-我初识CFD
我第一次接触CFD源于大三的传热学,因为当时有一章是“导热问题的数值解法”,当时也没有什么感觉,只是觉得这一块需要采用数学,而且有编程类的课程大作业。由于当时恰好学习了matlab,fortran,并自学通过了C语言二级考试,因此出于学习编程语言的目的,就顺手练习了传热计算的相关算例,“一举两得”。通过这些学习,其实对于CFD软件中的一些离散方法和计算方法有了初步的认识,例如迭代计算,向前向后差分等。毕竟,做任何事情,理解都是第一位的,死记硬背的东西长久来看,并不实用。
等到大四做毕业设计(2010年),鬼使神差的我选了制冷所一位大牛的《透平膨胀机数值模拟的课题》,便第一次正式接触了CFD,接触了fluent等软件。
当时在做膨胀机叶片时,选择的作图工具是Inventor,软件划分工具用的gambit,CFD软件用的fluent 6.3.26.这几款软件估计部分人接触的不多。说实在,用起来的确很费力。有点后悔的是,当初选修课为什么没有多学一些作图类软件(大学还是要多学点东西,尤其是工具类的东西)。
当时java刚刚在高校中作为选修课刚刚开始,大数据,云计算还都没有进入大家的视野,人工智能也没有那么热。所以,现在想起来,在大学多学几门课程还是不错的。结果证明,很多学机械,甚至学热动的都去了BAT,现在薪水那叫一个高呀。
当时记忆中,采用二维的gambit和fluent做了流道截面的模拟。涉及到的流道相变问题,也没有解决,还好老师没有为难自己,这样就匆匆结束了自己的本科生涯。
但总的感觉,还是gambit作图还可以,可以通过选择几个点实现画曲线曲面的功能(有些时候比一些专业的建模软件都好用),界面有些丑陋。至于workbench上所具有的数据更新,参数化等功能,那几乎是没有的。gambit目前已经被ansys公司淘汰掉,也基本不会推出新版本以及进行技术培训等活动。
二维fluent计算也没有那么难收敛。但是很难理解如何选择simple还是simpler,对于松弛因子的选择也比较难把握。毕竟是一个初学者,首先能获得一个差不多的结果,而不是发散结果是第一位的。
不过在这阶段,也得到的师兄的一些指导,虽然很有限也不是很系统,但总比一个人摸索要强。
现在想起来,CFD对经验的要求还是挺高的,遇到问题,找师兄师姐准没有错。
因为这里面即涉及软件操作,也设计专业知识的理解。同样的一个CFD文档说明,可能有经验的人看了知道是什么原因,但是初学者来说很难理解。
从另外一个角度讲,一个好的CFD培训一定是即有老师理论和上机实践操作,也有学员要上机操作,否则培训效果比较差,试想想,上电脑课哪能不带电脑呀!
惠老师提供的案例图二
二、硕士阶段-我学习的CFD
由于某些原因吧,大四毕业我就去了导师那里进行科研,那时候就基本确定了硕士2年半时间的研究课题是CFD仿真计算。
我们课题组分为三个方向,一个是流体CFD组,主要采用的就是fluent和cfx,当时貌似还没有用workbench,大家普遍用的就是单独版的fluent和cfx。一个是流体测量组,主要做一些速度场测量,压力场测量,风洞水洞等,以实现CFD和测量的对比吧。事实证明,仿真和实验相互对比验证,在研究流体中扮演着重要的角色。另外一个组是做强度的,主要是疲劳,裂纹,用的是abaqus。所以硕士期间也遇到了一些流固耦合的项目和问题。
刚去导师那里,导师便给了我一个课题,需要研究一个潜水艇喷水中冷热水混合问题。整个问题如果不考虑VOF问题,只是考虑喷水问题,这个课题不是很难,纯粹的一个进出口流动问题。我当时继续了自己在本科期间的gambit和fluent,结果证明,这么简单的一个计算,最终我用了几乎3个月的时间也没有搞定。等到下一年我导师让一个师弟做的时候,几乎用了很短时间便解决了。
究其原因,首先是缺乏引路人。自己当时拿到课题,也就是一根筋地开始做几何,做网格,计算,而没有分析CFD的策略问题,看看师兄们如何进行CFD计算,看看论坛上,QQ群里大家怎么进行CFD计算,毕竟这是自己的硕士课题。
其次,还是CFD的方法和技巧掌握的不够。对于初学者而言,"复杂问题简单化"永远都是一个永恒的话题,比如上文提到的潜水艇,那对于初学者来说,完全可以建立一个简化的潜水艇,或者干脆用一个圆柱代替潜水艇。要研究冷热水的混合,那完全可以先不考虑温度场,而只计算流场,继而在速度场准确的基础上,获得温度场。
另外,对于一个初学者来说,一定要从二维计算出发,即使原始模型是三维,也都要从简单的入手,这和我们高考答题的顺序是一致的——先易后难嘛。试想想,对于一个初学者而言,采用fluent三维计算,如果很难画结构网格,不说得到准确结果了,能否得到计算结果都是个巨大挑战。
还有一个很重要的问题,就是关于初场的问题。fluent很多情况下的发散,都是因为给的初场不合适。一个好的初场不仅可以加快收敛速度,甚至可以解决难收敛,不收敛问题。目前的初场给定方法,fluent中有恒定初场给定法和混合初始化,而CFX的初始化,则可以通过表达式及其他方式,实现fluent中patch的功能,即相当于UDF初始化的功能。
等到研一时,上了计算流体力学的课程,每次上课都是在晚上,听课效率不高,老师水平呢,也只能说一般,听得迷迷糊糊,只是对一些基本理论有了些了解,对实际操作帮助也不是很大。看来,只上一个CFD的理论课程真的是远远不够的,最起码也要上机操作下。
事实证明,只有在实践中才能对相关理论进行理解,否则学了那些理论几乎等同于没有上。因为对一个初学者来说那些概念很难理解。CFD的理论本身就很难理解,加上没有软件支持,可以说更是难上加难。所以,目前在CFD/CAE领域内,有一个很重要的方向就是做二次开发,即作出一款“傻瓜式”的软件来,让更多业界人士收益,使他们能够放手去做产品与设计相关一些事情来。所以,不得不说,CAE真的是一个专业人士做的事情,而不是像CAD或者UG一样大众都能够很好接受的。
研究生期间,很长时间都是做湍流和绕流的研究。对于湍流模型还做过一个专业的小组报告。不过这段时间,导师几乎每周都会做seminar(汇报)。很好锻炼了自己做ppt和演讲的能力。不过现在看起来,那些湍流模型似乎在企业工作中用处并不大。湍流理论中的Y+,边界层等都是在该阶段学到的。
点击完整阅读全文
我从“校园小白”到仿真“职场小达人”的CFD学习史_