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