上次说到了基础课程的学习对于CFD使用者的重要性。我们现在撇开那些理论不谈,只谈一下CFD软件的作用。
我们知道,CFD的一般过程都包含以下几步:
(1)物理现象的提出及数学物理模型的建立。这一步通常都比较难,需要考虑的问题很多。由于现实世界的复杂性,我们必须对所关注的问题进行简化。如何对问题进行合理的简化以获得满足需要的解,这需要模型建立者具有深厚的物理数学功底以及对物理现象深刻的理解。
(2)模型的离散。对所提出的数学模型进行数值离散,获得线性方程组。这个过程对于软件使用者来讲要求并不严格,但是对于自己编程计算的人员要求非常高。实际上包含有两步:网格生成及离散方程的形成。网格生成算法,尤其是非结构网格,算法非常复杂,更多的人选择的是采用通用网格生成软件生成网格。而离散方程的形成,主要涉及到数值格式,这个在CFD软件中主要是以用户选择的方式出现。
(3)离散方程的计算求解。在CFD软件中也是以用户选择的方式出现,用户可干预的地方相当的少。这些都是CFD的核心所在,通用计算软件不太可能将算法暴露给用户。
(4)计算结果显示。这一步其实非常重要,而且也与使用者的理论基础联系比较大。我们采用CFD对某一物理现象进行求解,必须在心中有一个目标:我们要计算什么?所要计算的变量是否可以通过CFD软件直接得到?如果不能直接得到,是否可以采用其他手段间接得到?所计算的结果是否合理?误差是否在可允许的范围内?等等。
所谓“工欲善其事,必先利其器”,计算机的确是人类历史上最伟大的发明,而作为计算机的核心,计算机软件在人类的生产生活中发挥着越来越重要的作用。经常看到论坛里有人说,用软件进行数值模拟是没有前途的,必须采用自己编程才有发展前途。我觉得这是一种不负责任的说法。我们先不谈到底哪种方式更有前途,但是将CFD软件作为一件工具应当是众所公认的。
打个比方,一个身体强壮的熟悉木材使用方式的匠人手拿自己制造的斧子,一个手拿电锯的小孩童,如果他们比赛砍树,到底谁的效率更高?答案自然是毫无疑问的。为什么会出现这种情况呢?自然是先进工具的作用。好,那么我再问一个问题,如果你是木匠,你会选用谁砍下的木材呢?答案自然熟悉木材性能的工匠砍下的,因为它更符合使用者的需要。好了,我所说的持斧子的匠人就是拥有深厚CFD功底的大师,而手拿电锯的小孩童其实就是那些不懂CFD内层工作机理,只会使用先进CFD软件的人。你属于哪一种呢?
CFD软件尤其是那些通用CFD软件的开发过程是很艰难的,至今国内还没有一款自己开发的CFD软件。主要原因还是在于真正的CFD大师的缺乏。因为CFD软件其实是包括了整个CFD计算的全过程,包括流体模型、数值算法,甚至还包含计算机图形学的理论,绝对不是靠个人力量能够完成的。那些鼓吹只有知己编程才有前途的人们,其实并没有意识到CFD软件开发的难度。当然他们可能指的是一些小型的专用程序,这个稍后再谈。
在前面说到了CFD内功修炼的重要性,当然不是说CFD软件就可以抛弃不用,不是说利用软件就落入下乘。如果给木匠一把趁手的电锯,那么他们砍起树来必定是又快又好。工作效率是建立在对所使用的工具的深入了解基础上。就像让小孩子拿电锯去砍树,他可能就树砍得无法使用,更有可能弄伤自己。好的计算结果能够用于设计,而一个错误的仿真计算结果则可能会导致灾难。对软件使用越熟悉,则一些常见的操作上的错误则越小,获得优良结果的几率越高。
好了,前面说了那么多,无非是说CFD软件的重要性。很多人可能会说,我们知道软件很有用,毕业设计就得使用软件进行计算呢。但是我学了好几个月都还没有入门,你能说说这些软件怎样学才能快速的入门么?是的,CFD软件入门比较困难,因为牵扯的理论太多,当然我们也可以取巧快速入门。注意我说的是入门,不是精通。我先假设你对CFD和流体一无所知,以下是我的一些建议:
(1)首先确认你的问题可以采用CFD软件进行解决。某天有位网友问我,利用FLUENT如何获得固体的变形位移?当时我被他问住了,因为我学了那么久的有限体积法,从未看到哪本书哪份资料有谈到利用CFD进行固体位移的计算,我只看到利用CFD仅能求解的物理量包括压力、速度、温度、组分、密度等流体力学变量。如果要用流体软件获得固体变形或者内部应力分布,则需要借助于固体力学计算软件。
(2)在确信利用CFD软件可以解决自己的问题后,要选择合适的CFD软件。目前市场上的CFD软件很多,通用的和专用的都很多。根据自己的预算选择适合自己的,通用软件使用范围比较广,但是对于某一类专门的问题可能深度不够,价格也较高;而专用软件则只针对某一类问题,通常操作简单也更专业,但是通用性差,价格相对便宜。不同的软件的强项或弱势通常都需要进行调查。
(3)拿到软件后,就该进入软件的学习环节了。通常软件的学习对于一个新手来说是一件比较难的事情。但是只要有耐心和毅力,还是不难的。首先你需要拿到所使用软件的使用说明书,也就是帮助文档。我习惯于将软件的帮助文档称为使用说明书。因为只有软件的文档才是真正教使用者如何操作软件的,当然也有一些帮助文档还附带有软件的内层理论。至于一些国人编著的关于CFD软件使用的书籍,英文基础差的也可以看一看,但在看的过程中请不要迷信书,目前中文教材中错误比较多。
(4)搜集实例进行软件练习。这些实例可以是帮助文档中的实例,也可以是中文教材中的实例,可以是论坛中别人做好的例子,反正要做,多做实例。例子做多了自然对软件的功能有一个客观的了解。首先做实例的时候不要太过于去了解所设置的选项的意义,因为对于一个基础很差的人来讲,去了解哪些选项的物理意义是很困难很浪费时间的。在做完大量实例之后,就可以结合专业进行思考,考虑那些选项所包含的物理数学意义,然后再撇开教程自己做一遍例子。
(5)在做完大量的实例后,可以继续系统的看软件的帮助文档。不要被大量的英文所吓倒,从用户帮助到理论帮助,系统的看一遍,一定会有很大收获。
(6)在前面5步走完后,怎么也算是软件使用的高手了,一些软件操作上的问题也可以自己解决了。再纠缠在软件上基本上可提高的空间很小了,这时候就需要抛开软件去进行更深的CFD理论学习。
理论很重要,工具也很重要,如果想把软件学到精通,没有深厚的理论功底是不可能的!
将理论比作内功,将软件比作招式,只有深厚的内功配合精妙的招式,才能发挥最强大的战斗力。鸠摩智利用道家的小无相功也能催动佛家的少林七十二绝技,证明了拥有深厚内功的重要性;令狐冲只用精妙招式就能轻松击败梅庄江南四友,可见拥有精妙的招式往往也能发挥意想不到的好处。但是,唯有将两者合二为一,才能成就一代宗师。
-------------------无聊闲谈,未完待续-------------------------