forestlin 发表于 2013-3-7 20:05:09

有限元语言与FEPG

本帖最后由 forestlin 于 2013-3-7 20:05 编辑

   有限元语言是模型语言的一种,专门用于编写有限元程序。采用这种语言编程,主要工作量就是书写微分方程表达式(弱形式)及其求解算法,比采用现有的高级编程减少代码量90%以上,并且很容易阅读和修改。采用有限元语言不仅可以求解各种有限元问题,并且可以编制各种复杂的有限元软件。
采用有限元语言编程主要是编写三种类型文件,即微分方程表达式PDE类文件,单物理场算法NFE文件和多物理场耦合文件GCN与MDI。
PDE和NFE可以理解为两种类型的模块文件,它们相互独立,即一个PDE文件可以对应各种PDE文件,因此很容易反复使用和修改。
GCN和MDI文件则可以理解为调用这两类模块的主程序。
GCN文件的第一段给出了采用的全部算法模块NFE文件名及其耦合方式,微分方程模块PDE类文件名及其单元类型则在MDI文件给出。
GCN文件的第二段给出了求解该有限元问题的命令流,每一条命令对应一个组件程序,主要由各个场的初始化START组件程序和求解算法SOLV组件程序组成,它们皆由相应的NFE文件和PDE类文件以及代数方程求解程序自动生成。对于时间依赖问题还需要增加一个时间更新的组件程序BFT.
FEPG把用有限元语言写的有限元程序转换成FORTRAN语言程序,有限元语言应逐步走向统一,其生成器则可以有多种多样的,FEPG只是其中一种。就如同FORTRAN语言或C语言要有统一的文本,但它们的编译器可以有很多不同的品种。
FEPG采用了三项软件技术,生成器技术,组件化技术和公式库技术。
生成器技术就是把由有限元语言写的文件转换成FORTRAN语言程序。
组件化技术就是把一个有限元计算程序分解为若干个组件程序完成。FEPG对每个物理场的计算通常由初始化组件程序START和求解组件程序SOLV两个组件程序完成。当然这两个组件程序将随着NFE文件和PDE类文件以及代数方程组求解程序的不同而不同。有时候为了初学者更容易阅读和理解,把SOLV分成三个组件程序,即单元计算E组件程序、代数方程组求解组件程序和后处理计算U组件程序,但这种做法需大量读写单元计算结果,因此实际计算都把这三个组成程序合并成一个求解组件程序。对于时间依赖问题还需要增加一个BFT组件程序。
组件化的一个关键问题就是组件程序的接口(interface)问题,FEPG采用文件作为组件程序的接口,每一个组件程序都是一个独立的FORTRAN程序,单独编译和运行。通过批命令的形式运行这些组件程序,并且这些组件程序的运行都带有若干文件名作为其运行参数。这个批命令是由GCN的第二段命令流自动生成的。
FEPG的第三项软件技术就是采用公式库替代通常的程序库,由于采用自动生成技术,许多模块程序可通过公式产生,而公式比模块程序代码量少得多,更容易书写、阅读和修改、维护。
FEPG已有公式库如下:形函数公式库、数值积分库、微分算字库,包括各种坐标系的梯度算子、旋度算子和散度算子,通常算法NFE文件库。固体力学、流体力学、电磁学、传热传质学、结构力学各个领域各种坐标系的PDE类文件库,并可通过界面和鼠标获得相应的有限元语言程序

baijian 发表于 2013-3-20 15:53:31

FEPG有没有破解版?我设计电机的,有没有相应的功能?

forestlin 发表于 2013-4-9 19:43:29

干什么要破解版呀? 上飞箭公司的网站就可下载使用互联网版本.

20016330 发表于 2013-8-14 23:48:08

问题是单位,不能上外网,不能使用互联网,有个破解版的就方便多了。
页: [1]
查看完整版本: 有限元语言与FEPG