工具软件

本科时参与过一个自主程度较高的科研项目,受益不少,指导老师也是现在的博士导师。最近自己又成了这种项目的小导师,与两位同我相差3级的本科同学交流后,有了一些感触。结合最近的一些思考,写下此文。

印象中初中政治书上有一句话说,工具是人类身体的延伸。这句话挺精确的,通过延伸我们的身体,可以完成一些正常难以完成的事情,但过多地依赖这种工具,也会削弱我们自身的一些能力。典型的例子如代步工具自不必说,现代的手机也是一个例子,它既方便了远在千里之外的人交流,却又因为在饭桌上占用大部分人的注意力而妨碍了交流。工具的双重效果是其本质属性,以工具带来方便的同时,也应避免为工具所困。道理很浅显,但现代的工具又往往让我们迷失其中。

大约一个月前,与两位本科生第一次交流。由于项目书中提到了一些工具软件如现在十分流行的Fluent,同学都表示很有兴趣。但我感觉两位同学对于工具的着迷程度胜过了对物理现象背后作用原理的兴趣,让我产生了一些忧虑。现代的工程仿真软件越做越庞大,功能越做越复杂,操作却越来越简单。在宣传中我们可以看到各种复杂绚丽的效果,不内行的人看得眼花缭乱,内行的人也越发乐此不疲。这本是一件好事,科研人员专心于研究事务,不善于宣传和表达,而这些工具某种程度上降低了他们的宣传门槛。

但这学期我自己所研究的一些内容很大程度上改变了我的看法。起源是开始学习Surface Evolver这个相当小众的仿真软件,它是一位数学教授写的小软件,用来最基本的能量最小原理计算液面形状的。由于它基本上算是一个个人项目,所以软件界面、帮助文档什么的都相对还不齐全(也远没有像ANSYS这种商业软件的成熟)。它的网格算法与之前接触的ANSYS和Fluent的有限元或者有限体积法都有所不同,初入门的时候也需要重新学习一些完全不同的概念。刚开始学的时候,觉得它与以前学的基本都不同,原理上就相差好多,由于软件本身的限制,建模、命令操作都相当原始,也逼得人去学一些它(相对)底层的原理。但随着对它渐渐的熟悉,这两天重新开始做一些CFD的模拟,并开始应用一些相对高级的技巧,才发现从基本原理上讲,尽管描述的物理过程千差万别,但基本的思路和原理还是有很大的相似性的。事实上,如果不是之前在学习Surface Evolver的时候积累下了一些基本观念的理解,我是不会有信心和胆量去尝试Fluent中的那些(对我来说)比较高级的功能的。

说这么多,只是想表达一个观点:工具软件用好,但别用死。了解它背后的基本数学物理原理更为重要,具体的求解过程和实现方式总能找到相关的方案,不管是商业的还是开源的。

links

social