有限元语言简介

CAE 软件行业背景

我国 CAE 软件的形成和应用从 20 世纪 70 年代就已开始。近 50 年来,我国在 CAE 理论研究和软件自主开发方面的努力始终没有停止过,也有一些拥有自主知识产权的软件系统脱颖而出,如中科院的飞箭、郑州机械所的紫瑞、大连理工的 JIFEX、中航的 APOLANS、HAJIF 等,均在当时达到一定国际水平,甚至领先水平。上世纪 90 年代以来,开放力度加大,大批国外软件涌入中国市场,加速了 CAE 技术在我国的推广,提高了我国装备制造业的设计水平。与此同时,我国自主开发的软件受到严峻挑战,特别是盗版的国外软件,对我国自主开发的 CAE 软件打击很大,甚至连一些优秀的软件都退出了国内 CAE 市场。作为工业大国,中国不可能长期依赖引进国外的技术和产品。培植自己的 CAE 软件产业,以应用为牵引,提升工业设计软件和仿真分析软件的应用水平,提高产品竞争力和企业核心竞争能力,成为当务之急。

有限元语言

有限元语言(Finite Element Language)是一种专用的有限元模型标记语言,语法简练清晰,广泛地应用于偏微分方程的求解。

发明有限元语言的初衷是为了解决以下两大问题:

经过近三十年的发展,有限元语言已经基本实现了当初的设想。

有限元语言可以使用户以一种类似于数学公式书写和推导的方式,非常自然和简单地表达待解问题的微分方程表达式和算法表达式。采用有限元语言编写程序,开发者的主要工作就是针对不同的表达式,如微分方程的弱形式表达式和算法表达式等,书写脚本文件。有限元语言生成器会自动将脚本解析成某种高级语言(如 Fortran 和 C),编译后即可得到完整的有限元计算程序。有限元语言常用于大规模并行计算和任意多物理场耦合计算程序的开发,是迄今为止数值计算行业中最专业的编程语言之一。

有限元语言分为两部分。一部分用于描述多物理场的偏微分方程(组)表达式。为此,用户需要按照偏微分方程的弱形式表达式填写 PDE 和 FBC 文件,以及用于组织管理的 MDI 文件。偏微分方程表达式支持采用张量形式,非常符合有限元专业人员的习惯。另一部分用于描述求解微分方程的有限元算法,即描述如何将一个非线性的偏微分方程线性化,如何针对时间依赖问题进行时间离散,以及如何控制计算流程和迭代,等等。为此,用户需要填写 NFE 和 GCN 的文件。NFE 文件主要给出离散后线性代数方程组的矩阵和右端项的表达式以及迭代步的控制等内容。GCN 文件给出多物理场采用的算法、耦合方式和有限元计算的流程等。

有限元语言既适用于线性和非线性问题,又适用于稳态和非稳态问题,耦合场的数目可有任意多个,每个场也可有任意多个自由度。因此,可方便地用于求解各种领域和各种学科的任何有限元问题。

同高级语言的对比

  有限元语言 高级语言 (Fortran, C/C++ 等)
源文件 有限元语言脚本文件 高级语言源文件
编译/翻译器 FEPG、FEtch 等专用生成器 各高级语言厂商提供的专用编译器
编译/翻译目标 高级语言 Fortran 或 C 源文件,
前处理器(如 GiD)的模板文件,
以及源文件对应的编译连接批命令文件
二进制 obj 文件
后续操作 调用高级语言编译器,进一步地编译链接 链接生成二进制可执行程序

优势

生成器

生成器本质上是一种翻译程序,它将有限元语言编写的源代码翻译成已有的高级语言,如 Fortran 和 C。现有的生成器和其对应的目标语言如下:

生成系统 目标语言 特色
FEtch Fortran 90 支持 Fortran 最新特性,更加灵活高效
FEPG
pFEPG
iFEPG
Fortran 77 长期积累,公式库丰富
FELAC
ELAB
C 提升了并行计算性能

未来行业影响

结论

有限元语言把有限元方法与有限元程序融为一体,是未来 CAE 的重要发展方向之一。它比目前的高级语言更高一个层次。用它来编写有限元软件能显著提高效率,并且易于阅读和修改。与绝大多数商软相比,有限元语言所生成的针对具体问题的 CAE 分析工具,不管是实施成本,还是对问题的适应性,都有明显的优势。有限元语言和生成器有望从根本上改变有限元软件技术,把广大工程师和科学家从繁琐、重复的有限元编程劳动中彻底解放出来,并进一步促进有限元法在各个领域的推广和应用。




打赏一个
取消

感谢您的支持,我们会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝或微信扫一扫,即可进行扫码打赏哦