[转帖]对Fluent的认识
仅仅就我接触过得谈谈对fluent的认识,并说说哪些用户适合用,哪些不适合fluent对我来说最麻烦的不在里面的设置,因为我本身解决的就是高速流动可压缩N-S方程,而且本人也是学力学的,诸如边界条件设置等概念还是非常清楚的同时我接触的流场模拟,都不会有很特别的介质,所以设置起来很简单。对我来说,颇费周折的是gambit做图和生成网格,并不是我不会,而是gambit对作图要求的条件很苛刻,也就是说,稍有不甚,就前功尽弃,当然对于计算流场很简单的用户,这不是问题。有时候好几天生成不了的图形,突然就搞定了,逐渐我也总结了一点经验,就是要注意一些小的拐角地方的图形,有时候做布尔运算在图形吻合的地方,容易产生一些小的面最终将导致无法在此生成网格,fluent里面的计算方法是有限体积法,而且我觉得它在计算过程中为了加快收敛速度, 采取了交错网格,这样,计算精度就不会很高。同时由于非结构网格,肯定会导致计算精度的下降,所以我一贯来认为在fluent里面选取复杂的粘性模型和高精度的格式没有任何意义,除非你的网格做的非常好。
而且fluent5.5以前的版本(包括5。5),其物理模型,(比如粘性流体的几个模型)都是预先设定的,所以,对于那些做探索性或者检验新方法而进行的模拟,就不适合用。
同时gambit做网格,对于粘性流体,特别是计算湍流尺度,或者做热流计算来说其网格精度一般是不可能满足的,除非是很小的计算区域。所以,用fluent做的比较复杂一点的流场(除了经典的几个基本流场)其计算所得热流,湍流,以及用雷诺应力模拟的粘性都不可能是准确的,这在物理上和计算方法已经给fluent判了死刑,有时候看到很多这样讨论的文章,觉得大家应该从物理和力学的本质上考虑问题。
但是,fluent往往能计算出量级差不多的结果,我曾经做了一个复杂的飞行器热流计算,高超音速流场,得到的壁面热流,居然在量级上是吻合的,但是,从计算热流需要的壁面网格精度来判断,gambit所做的网格比起壁面网格所满足的尺寸的要大了至少2个数量级,我到现在还不明白fluent是怎么搞的。
综上,我觉得,如果对付老板的一些工程项目,可以用fluent对付过去,但是如果真的做论文,或者需要发表文章,除非是做一些技术性工作,比如优化计算一般用fluent是不适合的。
我感觉fluent做力的计算是很不错的,做流场结构的计算,即使得出一些涡,也不是流场本身性质的反应,做低速流场计算,fluent的优势在于收敛速度快,但是低速流场计算,其大多数的着眼点在于对流场结构的探索,所以计算得到的结果就要好好斟酌一下了,高速流场的模拟中,一般着眼点在于气动力的结果,压力分布以及激波的捕捉,这些fluent做的很不错。对于多相流,旋转机械我没有做过,就不好随便说了希望做过其他方面工作的大侠也总结一下。
对于运用fluent来求解问题,首先要对本身求解的物理模型有充分的了解,只有在这个基础上,才能够选择出正确的,计算模型以及相应的边界条件。
对于fluent计算的方法,确实是采用的有限体积法,不过对基于非结构网格的5.X,我个人觉得其采用的应该是同位网格而不是交错网格,因为非结构网格情况下,交错网格的方法处理起来比同位网格方法要复杂很多。一般见到的非结构网格下FVM(有限体积法)多半还是采用的同位网格而非交错网格,这个问题还可以进一步探讨。对于非结构网格而言,目前能够做到的离散精度也只能是二阶精度了,再高精度目前还没法做到,或者说还没有做到很实用。
对于gambit做网格,确实不是十分的理想,不过这个也不能怪罪gambit,因为非结构网格的生成方法,本身在理论上就有一些瑕疵(姑且这样说吧,不能说是错误,呵呵)所以对于一些十分复杂,而且特殊的流场,可能最终生成的网格会很不理想,这个时候多半需要采取一些其它的迂回的方法,例如将复杂区域分区,分成一些简单的区域,然后在简单区域里面生成网格,最后再组合,而不是将整个复杂区域教给gambit让其一次生成网格。有时在软件做不到的地方,就需要人想法补上了。
对于壁面网格的问题,gambit中提供了生成边界层网格的方法,恩,不知道是否这个功能也同样不能满足所需。gambit中边界层网格只是在壁面法向进行特别的处理。对于壁面切向方向则是和边界层外网格尺度相当的。
对于fluent的适用范围,我很同意stipulation的说法,本身fluent是一个比较成熟的商业软件,换句话说,其适用的数值方法,多半也是目前相对比较成熟的方法之一。因此用fluent来做工程项目确实是很适合的,因为它相对效率较高,而且实际上fluent中有一些对特殊问题的简化处理其目的也是直接针对工程运用的。因此如果是完全的基于fluent做流场分析,然后做论文,这样是不行的。需要强调的是,fluent仅仅是一种CFD的工具,一个相对好用的工具。
对于fluent做高速可压流动问题,我做的不多,不知道stipulation兄对fluent评价怎样,我个人觉得,由于有限体积法本身对于求解有间断(激波)的流动问题就存在一定的误差的,有限体积法实际上应该更加的适合于不可压流动问题,因为这个方法本身的特点就保证了通量的守恒,对于不可压流动,那就是保证了整个流场的质量守恒。就我个人观点而言,对于算激波的问题似乎还是得要实用一些高精度格式,例如NND,TVD,时空守恒格式等。顺便问stipulation一个问题,在算钝头体(导弹)小攻角来流夸音速流动问题时,在计算中是否有激波的振荡现象?(这个好像说有人做出实验了,我们这边有人在计算,可是死活算不出来振荡,他用的是StarCD了)
对于两相流和旋转机械,我插上两句。两相或者多项流动中,fluent也提供了几种可用的方法,例如VOF方法、Cavitation方法、Algebraicslip方法,我对VOF和Cavitation的原理了解稍微多一些,VOF方法称为体积函数法,以两相流动为例,VOF中定义一个基相,两相之间相互是不发生互融等反应的,通过计算每一个时间步下,各个网格单元中的体积函数,从而确定该网格中另外一项的比例,然后通过界面重构或者一些其它的方法来确定此单元网格中两相交界面的位置,从这个意义上说,VOF是属于界面跟踪方法。Cavitation方法则不是这样,此方法不能用
来明确的区分两相的界面等,但是可以用来计算某一的区域内所含的气泡的一个体积密度。 对于旋转机械的流动问题,fluent中提供了几种方法,一种是就是很简单用坐标变换的概念化旋转为静止,然后添加一个惯性力。一种是所谓的多参考坐标系方法,还有就是混合面方法,最后是滑移网格方法。第一种方法自不用说,理论上是精确的,后面三钟方法中,fluent中以滑移网格方法计算的准确度最好,前面两种方法都有很强的工程背景并且是在此基础上简化而来的。但这些方法的运用都有一些前提条件。
fluent公司还有另外的一个工具,MixSim是针对搅拌混合问题的专用CFD软件内置了专用前处理器,可迅速建立搅拌器和混合器的网格及计算模型。
: 有没有用它做旋转机械内部流动的?
同时其实是给商用CFD软件与科研用CFD之间的关系提出了很好的思考问题。其实就我所知道的搞CFD应用研究的人而言,他们很希望在现有的已经成熟的 CFD技术基础上做一些改进,使之满足自己研究问题的需要。为此他们不希望整个程序从头到尾都是自己编,比如N-S方程的求解,其实都是比较固定的。因此很多人都希望商用软件有个很好的接口能让用户自己加入模块,但是这一点
其实真是很难做到,而且到底做到用户能交互的什么程度也很难把握。据握所知,有搞湍流模型研究的人用PHOENICS实现自己的模型,而边界处理以及数值方法等还是原方程的,据说star-CD也是商用软件中提供给用户自主性比较好的,fluent这方面到底如何就不得而知了,看stipulation所说的似乎也还是有限。因此,我觉得现在还是存在这样的问题:既不能依靠商用CFD软件搞研究,但也希望不用反复重复一些繁杂的、没有创造性的工作。
我现在就是用fluent来计算旋转机械的内流场,那就说说旋转机械的流动问题吧。fluent中有几种处理旋转机械流动问题的模型,分别为旋转坐标系模型(Rotating Reference Frame),多参考坐标系模型(MRF),混和平面模型(Mixing Plane),滑移网格模型(Sliding Mesh)。其中,旋转坐标系模型仅适用于不考虑定子影响的流场,其思想就是在视转子为静止的旋转坐标系里进行定常计算,计算中考虑惯性力的影响;多参考坐标系模型(MRF)就是在前一模型的基础上考虑了定子对流场的影响,将流场按不同旋转速度划分成几个流动区域,每个区域里用旋转坐标系进行定常计算,在这些流动区域的交界面上强制流动速度的连续;混和平面模型是另一种用定常方法计算定子与转子相互影响下的流场的模型,它在不同流动区域之间的交界面上进行了一定的周向平均,消除了流动本身的非定常性,这种模型要优于MRF模型;滑移网格模型是采用滑移网格技术来进行流场的非定常计算的模型,用它计算的流场最接近于实际的流动,但这种模型需要耗费巨大的机器资源和时间。
关于对商用CFD软件的看法,我比较赞同zzbb的看法,我们可以利用它里面成熟的计算方法,附加上自己提出的一些模型,这样研究问题,可以省很多的精力和时间,对于CFD的发展也是很有好处的。现在的商用软件提供的接口比较少,软件封装的比较死,这样不利于做科学研究,如果可以像linux的发展模式那样发展CFD,大家公开成熟的CFD代码,然后可以通过自由的研究,添加新的功能,相信CFD发展的会更快,不过如果这样,那商用CFD软件就不好赚钱了
至于商用软件开发源代码的问题,实在是不大可能。由于CFD应用很多领域,特别是还与核、航空、汽车等一些非常重要的工程领域相关,一般来说都属于高科技技术,是不会轻易公开的。比如phoenics早在80年代初就开发完成并应用于工程,直到1991年(1993?)才有1.x的版本正式到中国。所以这也是我想说的目前存在的矛盾。
那么请问一下fluent所提供的用户接口主要可以做些什么方面的工作呢?
: 加入自己的模型当然是广义的,其实很多东西都可以称作模型。CFD里最经典的算是湍流模型了吧。比如需要修改系数或增加项,对涡粘系数重新计算,就是这种情况。此外还有边界条件的修改等问题。算法也可以算。但这些并不一定是商用软件都能提供的。
对于运用fluent来求解问题,首先要对本身求解的物理模型有充分的了解,只有在这个基础上,才能够选择出正确的,计算模型以及相应的边界条件。对于 fluent计算的方法,确实是采用的有限体积法,不过对基于非结构网格的5.X,我个人觉得其采用的应该是同位网格而不是交错网格,因为非结构网格情况下,交错网格的方法处理起来比同位网格方法要复杂很多。一般见到的非结构网格下FVM(有限体积法)多半还是采用的同位网格而非交错网格,这个问题还可以进一步探讨。对于非结构网格而言,目前能够做到的离散精度也只能是二阶精度了,再高精度目前还没法做到,或者说还没有做到很实用。
fluent 由于其商用性,它的思想就是自己做的很通用,而很少给用户接口,特别在一些核心问题上我们实验室如果真的做论文,就用一个fortran的大程序,是一个博士编的专门求解对称的可压缩n-s方程的看懂了,做一个网格,改改边界条件就能算了,如果需要做相应改动,可以直接该源程序一般,作为研究,重点在研究的物理性质,计算方法,流场结构等所以,不会象做项目那样,物理问题很简单,但是条件,边界很复杂,因此,做研究的程序,一般都在内部的计算方法,物理模型上下功夫而做项目,一般对方关心的是一个结果,而不是具体流场的结构性质。所以,用fluent是非常方便的,比如模拟高速可压缩流场n-s方程和欧拉方程模拟的力,力矩的结果,几乎没有差别。
个人观点,仅供参考。据说来自傲雪 <P>这个贴字发的很好,写的很有用,多谢多谢!!!!!!!!!!!</P>
页:
[1]