八文_文档搜索
 
设为首页   |  加入收藏夹
 八文网 - 汇聚八方文档 - 做最优秀的免费文档下载网站
 

面向对象的动力有限元程序设计

文档类型: Microsoft Word 文档 文档大小:35.5KB
面向对象的动力有限元程序设计张渊(北京交通大学土木建筑学院,北京赵海艳(天津城建学院土木工程系,天津
摘要: 本文将面向对象的程序设计方法引入到有限元程序设计当中. 并且通过动力有限元程序设计当中两个类的实现,阐明了面向对象方法在动力有限元程序设计中的运用.
关键词: 动力有限元;面向对象程序设计方法,类; Dynamical Finite Element Yuan(College of Civil Engineering and Architecture, Beijing Jiaotong
Zhao of Civil Engineering, Tianjin Urban Construction
Abstract: The programming method was introduced in the development of finite element method software in this paper. Through implement of two class in the dynamical finite element programming, the paper illustrate the application of programming method in the designing of dynamical finite element method software.
Key words: dynamical finite element method; programming method; class;C
引言:
面向对象编程( Object Oriented Programming )在有限元程序设计中的应用,已经在国内外引起了关注,并且已经取得一定的研究成果.传统的有限元程序设计采取了结构化的程序设计方法.结构化程序设计存在着不易调试和维护的弊端.由于在结构化语言中、数据分作全局数据( global data )和局部数据(local data) 两种.在使用结构化程序进行有限元程序设计时,不难发现,几乎所有重要的数据都是全局数据.假设有一个新的程序员,受命为一个大型有限元程序编写一个小函数,则此程序员在设计程序前、首先必须了解整个计划所使用的全局数据,这将花费很多的时间.如果此程序员在访问全局数据时发生错误,这将会影响到原先程序中所有用到此全局数据的函数或过程,这将会造成调试上的困难.而且结构化语言还有一个缺点、这就是如果修改了某个数据,即使对数据作了较小的修改、但还是会使得整个程序中所有用到此数据的函数需要修改、不利于后期的维护[1] .另外,在进行大型有限元分析时,在进行数组处理时,由于数据量巨大,一般的结构化语言、没有指针功能,使得编译的时候内存消耗巨大.总之,结构化程序设计,程序代码的重用率低,程序可移植性差,使得进行二次开发无法实现或者很困难,而面向对象编程技术可以克服以上的弊端.
面向对象程序设计特性:
面向对象程序设计的本质是把数据和处理数据的过程(函数)当成一个整体- 对象.面向对象程序设计的实现需要封装和数据隐藏技术,以及继承和多态性技术.而C 语言充分支持面向对象程序设计[1] .
(1)封装和数据隐藏.C通过建立类支持封装性和数据隐藏.类一旦建立,就可以看成是完全封装的实体,可以作为一个整体单元使用.类的封装就是数据和算法(操作)结合,构成一个不可分割的整体(对象),其次是,在这个整体中一些成员是保护的,它们被有效地屏蔽,以防外界的干扰和误操作.另外一些成员是公共的,它们作为接口提供给外界使用.这些正体现了程序的可靠性.
(2) 继承和重用.C采用继承支持重用的思想,程序可以在扩展现有类型的基础上声明新类型.从基类(父类)派生出它的派生类(子类),使派生类中成员可以访问基类的成员,进而实现程序代码的重用.我们在进行有限元程序设计时,非线性单元可以由相应的线性单元派生.
(3) 多态性.如果编程语言不支持多态、则不能够成为面向对象的.如果只支持类而不支持多态、我们只能够称这种语言是基于对象的.通过继承的方法构造类,采用多态性为每个类指定表现行为.其实,人与人之间的思想交流、只是不是做同一件事情、一般总是在更高的抽象层面,这样有利于更直接和精确地把握思考的事物.这就是人的思考问题的方式,也是自然的多态方式.沿着这种思路设计的程序,可以有限元程序模型更加准确的描述人们所思考的问题.多态性让类的设计者去考虑工作的细节,使得有限元程序代码极大地简化.我们在进行有限元程序设计的时候,每一个结点类都需要进行打印载荷数据和完成所有载荷的处理,这是侯,我们就可以将这两个函数设置成为虚函数.
以上面向对象的特性,使得程序的设计具有可靠性,灵活性和高效性.另外,面向对象高效性的另外一个重要体现就是可以进行动态的堆内存分配.而正是动态内存分配、才使得大型有限元程序计算效率得到了提高.传统的结构化程序中的变量和函数在编译的阶段都被保存在堆栈中、属于静态联编,使得内存的消耗巨大.而C 动态内存分配可由程序员自由控制,程序员可以从堆内存中申请内存分配、并且随时释放无用数据占用的内存空间,这一过程发生在程序运行阶段,属于动态联编.
在编制动力分析程序时候,我们经常会遇到对称矩阵(特殊矩阵)和时间函数.在面向对象的有限元程序方法的研究中、不少研究者已经提出了不同形式的对称矩阵(特殊矩阵)和时间函数类.以下,作者也给出这两个类的具体实现.
对称矩阵(特殊矩阵)类 [2]若n阶矩阵A中的元满足下述性质则称为n阶对称矩阵(特殊矩阵).在动力分析时,刚度和阻尼矩阵一般都是对称矩阵(特殊矩阵).
对于对称矩阵,我们可以为每一队对称矩元分配一个存储空间,则可以将n2个元压缩存储到n(n1)2个元的空间中.
假设以一维数组sa[n(n1)2]作为n阶对称矩阵A的存储结构,则sa[k]和矩阵元a ij 之间存着一一对应的关系:
对于任意给定一组下标(i,j),均可以在sa中找到矩形元a ij .根据以描述 可以描述为:class {
; 构造函数 ma); 拷贝构造函数~{deletesa} 析构函数int Size {return iRow} 返回行数double Elem(int,int); 引用返回的目的是返回值可以作左值
sa;int iRow;下面给出特殊矩阵类的构造函数和Elem 函数:
i)
doc文档的标签: 动力 对象 面向 有限元 程序设计
更多推荐标签: 小区策划   现代物流技术   退火工艺   国自然   淘气包马小跳   镀镍工艺基础   模拟与优   栏目包装发展   幼儿园问卷   绩效考评程序   硬质合金生产   安徽电话   休学申请书   弱电个人总结   科技检索   用户行为分析   公司是我家   医学常识   通信工程图   歌曲目录   分子式   社会保障经济   个人分红合同   一芄惚   汽车见习报告   关于评估   童话特点   亚太经济   建设   客户资源  
相关文档推荐
程序设计导论
网络程序设计ASP
C++面向对象程序设计复习题集
选择结构程序设计
计算机程序设计人员
计科网络专业面向对象程序设计试题
面向对象程序设计课程作业及答案
ASP网络程序设计
程序设计教程
程序设计实践(三)
数据库程序设计
汇编语言程序设计
汇编语言程序设计
系统程序设计
二级VB程序设计教程
程序设计基础
程序设计
程序设计初步
程序设计教程
程序设计
推荐文档下载
2006年4月陕西省食药监局公布近期违法
中小学教研信息
全民电影立可拍
浙江省信息服务业发展专项资金
班主任工作总结
圆桌会议:廉政组织之设计
注会财务管理第1章
2005~2006学年第二学期全校性选修
制造业信息化技术服务体系建设典型案例
发行国民旅游卡之发卡机构提供优惠表
积极开展企业培训工作
股票简称:平高电气
丽水市旅游局文件
讲座天地
人事部办公厅文件
2005年度计划生育统计调研
论文格式
自然科学基础辅导一
高二历史测试
煤炭法
 
文档下载提示:
·最新免费文档下载、毕业论文免费下载、Word文档下载、Excel表格下载、PDF电子书下载、PowerPoint提案下载
·所有文档均为网友上传,仅供学习参考,用作其它用途时请征得相关权益人许可.
·八文网只提供文档共享平台,不对文档内容的正确性及相关内容所引发的后果负责.
·如此文档"面向对象的动力有限元程序设计"涉及您的权益,请附上网址来信告知web_8wen(#)126.com,本站将认真配合并改正。
Copyright ©2005-2008 八文网-  8Wen.com . All rights reserved.