欢迎来到天天文库
浏览记录
ID:51494700
大小:371.81 KB
页数:60页
时间:2020-03-25
《面向对象的有限元程序设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、面向对象的有限元程序设计——空间8结点等参元的分析计算第一章概述有限元法是用来分析各种结构问题的强有力工具。在经典的固体力学理论工作中,尽管人们已经进行了几百年的努力,但所能解决的实际问题为数不多。然而,有限元法却能成功地解决各种各样的固体力学问题,如杆系、板与壳、复杂的三维物体和大变形问题等。不论结构的几何形状和边界条件多么复杂,不论材料性质和外加载荷如何多变,使用有限元法均可获得满意的答案。有限元解决实际问题的能力远远超过了经典的方法,并且已经取得了很大的成就,因而受到普遍重视。无论大型飞机、大型舰船还是高层建筑、水利大坝,有限元法均可方便地进行结构的分析。现在,掌握有限元法的原理
2、和应用,对于一个从事结构分析与设计的工程师来说,已经是必不可少的了。有限元法的实施,离不开程序设计。如果一个结构工程师,不仅懂得有限元法的原理,而且还会应用有限元程序设计方法,无疑会在工作中如虎添翼。有限元的程序设计内容包括三部分:前处理、分析计算、后处理。其中,前处理主要负责读入数据、生成模型、网格划分,为有限元的计算做好准备;分析计算主要是进行有限元矩阵的计算、组装、求解;后处理主要对计算的结果进行各个方式、各个角度的输出。本文主要进行的是分析计算部分的程序设计,不考虑前处理和后处理的程序设计,数据的输入和结果的输出都以固定格式的文件进行处理。分析计算阶段的主要内容有:(1)计算单
3、元的刚度矩阵;(2)组装总体刚度矩阵;(3)根据已知的位移边界条件,进行约束处理,消除总体刚度矩阵的奇异性;(4)求解整体刚度矩阵,得出节点的位移向量;(5)根据节点的位移向量求出每个单元的应力和应变状态。面向对象的程序设计方法是一种新兴的程序设计方法,或者说是一种新的程序设计思想,这种基本思想是运用对象、类、继承、封装、聚合、消息传递、多态性1等概念来构造系统进行程序设计。该方法强调直接以问题域中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们表示为系统中的对象,作为系统构成的基本单位。它对描述事物的属性、特点及事物之间的关系具有一种先进的软件开发方法,较传统的程序
4、设计思想更接近于人的思维。它把待求解问题变简单,而且是一整套关于如何看待软件系统与现实关系,以什么观点来研究问题并进行求解,以及进行系统构造的软件方法学。与以往的结构化程序设计相比,面向对象的程序设计更结构化、更模块化、更抽象。面向对象方法的主要特点是:(1)从问题域中客观存在的事物出发来构造软件系统,用对象作为这些事物的抽象表示,并以此作为系统的基本构成单位。(2)事物的静态特征由对象的属性表示,动态特征由对象的方法表示。(3)对象的属性与方法结合成一个整体。(4)对事物进行分类。(5)运用抽象的原则。(6)复杂对象可以由简单对象聚合。(7)对象间通过消息进行通信。(8)通过关联表达
5、对象之间的静态关系。面向对象方法的优点有:(1)维护简单。面向对象支持、鼓励软件工程实践中的信息隐藏、数据抽象和封装,在一个对象内的修改被局部隔离。(2)可扩充性。可以根据需要在各个类中增加内容,而不影响其他类。(3)代码重用。面向对象开发鼓励重用,不仅软件的重用,还包括分析、设计的模型重用。所以面向对象方法是当今计算机领域的主流技术,对促进计算机科学技术发展具有十分重要的意义。2第二章有限元分析计算的理论基础(空间8结点等参元)有限元法进行的前提是满足四个假定:连续性假定、完全弹性假定、均匀与各向同性假定、小变形和小位移假定。有限元法是建立在弹性力学的基础之上的。它是以平衡微分方程(
6、数学上)、变形协调方程(几何方程)、本构方程(物理方程)作为基本的理论方程,同时又有圣维南原理、基于能量形式的虚位移原理作为解决问题的手段。有限元法是依照弹性力学的基本解法进行求解的,不论有限元法的哪一种单元类型,在求解的过程和步骤上都是一样的,只不过求解的具体方法和细节处理有所不同。本文就以空间8结点等参元的求解的过程为例来进行编程,别的单元类型可以自己开发。而且,有了面向对象的手段,许多单元类型可以用继承的方式加以实现。2.1自然坐标系与位移模式自然坐标系与直角坐标系,如图:局部自然坐标系与整体直角坐标系之间的关系:⎧x1⎫⎪⎪y⎧x⎫⎪1⎪⎪⎪[]⎪⎪z1⎪⎪⎨y⎬=N⎨⎬(2-
7、1)x⎪z⎪⎪2⎪⎩⎭⎪@⎪⎪⎪⎪z⎪⎩8⎭其中N是关于三个自然坐标系变量r,s,t的矩阵,x,y,z,x,?,z是六面体的八11128个顶点(结点)在直角坐标系下的位置坐标,它们是已知的,x,y,z与r,s,t就有了对应的关系。N被称为形函数矩阵,3⎡N100N2?0⎤⎢⎥[]N=0N00?0=NINI?NI(2-2)⎢1⎥128⎢00N0?N⎥⎣18⎦1其中N=N()r,s,t=()1+rr()1+ss()1+tt1,≤i≤8(2-3)ii
此文档下载收益归作者所有