面向对象的三维实体非线性有限元程序设计方法

面向对象的三维实体非线性有限元程序设计方法

ID:12173498

大小:36.00 KB

页数:14页

时间:2018-07-16

面向对象的三维实体非线性有限元程序设计方法_第1页
面向对象的三维实体非线性有限元程序设计方法_第2页
面向对象的三维实体非线性有限元程序设计方法_第3页
面向对象的三维实体非线性有限元程序设计方法_第4页
面向对象的三维实体非线性有限元程序设计方法_第5页
资源描述:

《面向对象的三维实体非线性有限元程序设计方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象的三维实体非线性有限元程序设计方法2007年2月第30卷第2期重庆大学(自然科学版)JournalofChongqingUniversity(NaturalScienceEdition)Feb.20o7Vol_30No.2文章编号:1000-582X(2007)02—0120—05面向对象的三维实体非线性有限元程序设计方法彭芸,袁政强,王德兵,王贵学2(重庆大学1.土木工程学院;2.生物工程学院,重庆400030)摘要:在非线性分析中,应力一应变关系不但与当前的应力状态有关,还与其应力历史有关.计算过程中需要对应力历史进行存储.作

2、者采用面向对象的编程方法,根据材料当前的应力状态,实现了智能化地存储应力历史.从而克服了面向过程的结构化程序设计方法的不足,节省了空间,降低了编程难度.作者结合三维实体单元模型,介绍如何对其进行面向对象的非线性有限元程序设计.关键词:面向对象;非线性分析;三维实体;智能化存储中图分类号:TP3l1.1l文献标识码:A面向对象的编程技术采用统一的对象分类方法,编程过程将类似采用标准部件组装设备一样,由对象拼装成完整的程序,编程人员可通过继承方式派生出新的对象类,在新的对象类中添加新的操作功能,建立满足自己特定需求的程序.将这种技术应用于有限

3、元程序的编制正成为软件设计的主流.它克服了传统的面向过程的结构化编程方法中的多方面不足,可以大大提高程序的模块化和代码的重用性,使得软件的开发和维护都更为方便.目前,国内外面向对象方法针对弹性的分析方法研究已趋于成熟L1】,而将面向对象方法应用于三维非线性问题的分析和研究较少j.作者采用抽象单元类,建立多态单元集合类.在非线性分析中,应力一应变关系不但与当前的应力状态有关,还与应力历史有关.应力历史需要有存贮空间,但在计算中达到非线性的单元事先并不确定.作者在非线性单元类中增加一个指针数组,在计算过程中,当应力达到非线性时,程序可以自动申

4、请存贮空间用于存放应力历史数据.当单元卸载到弹性阶段时,程序自动删除存放应力历史的数据空间.而在一般的面向过程计算程序中,非线性单元计算在计算前就需建立相应的应力历史数据存贮空间,如果按程序的每个单元取27个高斯点,每个高斯点6个应力分量值计算,每个单元需要162个实数空间来存放,作者只对进入非线性的单元才申请162个实数空间.这大大节省了空间,降低了编程难度.这也是面向对象方法在程序设计方面所特有的灵活性之体现.利用自编程序完成的土体三维非线性有限元分析的结果与ANSYS计算软件分析结果基本吻合.1面向对象有限元程序的设计构架自编程序中

5、的类大致可分为两大类(见图I).一类是用于有限元分析的计算类;另一类是工具类,利用工具类可以更加方便地完成有限元分析中的运算.其中,方法类,单元类和材料类派生出很多子类.方法类可以派生出不同问题的求解子类;单元类中可以加入新的计算单元子类,目前自编程序已有20多种单元;材料类中可以针对工程的具体情况或材料的特性加入新的材料子类.有限元基类方法类(FinMethod类)墼F—NRaf计算类{单元类(Element类)工具类材料类(Material类)结点类(Ponit类)张量类(Tensor类)向量类(Vector类)矩阵类(Mamx类).

6、~E_Soid8类坚M—Soild8类图形类馐G图1自编程序的设计构架?收稿日期:2006.08.05基金项目:教育部科学技术研究重点项目(104158);重庆市教委科学技术研究项目(030001)作者简介:彭芸(1981?),女,重庆大学硕士研究生,主要从事结构非线性分析的研究.袁政强,男,副教授,电话(Te1.):023-65120823;E?mail:fnzsz@equ.edu.cn.第30卷第2期彭芸,等:面向对象的三雏实体非线性有限元程序设计方法1211.1方法类(FinMethod类)方法类是整个有限元分析程序中的的核心类.在

7、方法类中可以完成总刚的计算,荷载向量形成,方程求解等功能.方法类也是一个抽象类,根据具体求解方法的不同,可派生出不同的子类.作者采用增量牛顿迭代法求解非线性方程组,由其派生子类F—NRaf类完成求解方法的实现.1.2单元类(Element类)抽象单元类中,利用virtual虚函数建立与其子类的接口,说明需要完成的操作功能.各种功能的具体实现是在它的继承类中完成.classElement{protected:MaterialpMate;//指向材料类的指针(材料数据)List<NodeData>pNode;//指向结点类的指针(

8、单元联络性数据)List<Load>pLoad;//指向荷载类的指针(荷载数据)intDim,Dof;//单元的空间维数和自由度数intnd;//nd是单元引用的结点数,在pNod

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。