顺应社会发展对人才知识结构要求的计算流体力学教学改革与实践
来源:用户上传
作者:
摘 要:随着数值新方法的不断涌现与计算机技术的飞速发展,“计算流体力学/传热学”研究生课程不能仅局限于理论讲授。本文基于笔者承担的该课程教学工作,浅谈了针对非流体力学专业学生的“计算流体力学/传热学”课程的教学心得与体会,并结合社会快速发展对人才知识结构的需求,在教学内容、教学实践及考核形式上提出了一些改革想法与建议,旨在提高该课程的实用性,使学生能够快速地学以致用,并紧跟时代发展前沿。
关键词:计算流体力学/传热学(CFD/CHT) 非流体力学专业 知识结构 时代发展
一、引言
流动传热数值模拟技术是航空航天、能源动力等诸多领域解决尖端难题不可或缺的手段,是科学研究、技术开发等高端人才知识结构中不可或缺的部分。同时,随着互联网大数据时代的到来,高性能计算迅猛发展,有关流动传热数值模拟的数据规模、计算规模越来越大,已成为各国高性能计算最主要的应用领域之一。计算流体力学/传热学,简称CFD/CHT(Computational Fluid Dynamics/ Heat Transfer),是一门工程应用性极强的工科研究生基础课程,是流动、传热数值仿真设计的理论基础。该课程涉及面广,内容可概括为五个M和一个A。即Machine(计算机),Mesh(网格),Method(方法),Mechanism(机理),Mapping(流动显示)和Application(应用)。这些内容对于非流体力学专业学生较为生疏,实用性也并不强。尤其是在学时数有限的情况下,学生更难体会到该课程相关知识的奥妙及其广泛应用,取而代之的是晦涩难懂的公式,形状各异的网格,以及不少学生心有畏惧的编程。近些年,随着计算方法的逐步改进、新兴数值方法的日益广泛应用、硬件条件的迅猛发展、慕课/翻转课堂等授课方式的多样化以及互联网时代下学生更加丰富的知识信息储备量,以往重理论轻实践的教学内容及模式越来越显得复杂且单调乏味。
笔者连续六年讲授该课程(学生涉及力学、宇航、能动、化工、材料、机械专业的硕士、博士及个别本科生),对此体会深刻。原本一门非常实用的课程,学生却兴趣不大。因此,针对来自不同专业背景的教学对象,并考虑课程应用性之教学目的,该课程教学改革势在必行。主要目的是使学生通过短学时的入门课程学习,更全面地了解流动传热数值模拟相关理论知识及其发展前沿,并能初步运用于解决实际工程问题,掌握CFD/CHT软件核心并能熟练运用,能够有针对性地编写程序及清晰的可视化处理,为今后更加深入的理论学习、科研实践与实际应用打下坚实基础,顺应社会时代发展的需求。
二、教学内容的改革
教学内容是本课程的改革之重,大多数研究生学习本课程的目的是能够直接应用于其科研工作。作为非流体力学专业学生的短学时入门课程,引领不同专业学生进入该领域并掌握其思想方法,以便其在后续的科研工作中能够更深入地自学,更灵活地运用,是极其重要的。基于此目的,笔者认为在可在以下几方面进行改革与改进。
(一)在学时数有限的情况下,一些理论复杂的、不易开展实践教学的内容可做适当删减。首先,可压缩的相关内容偏难,对非流体力学专业的学生,若无一定量的相关知识储备,不易接受。同时,学生学习了不可压缩相关知识后,再学习可压缩相关知识,理解会更透彻,学起来更轻松,二者同时在一门课程中学习,并不是一个好的方案。在学时数有限的情况下,可不讲授可压缩部分,仅在控制方程形式及偏微分方程的数学特性中简要说明。可压部分的详细内容也可在其他课程,如“计算空气动力学”中学习。其次,网格生成技术是一个专门的知识,在本课程中不易多讲,笔者曾讲授过简单的拉伸压缩网格的生成方法,但苦于该部分难于开展实践,效果很不好,且占用了4学时。再次,各类算法及程序,如SIMPLE、MAC及其系列算法等,不易讲得过细、过复杂,掌握其基本思想即可,但一个完整程序的讲解是十分必要的,不可省略。CFD/CHT最终目的是求解离散的偏微分控制方程,课程中学到的方程数学特性、离散格式、边界条件、代数方程的迭代求解方法、网格等知识如何运用于计算机仿真,均能够通过一个简单的流动传热问题程序(如二维顶盖驱动流、自然对流)中体现,可以说程序的学习是对本课程的全面总结与运用。此外,这也有助于学生了解CFD/CHT软件求解器核心,更加灵活地运用CFD/CHT软件。最后,代数方程的求解方法,加速收敛方法等内容,可以大幅缩减。除了部分内容在“计算方法”课程中也有讲授,最重要的是随着硬件条件的飞速发展,方法上的加速已远远落后于硬件加速,在加速方法上花费太大精力意义并不大。关于这一点,在下面在高性能计算中详细阐述。
(二)目前CFD/CHT课程内容已较为全面,根据讲授对象,有针对性地减少并非难事。但是,互联网时代下,学生信息获取渠道多,见识广,个性强,思维活跃,自学能力强,有必要通过课程的学习让其获取更大的信息量,跟紧时代前沿。为了顺应社会时代发展对人才知识结构需求,笔者认为,本课程很有必要介绍以下几方面的内容。
首先,近些年来,新型数值方法越来越得到广泛应用,以非NS方程组为求解器的流动传热数值模拟软件也越来越多,且在某些领域解决了传统方法无法解决或比较困难的问题。比如,格子Boltzmann方法(LBM)能够高效解决复杂边界问题且具有超高的并行效率,直接模拟蒙特卡洛方法(DSMC)解决稀薄气体问题是NS方程无能为力的,分子动力学方法(MD)在解决相界面机理问题上有不可取代的优势,光滑粒子无网格方法(SPH)在自由界面两相流中的广泛应用等。因此很有必要让学生了解这些方法,紧跟时代前沿,打破那种谈到CFD,仅想到NS方程组的局限,笔者认为这是该课程教学需要达到的重要目的之一。
其次,也是笔者认为最重要的一点,是高性能计算,谈到CFD/CHT一定离不开高性能计算。当今高性能计算机性能以几乎每三年一个数量级的速度迅猛提高,2020年有望迈入E级(百亿亿次/秒)计算时代,计算科学将发生翻天覆地的变革。尤其是我国,2012年就以国产微处理器为基础,制造出了我国第一台超级计算机“神威蓝光”。随后“神威·太湖之光”在2016年6月TOP500组织发布的最新一期世界超级计算机500强榜单中,和“天河二号”超级计算机位居前两位,此后一直保持首位或领先地位。在应用方面,我国科研人员依托“神威太湖之光”超级计算机的应用成果首次荣获“戈登·贝尔”奖,实现了我国高性能计算应用成果在该奖项上零的突破。又如,国家计算流体力学实验室对“天宫一号”返回路径的数值模拟为其顺利回家提供了精确预测。因此,笔者认为,高性能计算在流动传热数值模拟中的应用,在本课程中应当有所体现,以适应时代发展的需要。以往在学时数较多的CFD/CHT课程中,有些教师将MPI并行计算纳入本课程,但内容繁多,喧宾夺主,有条件应将其作为单独一门课程开设。另一方面,从2008年起,显卡(GPU)计算开始逐渐被用于实际计算。其发展速度远超CPU。世界超级计算机中,大部分计算性能来自于GPU的贡献。此外,GPU安装简单灵活,在PC上就可以实现桌面级超级计算机的功能。国外一些知名大学,如杜克大学,东京大学等早在十年前就已将GPU编程单独开设课程,随后,我国也有个别高校陆续开课,但专门针对CFD/CHT的GPU应用课程还比较少见。笔者在三年前的课程实践中,加入了专门针对CFD/CHT涉及的离散方程(NSE、LBE)求解的初步GPU程序开发,采用4学时,讲授了GPU硬件原理、CUDA编程原理、及简单的程序开发思想,获得了非常好的效果。尤其是一些相关专业的教师也专门来学习该部分课程,充分说明了该部分内容的必要性。正如前所说,计算方法在计算速度上的提高,已经达到瓶颈,加速10倍已经是非常理想的效果,而硬件加速却有无限可能,加速方法上的微弱改进在硬件性能大幅提高面前显得微不足道。此外,计算精度提高、湍流精准模拟、网格简单化、无网格法等都依赖于硬件性能的提升。根据笔者经验,单GPU加速LBM,可达到200倍的加速比,对NSE,可达到50倍,在PC机上采用上亿网格直接模拟湍流已成为现实。因此,学生了解掌握相关知识,即硬件原理、并行思想、MPI、CUDA程序設计等,是非常必要的。此外,采用简单算例,课堂直接演示加速效果,能够大大提升学生的兴趣。 再次,流动显示(Mapping)虽然作为CFD/CHT研究内容五个M中的一员,但在课程中很少会专门讲授。笔者早年在日本留学期间,发现日本人对于后处理相当重视,花费时间精力很大。在多次国际会议上,也能感受到欧美科研人员对此非常重视,而国内大多数研究者仍略逊一筹。尤其是学生,后处理结果甚为粗糙。国际上专门的流动显示会议(ISFV)已有40年历史,近些年,我国参加人数越来越多。更为欣喜的是,2020年,上海交通大学将主办第19届国际流动显示会议(ISFV-19),这也是我国首次获得该项会议主办权。这充分说明了,流动显示的重要性已逐渐被国内科研工作者接受。目前各类后处理软件层出不穷,但其最大困难在于,网格数量巨大的情况下,后处理软件崩溃。显示的本质是计算,显卡GPU最初就是为显示而设计产生,高效的流动显示离不开GPU。因此,可将流动显示结合GPU一起讲授,重点在于如何在计算的过程中同时生成结果图片,而非采用后处理软件,并当堂演示其效果,必将能达到非常好的教学效果。
最后,相比于基础课程教学,对应用性强的课程,尤其是研究生课程,将科研融入教学是非常重要的,绝不可忽视。CFD/CHT研究内容中的A,足以展示了应用的重要性。教师平时应当善于发现科研工作中适合教学的案例,总结归纳,哪些适合演示,哪些适合作为例题讲授并实践,尽可能多地拓宽学生的眼界,激发学生兴趣。
三、教学实践的改革
为了激发学生对课程的兴趣,并能迅速学以致用,作为一门应用性强的课程,教学实践尤显重要,这也是随着教师对教学过程及教学效果日益深入的体会需要不断改进的。根据笔者六年来在该课程教学上的不断总结与摸索,建议可以在以下几方面加入教学实践过程。
首先,笔者发现当展示相关科研工作成果时,学生兴趣很大,因此笔者考虑可以在课程中专门加入1-2学时的讨论课,对具有典型性的教师本人或某些学生科研中的实际问题拿出讨论(问题背景、解决方法与手段、结果分析等应事先准备好)。
其次,对于某些问题,如格式稳定性、假扩散等重要问题,可以设计简单小程序让学生亲自运行实践,通过实践结果,学生可以直观地看到课堂中讨论问题的原因所在。关于这一点,笔者已经开展实践,获得了良好的教学效果。比如提前编制了采用不同格式数值求解波形的传播过程的程序,让学生改变输入条件并运行,可直接看到格式稳定性及假扩散的影响。以前学生学完这部分内容,理解并不深入,而通过亲自运行程序,发现不稳定的格式会导致结果的发散,假扩散严重的格式,导致结果的变形,学生很直观地看到了效果,对问题的理解深入彻底。又如,对于显式格式和隐式格式的理解,可通过有基准解的库特流动,教师采用显式和隐式格式编程,让学生亲自改变条件运行。教师先对问题做理论分析,学生用程序实践验证,能够达到很好的教学效果。当然,若有条件,以上简单程序可以让学生自己编写。
再次,关于GPU加速,仅仅讲授,学生无法切实体会到GPU加速的可观。教师可在课前准备简单程序,课堂上展示GPU加速效果,不失为一种好的方案。GPU安装简单,若课堂连接外部计算平台困难,可采用教师个人笔记本电脑中的GPU,运行程序展示加速效果,比如,CPU用100秒的计算,GPU 用1秒就可以完成,这个加速效果是相当明显的。同时,GPU对于结果的可视化问题也可以随堂展示。
最后,也是很关键的一点,即采用SIMPLE或MAC算法,完整地模拟一个流动换热问题。这是本课程的重点,可在课堂上讲解程序,程序计算放在课后实践。即给出基本程序并随堂讲解,在该程序的基础上,让学生拓展,如改变格式,改变边界条件,改变外形等,计算一个简单且经典的流动传热问题,并进行结果可视化。完成一个完整的算例后,学生对本课程的体会将更加深入。
四、考核形式的改革
本课程是实用性课程,不适于闭/开卷考试,一般是大作业形式完成。根据学生专业涉及面广、课程实用性强等特点,考核应当给学生更多选择,形式应更加个性化,多样化,以真正达到学以致用的目的。比如,学生可以结合自己的科研,自行提出问题,编程或采用软件计算,最终总结成报告的形式。或者,对于并行计算感兴趣的同学,可以将教师提供的,或自己的程序移植于GPU,或MPI并行化,结果对于加速性能进行比较,总结成报告提交。再者,可以几位同学合作解决一个工程中的实际问题,最终采取报告加答辩的方式进行成绩评定。对于课程与其科研相关性不大的学生,可以采用教师指定作业的方式,如给定一个程序,通过改变边界条件计算另一个问题,以达到加深理解的目的。总之,该课程的成绩评定方式是多样的,结合不同学生的需求,让学生真正学有所获最为重要。
结语
本文浅谈了针对非流体力学专业学生的“计算流体力学/传热学”课程的教学心得体会,并基于社会快速发展对高端人才知识结构的要求,在教学内容、教学实践及考核形式上提出了几点改革的想法与建议。关于授课方法与手段,例如慕课、电子白板、计算机、幻灯片、互联网等,对于各种课程基本是通用的,本文不再赘述。当然还有不全面的地方,有待于今后实践获得更深入的教学体会。此外,CFD/CHT教材繁多,笔者经过比较认为,Anderson著的《计算流体力学入门》和陶文铨院士编著的《数值传热学》两本教材条理清楚,通俗易懂,不失为经典的CFD/CHT入门课程教材,笔者目前主要采用这两本教材讲授课程理论部分。总之,对于这种实用课程,最终目的是在短时间内使学生能够学以致用,迅速上手。授课遵循理论领进门,实践多体会,深入学习靠自己,跟紧时代不掉队的原则,切忌照本宣科,因循守旧,务必做到重点突出,结合实际。此外要特别重复强调的一点是,在该课程的教学中,教师的科研经历与经验是十分重要的,务必要将科研融入教学,通过不断实践,真正将该课程建设成为一门有趣的实用课程。
参考文献
[1]张来平,常兴华,赵钟,郝新著.计算流体力学网格生成技术[M].北京:科学出版社,2017.
[2]江志斌.中国慕课模式探索与实践[J].中国大学教学,2018(1):28-30.
[3]John D.Anderson JR.著.计算流体力学入门[M].姚朝晖,周强编译.北京:清华大学出版社,2010.
[4]陶文銓著.数值传热学[M].西安:西安交通大学出版社,2001.
转载注明来源:https://www.xzbu.com/1/view-14896491.htm