GPU如何加速流体仿真分析 附GPU加速的SPH方法在溢洪道水流模拟中的应用.pdf
优秀的计算性能和尖端的数值方法的组合,在更短的时间内研窕复杂的流体
问题,将为未来CFD领域高效而主流的方式。
01流体仿真发展趋势与计算需求
计算流体仿真力学,英文全称ComputationalFluidDynamics,缩写为CFD,
兴起于近50年来,是一门相对年轻的学科。它是数值数学和计算机科学结合的
产物,通过空间离散和数值求解的思路,对流体力学的各类问题进行数值实验、
模拟和分析研究,以解决学习、科研或者工程设计中的问题。
作为一个强大的计算工具,CFD在产品研发的诸多环节发挥着重要作用,
不仅具有低木,还可以捕捉到实验中难以采集的信息,此外,还能提供可控的
环境因素和良好的复现性。从CFD的发展趋势来看,一方面,CFD工具的发展
呈现为准确度、自动化、易用性、应用性能的持续提升;另一方面,CFD也与
热学、电化学、声学等学科不断融合发展,CFD工具变得更加强大。
面对一个具体的工程问题,CFD工程师在应用CFD工具进行仿真分析时的
基本流程,通常可以总结为五步:前处理、网格划分、边界条件加载、求解计算
和后处理。但如何去平衡计算量(网格数量)和计算时间,对于很多CFD工程
师都是个挑战。
在实际解决问题的过程中,CFD工程师除了希望能选择一款称手的软件工
具外,当然也希望计算机的主频越高越好,核心越多越好。但是,核心与计算速
度并非线性关系,不会因为核心等比例增长。若想在单台电脑上发挥极限运算能
力,还需要使用GPU加速,因为GPU加速通过协调处理器并行运算,能够极大
地提升计算能力,尤其适合多个项目同时进行,这样获得的时间收益较大。
02流体仿真为什么要选择GPU?
从1970年到今天,CFD始终处理更高精确度、更复杂的几何结构方发
展。但现阶段,CFD软件应用于复杂流体问题方面还有待拓展,受到的阻碍主
要源自以下三个方面:
隐式算法的高内存要求些CFD分析工程师总是希望得到完美的残差
收敛曲线,以证明计算结果的可靠性,因此,他们会首选隐式算法,这意味着高
内存•的需求;
CFD结果对网格的强依赖性一一网格的合理设计和高质量生成是CFD计算
的前提条件,是影响CFD计算结果的最主要的决定性因素之一,是CFD工作中
人工工作量最大的部分,也是制约CFD工作效率的瓶颈问题之一。即使在CFD
高度发达的国家,网格生成仍占整个CFD计算任务全部人力时间的70%〜80%。
工程流体仿真问题复杂多变一一在流体力学模拟中,由于流体力学模拟是个
复杂的过程,存在极端变形、自由液面以及物质运动交界面等问题,在应用网格
数值模拟时,会出现网格扭曲导致计算不收敛或者产生很大的计算误差,需要重
新模拟,这使得计算成本大大增加。
从CFD的发展历程看,CFD的每一步发展,都离不开计算机速度和内存的
数量级提升。自1999年NIDIA发布Geforce256图形处理芯片以来,NIDIA
的显卡芯片就开始以GPU称呼,最早是辅助CPU进行图形图像的处理,将降低
CPU的运算压力,后来随着GPU性能的不断提升,其应用场景也不断拓展。近
年来,随着移动计算、工业智能化的发展,GPU开始用于手机、平板电脑到无
人机和机器人等平台的应用程序的加速,世界各地实验室、高校、企业以及科研
院的研究人员纷纷采用GPU获得高性能计算支持,在工业域,GPU也普遍用
于仿真计算加速,尤