有限元程序设计及其VC与Matlab混合编程实现_第1页
有限元程序设计及其VC与Matlab混合编程实现_第2页
有限元程序设计及其VC与Matlab混合编程实现_第3页
有限元程序设计及其VC与Matlab混合编程实现_第4页
有限元程序设计及其VC与Matlab混合编程实现_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第卷第期岩十力学、年月【文章母()面向对象有限元程序设计及其与混合编程实现史贵才,葛修润(中国科学院岩土力学重点实骑室武汉;常州二学院土木建筑工程学院,江苏常州)摘要:应用面向对象方法来研究有限元,是对有限新方法的有益尝试和创新性发展。通过对比面向过程和面向对象的程序设计方法,讨论了面向对象方法与有限元程序设计相结合的优点,并简要回顾了国内外面向对象的程序设计方法的研究进展。应用面向对象的程序分析方法,建立了维脆塑性有限元分析类库。采用和混合编程的手段,设计了基于操作平台的面向对象的三维脆塑性有限元分析软件,成功地分析了国内某大型水电站地下硐室群围岩稳定性,验证了该面向对象有限元分析程序的有效

2、性和实用性。关键词;面向对象;脆塑性;有限元;程序设汁中圈分共号;文献标志码:。,;,),;目,:;引言生整个程序的代码修改,特别是数据结构的变化将贯穿整个程序代码的更动。其程序的扩展能力有有限单元法是计算力学在过去余年中的最限,代码的重利用率低,调试复杂。研究表明”,大进展,在固体力学、热传导、计算流体动力学、这种以算法为核心,过程和数据分离的结构化程序渗流、电磁场等领域得到广泛应用,已成为数学物设计方法,已越来越不适应有限元软件的发展要求。理中几乎无所不能的数值计算方法。传统的有限面向对象程序设计方法集数据抽象、抽象数据元程序设计一般采用结构化的程序设计方法,其特类型和类型继承为一体,使软

3、件设计中人们普遍遵点是代码和数据的独立性,即数据结构和其操作过循的模块化、信臣隐藏、抽象和代码共享等思想在程彼此分离。这就造成当系统需求改变时,这些程面向对象机制得以充分实现,从而成为一种强有序将不能被重用和移植,甚至十分简单的改动会产力的软件设计模式;另外,而向对象的程序设计,收稿日期:修改稿收到日期:一岩土由了二程序具有封装性、继承性和多态性等优点,使得程序设计概念清楚,调试容易,代码的重利用率高,已成为现代程序设计的主要方法之。另一方面,作者认为,尽管面向对象技术在有限元分析中有巨大的优势和广阔的应用前景,但是其并没有从根本上改变有限元方法的核心,并不能突破有限元本身发展的瓶颈。将应用于

4、有限元分析源丁二年,旨次将应用于有限元程序设计,提示了将有限元知识结构在程序空间更清晰地加以表达的可能”。受工作的启示,在国际上,和用求解了一个岩石裂隙和流体的有限元问题;等人用对一个三维岩上工程问题进行了分析”;等人研究了在隧道稃卜如何用面向对象的模型来设计与分析问题”。在国内,公开报导的有:孔详安、张向、魏泳涛、曹本清、马其罕、李会平、项阳等。而向对象的有限元程序设计方法已经成为一个研究热点,而且取得了相当进展。近年来,面向对象程序设计方法在线性静态有限元分析领域的有效性已得到论证,而在非线性领域的探索还很少见报道。本文将给出自己编制的二维弹脆塑件有限元的程序结构及其实现。面向对象的基本概

5、念对象()对象是客观世界中的一个实体,是其自身所具有的状态特征及对这些状态施加的操作结合在一起所构成的独立实体。它把客观世界的实体年【计算机系统运行实体有机的结合在一起。要设计个面向对象的有限元程序,对象的确定和划分非常重要,对象的确定利划分是否得当直接影响所编制的程序的质量。目前,关于如何合理划分有限元分析中的对象,共同性的结论还不多。数据抽象和封装()数据抽象是指从较特殊的类或对象中抽出一般属性以建立个超类的过程”。封装又称数据隐藏,是指将一个数据和与这个数据有关的操作集合放在一起,形成一个能动的实体对象。这一特性大大地降低了模块间的耦合性,从而提高了程序的可靠性,尽可能地排除了对数据进行

6、任意访问造成的隐患。继承性()继承性就是指个类可以继承其父类的所有数力学年据和成员函数,涮时义可以定义自己的数据和成员函数。这样做一方面可以减少代码冗余,另一方面可以通过协调件来减少相互之间的接口和界百。图给出了面向对象有限元程序中单元类的简事的继承关系。纠匦蔓卫臣壶丑匝蔓卫圈单元继承关系图多态性()多态性是指同一消息可以根据发送消息的对象的不同采用不同的行为方式。由于这种特性,不同的对象接收到用户统一发送的消息就可完成不同的工作。语言支持两种多态,即函数的重载和虚函数。例如:不同类型的单兀有不同的计算单元刚度矩阵的函数,可以通过虚函数的重载来实现。面向对象的有限元程序分析有限元方法作为求解数

7、学表述的连续体的一般离散化方法,是种求解连续体问题的近似方法。根据有限元分析的具体过程,可大致划分为按照有限元的分析方法,有限元分析的主要数其一般方法是:()把连续体分成有限个部分,每个部分的性态由有限个参数所规定;()求解作为单元的集合体的整个系统,此时其单元所遵循的是标准的离散体问题。个步骤,即:()离散化,()插值,()单元刚度计算,()单元集成,()引入边界条件,()求解有限元控制方程()进行辅助计算。据包括:()描述有限元分析的整体数据,如单元总数、节点总数、问题的维数、材料种类数,问题类型指示数,屑服准则指示数,收敛容差等;()单元数据,包括单元类型、单元材料号、单元包含的节点号,

8、刚度矩阵和质量矩阵,高斯积分点维数等;()节点数据,包括节点坐标、节点自由度、节点力、节点位移、节点约束等;()高斯积分点数据,包括高斯积分点坐标、高斯积分点应力,高斯积分点应变等。第期史贵才等:而向对蒙有限元程序设计及其与混合编程实现面向对象有限元程序设计实例化按照上面的面向对象有限元程序分析,个完整的面向对象有限元的分析程序应该设汁的类主要有:()有限元整体类和相关的方法;()单元数据类和相关的方法;()节点数据和相关的方法;()高斯积分点数据相关方法;()材料数据类和方法等。下面给出了作者最近编制的二维弹脆塑性有限元的程序结构及其实现(限于篇幅,仪仪给出了部分代码)。有限元整体类和实现方

9、法有限元分析的整体数据,如单元总数、节点总数、问题的维数、材料种类数、问题类型指示数、屈服准则指示数、收敛容差等。其具体定义如下:控制数据;问题的维数;司题类型指示数;屈服准则指示数;收敛容差;节点总数;单元总数;材料总数:实现方法,();形成整体刚度矩阵;,形成整体载荷列阵();处理边界约束条件();根据问题类型指示数选择求解器求解控制方程();计算残余节点力昭();秽断收敛单元类和实现方法在岩土工程有限元三维分析中,普遍使用的单元类型主要四面体、三棱柱、六而体等,另外还宵些特殊的单元,如锚杆单元、节理单元、无限元等。如图所示,对不同的单元类型进行数据抽象,形戚单元基类,包括单元类型、单元材

10、料号、单元包含的节点号,单元刚度矩阵,高斯积分点数等。具体定义如下:单元相关数据;节点指针;利料指针;高斯点指针;单元序号;单元材料号;单元节点数。;包含的节点号;高斯积分点数;元的破坏类型;总刚指针;单刚:实现方法;虚函数,计算单元刚度矩阵()虚函数,组装总刚矩阵();虚函数,汁算单元应力(,);虚函数,计算右端项;虚函数,判断单元破坏与否不同的单元类型将继承基类的所有数据利成员函数,同时又可以定义自己的数据和成员函数。例如,不同单元的单元刚度矩阱计算方法不同,可以通过改写虚函数的方法实现自己的方法;但是,不同单元的单刚向总刚的组装方法足可以相同的,可以通过继承基类的方法来实现。节点类的数据

11、,主要包括节点坐标、节点自由¨点类揣述如下:;节点编号;督卣坚糕;仃点位移;厂节点力;节点应变;肖点应力;节点约束】节点约束状态用一个整型数表示,若向自由点类和实现方法度、节点力、节点位移、节点约束等。度被约束其值为,向自由度被约束其值为,岩土力学和向自由度均被约束其值为,向自由度被约束材料类和实现方法其值为,依此类推。材料类数据主要包括材料号、材料的力学参数高斯积分点类和实现方法(如弹性模量、泊松比、密度等),实现方法主要是高斯积分点数据,包括高斯积分点坐标、高斯计算弹性矩阵等。本文限于篇幅,不再罗列。积分点应力、高斯积分点应变等。另外,有限元程序中人量使用整型数组,经常高斯点类描

12、述如下:遇到矩阵代数运算且总体刚度矩阵具有对称性、稀(疏性,呈带形分布等特点。查阅所有公开发表的关:于面向对象有限元程序设计文献,几乎无一例外的;选择了作者自己编制矩阵类,但是花费了大量的时,高斯点的矩阵间和精力设计出的矩阵类,总体而言,并不完美。;高斯点的弹塑性状态提供了圮数学库,其中的数学库;高斯点的破坏历史功能很强,使用它可以节省大量的程序编制工作量,;高斯点应变;高斯点应力而且可以使程序卜分简洁。在中包含;高斯点应力分量数后形成的单元刚度矩阵的程序段如下:;!单元的材料指针:()一();();计算高斯点的矩阵(,);为单元刚度矩阵分配空间,计算高斯点的矩阵,;定义变量为类型,计算高斯点

13、的应力(;、,计算等效应力和单向屈服应力对高斯点循环;价算流动矢量(,);,初始化矩阵,计算残余节点力();(,对于一般的弹塑性问题,高斯点的弹塑性状态);可以用一个型的变量标识。但是,对如图所示韵岩土工程中常见的脆颦性问题分析,两个状(,);态还不够,故本文用一个整型数表示,其值为,(表示该高斯点处于弹性状态,且从未发生过应力跌),:落;表示该高斯点发生过应力跌落,但目前处于腑算】×弹性状态;表示该高斯点处于塑性状态。(,);计算】×】×();();,;本文在中嵌入进行混合编程,以替代矩阵类。实践证明,虽然混合编程编制的程田脆塑性材料示意序在速度上仍然比纯粹的程

14、序慢,但是由此换来的高效的开发效率和可靠性是值得肯定的。第期史贵才等:面向对象有限元程序设计及其与混合编程实现作者使用本程序成功地对国内某大型水电站地参考文献下硐室群进行了围岩稳定性分析,取得了良好的效果,验证了在中嵌入进行混合编程】魏泳涛,丁建华,陈君楷面向对象有限元程序设计所生成的有限元分析程序的有效性、实用性和先进基本数据类】)大学学报(工科版),():性。图给出了使用本程序()进行该地下硐室群的计算的用户界面。:(),():】马永其,陈罕,李斯特面向埘象有限元程序的研究哪计算机工程与应用,:一,:】图的用户界面,():】,结论(:()随着有限元技术处理问题的复杂性和规模,的增加,传统的面向过程编程在大型有限元分析中暴露出了越来越多的缺点和问题,而面向对象编程技术可有效解决这些问题。:,()面向对象编程方法的多态性和重载机制使得整个问题域的信息响应变得越来越简单。同时直【,接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论