面向对象有限元程序的类设计ξ.pdf
文本预览下载声明
第 13 卷第 3 期 计算结构力学及其应用 V o l. 13 N o. 3
1996 年 6 月 COM PU TA T IONAL STRU CTU RAL M ECHAN ICS AND A PPL ICA T ION S A ugust 1996
面向对象有限元程序的类设计
周本宽 曹中清 陈大鹏
( 西南交通大学计算工程科学研究所, 成都, 610031)
摘 要 传统有限元程序设计中的许多问题可以通过面向对象程序设计方法加以解决。本
文介绍了我们尝试采用Bo rland C + + 2 0 进行的一种面向对象有限元程序设计, 着重进行
有限元程序的类划分与定义, 并将几个典型的类设计成类等级。面向对象语言的继承性、封
(
装性、多态性等特性在我们的程序设计中均得到了运用。与传统的有限元程序 通常采用
Fo rtran) 相比, 面向对象有限元程序更加结构化、更易于编写、更易于维护和扩充, 程序代码
的可重用成分更大, 它为开发大型有限元分析软件提供了一条新途径。
关键词 有限元法; 类面向对象程序设计
分类号 T P 311
1 引 言
有限元法是求解微分方程边值和初值问题、建立在待定场函数离散化基础上的一种数值
方法, 现已广泛应用于固体力学、流体力学、生物力学、传热学、电磁学及其它数学物理领域。有
限元分析软件已成为人们解决复杂工程问题的有力工具, 目前国际上已有一些非常著名的有
限元软件, 如 、 、 等, 这些软件大多采用传统的结构化程序方法设计
A SKA AN SYS NA STRAN
( )
通常采用 Fo rtran 语言 。
这种传统的程序设计方法将整个程序分成若干个相互独立的程序段构成一些功能模块,
每个模块又可以由若干子程序构成, 用若干个只有一个入口和一个出口的控制结构编写。然而
将一个完整的有限元分析过程划分成若干相互独立的子过程对于软件开发者来说, 并不是一
件十分容易的事。而且, 任何一个有限元软件都只能解决一定范围内的实际问题, 其功能是有
( )
限的, 要增加软件的功能 如增加新的分析类型、新算法、新单元等 就要对原有程序代码进行
修改和扩充, 从而形成新的软件版本。新版软件既要保持原有功能, 又要增加新的功能。这样,
软件开发者便要从数万乃至数十万行原有代码中分辨出哪些代码在新版本软件中是可保留
的, 哪些代码是要修改和补充的, 并精心对上述代码进行重新组合, 从而尽可能地提高已有代
码的重复利用率。毫无疑问, 这也是一件十分复杂而庞大的工作。
这种传统的有限元程序设计方法是面向过程的, 它把数据和过程作为相互独立的实体, 在
( )
编写程序时必须时刻考虑所要处理的数据格式 结构和类型 。对于不同的数据格式即使要作
同样的处理, 或者对于相同的数据格式但要作不同的处理, 都必须编写不同的程序。因此, 尽管
有限元软件开发者想尽力提高程序代码的重复利用率, 但实际上采用这种方法编制的程序可
重用的成分仍然很少, 随着软件功能的增强, 程序代码和编程工作量也往往大幅度增加。同时,
本文于 1995 年 4 月 18 日收到。
© 1995-2004 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
270 计算结构力学及其应用 13 卷
由于数据和代码的分离, 总存在使用错误的数据调用正确的程序模块
显示全部