有限元程序 ADINA 之模块 AD32(1)代码分析1 课程设计的目的 本课程的教学目的及要求是使学生通过本课程的学习,掌握有限元方法的基本理论,并能够学以致用,把所学的知识结合编程上机运算来数值求解固体力学的一些实际问题,对应力分析、模态分析、热分析等实际计算固体力学问题计算步骤有一定了解。2 程序模块功能描述 有限元程序 ADINA 之模块 AD32 是一个比较庞大的程序模块,它的功能就是进行梁的有限元分析,但它的分析比较齐全,基本包括梁的分析的各个方面。它不仅包括梁的静力学分析,还包括梁的动力学分析;不仅考虑了梁的弹性分析,还考虑到了梁的非线性分析(包括材料非线性和几何非线性分析)。同时它还考虑了两种典型的不同的梁的有限元模型(无剪梁单元和 Timoshenko 梁单元)。并且在考虑梁的材料非线性分析时,考虑了基于两种不同的强化准则(等向强化和随动强化)的弹塑性梁的模型。而且在进行不同的梁模型的分析或进行不同性质的分析时,都考虑了截面形式比较常见的矩形截面梁及管形截面梁。程序模块 AD32(1)只包括了一个子程序,即 BMEL 子程序,该子程序计算梁的单元矩阵及应力,它主要负责数据的通信,调用其他的子程序进行整体刚度矩阵及整体质量矩阵的装配,以及计算积分点位置,求解积分点上的应力应变等等。它是 AD32 程序模块中对其它子程序进行综合调度与处理的子程序。其运行的总体框图如图 1 所示。图 1 子程序 BMEL 执行总体框图将数据写入文件,通过文件来传输数据,以实现在不同子函数中实现数据的通信。然后开始初始化工作向量,通过调用各种函数(包括线性单元刚度矩阵、非线性单元刚度矩阵,质量矩阵、及荷载列向量)转配整体刚度矩阵。由于涉及非线性分析(包括材料非线性和几何非线性)和动态响应分析,处理起来较复杂。下面分别简要说明。对于非线性分析:刚度矩阵在具体处理时初始矩阵只包括线性刚度矩阵,在求解迭代运算时,不但用非线性项进行修正,即利用 Newton—Raphson 方法或其改进方法。对于动态响应分析,由于结构具有加速度,必须考虑动力效应,可等效用附加惯性力的平衡体系来考虑。此时需要系统的质量矩阵,而梁结构为连续系统,为将其转化为有限自由度,并求其数值解,故需将其离散化,变为等效的多自由度振动系统来考虑。而对于梁上的集中质量块,则应特别考虑,将其分配与整合。装配好质量矩阵与刚度矩阵及外荷载列向量,就可以利用数值解法,求得动力响应的各...