所谓的有限元软件的二次开发工作,绝大部分指的是前后处理的二次开发,基本不涉及求解器的开发。二次开发是现代企业提高工作效率,规范操作流程,确保仿真精度的一项重要的工作。既然是二次开发,就是需求分析,代码编写,界面设计以及最后调试使用等等一系列的工作,所以要想做好二次开发,代码非常重要。优秀的代码能力,能让二次开发灵活柔性,容易使用,但达到这个并不容易。
CAE软件的二次开发针对的是具有相当工程经验的仿真工程师,仿真工具涉及到复杂的理论基础和工程经验,二次开发的目的和作用也严重依赖企业的工作流程,所以其真正的核心并不在代码。
01
CAE软件二次开发的核心在于流程
一个成熟的企业,其各项工作也必然是流程化和规范化的,具体到仿真工作也是一样。以CAE的前处理来看,大致包含以下几个工作:
- 有限元网格划分
- 材料属性的赋予
- 部件连接与装配
- 仿真工况的设置
- 提交计算
二次开发的目的,就是减少重复繁琐的工作内容,让程序自动执行,提高工作效率减少人工错误的产生。要想达到二次开发,必须对工作方法和流程有一定的企业规范。拿材料属性的的自动赋予举例,很多公司都用tk/tcl语言进行二次开发,但首先程序必须识别该部件是什么材料,是solid还是pshell,厚度是多少,另外零件号也必须标明以区分不同的部件。而这就需要企业对部件的命名有一个规范,否则,二次开发就无从谈起,基本不可能实现。
流程越详细,细节规范的越清晰明了,二次开发的可能性也就越大。企业的前后处理均使用二次开发的程序来规范,工作质量和人员效率也就越高。
02
CAE软件二次开发的核心在于经验
二次开发的价值不单单局限在提高工作效率,诚然,提高工作效率是二次开发自带属性,但把工程师的个人经验融合到二次开发的工具中,让所有工程师的工作做法,工程经验通过程序的方法固定下来,就实现了工作经验的升华。工程经验的东西比较主观,每个人可能都不一样,但大家达成通识的工程经验就是可以固定沉淀下来的东西,而这个东西最后通过二次开发的程序固定下来,带不走也丢不掉,就是一个企业的核心竞争力。
03
CAE软件二次开发的核心在于人才
其实公司的竞争大体就是人才的竞争,所以这里我再要提一下。CAE软件的二次开发其实是一个跨学科的工种,需要的开发人员素质有:
- 掌握基本的有限元理论
- 相当的实际工程经验
- 优秀的代码能力
通俗话来讲,这个人既要懂仿真,也要会写程序,最好能有较多工程经验。我也看到很多企业,有专门的软件开发团队,为其他部门需要二次开发的提供技术支持,但这样其中的沟通成本极高。软件工程师不一定能真正理解仿真工程师的需求,仿真工程师也不懂软件开发的条条框框,最后开发的软件贴近不了实际应用,浪费了太多的资源。另外,一个好的软件应该是bug少,这一方面依赖于工程师的代码能力,全面的逻辑思维能力,也依赖于对仿真流程的了解和工程经验的积累。