weixin 发表于 2018-12-6 10:35

CAE工程师:铁匠还是厨子,这是个问题

  关于CAE使用者应当具备哪些素质,以及应该向哪个方向发展的问题,似乎已经被讨论了无数遍了。昨天在QQ群中,一众网友又就此问题展开激烈讨论,场面好不热烈。有人说“CAE工程师应当以自己编制程序为主,必须熟知所使用的工具的内部细节,否则对计算结果很难把握,依赖商业软件不是正途”,也有人说“CAE工程师的工作应当侧重在计算模型的准备以及计算结果数据的利用上,不应当花费过多的时间在软件的内部细节上”。个人觉得这两种观点都有道理,不过更倾向于后一种观点。这里以铁匠和厨子来比喻这两种观点好了。

  小的时候特别崇拜铁匠,他们利用自己的专业技术,将废铁打造成各种犀利的工具:菜刀、锄头等等。在工具打造一系列过程中,铁匠需要了解非常多的知识,比如说炉火温度、锻造手法、热处理工艺等,只有完全了解这些知识,才有可能打造出最合适的工具。

  相对于铁匠是工具的创造者来说,厨子更多的是扮演一个工具使用者的角色。对厨子来讲,他们并不需要特别地了解自己所使用的菜刀的材质以及制造过程,他们需要知道的仅仅是,对于不同的食材,选用合适的菜刀,仅此而已。砍,比如说骨头不能用水果刀;切蔬菜不能用剔骨刀等等。对于工具的关注,仅此而已。厨子需要关注的重点不是在刀具上,而是在食材的搭配、制作过程上,与刀具相关的也仅仅是刀工而已,而这一部分工作,通常是由切墩儿来做的,大厨貌似很少做这方面的工作。

  由此可见,铁匠和厨子是完全不同的两个职业,他们对于工具的关注角度是不一样的。同理,CAE工程师也存在这样的分工。

  我一直觉得,CAE软件开发者不算是CAE工程师,他们应当被称作软件工程师。当然可能有童鞋会反驳“那些开发CAE数值计算算法的人,难道不是CAE工程师?”。这类人虽然熟悉CAE计算细节,但是仍然可以将他们当作软件工程师。众所周知,软件开发的核心在于算法开发,这对于数值计算软件尤其突出。软件工程师更类似于铁匠,必须熟悉软件内部的所有细节,他们的直接产品是软件。

  CAE工程师的目光应该在哪里?是软件的细节么?需不需要了解软件背后的运行原理?个人认为了解软件背后的细节对于CAE工程师来讲是锦上添花的东西,了解这些自然是一件非常好的事情,然而不了解这些似乎也不会有太大的问题。就好比厨子,可以不必去了解菜刀的构成,也不必了解菜刀的制作过程。当然,如果对菜刀的构成以及制作过程有相当的了解的话,则无疑极大的方便了他们更准确的选择合适的菜刀,仅此而已。当然,如果不了解菜刀背后的那些细节,仅仅知道各种菜刀适合于何种场合,自然也是可以的。因为厨子可以选择完全相信自己的菜刀,相信它们可以很好的完成自己的工作。因此,厨子可以将自己的精力集中在食物在加工制作上。相同的道理,CAE工程师也完全可以选择相信自己的软件,当然前提是能够选择合适的软件。当CAE工程师选择完全相信自己的软件时,就可以集中精力在自己的问题上。不过话说回来,如果CAE工程师能够了解CAE软件的内部细节,则会如虎添翼,能够更好更有效地利用CAE软件解决自己的工程问题。

  还存在这么一种情况,厨子做得久了,发现现有的菜刀并不是太适合自己,于是开始考虑打造最适合自己的菜刀。这种情况实际上是很普遍的,一些名厨基本上都有自己特有的工具。当然打造菜刀的过程可以是自己亲手打造,这需要厨子有相当的菜刀打造技术,而这是另一个行业的工作了。另外一种最方便的方式,可能就是雇佣铁匠了,此时厨子只需要向铁匠提出自己的要求,而铁匠按照厨子提出的要求打造菜刀。这里存在一个问题:由于行业间的差异,厨子和铁匠之间可能存在沟通上的障碍。比如说,厨子可能为了某种目的需要铁匠打造一把带有锯齿的菜刀,而这种菜刀可能会造成铁匠的困扰,因为从工具制造的角度,这种不合常规的工具在打造的过程中可能会存在这样或那样的问题,而这些问题并不被厨子所接受,若按照厨子的要求严格去制造,则造出的菜刀可能会强度不够、刚度不够,或者存在安全隐患。因此,若厨子具备一些铁匠的技术,则不会提出一些让铁匠困扰的问题。

  同样的道理,CAE工程师与CAE软件工程师也是一样。资深CAE工程师会发现商用CAE软件会存在较多的问题,这些问题的存在原因可能包括:

  · 商用CAE软件需要考虑到软件的易用性,因此对于软件的内部细节进行了严密的封装。这种做法能够缩短软件的学习周期,但同时也极大的限制了软件的功能扩展。同时,对于资深的CAE工程师来讲,掌握软件的内部细节有助于他们对于软件的计算过程、计算结果有更好的把握和控制。商用CAE软件就像是工厂中批量生产的菜刀,适合于大多数的厨子,但是若想要在厨艺上更进一步的话,批量菜刀不一定能够达到目的。

  · CAE工程涉及到的物理问题都非常的复杂,商用的CAE软件为了自身的销售考虑,需要自己的软件足够稳健,因此绝不会采用最新的、未经严格验证的计算模型,因此这样会导致采用商用的CAE软件计算所得到的精度不会太高。而想要应用最新的计算模型,则必须升级软件的计算内核,对于商用软件来说,这无疑是不可能的。

  在以上情况下,有两种解决方式:

     · 第一种方式,为CAE工程师自己开发软件。这对CAE工程师的综合素质提出了极高的要求,其不仅要求CAE工程师熟悉本行业的物理背景,更要求CAE工程师了解CAE程序运行原理以及软件开发技术。当然好处也是显而易见的,这种方式下,不会存在需求沟通上的困难。CAE工程师知道自己所需求的软件应当具有哪些功能,而且也知道实现这些功能会存在哪些技术上的问题。在软件使用过程中,也能够准确的把握计算过程,在计算出现问题时能够及时反应。当然这种方式也不是没有缺点,一个最显著的缺点在于CAE工程师到底不是专业的软件工程师,开发的软件也往往难以像商用CAE软件那样进行严格测试,软件本身的质量不一定能够保证。

  · 第二种方式,为CAE工程师与CAE软件工程师合作开发软件。CAE工程师提出自己的软件需求,由CAE软件工程师开发软件,实现CAE工程师的需求。这其实就是现在一些商用CAE软件的开发模式,就没有什么太多好说的了,如果团队难以满足这些要求,说多了也是空话。难度还会是比较大的,国内还难以找到这样的团队。

  扯得远了,其实总结起来无非是这样“CAE工程师可以不用完全了解软件的原理细节,但是如果对这些有了解的话,则无疑是锦上添花”。对于时间越来越宝贵的今天,能够省下了解CAE软件背后技术原理的时间,而将精力集中在CAE要解决的问题上,则无疑是一件非常好的事情。

  来源:ANSYS学习与应用微信公众号(ID:use_ansys),作者:流沙。

页: [1]
查看完整版本: CAE工程师:铁匠还是厨子,这是个问题