为什么用 FEtch,谈 FEtch 的开发理念

引子
"我就想吃个鸡腿!请不要给我一整只鸡,吃不起;也请不要让我自己孵蛋、自己养,等不起。就要一个鸡腿,可以吗?"
"肯定的!欢迎来到我们的吃鸡自助小店,喜欢啥,FEtch(拿)啥!"

有限元软件现状
有限元方法是认识世界的一把钥匙。它的应用领域非常广阔,在固体力学、流体力学、传热学、电磁学等领域,都发挥着十分重要的作用。
应用有限元方法和程序,当前不外乎以下三种情况:
购买和使用大型商业有限元程序;
独立开发和使用自己的有限元程序;
修改和应用从别处获得的有限元程序代码。
从使用者需求的角度来看,也可以粗略地分为两类:
对灵活性要求较高的,比如科研应用;
对灵活性要求不那么高的,比如大多数的工程应用。
对用户而言,软件只是实现目标的工具。目前有限元领域的软件工具可谓百花齐放,存在非常多的选择。每个软件都有自己的特色,也都有自身的局限性。在选择软件时,我们通常主要需要关注以下三个方面:
能否满足自己的需求;
软件价格是否合适;
学习成本能否接受。
话虽如此,如果没有高人指路,面对众多的软件,要做出一个合理的选择,也的确是一件费时费心的事情。
当前,国际上有大量功能强大的有限元软件包可供使用,如 ANSYS,ABAQUS,ADINA,MSC 等。这些鼎鼎大名的大型通用有限元软件已经占据了国内外很大的市场。在这种情况下,我们为什么还要推出 FEtch 系统呢?

FEtch 缘起
作为超级庞大的有限元工具箱,大型商业通用软件的可用范围极其广泛,但这也同时造就了它的缺陷。经过长年累月的实践,人们发现,尽管商业通用软件功能强大,使用方便友好,但是,在处理实际问题中的需求是千变万化的,这就导致了通用软件并不完全通用。比如,想修改程序的算法,想修改一下控制方程,甚至连想增加一个模型参数都很难做到。毕竟商业软件不是完全开放的,用户不能直接修改程序的源代码。尽管这些商业软件提供了二次开发的接口,并且在不断地进行升级,但是对于用户而言,它们始终是黑匣子。
不仅如此,由于其通用性,大型商业软件捆绑了太多对用户自身专业来说毫无价值的冗余功能。建模过程往往过于繁琐,前后处理的操作效率并不高,而且吃硬件。当前,人们正在逐渐改变对有限元工具的认知:越是艰深的东西,越没必要追求大而全。
此外,高昂价格,一套商业软件动辄上百万的购买费用,也不是一般用户所能承受的。这就直接导致了国内目前的 CAE 行业的窘境:大多数用户只能选择功能缩水、还可能携带着电脑病毒的盗版软件,关起房门来战战兢兢地用一下。
正因为如此,从大型商业软件出现之前直至现在,国内外许多学者都在针对各自的研究领域编写自用的有限元程序。这样,在研究中就可以随时根据需要而自由地修改代码,具有极大的灵活性和实用性。甚至一些具有共享精神的学者和机构还将程序源代码奉献了出来,给大家免费使用、测试。这就是开源有限元程序。
开源程序有效地弥补了商业闭源软件的缺点,极大地促进了有限元法的研究和普及。然而,这类开源程序往往缺少注解和说明文档,晦涩难懂,造成其他用户难以理解诸多的代码细节,对修改和使用程序造成了巨大的困难。应该说,学习成本过高是推广和应用开源程序的最大障碍。
此外,我们还必须清楚地认识到,软件越庞大,其出错的几率也就越大。卡内基梅隆大学的汉弗莱(Humphrey)通过对 13000 个程序的多年研究发现,平均而言,专业编程人员在他们编写的每 1000 行代码中会出现 100 到 150 个错误。开源程序大多都缺乏良好的测试和维护,代码正确性和可靠性是否过关也是需要用户慎重考量的。
基于对以上有限元软件现状的分析,我们开发的 FEtch 系统正尝试走出一条大型商业软件和开源软件的中间路线。它提供了一套完整的代码快速开发机制,用户只需按照有限元语言的格式,填写少量的脚本文件,就可以自动生成功能完善的 Fortran 有限元计算程序。经过近四十年的发展和修正,有限元语言已经日渐成熟,底层代码的可靠性有着充分的保证。这样,就可以使用户在一定程度上摆脱大型商业软件的封闭和笨重,也不用像使用常规开源软件那样,在纷繁芜杂的代码中穿梭,从而大大减轻了用户的编程负担,减少了出错几率。
从这个角度讲,FEtch 系统实际上具有高效地帮助用户构建有限元程序系统的能力,并且十分容易维护和修改。同时为了满足不同群体的需求,我们采用了阶梯定价的方式出售许可证。对于大多数用户来说,FEtch 的使用成本通常只有 ANSYS 和 ABAQUS 的万分之一到千分之一。因此,对于对软件的灵活性要求较高的科研人员、有限元程序内核的开发人员、有限元教学人员,使用 FEtch 系统是非常合适的。而对于注重研发和使用成本的企业用户,FEtch 系统同样为他们提供了一个更加安全和高效的工具选项。
我劝天公重抖擞,不拘一格降人才。实际上,任何使用有限元方法进行科学计算的用户,都可以根据需要创造性地来使用 FEtch 系统。
欢迎联系我们,以帮助您评估 FEtch 系统是否能满足您的需求。我们的技术团体将为您提供最实用的信息和建议,助力您实现专业有限元程序的私人定制。
扩展阅读
CAE 软件发展方向——通用和专用之争 - 知乎
https://zhuanlan.zhihu.com/p/441088701
相关技术文档请关注内测网站:
http://47.99.35.60:8000
QQ群: 519166061