论文部分内容阅读
现代工业的不断发展,使CFD技术的应用领域越发广泛,已从单纯的流体分析延伸到跨行业,多功能的流体仿真工具,真正地进入工程领域来求解实际的问题。同时,随着计算机技术的不断提高,国内外CFD仿真软件也大量涌现。利用CFD仿真软件不仅可以方便的对流场进行模拟仿真,节省大量的人力、物力和时间,还可以对流体仿真结果进行分析,为实验提供有效的指导。现如今,由于CFD仿真软件应用范围不断扩大,工业产品设计的需求急剧膨胀,现有串行化CFD计算流程无论在计算效率上还是计算时间上都已经无法满足要求,因此国内外正在深入研究可行的、高效的CFD并行化技术,CFD并行化技术也已成为国内外备受关注的热点和前沿课题。本文从CFD并行化方法出发,运用区域分解法思想,将整个流体计算的大问题分解为若干个便于求解的小问题,从而缩小计算规模,并将传统的串行化SIMPLER算法改进为适合并行机下执行的并行化SIMPLER算法。其具体思想如下,首先,采用结构化同位网格对控制方程组的空间进行离散,同时选用区域分解法中的部分覆盖网格分区方式,根据流场计算区域的几何特点和并行机下的CPU数量对三维流体计算区域进行划分,将整个流体计算区域划分为若干个形状规则的子区域,称之为子场。然后将各个子场的计算任务分别映射到并行机中的各个计算节点上,即在每一个计算节点上分别执行求解流体的SIMPLER算法,但在每一个时步开始计算之前,各个计算节点要根据事先定义好的耦合规则与其相邻的计算节点进行数据交换,从而保证解的收敛性。最后,将各计算节点上的计算结果整合到一起实现原问题的求解。对于分区造成的相邻区域重叠部分需要进行特殊处理,以避免每个子场内重叠部分的重复计算,导致最后计算结果的错误。在算法实现方面,本文运用OpenMP技术与面向对象分析方法,将流体计算部分抽象成一个基本类,类中包括流体的物理参数和算法中的计算函数。将面向对象方法与分区并行计算思想相结合,把各子场当作数据交换和状态改变的独立对象,使用OpenMP技术创建多个线程,每一个线程负责操作一个独立的流体对象,完成该子场的所有计算任务。之后结合软件的自身特点运用动态链接库技术将CFD计算部分进行模块化设计,并实现了软件从32位操作平台到64位操作平台的转换。通过与原有的CFD仿真软件及商品软件FLUENT进行对比测试,验证了所研发模块的可行性和有效性。本文系统的完成了并行CFD仿真计算模块的研发,并在理解项目组已有的DEM仿真软件的结构后,将并行CFD仿真计算模块嵌入到DEM仿真软件中,形成了DEM-CFD耦合仿真软件,并对耦合后的仿真软件进行了一些改进。主要包括添加流体与非球颗粒耦合计算部分,添加流体与多属性非球颗粒耦合计算部分。同时在软件原有离散格式的基础上,添加了一种新的、无条件稳定的离散格式——混合格式。混合格式与二阶迎风格式、QUICK格式相比,其计算效率高,并且是无条件稳定的,所以总能产生物理上比较真实的解。由于软件中采用Gauss-Seidel迭代法对流体控制方程进行求解,而直接采用Gauss-Seidel迭代法求解往往速度很慢,为了加快迭代求解速度,采用红黑节点策略将原有的串行解法改进为多线程并行解法,有效的加快了求解速度,减少了仿真计算时间。综上所述,通过运用区域分解法将传统SIMPLER算法改进为并行SIMPLER算法,并采用多线程并行化技术及动态链接库实现后,经测试表明,仿真效果与使用串行SIMPLER算法的CFD软件趋势相同,但仿真速度明显加快,时间有所缩少。最后通过对DEM-CFD耦合仿真软件的改进,扩展了软件的应用范围,获得了更好的用户体验。