面向计算思维和技能培养的计算力学教学模式

2020-07-16 10:02王省哲
高等理科教育 2020年3期
关键词:力学数值技能

谢 莉 王省哲

(兰州大学 土木工程与力学学院,甘肃 兰州 730000)

一、引言

计算力学是根据力学中的相关理论与方法,利用现代电子计算机和各种数值方法,解决力学复杂问题和实际问题的一门新兴的交叉学科,涉及力学、计算科学、计算数学等多个学科[1-3]。 随着现代大型、复杂结构和工程实际问题分析的需要,以及海量计算和大数据科学的发展,各种工程设计、性能评价以及运行稳定性评估等日益有赖于计算模拟和仿真、数值实验、数据分析指导和决策,随着这一进程的全面深入,基于计算思维方式、运用计算力学方法认识和解决问题突显重要。

我国著名计算力学专家钱令希院士指出[2]2-4:计算力学有很大的能动作用,它拓展了设计分析的领域,成为力学通向工程应用的桥梁;它极大地增强了力学的手段,发现了许多未知的现象;对力学的理论体系发生了深刻的影响。 据统计,目前国内外从事力学科学研究人员70%~80%涉及力学问题的数值计算,计算力学的发展正适应了这种需求,已成为高等院校相关专业学生的必修课程。 国内外一些高等院校在力学、土木工程、机械以及航空航天等相关专业为本科生开设了该方面的课程[4-7],如斯坦福大学为机械工程专业本科生开设计算力学导论,清华大学航空航天学院为本科生开设计算力学课程等。

当前,数值计算、理论分析以及科学实验已成为力学工作者解决力学问题的三大主要手段,数值计算更是培养综合素质专业人才必不可少的知识和技能。 然而,大多数本科院校在开设相关课程中,雷同于方法类课程的教学模式,培养方法与考核单一、课程理论化、实践环节多限于结果验证等,导致学生在知识和方法层面上有所加强,但计算技能和解决问题的应用技能缺乏。 甚至还表现出理论不扎实、实践不坚实、动手能力弱,进而缺乏创新的竞争优势等。 另一方面,随着国家以信息化带动工业化升级战略的实施,以虚拟现实/增强现实、云计算、3D 打印为代表的信息技术日益融入结构设计、模具制造等过程,这些均涉及利用计算机解决科学问题和工程问题,也是对相关联的课程体系、内容设置、教学模式和实践环节提出了大调整、大更新和大改革的紧迫要求[8-9]。 同时,在新世纪教育部力学教学指导委员会关于力学发展规划的制定时,充分认识到计算技能培养对学生的重要性,并建议加强力学专业学生的计算力学思维的培养和计算力学方法的学习。

为了适应新时期的高等教育形势,满足国家经济社会发展对应用型人才的需求以及专业人才素养与技能的培养,兰州大学力学专业从实际情况出发,根据专业办学目标、办学特色和人才需求情况,结合一系列课程设置与完善形成了计算力学课程体系。 在教学实践中明确了学生计算机技能并强化了学生计算方法解决力学问题的培养,将基础理论讲授与实践教学相结合,计算思维培养与学生动手相结合,形成了以“力学计算方法”“数值建模与编程”“工程问题实践”三位一体的面向计算思维能力培养的计算力学教学互动模式(见图1),取得了良好效果。

图1 面向计算思维和技能提升的三位一体教学模式

二、面向计算思维能力培养的教学模式

(一)计算思维的引导

在现代众多重大工程问题以及高新技术应用领域中,如交通运输、新能源、先进装备与制造、电子器件以及医疗、航空航天等领域,越来越多的现代工程力学问题追求更加真实的工程环境以及多尺度、多物理场的相互影响,不能解析求解、也无法实现实验研究。 因而寻求数值求解,揭示力学问题的规律,或为工程实施、设计等提供指导,促使了计算力学成为力学学科最活跃的分支之一。

数值解算力学问题,计算思维是首要必备的基本能力之一。 计算思维是运用计算机科学的基础理论与知识进行问题求解、系统设计等一系列思维活动[10]。 这就要求我们在教学整个活动中,不能仅局限于知识传授,更应着眼于将知识的传授与计算能力培养相结合,开展计算仿真思维模式的养成和训练,使学生形成以数值方法解算工程力学问题的思维模式。 在计算力学的教学过程中,除了保持传统的课堂教学外,我们更注重以计算力学方法对力学问题数值求解的训练。 同时,我们在整个教学过程中,以PPT、视频等手段在课堂上展示了理论模型到计算模型的建立过程,计算力学求解的工程问题及其解答以及与计算力学相关科学研究成果等,有意识地强化了计算力学思想的灌输。

(二)教学模式的主体

计算力学课程既有严谨的计算方法,又涉及将这些计算方法应用在数值解算工程问题中的技术。其具有理科课程的严谨数学推演,又有很强的工科课程的实践性,有着“理论性强、技术复杂”双重特点[11]。 一般而言,计算方法是对工程力学问题进行数值解算的基础,而以数值方法实现对工程力学问题解答,是计算力学学习的目的,还涉及“数值建模和编程”核心环节和“工程问题实践”环节。 因此,我们设计了计算力学方法传统课堂教授,团队线上/下方式对“数值建模和编程”进行辅导,以及学生亲自参与力学工程问题数值解算实践的计算力学教学模式,教学模块化及时间安排如表1 所示。

1. 计算力学方法

钱学森先生在展望21 世纪力学的发展方向时指出:在利用计算机回答宏观实际科学问题时,计算方法是非常重要的[1]1。 计算力学的概念、方法已经成为处理工程技术问题的主要手段。 为了培养学生的力学计算思维,手机首先应培养学生对基本力学计算方法的理解和掌握,这是计算力学解决实际和复杂问题的基础和前提。 计算力学逐渐发展并形成了较为系统的理论和方法,如有限差分法、有限单元法、有限体积法、边界元法等。 计算力学不仅有着完整的基本概念、严谨的理论,还涉及如数值方法的可靠性和收敛性等严格的数学推演过程[7]。 由于每种力学计算方法都有其优点和局限性,我们在实际的教学中,从早期仅讲授单一的计算力学方法——有限元法,逐渐拓展到目前多种经典和常用计算力学方法,如有限差分法、加权残值法、边界元法等的教学。 从开始的作为高年级的选修课程或研究生课程定位到目前力学以及相关专业本科生的专业主干课程。 另外,由于力学计算方法是力学基础理论与计算数学的交叉与融合,相应的必要基础力学课程和数值方法的学习是先修课程。 为了理顺计算力学课程相关知识的学习,在实际的教学中我们优化了特色课程体系,将计算力学课程纳入了学生计算技能课程体系的关键环节,起到承上启下的作用。 强化了学生对有限差分、有限元、加权残值、边界元等常用方法的掌握和学习。

表1 教学模式的模块化及时间安排

计算力学课程教学内容一般应当包括计算方法的基本概念、算法等讲授,也包括应用计算力学方法求解实际力学问题和复杂力学问题的讲解。这部分内容理论性强、数学推演严谨,且已经发展成熟,主要以传统的课堂面对面讲授实现,再配合课堂互动和问答,在整个计算力学课程的教学过程中设置大约超过1/3 时间完成。 传统面对面的课堂教授过程,对学生是一种带有强制性的学习,是克服惰性的可行办法,尤其对于理论性强、数学推演严谨的课程,可适当“强迫”和引导学生学习;对于已经成熟的理论,教师的讲授可大大节约学生掌握理论知识的时间;另外,设置课堂讨论题激发学生积极思考,通过师生以及学生之间交流和互动有效提升学习效果。

2. 工程问题实践

正所谓“纸上得来终觉浅,绝知此事要躬行”,仅凭借教师课堂上基本原理和方法等相关内容的讲解与传授,以及仅以学生对基本原理和方法的学习作为该门课程的考查内容和目标尚不足以达到对学生运用课程知识和方法真正解决实际问题能力的培养,计算思维和技能的培养更需要通过实践来训练。 正是基于计算力学课程的这种特点,我们注重学以致用,即以计算力学方法实现对力学问题进行数值解答的教学与训练。 为此,在课堂讲授和学生学习基本原理与方法的基础上,针对课程的特点和结合实际应用能力培养与提高的目标,我们在每一章节或者每一典型计算力学方法学习完后设计课程实践环节部分,以训练和提高数值解算问题的能力。 同时从身边的力学入手,一些现代典型工程实例为启发,增设趣味性力学问题的分析等,拓展实践环节的教学。 比如,结合有限差分法学习,我们布置了计算“沙粒在风吹动下的运动轨迹”,作为有限差分方法的课程实践题目。 这个题目既是我们身边的力学问题,也是风沙运动研究中最基本的科学问题,应用差分方法比较容易获得数值解。 很多工程实际问题,尤其是涉及安全事故问题都存在力学问题,比如结构安全设计、承载力评估等。 我们针对近年来短时间内的集中降雪导致的建筑物垮塌事故中结构的承载力问题布置课程实践,要求学生调研事件中建筑结构以及当时的雪荷载,进行数值建模,编写程序或者应用软件,对该结构承载力进行求解,然后对数值解进行评估,最后对事故中构件的力学方面设计分析,鼓励学生给出结构安全设计建议。 针对西部地区黄土地基易沉陷特点,在结构分析中设计较软的弹性地基或支撑,理论联系工程实际等,学生对这类课程问题表现出强烈兴趣,在了解“真相”欲望的驱使下开展课程实践,达到了学以致用,促进对课程内容和相关知识的真正掌握。 除了可以用计算力学方法给出解答、对安全设计进行探讨外,我们还鼓励学生对这些实践问题采用多种力学计算方法进行求解的尝试与探索,通过应用学过的多种计算力学方法解答对比,加深对每种方法的理解,提升科学评判能力。

在这一具体的实践教学环节中,我们通常采用以与课堂学习时间接近1 ∶1 比例开展课程实践,包括力学问题思考、建模、应用计算力学方法求解、结果分析与讨论,然后将结果整理,学生在课堂上进行结果展示、阐述科学问题和解决方法,以及发现存在的问题。 通过整个课程实践训练与实现,不仅加强了学生对计算力学方法的掌握,更培养了学生以计算力学方法和思维解算力学问题的能力,也培养学生的创造性思维和协作精神等。

3. 数值建模和编程教辅

在学习计算力学方法基础之上,进行的课程实践,实现的核心是数值模型建立以及形成计算机可执行的程序语言,即基于基本计算方法所形成的数学建模思想之上的数值建模。 数值模型往往不同于数学模型的微分方程表述,而是离散化的,其包含了网格节点、节点自由度数目、节点或区域物理与力学参量、材料属性、网格或单元属性等。 需要基于数值分析的方法将其转化为离散数值计算模式,形成最终的计算机可以处理的基本运算。 接下来就是将数值模型编程形成计算机可接受和执行的程序语言。 基础的科学计算编辑语言有Fortran、C 语言等,需要学生更多的数值编程技能;另外基于目前的模块化思想的高级数值编辑软件如Matlab、Comsol 等,可以较为方便地实现程序设计和代码编写。 但仅此还是不够的,数值计算结果的正确与否、执行过程中的迭代收敛以及数值稳定性也是棘手的基础问题,在教学中也应予以适当的分析实例体现,让学生对数值解决科学问题的整个过程均有全面的了解与掌握。

此外,在完成课程实践过程中,会涉及数学、力学以及计算机语言、计算软件等知识。 为使课程实践环节顺利进行,要求计算力学先行课程的学习得以保证。 兰州大学土木工程与力学学院先后开展了计算力学特色课程体系建设和计算力学主干课程团队建设,该团队中包含有讲授计算力学先修课程如Fortran 语言与程序设计、大型软件及其应用等方面的教师等。 通过各个主讲教师间的交流与沟通,打通了课程体系与知识结构,先行课程主讲教师针对后续课程与整体体系的规划,会有不同的讲授内容侧重与针对性的课程安排。 比如在Fortran 语言与程序设计课程中,会适当加强部分计算力学所需知识的训练,编写求解线性代数方程组的程序代码,大型矩阵计算方法等,这样在计算力学的课程实践环节,学生能比较快速地完成程序代码的编写,大大节省时间;又如在大型软件及其应用课程中,会适当加强结构计算模块的讲述,这样使独立编写程序代码有困难的同学也可以应用软件进行数值求解,帮助学生高效完成计算力学课程实践课题。

不仅如此,计算力学实践环节还会涉及较广的知识面,如应用数学、力学以及计算机等工具,多需要语言软件的安装、绘图软件的安装,甚至还有学生需要学习PPT 制作。 为了节约学生在这些技术性工作上花费的时间,安排答疑教师和研究生在课程实践中与本科生互动。 一则研究生可以帮助本科生较快熟悉并应用软件,另外根据本科生和研究生互动,也使本科生了解力学计算在科学研究中的重要性,促进学生学习主动与实践环节的热情。 答疑教师或研究生在与本科生的互动中,可以把学生在课程实践中出现的问题集中反馈给主讲教师,使主讲教师在教学过程中更有目的性和针对性。

基于教学辅助环节的设计与实施,包括主干课程团队教师间的师—师交流,保证知识结构的贯通;研究生—本科生互动,增强如绘图软件、讨论编程问题等,以同辈间零代沟交流方式,实现实践辅助知识学习与补充相关技能;师生互动,沟通教学环节中存在的问题,发现学生学习过程中存在的疑惑和需求,及时解决与应对,促进课程教学。 随着信息技术发展,教辅环节的师生沟通方式也更加灵活和多样化,很多学生会把学习过程中或课程实践中遇到的问题,通过给教师发送电子邮件、手机短信或者QQ 信息等方式寻求帮助,教师也会做相应的解答。 这种线上、线下的多模式交流方式,对学生的实践时间的投入与技能提升具有重要意义。

(三)案例分析及效果

兰州大学力学专业本科生中已连续开设计算力学课程十余年,从早期主要侧重于学生计算力学方法的基本原理学习,到逐步增加实践环节的教学内容,以及最近几年实施的基于以上“计算力学方法”“数值建模与编程”和“工程问题实践”三位一体的教学模式尝试,在多个年级连续五年多的教学中得以应用,获得了学生的普遍认可,也产生了良好的教学效果。

以理论与应用力学基地班2015—2017 年连续三年的计算力学教学为例,2015 学年选课学生47人,课程实践环节采取小组形式实现,共分12 小组进行,设置实践题目8 ~10 个,每组选择一个实践题目,整体效果良好。 作为早期探索,也存在个别学生在小组内仅以简单参与或旁观角色开展实践的现象,但在后续教学中加强了对学生的要求。

2016 年选课学生45 人。 我们提高了实践环节要求,例如学生需独立选择一个实践题目开展课程实践活动,实践题目依然是8 ~10 个,强化了个体实践环节,让每位学生都能参与而且作为主角来实施。 至2017 年,在已有的多年经验积累基础上,扩大实践内容,进一步将实践题目增至23 个,极大地调动了学生的动手、动脑的积极性,同时也为学生结合自身兴趣与知识结构提供了更多选择,整体实施以及学生个体实践效果均表现良好。 这些实践探索,一方面反映在学生掌握计算力学方法和技能的提升,另一方面也反映在课程期末考试成绩逐年显著提高,大多数学生课程实践题目完成效果好,甚至形成了软件成果。 如2014 级学生赖东衡将桁架和钢架结构有限元直接解法整理,基于Matlab 语言和运行环境,编写了有限元教学可视化软件《桁架和钢架有限元教学软件》,获得中国软件著作权专利[12]。 相当一部分学生基于课程学习和计算思维能力提升、计算技能的熟练掌握而顺利申请或获批学校的创新创业项目,开展相关的科学研究,增强了学生以获得学有所用的成就感,树立了利用所学知识解决实际问题的信心。

近年来,我们在计算力学实践环节的训练和学生计算思维能力和技能的提升,也极大地促进了学生的就业选择、本科生毕业论文和研究生阶段的厚积薄发。 据统计,每年力学专业学生就业人数中约有80%的学生进入企事业单位,主要开展结构计算仿真工作,或基于掌握的计算力学知识和大型软件仿真技能开展工作。 对于进一步深造的研究生而言,计算力学课程以及体系的数值方法的学习和实践能力的提升,使他们更早更好地掌握了开展研究工作的手段和方法,具备了解决工程实际问题或者研究科学问题的数值分析能力与素质。

三、结语

力学计算是力学专业应用型人才应该具备的素质。 根据《国家中长期教育改革和发展规划纲要(2010—2020 年)》[13],提高高等教育人才培养质量之一是着力培养本领过硬的高素质专门人才。如前所述,计算力学课程的学习,除了严谨计算力学方法的学习,更需要掌握应用计算力学方法对力学问题进行数值解答过程的掌握,兼具“理论性强、技术复杂”。 通过面对面课堂教授计算力学方法,以计算力学方法对力学工程问题进行数值解答和课外实践,同时辅以“数值建模与编程”课外和无线辅导,我们的教学实践表明,这是一种较好的提升教学效果的模式,可保证计算力学人才培养质量。

在高等教育不同学科中,有很多课程都与计算力学课程的性质相似,既有严谨的理论知识,又需要理论知识的应用与实践。 而在实践过程中,又需要更多的关联知识与技能,才能让实践顺利完成。性质类似的课程教学,可以按照上述教学模式进行,只是针对不同课程内容,需要制定相应课程的“核心基础理论”“课程实践”内容,并配合相关知识、技能辅导等。

猜你喜欢
力学数值技能
体积占比不同的组合式石蜡相变传热数值模拟
数值大小比较“招招鲜”
弟子规·余力学文(十)
弟子规·余力学文(六)
弟子规·余力学文(四)
劳动技能up up!
秣马厉兵强技能
拼技能,享丰收
力学 等
基于Fluent的GTAW数值模拟