FEALPy:以开源社群的力量,打造中国自己的工业仿真共性基础算法库

本文最后更新于:1 个月前

FEALPy:以开源社群的力量,打造中国自己的工业仿真共性基础算法库

工业仿真技术的核心–偏微分方程数值解

偏微分方程本身是对自然界中各种变化规律的一种近似的数学描述,定量刻画了变化现象中的不变关系, 如质量守恒、动量守恒、能量守恒等。它普遍存在于物理学和工程学等现代科学中,是一类应用最广泛的数学模型。高效求解偏微分方程,已经成为人类深刻理解各种自然现象、发现规律并利用规律改造自然的有力工具。

但在实际应用中出现的绝大多数偏微分方程,都无法写出解析解,所以只能求助于数值求解。 于是,如何克服偏微分方程本身的无限性带来的挑战,设计出高效、高精度并适合在计算机上实现的 数值计算方法成为了偏微分方程数值解主要研究内容。由于有大量的应用背景,偏微分方程数值解也成为计算数学这个数学学科分支中一个非常重要的研究方向。

以偏微分方程数值求解为算法核心而形成的工业仿真技术(也称为计算机辅助工程,简称 CAE),目前已经成为先进制造业信息化和智能化的核心手段。借助工业仿真技术, 可有效提升产品质量,大幅缩减产品的研发周期,并显著降低工业产品的设计、制造、维护和 使用成本,可以为工业制造企业及其客户带来巨大的收益。

中国的工业仿真软件现状与问题

工业仿真技术实际发挥作用的载体是工业仿真软件, 也称为 CAE 软件,它们是对工业产品的设计、制造、 维护及使用过程模拟仿真的关键基础设施。从国际著名的商业 CAE 软件长达四五十年的发展历史中可以看到, CAE 软件发展的本质就是将数学算法和工业知识软件化的过程, 而且这种软件化的过程明显具备“不可压缩”的特征。 这里的“不可压缩”是指,工业仿真软件的发展必须伴随着 工业崛起而成长,且成长过程中既需要需要经过长期的 数学算法和工业知识的沉淀积累、不断追求精益求精, 也需要政府、学界和工业界长期的协同支持。

但由于种种原因,中国市场上主流的 CAE 软件,无论是商用还是开源,大多数来自西方发达 国家。它们在中国市场占有绝对优势,垄断了大部分的核心技术和人才。而当前中国国产 CAE 软 件在总体上还存在基础薄弱、创新不足、人才短缺和应用困难的问题,发展和 应用水平与西方发达国家差距巨大。

中国作为全球唯一一个具备完整工业体系的国家,这种对国外商业 CAE 软件严重依赖,已经为 工业仿真基础算法科研、人才培养以及先进工业制造业的高质量发展带了来巨大的问题和隐患。

如在计算数学、土木、机械、航空等理工科专业中,做计算仿真的科研人员大量使用国外的 商业 CAE 软件(大多数还是盗版的),常常无法做到对底层算法的深刻理解,也无法做到基本的自主可控, 导致国家和企业投入大量研究经费及人力物力,所获得的科研成果和经验,很难进行系统地积累集成,而没有长期系统的积累集成, 是无法培育出真正重大创新和突破的。

同样在这些理工科专业的人才培养当中,也因 为大量基于这些国外的商业 CAE 软件进行课程建设、教学和论文写作,导致大部分学生只是学 会了这些商业 CAE 软件的操作方法,而不是真正理解背后的数学算法原理。最后我们的人才培养系统变成了 国外商业 CAE 软件的培训班,一直在无偿地源源不断地为这些软件培养忠实的用户。

这些人才最后又大量进入我国的工业设计制造部门,又因为只会使用 这些国外的商业 CAE 软件,没有能力、也没有长期的耐心和投入来开发自主可控的 CAE 软件,从员 工到领导都更倾向于购买国外的商业 CAE 软件。而在没有能力购买的情况下,又会冒着极大的法律 风险使用盗版软件。还有一部分人才会进入国外的商业 CAE 软件公司,继续向我们的科研院所 和工业设计制造部门大力推销这些国外的商业 CAE 软件。

对国外商业 CAE 软件的过度依赖,造成的最大问题,是我们的工业设计制造部门没有自主可控 的软件平台,用于集成沉淀工业生产过程中获得大量工业设计制造经验和知识。这些宝贵的经验和知识,要么过分依 赖于特定技术人员,从而很多会随着这些人员的离职、退休或去世而又消失不见,给相关企业造 成巨大的损失;要么会反馈集成到国外的商业 CAE 软件当中,让它们变的更强,更有竞争力,进一步 挤占国产 CAE 软件的生存和发展空间。最后我们的工业设计制造部门又要花巨资,购买这些国外的 软件,才能继续使用这些本由自己总结的经验和知识.

过分依赖国外的商业 CAE 软件是我国“制造业大而不强”问题的核心体现。为应对国际自由贸易环境 面临的重大挑战,解决“制造业大而不强”、核心技术被人“卡脖子”的严峻现状,亟需我们对工业 软件的自主性和安全性重视起来,从各个层面支持自主可控工业软件的发展。而自主可控工业软件 的广泛和深入应用,也会对中国制造业的安全和高质量发展提供强有力的基础支撑。

其实中国计算数学科研工作者对很多工业仿真共性基础算法的发展都做出了极大的贡献。其中以有限元算法 最为典型,它虽然最初起源于国外土木工程和航空工程中的弹性和结构 分析问题的研究,但中国老一代和新一代计算数学科研工作者,很早并一直都在为其发展做出卓越的 贡献。早在1965 年,中国计算数学专家冯康先生,基于五十年代至六十年代大型水坝计算研究的 实践经验,发表了《基于变分原理的差分格式》一文,奠定了有限元计算方法的严格数学理论,为后世 有限元计算方法的实际应用提供了理论保证。同时在以冯康先生为代表老一代杰出代表的悉心培养下, 中国涌现出了一大批在国际计算数学领域有重大影响力中青年专家,做出了很多有原创性的算法科研成果。

中国计算数学学术研究的蓬勃发展,与国产工业仿真软件发展人才匮乏、技术薄弱、无力与国外软件竞争的现状,形成了强烈的反差。 究其原因,这与中国长期以发论文为主导的科研评价体制有莫大的关系。但发论文本身没什么毛病,因为它是学术研究同行间交流学术思想和 科研成果的重要手段。但计算数学做为一门应用背景很强的交叉学科,除了以论文形式发表算法科研成果外,还担负着培养 工业仿真基础算法人才、发展工业仿真基础算法软件的重任。

但在这种以发论文主导的科研评价体制的引导下,大量基础算法科研人员 的研究止步于论文的发表,甚至只是为发论文而发论文,导致大量优秀的算法研究成果仅仅停留在论文里, 无法有效转化为真正有用的算法代码、形成真正的生产力。而算法研究 成果在代码层面不可见、不可用、不好用,对算法自身的演化发展也极其不利。因为在只有论文的情况下, 其他的科研人员、学生和算法工程师很难对其快速消化吸收并实现,更不用说改进创新了,从而又严重制约了 算法本身的进一步发展。

做自己的工业仿真共性基础算法库

硕士导师陈艳萍老师把我推荐给黄云清老师,顺利开始了自己的博士生涯。 当时恰好遇到博士津贴提高到一千多,这意味着自己不用每个月花家里的生活费了,这样就能让母亲轻松一点。

更幸运的是,博士开始前的暑假,黄老师请了美国加州大学欧文分校的陈龙老师一起来指导我。在遇到陈龙老师 之前,我自认为自己 Matlab 学的非常好。但见到陈龙老师的写的向量化运算代码后,就又被震惊到了, 因为我以前都是用循环写 Matlab 程序的。还好前面已经有非常好的基础,很快就掌握向量化编程技巧。 2010 年底还去陈龙老师那里访问了学习了一年,有了更多面对面讨论的机会,自己基于 Matlab 语言有限元编程能力也有了质的提高, 并且可以向陈龙老师的 iFEM 贡献代码了。最后还发了两篇比较好的论文。回国后,黄老师欣然的同意了我的留校工作请求,并于 2012 年 7 月开始自己的教师生涯。 基于博士阶段的工作,拿到了青年基金项目,也顺利评上副教授。

毕业后,自己就开始参与军工方面的项目,这时才突然发现,自己以前根本不是编程能力强,而只是能写 点可以运行的程序而已。由于以前写的程序是零散的、不能复用的,造成每遇到一个新的项目,或者要写新的论文,很多程序都要重写一遍, 根本没有任何所谓的软件设计、系统集成测试等现代化的编程经验和实践。于是又开始不断踩坑痛苦实践过程,不断拿各 种各样的开源软件安装测试,读英文文档,剖析代码,然后在这些软件基础上再写自己的代码。最后项目虽然结题了,但 这些代码和努力实际上并没有真正发挥什么作用,这是最让我沮丧的事情。

在国外商业 CAE 软件占垄断支配地位以及计算数学旧有巨大惯性下,解决工业仿真基础算法科研、人才培养及国产 CAE 软件发展瓶颈问题的突破口在哪里?

我认为答案就在于基于中国优秀 的工业仿真基础算法研究能力和成果,借助开源社群的思想和实践经验,吸引一批充满激情和创造力的算法科研工作者、学生和工程师, 共同打造几款开源且“自主可控”的工业仿真共性基础算法库,用于支撑工业仿真基础算法的科研、人才培养以及促进先进算法 向工业界的传播。

基于以上的考虑,开发 FEALPy 就是这样一次初步的尝试。FEALPy 做为一款开源的偏微分方程数值解算法库,其首要目标是追求 简单易用,并且不受操作系统或软件平台太多限制。所以 FEALPy 完全采用 Python 语言开发,并充分利用 Python 的对象化和 Numpy 的数组化 编程技术,重构偏微分方程数值解核心的数据结构和算法,以达到模块化和接口标准化的目的。在实现 FEALPy 高可维护和高可扩展的同时,让用户能够以“乐高积木”的方式快速搭建自己的数值实验程序,并可以根据需要灵活替换其中的模块。 FEALPy 即可用于支撑相关领域的基础科研和人才培养工作,又可用于 CAE 应用原型软件的快速开发验证工作。

FEALPy 主要定位于解决工业仿真基础算法科研和人才培养中缺少自主可控算法软件平台的问题, 借助开源社区的力量,为广大算法科研工作者及学生提供一个简单易用、开放共享的实践学习平台。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!