面向对象的电磁成形有限元程序设计及GPU并行计算
【摘要】:电磁成形技术是改善轻质合金材料难成形性的一种重要技术手段。电磁成形过程涉及热力学、机械、电磁学等多学科交叉,以有限单元法为代表的数值模拟技术能有效的求解这一复杂过程。但电磁成形的数值模拟通常基于商业有限元软件,随着有限元技术的飞速发展,在这些闭源商业软件上添加新单元、新材料和新算法成为一项挑战。同时,在求解大规模复杂的电磁成形过程、探讨电路参数对成形性能的影响时,存在计算效率低、精度差等问题。针对以上问题,本文将面向对象的编程技术应用于电磁成形多物理场耦合的有限元程序设计中,并讨论了电磁成形过程在图形处理器(GPU)上的并行计算方法。本文具体研究工作如下:1.基于面向对象的编程思想搭建支持光滑有限元法的单物理场有限元分析框架。将有限元分析的通用计算流程抽象成输入-输出模块、有限元组件、分析模块和矩阵向量运算模块,组成以上模块的主要类被定义为抽象类,通过其子类来实现具体功能,并采用工厂设计模式在运行时动态的创建子类,实现程序的可扩展性和灵活性。通过分析有限元法与光滑有限元法的共性,建立了表示数值分析方法的Method基类及其派生类,据此建立了表示子域的Sub Domain基类及其派生类,并将单元层次的计算转移到子域层次,从而实现多种数值分析方法的应用。2.基于面向对象的编程技术搭建用于分析电磁成形多物理场耦合的程序框架。为了实现多物理场耦合,建立Problem基类来描述待分析问题,其派生类EMFProblem类表示电磁成形问题,该类由EMModel、SMEModel和SMIModel三个分析类组成,EMFProblem类控制电磁成形数值分析的总体计算流程及各物理场间的数据传递,各分析类完成单个物理场的计算。在多场耦合问题中,当使用同一套网格离散相互交叠的多物理场时,需要读取重复单元,为了避免该问题,本文在整个问题域中建立了若干单元、节点集合,各分析类由这些集合描述。3.基于GPU的电磁成形多物理场耦合的并行计算。针对电磁成形计算过程中各层次级别的循环遍历,为了合理的利用GPU的计算资源和内存资源,介绍了相应的线程映射策略和数据存储格式。在此基础上,给出了矩阵、向量间的并行算法。针对由矩阵和向量组装引起的“竞写”问题,分别采用了原子操作和将子域级别的并行组装转换成自由度级别的并行计算策略。最后采用无矩阵组装的雅克比预处理共轭梯度法(J-PCG)求解线性方程组。数值算例表明,GPU并行计算能显著提高电磁成形问题的计算效率。