为什么要了解和学习多款仿真软件?
“ 横看成岭侧成峰。”
今天几乎所有的有限元仿真课程或教材,都是从一款软件入手,结合软件操作顺带讲解有限元仿真的一些理论。但小喵不太一样。从学习有限元的一开始,我就直接并行入门学习了ANSYS和Abaqus。乃至ANSYS当时我还几乎同时学了APDL、Workbench和AIM界面。
那么,了解和学习多款仿真软件,有什么好处呢?
有限元仿真软件,和我们日常使用的其他工具软件比较明显的区别之一,就是使用它的难度和门槛几乎不在软件操作,而在其背后的理论上。 你使用Word做排版,用Photoshop绘图,几乎不需要深入学习计算机排版渲染和图像处理的知识。即使是CAD这样的专业软件,大部分也是“所见即所得”,某个功能的作用不知道的话,基本上尝试一下就可以学会。比如PS当中的滤镜、曲线等功能,上手调一下,任何人都能马上了解到它的效果。而有限元仿真软件则不同,即使软件有翻译好的中文界面,面对那些选项,所有的初学者都会有“这里面每个字我都认识,但组合在一起就不知道它说的是什么”的感觉。 有限元软件拥有的这些功能,其背后是各种各样的数值算法。翻开任何一款仿真软件——例如ANSYS——的帮助文档,在其参考文献列表中我们能看到从上世纪50年代到最近十年的各种与数值方法相关的研究论文。软件中的许多功能,本质上都是最近几十年,全球工程学科的研究者们创造出的那些理论、算法的软件实现。无论是某个非线性的本构方程也好,某种拓扑优化算法也好,或是对3D打印过程或断裂力学过程的仿真也罢,仿真软件的更新就是不断将这些在工程上有较大应用价值的新算法集成进它们的软件功能中。 今天我们读到的许多教材,尤其是新兴学科的教材,它们的目录结构都不是被某个古人或“权威”指定的;而是由相关领域资深的编著者总结梳理这个学科的研究进展,将这个领域发展过程中比较重要的论文和理论发现,以某种逻辑排列组织放进教科书中。从这个角度看,一款有限元仿真软件,其实就可以看做是一部特殊的“数值仿真算法教科书”。
小喵早在大学第一次学习线性代数的时候,就曾跑去图书馆,一口气借来3~5本以不同逻辑组织的教材对比阅读。当你学习一门课,只读一本教材的时候,仿佛沿着一条固定的路径攀登一座高山,你会将攀登过程中沿途的风景和这座山绑定起来。而如果使用多本叙事逻辑略有不同的教材对照学习,其实学习时间并不会相应的加倍,但你攀登上山顶的路就有了很多条。对相同的知识就能够有更全面、立体的理解。知识还是那个知识,但是面对同一座高山,横看成岭侧成峰,远近高低各不同。当不同的学习路径在山顶相会的那一刻,你会有一种豁然贯通的畅快d感。举个不一定恰当的比喻,就好像有三个朋友和你讲到同一件事情,你第一次听到时还将信将疑,但当你第三次从不同的人口中听到这件事时,三人成虎,你已经对此事深信不疑。
仿真软件的学习也是一样。只学一款软件的话,很容易把对有限元仿真算法的理解,和对其背后物理概念的理解都绑定在这款软件的操作上面,甚至容易错把软件操作当成了重要的知识。而当你使用不同软件完成相同的流程时,你会对整个仿真流程有更全面的认识。不同软件对同一功能的不同定位也能让你对软件功能背后的有限元理论有更深刻的理解。
另外,不同的仿真软件,对于同一功能的展示方式可能有所不同。例如Abaqus中会把耦合功能放在相互作用模块下;而ANSYS Workbench中类似的功能称为remote point远程点,甚至直接放在边界条件里叫做远程力和远程位移;在与Nastran格式类似的求解器,如OptiStruct和Altair家的网格划分工具HyperMesh中,相似功能又被归类为RBE2和RBE3单元。笔者自己最早是在Abaqus中了解到可以使用耦合功能,将分布在一个面上的力或位移施加在与之耦合的参考点上。然后接触到HyperMesh中的RBE单元概念,才对ANSYS Workbench中远程点的功能有更深入的了解。(当然,具体的数值实现方法可能还略有不同,比如在ANSYS中,远程点的连接方式可以是刚性或柔性,也可以选择为梁)
再比如对分析步的控制,如果是Abaqus的使用者,可能在学习软件的第一天就接触到了分析步的概念;而ANSYS Workbench对分析步的设置优先级就没有那么高;至于Comsol的使用者,或许要在很久以后才会尝试使用多步骤的分析。
同时学习和使用多款软件,学习者可以在软件功能之间相互借鉴,让学习曲线更加平滑。像是从ANSYS界面使用显式动力学分析,虽然可以使用同一套Mechanical 的GUI,但总还是不如从Abaqus/Standard求解器切换到Abaqus/Explicit那样容易。而对Abaqus/Explicit的学习和使用反过来又能够促进对ANSYS环境下AutoDyn和LS-Dyna中许多概念的理解。
学习多款软件还有一个重要的优点,就是可以共享多款软件的相关教材和学习资料。比如Comsol有大量非常优秀的英文技术博客文章,官方几乎每天都会翻译一篇;Comsol还有丰富的案例库,从教程文档到模型文件一应俱全。Altair公司也会经常把各种技术培训资料放在企业网盘上公开供用户下载,其中包括许多写的非常不错的电子书。相比之下,ANSYS和Abaqus的资料虽然也十分丰富,但官方放出的培训内容就明显不如前者。
如果你了解多款不同的仿真软件,你可以享受到的学习资料就要比只了解一款软件的朋友丰富几倍。仿真软件的界面虽然有差异,但背后的算法和思想都是可以共通的。它山之石可以攻玉,更何况几乎是“同一座山”,不同的上山路径呢。
然而,据我观察,似乎身边大多数人还是倾向于只学习一款仿真软件。毕竟有些人认为只要能够完成分析目的就足够,学会了一款软件后就不太希望重新花时间学习重复的东西。 这样的观点其实很有道理,也是理智的决定。我的建议是——在学习有限元仿真之初,如果你觉得上手一款软件就已经比较困难,那还是应该专注从一款软件入门。在我看来,ANSYS Workbench几乎是所有初学者入门学习有限元的最优解,只学这一款软件,大多数情况下其实已经足够了。 但当你的学习深入下去以后,如果学有余力,不要忘记打开你的视野。当了解一款仿真软件以后,想要上手其他软件相同的功能其实是非常快的。毕竟每个功能的概念你都已经有所了解,剩下的就只有对着图形界面找按钮而已。有条件的话,不妨多学几款不同软件,就像对照不同的教科书一样,让你的仿真分析技能加速进步吧~