启动 检索单元结点坐标: ELCORD 检索单元特性:TY, LPTPRT 若非线性,恢复单元 结点自由度: ELFRE 形成单元方阵:9一] 形成单元列阵; ELCOL 生成并保存 解后数据: ELPOST 返回 图2,5一个典型的单元生成过程 的数目确定,而线性约束方程已在输人数据中给出 第九章专门讨论方程求解法及结点自由度计算值的输出,即 图23中的运算 FACTOR, SOLVE, WRTPT和 WRTELM。同 时还列出执行解后计算的典型步骤,这种计算是在单元级上定义 并在组装时存储起来的.这些都列在图2.8中, 26
启动 单元矩阵清零:zER 对积分点懒环 匚值方程求值:吧 形成插值方程的 局部导数:DERv 计算变换 Jacobian:ACoa obn水逆N 「形成总体导数DERv 积分核的求值: NGRAND 否 是 的结 返回 图2.6生成等参元矩阵的步骤 第十、十一、十二这三章非常详尽地举例说明有限元法的通常 用法,包括单元矩阵、实用上很重要的典型的解后参量,以及具体 的输人输出数据为了有助于生成更为实用的大型劂格,第十三章 提供一种用于格自动生成的算法.最后两章选了随时间而变的
启动 核对由于约束而增加的存储量: CEOBAN 对约束型环 程数=0? 否 <对方程婚环 恢复自由度数 和约束方程系数 类型=1 生成罚矩阵并加到系统方程 您改系统矩阵 中去: PENLTY, PENMOD MODFUL MODFYI 否 最后的类型>一 最后的程 否 是 返回 图2.7把结点约束用于系统方程 有限元法,用来说明其求解的实施情况;不过,因为至少有30种时 间积分算法,因此,所提出的这些也许不够典型,并不能代表在更 为先进的应用实例中所采纳的那些算法 读者进行到以后各章时,也许要回过头来参考前面已经给出 的流程图.如果读者要查阅某些特殊的编程细节,则可利用书末 的“子程序索引”和本章的这些流程图,也可以把本书当作一本参 考书来用 28
启动 匚反绕单元辅助存储通道 〈对单元循环 恢复单元结点:LNDE LE 计算单元自由度的 系统方程号: NDXEL 恢复该单元计算所得 自由度: ELFRE 检索辅助单元数据并 单元的自由度计算附加数据 POSTEL 否 最后 是 的单元 返回 图28单元的解后变量的求值 23数据输人 结点和单元的基本数据由子程序 INPUT读入。先读人系统 中每个结点的结点号、边界代码指示符和空间位置坐标。接着是
各单元的标号和单元的关联结点(与该单元相联的全部结点的结 点号)。这些数据都要打印出来,以便对输人数据进行核对,若巳 知结点数、单元数每个单元的结点数、每一结点参数数目和空间 维数,则此子程序 INPUT留出存储地址存人空间位置坐标、单元 的关联结点和结点的边界代码指示符,书末附录所示就是这一例 行鞋序及其指令, 结点边界代码指示符指出系统中结点参数边界条件的数目和 类型,这项工作很重要。这个代码中包括好几项数据。子程序 PTCODE抽出这些数据此程序采用整数边界代码指示符(由NG 位组成,右边对齐),并抽出NG个一位数字整数码,此一位数字 码的变化范围是从零到九,用来识别该结点参数必须满足的约束 方程的类型(由分析人员指定)。代码为零表示无约束。这就使编 写程序的分析人员可处理多达九种类型的边界约束条件。此处引 用的这套积木式程序只用到一位数0,1,2和3 在 PTCODE子程序抽出与每一个结点NG个参数相对应 的NG个一位数字整数码后,必须对这些代码进行扫描,以计算 出该系统所遇到的不同类型的结点参数边界条件的数目,这项工 作由子程序 CCOUNT来完成,使用结点指示符 KODES计算出 该系统中出现的各种类型非零约束的数目.子程序 CCOUNT调 用子程序 PTCODE,二者都示于书末的附录.例如图13所示, 约束指示符数目为;十九个0,九个1,两个2.如1.3节所论, 这些数据的含义是九个1型结点参数约束和一个2型约束 一且确定了结点参数边界条件的数目和类型后,就必须提供 约束方程数据,这些结点参数约束数据由子程序 INCEQ读入 见书末附录).81节将详细讨论这些结点参数的约束方程。此 处只需注意到,木程序允许下列三种类型的线性方程: 型D;=A 型AD,+BDx=C (21) 3型AD,+BDx+CD1-E 式中A,B,C和E是常数,j和l表示各结点参数(D)的系统 39