缩短CFD计算周期的一些方式
CFD计算是一个非常消耗资源的事情,不仅仅是计算资源,还包括大量的时间和人力。在实际的CFD应用当中,人们都希望能够在尽可能短的时间内得到一些可接受的计算结果。那么有哪些方法可以缩短CFD的计算时间?或者换句话说,影响CFD计算时间的因素有哪些?下面就这个话题简单聊聊个人观点。
从几个方面来讲。
1、物理模型
对CFD计算时间影响最大的因素是物理模型。在进行CFD计算之前,非常有必要对问题所包含的物理现象进行深入剖析,尽可能地去除不重要的物理现象;或者将强耦合的物理现象分解为多个弱耦合现象的组合;或者将非常复杂的物理现象分解为多个顺序发生的步骤。总而言之,模型的非线性程度越高,计算时就越难收敛,计算结果的精度也更加难以保证。
然而模型简化极大地依赖于使用者的专业理论水平,这里没办法给出更多的建议。在实际应用过程中,多看看专业理论和专业文献,多请教相关专业的人员是有好处的。物理模型的简化其实与CFD计算并没有太大的关系,但是却最能影响CFD计算时间。
2、计算域
计算域包含空间域和时间域。
空间域指的是创建的几何模型。模型越复杂,后面生成的计算网格可能就会越多,因此在创建几何模型时常常需要进行简化,去除一些对流动特征不重要的几何细节。常见的需要处理的细小几何特征包括:凸台、小孔、圆角、短边、锐角、零碎面等。总之,用于生成网格的几何模型要尽可能的不要有各种零碎面和边。当然,几何特征是否需要清理最终还是取决于其对流动特征的重要程度。
瞬态计算时需要对时间域进行规划。规划内容包括:总的计算时间和时间步长。总时间取决于需求,但也并非完全不能改动。曾经有人问要计算冻土层一年内的温度变化,然后他准备按1年的时间来算,而各种物理模型又限制了时间步长无法取太大,如果真算一年的话时间可就太长了,个人工作站可能要算上好几年。后来将问题简化,取一年中的最热和最冷两个极端温度,取小段时间进行计算,大大地降低了计算时间,而且计算目的也能满足。这问题实际上又回归到物理模型简化上去了。
时间步长的选择受制于物理模型和求解算法。通常情况下,显式算法和分离算法需要更小的时间步长,而隐式算法和耦合算法则可以适当放宽一些,当然这也不完全确定。还有物理模型对时间步长的影响也很大,比如多相流模型中,VOF模型常常比Mixture模型需要更小的时间步长。
3、计算方法
算法对计算时间的影响体现在收敛性和单步计算时间上。有的算法虽然单步计算需要更多的时间,但其能在较短的迭代次数内达到收敛,整体上反而时间上时间更短。比如Fluent中的SIMPLE系列算法和Coupled算法,SIMPLE算法单步计算很快,但收敛性不如Coupled,整体上来说可能Coupled算法反而更节省时间。
不管采用何种计算方法,指定合理可靠的初始值都能够有效地节省计算时间,尤其是在进行稳态计算时。合理的初始值能够使计算更稳定且收敛性更好。当然在瞬态计算时,本身就要求必须指定合理的初始值。
4、计算机硬件
影响计算时间的计算机硬件很多,诸如CPU、内存、硬盘等都会对计算时间造成影响。
CPU无疑是直接影响计算速度的硬件,其影响计算速度(或计算时间)的因素包括:主频和核心数量。一般来说,CPU主频越高,相同的时间周期内就能执行更多的指令,理论上能计算得更快。对于小规模计算问题,优先选择主频高的CPU。而对于大规模计算问题,CPU核心数量的优势就会体现出来,通常CPU核心数越多越有利。但需要注意的是,对于小规模问题,CPU核心越多有可能计算越慢。至于多大规模算大规模,这个没有明确标准,对于个人计算机或工作站来说,1000万网格以上可以当做大规模问题。当然问题规模不只是看网格,也要看物理模型的复杂程度,反正如果你感觉自己的电脑算得贼慢,就可以认为对于你的电脑来说问题规模已经比较大了。
除了CPU,其实内存的影响也挺大的。不过内存主要影响的是能否计算的问题,对计算时间的影响倒不是特别明显。当然前提是内存足够大,不要整的物理内存被耗光了吃虚拟内存,那就能感觉到明显的慢了。
其实硬盘对计算时间的应蛮大的,尤其是在计算时做了大量数据监控且不断地往硬盘中写入数据时。在稳态计算时,有些人喜欢创建一大堆的物理量监测,但其实很多时候是没有必要的。我们在稳态计算时做物理量监测主要是用来评估计算收敛性,而并非是要获取该位置的物理量变化。瞬态计算时需要保存时间点数据,这个得根据自己的需求来设定,有些人还喜欢做物理量监测,想看某些位置的物理量随时间的变化趋势。我个人的观点是,所有与文件读写有关的操作都是极为耗时的,应当尽量避免或降低频率。除此以外,图形交互也是很耗费时间的,比如残差曲线监测,很多时候可以将其输出频率降低。经济宽裕的道友可以考虑用固态硬盘代替机械硬盘。
显卡对计算有帮助么?众说纷纭,我没用过高端的显卡,不太清楚对计算有无影响。不过好的显卡对耍游戏是明显有帮助的。
总而言之,拥有好的硬件资源是加快CFD计算的最直接方式,也是最容易实现的方式,俗话说银子能解决的问题,就尽量不要浪费脑细胞。
页:
[1]