面向自主编制高性能求解器的有限元方法课程教学方法初探

作者: 陈顺华 李晓天 杜现平

面向自主编制高性能求解器的有限元方法课程教学方法初探0

[摘 要] 作为一种强大的数值计算方法,有限元方法是工科研究生开展科学研究和解决实际工程问题的必备工具之一。然而,当前有限元方法课程教学实践的开展通常与商业软件相结合,不利于学生深入理解和掌握理论知识。鉴于此,结合中山大学海洋工程与技术学院拥有的“海路通”高性能计算集群,开展面向自主编制高性能求解器的有限元方法教学方法探索。针对船舶与海洋工程领域经典工程案例,在有限元理论知识授课的基础上,引导学生结合自身编程基础编制适配国产超算的高性能有限元求解器,提高动手以及解决实际工程问题的能力,为国家海洋事业培养优秀人才。

[关键词] 有限元方法;自主编制求解器;教学探索;高性能计算集群

[基金项目] 2023年度中山大学教学质量工程建设项目资助课题“面向求解器自主研发的‘有限元方法及工程应用’课程教学方法初探”(76170-12220011)

[作者简介] 陈顺华(1987—),男,福建上杭人,博士,中山大学海洋工程与技术学院副教授,硕士生导师,主要从事有限元方法理论研究;李晓天(1989—),男,河南南阳人,博士,中山大学海洋工程与技术学院副教授,硕士生导师,主要从事有限元方法理论研究;杜现平(1989—),男,山东临沂人,博士,中山大学海洋工程与技术学院副教授,硕士生导师,主要从事有限元方法理论研究。

[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2025)11-0001-04 [收稿日期] 2024-02-04

引言

有限元方法是一种用来近似求解力学中带有特定边界条件偏微分方程问题的数值计算方法。在该方法诞生以前,工程问题通常采用解析方法进行求解,不仅需要有较好的数学理论支撑,而且要求对求解的问题进行若干理想化假设。此外,解析方法在解决较为复杂的工程问题时较难得到精确的解析解。相比于解析方法,有限元方法将复杂结构整体离散成有限数量的单元,将连续的无限自由度问题的求解转化为离散的有限自由度问题,极大地降低了复杂工程问题的求解难度,具有较高的计算精度。自20世纪60年代以来,随着近代计算机的快速发展,有限元方法在理论以及工程应用方面得到了飞快的发展,目前已成为科学研究和解决实际工程问题的重要研究手段及必备工具。例如,在汽车工程领域,有限元方法是车辆碰撞安全的主要研究手段之一[1];在船舶与海洋工程领域,有限元方法常用于分析船体与海洋工程结构的力学性能[2-3]。有限元理论结合编程语言编制而成的求解器通常称为CAE(computer aided engineering)软件。目前常见的有限元商业软件包括ABAQUS、LS-DYNA、ANSYS等。为适应大规模数值模拟的需求,面向超算系统的高性能有限元软件研发成为重要发展趋势。

近年来,有限元方法课程已受到越来越多工科专业的青睐,授课方式也逐渐发展为理论与软件使用相结合。然而,该授课方式在软件方面更侧重于有限元商业软件的操作使用,不利于学生深入理解有限元理论知识。鉴于此,为响应新工科建设,基于笔者所在单位拥有的“海路通”高性能计算集群这一先进硬件平台,结合船舶与海洋工程经典工程问题,在有限元理论知识授课基础上,积极探索面向学生自主编制求解器的有限元课程教学方法,取得了较好的效果。

一、有限元方法教学现状

近年来,随着计算机硬件水平的快速提升,有限元方法在高校教学中受到越来越多的重视。特别是对于工科研究生而言,有限元方法成为很多高校的研究生必修课。有限元方法课程教学方式逐渐从纯理论教学向理论与实践相结合的方式转变。在理论与实践相结合的授课方式方面,学者们进行了较多有益的探索。例如,王文静[4]在理论课的基础上增加了有限元商业软件ANSYS的上机教学,编写了相应的上机指南;王孝国等[5]针对应用型大学的特点,提出通过计算机试验室代替传统教学课堂,重点结合ANSYS软件进行有限元方法的课程授课思路;罗铭聪等[6]强调须结合ANSYS商业软件,强化有限元教学中课程理论与上机实践的紧密度,以达到更好的授课效果;苏芳等[7]采用理论授课、ANSYS上机教学、少量编程实践等多种教学手段,提升了有限元方法的课程教学效果和质量;燕鑫等[8]在“机械设计”课程教学与有限元软件上机实践方面进行了有益的尝试,通过引入国产有限元软件LiToSim,对典型机械零部件进行力学分析,加深了学生对机械设计理论知识的理解。除了以上以商业软件操作使用作为有限元方法课程实践主要手段之外,近年来学者们也开始尝试将编程实践融入有限元教学中。王磊等[9]在航空航天结构有限元方法教学中将编程作为重要的实践方式,让学生编制有限元求解器解决简单的十杆桁架结构问题以及若干航空航天工程实例;谭晓慧等[10]着重强调了在有限元方法教学中如何通过“以点带面,点面结合”的教学模式和教学方法培养学生的编程能力。

近年来,尽管学者们在有限元方法理论与实践相结合的教学方法改革方面进行了较多有益的尝试,但是当前有限元方法教学仍然存在着学生学习热情不高、与专业联系不够紧密、对学生的科学研究帮助不大等问题。本文针对船舶与海洋工程一级学科,紧密结合所在单位拥有的高性能计算机集群,以船舶与海洋工程典型工程问题为切入点,通过引导学生自主编制高性能有限元求解器,实现大规模数值模拟,从而提升学生学习有限元方法的热情,提高其动手和创新能力。

二、面向自主编制高性能求解器的有限元方法课程教学探索

为实现自主编制高性能求解器的目的,有限元方法课程教学不仅须在理论教学方面下功夫夯实学生的理论基础,而且须在编程实践方面努力提高学生的动手能力。因此,本文所提出的有限元方法课程教学主要从理论教学与编程实践两个环节开展,两个教学环节相辅相成、缺一不可。一方面,理论教学可以让学生掌握有限元方法的理论知识,为编程实践的顺利开展奠定理论基础;另一方面,编程实践可以加深学生对理论知识的理解和运用,巩固理论教学的成果。

(一)理论教学

理论教学主要在课堂上进行,主要讲授有限元方法的背景、基本原理、有限单元类型、接触算法等。在背景介绍方面,将从“有限元是什么?”“为什么学有限元?”“如何发展而来?”“学什么内容?”的脉络阐述有限元方法的基本概念、具体工程应用、发展历程、课程内容等知识点。特别地,将结合我国首艘国产航母山东舰、国内首台自主研发的深远海浮式风机“扶摇”号、我国最大综合科考实习船“中山大学”号等大国重器,重点阐述有限元方法在高端船舶与海洋工程装备研发中发挥的重要作用,从而强化学生对专业的认可度,激励学生投身国家海洋强国建设。另外,向学生重点阐述CAE软件的“卡脖子”问题以及当前国家对CAE软件研发的高度重视,从而激发学生科技报国的热情,阐明在后续编程实践环节中进行自主编制有限元求解器的重要性。在有限元的基本原理方面,先简要介绍弹性力学及断裂损伤力学的基本理论,给出有限元方法要近似求解的偏微分控制方程,进而详细讲解有限元方法如何通过将控制方程强形式转化为弱形式进行近似求解,以及有限元离散、形函数、静力学/动力学问题求解思路等重要知识点,使学生对有限元方法的基础理论有个整体的认识。以此为基础,理论教学还将详细介绍结构空间离散常用的有限元单元,讲解各种单元的适用范围及求解过程,单元类型主要包括杆单元、梁单元、桁架单元、三角形单元、四边形单元、四面体单元、六面体单元、板壳单元等。在有限元接触算法方面,将重点讲解主从接触、自接触、Mortar接触等算法的基本原理以及适用范围。此外,为培养学生的国际化研究视野,理论教学将简要介绍基于有限元方法的前沿研究成果,包括基于有限元方法的裂纹模型(扩展有限元方法、内聚力模型、相场方法等)、网格/无网格耦合方法等。在理论教学中,将结合典型习题加深学生对有限元基本求解过程的理解,方便后续编程实践环节的顺利开展。例如,可以让学生动手计算使用若干三角形或四边形单元求解平面矩形薄板结构在外载荷作用下的变形。由于该习题的计算量比较大,因此通过此类训练,能让学生认识到计算机在大规模数值模拟中的重要性。

(二)编程实践

在理论教学的基础上,依托作者所在单位拥有的“海路通”高性能计算集群,进一步开展以自主编制高性能求解器为目标的编程实践,通过课堂和课后两部分完成。“海路通”高性能计算集群(见图1)具有强大的计算能力,双精度总算力为720 TFLOPS,总物理核心数高达9 400核,并配备了20张高性能A100 GPU加速卡。该计算集群不仅是数值科学研究的创新平台,而且是高校培养计算科学人才的重要育人基地。

在课堂上,重点介绍编制求解器的相关理论知识,主要包括求解器研发途径、求解器主要构成、编程语言、高速并行等。其中,关于求解器研发途径,将详细讲解完全自主研发、基于开源代码研发、基于商业软件二次开发等主要方式,介绍各自的优缺点,阐明自主编制求解器对于深入理解有限元理论、营造良好的有限元软件研发生态等方面的重要性。对于自主编制求解器,结合若干开源有限元软件(如Code-Aster、deal.Ⅱ等),重点讲解求解器的一般构成以及各子系统的功能,求解器一般包括数据读入系统、求解系统和数据输出系统。特别地,将补充与自主编制的求解器相对应的开源前/后处理软件(比如LS-Prepost和Paraview),使学生在编制求解器时更方便地进行网格划分和计算结果的可视化处理。关于编程语言,将侧重介绍当前常见的Fortran、C/C++、Matlab、Python等语言以及各语言在科学计算方面的优缺点。最后,结合笔者所在单位拥有的“海路通”高性能计算集群,详细阐述如何基于CPU/GPU对所编制的求解器进行高速并行,侧重介绍MPI、OpenMP、CUDA等并行技术及架构。

对于课后实践,将学生分成3~5人为一组的若干组,每组布置2个课后作业,并要求每组成员通过协作分工共同完成布置的任务。其中第一个作业与理论教学中所布置的习题相对应,针对同样的题目要求学生进行网格收敛性测试。对于该作业,学生通过开发具备CPU/GPU并行功能的求解器,可以快速求解包含成千上万个有限单元的模型。因此,通过第一个作业,学生可以更深刻地感受到高性能有限元求解器的重要性,因为相对于笔算而言,有限元求解器在求解工程问题方面具有极大的效率优势。第二个作业为开放式选题,各小组可以根据成员的研究方向确定感兴趣的工程问题,以激发学生对有限元方法的学习热情,使其做到学以致用。然而,课程规定第二个作业在求解具体工程问题时,一般要求模型的计算规模较大,以充分发挥“海路通”高性能计算集群在育人方面的作用。通过引导学生自主编制高性能有限元求解器,不仅加深了学生对有限元知识点的理解,而且能从高校的层面培育自主研发软件的土壤和氛围,培养计算力学与软件研发方面的人才,助力国家对CAE软件“卡脖子”问题的突破。

结语

针对有限元方法教学实践方式不利于学生深入理解和掌握理论知识的现状,本文立足于船舶与海洋工程一级学科,结合“海路通”高性能计算集群,提出面向自主编制高性能求解器的有限元方法教学方法。在理论教学的基础上,通过编程实践环节,加深学生对理论知识的理解和运用,巩固理论教学成果。通过此教学方法,可以培养学生科技报国的热情,从高校的层面培育自主研发软件的土壤,助力国家对CAE软件“卡脖子”问题的突破。

参考文献

[1]刘唐志,张翔,刘通,等.基于ABAQUS有限元仿真的车辆碰撞护栏动力响应[J].科学技术与工程,2023,23(25):

10997-11005.

[2]赵杰,赵丁辉,熊伟,等.不同扶正方案下的破损舱段强度有限元分析[J].船舶力学,2020,24(5):618-625.

[3]陆红干,郭刚,童琛.豪华邮轮全船有限元分析[J].船舶设计通讯,2020(1):32-38.

经典小说推荐

杂志订阅