我与有限元——初生牛犊------永远的有限元大师MIT的Klaus-Jürgen Bathe教授

一直以来,特别想写些自己关于有限元的经历,记录自接触有限元以来那些值得回忆的事。但由于自己在这一领域道行太浅,再加上印象中除了上小学时在老师的强迫下写过几篇记流水账式的日记之外,从来没有写过类似的想要表达内心情感的长篇文字,因此关于这一想法也就迟迟没有付诸行动。终于在去年,我给自己下了最后通牒,在第一次离职时必须记录下点关于有限元的什么,从而促成了此篇博客的诞生。写下这些仅仅是出于一个业余者对有限元的喜好,同时也当是和热爱仿真模拟的同僚们分享一个菜鸟学习有限元的过程。

第一次听到有限元这个名字是在09年刚读硕士那会儿,有次彭老师跟我们聊天,特别强调了有限元作为一门热门学科未来在产品研发过程中的重要性,当时自己只是在心里想:有限元到底是个神马东西。后来看到师兄们在捣鼓ANSYS,我也从网上弄了个10.0版本的,找了本书开始照葫芦画瓢。做了几个例子后发现还蛮有意思,在觉得好玩的同时也让我对有限元产生了好奇心,觉得这东西很神秘。如果说对于简单问题人们能够给出“精确的”理论解,那么对于复杂的问题计算机是如何做到的?这个最初的疑问伴随着我学习有限元整个过程,直到现在,或许要等到自己不再学习有限元的那一天。虽然对于线弹性问题,后来自己从理论和程序上都理清了计算过程,但感觉在有限元领域,自己仍然是个小白;因为这趟水太深,每次在我解决一个问题后总会发现更多的问题,就像自己置身于一个小的圆圈中,跳出这个圆圈后发现旁边还有无数个小的圆圈以及这些小圆圈被一个更大的圆圈包围着。

在使用ANSYS的GUI操作一段时间后,我开始尝试用命令流,并且很快意识到命令流比GUI操作方便很多,便开始记那些常用的命令流。没过多久就习惯了命令流模式,通常我都是在第一遍GUI操作时把命令流整理出来,在以后的方案中只需更改某些命令流的参数,使用起来自然更快捷。在这期间,方师兄给我推荐了SIMWE论坛,并且建议我没事时多去论坛里看看。由于那时只是初步了解有限元,而且没有进入课题,因此,在注册论坛ID后,很长一段时间都是处于不闻不问状态。

大约在10年初的时候,章老师告诉我以后的课题可能要做关于橡胶缓冲方面的仿真模拟,并推荐我用ABAQUS。差不多跟之前学ANSYS同样的方法,我从图书馆借了石博士的《ABAQUS有限元分析实例详解》。由于之前看到很多关于ANSYS漫天飞的、你抄我、我抄你的参考书,从而感觉石博士的书写得非常好,特别适合初中级用户,里面不单单讲解了软件操作,而且列出了很多作者关于ABAQUS的使用经验,让很多初学者受益匪浅。

在这学期,自己也开始接触有限元理论,为此特意买了王勖成的,《有限元单元法》,一学期下来,自己是云里雾里的,心里除了佩服大师们运用他们超凡的智慧推导出这些美轮美奂的公式外,更多的是疑惑,搞不清楚这些抽象的理论知识是如何串联起来形成一个体系的。比如在讲解控制方程的推导时,既讲解了虚功原理、最小势能原理,又蹦出来个等效积分弱形式及变分法等,这些不同的方法之间有什么联系,各自适用什么范围在脑袋里产生一个大大的问号。

也是从那时意识到有两样东西对深入学习有限元是极其重要的,一个是力学,另一个是数学,当然力学也是建立在数学基础之上,归根结底是数学基础得扎实,就像自己后来了解到的早期有限元理论的研究都是数学家们的事儿一样。只是在意识这些问题后,研究生的课程已经结束,加上论文课题也初步确认,因此重心逐渐过渡到论文上来,以后只能通过自修来学习这些知识。

因为一些原因,我的论文换了一个课题,但仍然是冲击碰撞方向的,考虑到LS-DYNA在显示计算上的优势,以及师兄有使用这个软件的经验,我也选择采用LS-DYNA。由于从研二开始不需要上课,自己有充足的时间学习软件,最初采用较为熟悉的ANSYS作为LS-DYNA前处理器,期间很幸运参加了一次HYPERMESH培训,在了解了HYPERMESH强大的前处理功能后,感觉ANSYS简直弱爆了,果断改用HYPERMESH。

随着逐渐对软件了解的深入,再加上关于DYNA学习的资源比较稀缺,自己发现想要学好软件的话,仅仅靠那几本讲解关于软件操作的书是远远不够的。在接下来很长一段时间内,我不断在网上挖掘关于DYNA的资料,这时候已经不在乎是中文还是英文资料了,有时找到一点好的英文资料也会让自己欣喜若狂,我想自己后来养成阅读英文原版资料的习惯也是从这时候开始的吧。虽然以前也看一些老外的文章,因为各方面基础比较差,有时即使一篇文章“很认真”地看完了,到头来发现几乎不知道作者在说什么。

与此同时,为解除在最初接触有限元时产生的关于计算机是如何计算的疑惑,我开始经常出没于图书馆查阅关于有限元理论及力学的书籍,尽管现在发现这不是一件容易的事儿,但值得高兴的是,我对有限元越来越有兴趣。经过一段图书馆的时光,慢慢地习惯了图书馆的那种带有浓烈书香气息、安静的氛围。经常不由得想起大学毕业时,李明看到我大学期间从图书馆借阅的寥寥无几的几本借书记录而说我浪费学校资源的事儿,那时不觉得,现在想想确实挺浪费的。

在这期间,我也开始经常光顾论坛。通过前一时期的学习,现在浏览论坛上的帖子不会像刚注册时那样陌生,大概知道大家都在干什么事,经常也帮助回答一些力所能及的问题,在分享自己心得的同时学习他人的经验,最重要的是后来认识了很多朋友。

很快,逛论坛成为了我每天生活的一部分。直到现在,我仍然有每天去论坛的习惯,希望能够碰到一些好的帖子,经常习惯性的将鼠标拖到那些熟悉的ID的图像上,看看他们最近登录是在什么时候——要是看到他们最近几天有登录过,心里顿然觉得轻松很多;如果看到他们好久没有登录,心里感觉特别惋惜。不知道什么时候,我从论坛得到了第一个积分,这对当时的我来说是一种极大的鼓励,从某种程度上也增加了我学习有限元的信心。在闲暇时间里,我仍然一如既往的活跃在论坛上,后来又陆续获得几个积分。快到年底的时候,wyc412721邀请我担任DYNA版块的版主,我心里很高兴,同时也很感谢他对我的信任和鼓励,考虑到自己水平有限,最后婉言谢绝了。在接下来几个月的时间里,每天都重复着同样的生活,大部分时间都在为论文做准备,包括学习冲击动力学方面的理论知识、准备仿真模型及后续的实验等。到11年4月份时,仿真模型的前处理已经做得差不多了,那时觉得离毕业还有充足的时间,其实到后来才发现,仅仅调试模型就花费了比我预计的要多得多的时间。

到5月份的时候,wyc412721再次邀请我申请版主,我感到很幸运。这次因为心里对论文有了底,而且时间也比较充足,我跟wyc412721商量后先申请了一个志愿者的职位。没过多久论坛实行改革,打算取消志愿者职务,在大家的邀请下,我申请转到版主团队,接着陆续认识了gdyu_yu、sanchen、247751230、lzkhnu、xiaopiujy、76243386、w0308480130、长脚、songerking等。那时大家虽然素未谋面,但因为共同的爱好和热情通过论坛这个平台联系在一起,相互鼓励、相互学习,共同管理论坛,相信这份经历是永远值得大家记忆和怀念的。

gdyu_yu是我们几个心目中的大哥,一方面是他年龄确实比我们几个大;更重要的是他待人处事的态度让我们几个信服,他和毕师姐是我遇到的最有热心和耐心的人。gdyu_yu为论坛发展倾注了很多精力,制定了很多论坛管理办法,同时也为很多会员解决了无数的疑难杂货。

8月底的时候,赵云来杭州玩,并准备去上海他老朋友那里呆几天,我也打算和赵云一块去上海玩几天,刚好可以拜访一下gdyu_yu。第一次见到gdyu_yu给我留下很深的印象——浓眉大眼、鬓角很长、说话声音很宽厚,再加上稍显正式的穿着,让人感觉非常成熟稳重、一表人才。我们在交大后面的饭店共进午餐,gdyu_yu是广东潮州人,但他吃辣椒的能力远超乎我的想象,甚至一点也不比湖南人逊色,我自认为很喜欢吃辣椒,却也只得甘拜下风。吃饭期间,我们侃了很多事情,包括各自的生活经历、学习,自然也少不了有限元方面的,俩人聊得很开心。饭后gdyu_yu带我游览了交大校园,给我介绍了很多景点及背后的典故,让我感到他是一个对待身边每样事物都很认真的人。因为当天我得赶回杭州,只能结束这次愉快而匆忙的旅行。

接下来时间里,我继续做仿真模拟。这时也碰到一个很头疼的问题——关于仿真模拟中阻尼参数设置的问题。我查阅了大量关于阻尼的资料,包括ABAQUS中阻尼的设置方法以及别人关于阻尼的应用经验等,最后也没找到一个行之有效的方法。最终我只得通过调试全局质量阻尼参数来使仿真结果吻合试验,这也让我对仿真的意义产生了怀疑,当然,我相信这个问题肯定能够解决,只是自己目前对基本理论及软件应用的掌握程度还不够成熟。

离毕业时间越来越近,我也开始着手写论文。在这期间,毕师姐给我极大的帮助,包括指导我论文结构如何编排、文字怎么表达更为恰当以及最后帮助修改论文等等,即使在毕业之后,她也给我很建议和帮助,我一直从心底很感谢她。关于毕业论文,虽然最后能够达到毕业要求,但我对自己的所做的结果并不太满意。对于这个问题,我仔细想过很多次,虽然原因是多方面的,但在某种程度上还是挫伤了我后来想读博的心。

论文提交完成后,时间比较充足,刚好gdyu_yu打算来杭州玩,我很高兴。那天早上我去车站接待了他。gdyu_yu第一次来杭州,自然免不了带他游西湖、雷峰塔、河坊街等景点。本来gdyu_yu还想去浙大紫金港校区,但因为他只安排了一天的时间,只能等下次有机会再去。这次分别之后,也不知道下次什么时候再见。好在骆驼去年七月份结婚,我回武汉参加他的婚礼。刚好gdyu_yu打算去武钢做实验,我俩约好在武汉小聚一下。俩人好久不见,自然有很多话题要聊。我们从晚上7点多吃到快11点,喝了很多酒。那是到目前为止我喝酒最多的一次,虽然第二天坐火车一天不想吃东西,但那天晚上确实喝得很痛快。我也期待着最近与gdyu_yu再小聚一下,同时也预祝他尽快拿到Ph.D学位。

时间不紧不慢的过着,到了该离校的日子,我也得去外地工作了。在这期间很幸运的认识了行云家族的师父、师兄和师姐们,我很怀念和他们一起玩、一起打太极的时光,他们的热情、简单、直率以及对太极的喜爱给我留下深刻的印象。虽然后来发生了很多事情,但和他们相处的时间仍是我最怀念的日子,我也无数次期待能够回去和他们继续习练太极。

上班后,每天工作七个半小时,因为住在公司,业余时间很充足。刚开始,每天下班后就是看电视或上网,这样过了近一个月,觉得天天这么浪费挺可惜的。我首先想到了自己很感兴趣的有限元,而且自己对最初接触有限元时产生的“关于计算机是如何计算”的理解还不能令自己满意,我希望在接下来的业余时间里能够更深入地了解有限元。

对理论有一定了解后,我打算从程序入手。虽然我不太喜欢编程,应该说是一点也不喜欢,因为大一学C语言时就没有一丁点兴趣,原因可能是那时对计算机太陌生,记得那会全班只有胡英有一台电脑,更主要的可能是不知道学那些枯燥的编程有什么用;但现在为了更好的了解有限元,我还是很乐意再把编程捡起来。其实在论文完成之后,我已了解过Fortran。当时看了彭国伦的《Fortran 95程序设计》,感觉这本书介绍得比较泛,所以现在打算再找一本。在网上搜寻比较后选择了Stephen Chapman的《Fortran 95/2003 for Scientists and Engineers》,并让宗凯帮忙打印装订出来。我花了两个来月时间快速浏览了一遍,感觉这本书的内容比彭国伦那本全面,而且深入浅出。接着找了一些关于线弹性问题计算的有限元程序,研究几个特定问题后深刻感触到程序只不过是把理论用计算机语言表现出来的一种形式;那些提出理论,以及把理论连成一个完整体系用于解决实际问题的人才是最厉害的,这也重新唤醒我对数学、力学及有限元基础理论的重视。

关于基础理论,我觉得有必要巩固一下早已遗忘得差不多的数学知识。因此我把MIT数理系的线性代数、单变量及多变量微积分重新学习了一遍,并阅读了Daryl L. Logan和我心目中永远的大师Klaus-Jürgen Bathe教授在有限元方法领域的著作。在学习线性代数和微积分的视频录像时给我很深的感触,这些学生好像并不比我们聪明多少,但他们对待学习的态度却值得我们反思;老师也是理论结合实际充分激起学生的兴趣。给我印象深刻的是,当看到David Jerison教授关于调和级数发散的证明和实验以及Gilbert Strang教授利用特征值方法求解微分方程的讲解时,让我觉得原来数学也可以这么有趣。对于MIT能够推出这么多公益性的课程,我心存特别的感谢,他们让全球范围内对此有兴趣的人都有机会去学习。

谈到有限元,我总是会想到Bathe教授。在学习有限元这条路上,他给我极大的鼓舞和激励。已记不起第一次在哪里听闻Bathe这个名字,可能是在论坛上,那时只知道他很牛,在有限元领域造诣很深。真正开始了解Bathe教授应该从阅读他在96年出版的《Finite Element Procedures》说起,这本在有限元领域享有很高声望的书自然也吸引了我。当时心中一直感慨:老先生在十好几年前就已经写出这么精彩的著作。这本书条理清晰、内容相对全面、透彻,囊括了有限元很多基础理论,特别是书中结合了大量例题,使得这些理论不至于那么枯燥。在我看来,这本书或许二十年之后也不会过时。然而,对于初次接触有限元的人来讲,Bathe教授的书会稍显晦涩难懂,可能Logan教授的《A First Course in the Finite Element Method》是不二之选。

看了Bathe教授的书后,我对他产生很深的敬意。再加上他创建了享有盛誉的ADINA公司,因此我想了解更多关于他的东西。在网上搜素到他的著作中有一本书叫《丰富人生》,了解大概内容后网购了一本。收到书的那天下午,我忍不住在上班时间看了一半,熬到下班之后一口气看完了剩下的内容。书中的内容就像书的名字一样,讲述了Bathe大师丰富多彩的人生经历,以及他对于一些特定事情的个人意见与态度——包括二战时期德国所犯下的罪行、对死刑的态度、在有限元应用初期对未来有限元发展的预测等等,所有这些让我觉得他是一个极具智慧的人。每次出远门时,我总爱带着这本书,好像总也看不厌,陪我打发了很多在车站无聊的等待时间;同时,我也一直期待着老先生的下一部自传。

在业余时间里,我也开始了解Bathe教授开发的ADINA软件。很早就听说ADINA软件功能极其强大。看了丰富人生之后,也就不难理解为什么ADINA会获得这么高的评价。整个软件安装包仅200Mb,却包含了结构、流体、热、电磁及各种耦合场分析模块,相比其他软件好几个Gb的大小显得不可思议,可真正算得上麻雀虽小,五脏俱全。虽然现在ADINA在非线性分析模块的优势可能已不比当年,尤其是作为后起之秀的ABAQUS近些年发展势头非常迅猛,但是Bathe教授在FSI应用领域的远见卓识可能仍会是ADINA的一大优势。作为一个Bathe粉,我一直很关心Bathe教授接班人的问题,毕竟老人家已经七十一岁了,我们都不愿看到ADINA随着Bathe的老去而逐渐日落西山。上回和游侠聊到这个问题,游侠认为ADINA相对于其他软件有一个潜在的优势,因为ADINA公司是Bathe个人的,如果Bathe教授将结构分析模块的源代码开源之后,很多其他软件将会顿时失去竞争力,ADINA将会凭借其耦合模块再次回到领袖地位。如果真是这样,对其他软件来说可能很残忍,但从科技进步的角度来说也算是一个极大的促进,就像Bathe教授当年将SAP和NONSAP源代码开源之后促就了很多有限元软件的诞生一样。

不管未来ADINA走向何种地步,在有限元领域,Bathe教授始终是我最崇敬的人。我为其在有限元领域富有远见的眼界以及持续不断的创新精神所深深折服,特别是在其导师Wilson教授的引导下开辟了有限元程序应用的新纪元,构建了理论与实际应用的桥梁,他们当之无愧是促进科技发展与时代进步的人。有时,感觉我们所达到的水平在这些大师面前显得太过于微不足道,因此,偶尔也会在内心反问,是什么支撑着自己一路走来?答案貌似也很简单——因为喜欢。或许我们不能像这些大师一样,在有限元的道路上披荆斩棘、所向披靡,但是碰到一样喜欢的东西真的不容易,有时还得坚持该坚持的,循着大师们曾经走过的路前进,也别有一番风采。

你可能感兴趣的:(我与有限元——初生牛犊------永远的有限元大师MIT的Klaus-Jürgen Bathe教授)