有限元程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《有限元程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限元 程序设计 课件
- 资源描述:
-
1、教学程序:教学程序: FEP1 李明瑞编李明瑞编 FEP2 李明瑞编李明瑞编 ZFEP第一章第一章 绪论绪论 有限元程序的基本内容有限元程序的基本内容 有限元求解器有限元求解器1.1 有限元程序的基本内容有限元程序的基本内容有限元法的解题步骤有限元法的解题步骤结构离散化为结构离散化为有限元网格有限元网格计算单元刚度计算单元刚度矩阵矩阵引入约束条件引入约束条件求应力等求应力等解方程组解方程组建立总刚度矩建立总刚度矩阵及外载阵及外载有限元程序的基本内容:有限元程序的基本内容:数据输入数据输入阶段阶段有限元矩阵的计有限元矩阵的计算、组集和求解算、组集和求解数据输出数据输出阶段阶段前处理前处理处理器处
2、理器后处理后处理一、一、数据输入阶段数据输入阶段前处理 读入和生成数据,形成有限元网格,为有限元读入和生成数据,形成有限元网格,为有限元矩阵计算作准备。(数据或图形输入)矩阵计算作准备。(数据或图形输入)1.1. 标题和控制信息标题和控制信息2.2. 计算存贮分配计算存贮分配3.3. 节点坐标和约束信息节点坐标和约束信息4.4. 单元信息单元信息5.5. 材料信息材料信息6.6. 载荷信息载荷信息二、二、有限元矩阵的计算、组集和求解有限元矩阵的计算、组集和求解处理器处理器 计算插值函数矩阵计算插值函数矩阵 N N 、几何矩阵、几何矩阵 B B 、JacobJacob矩阵矩阵 J J 在高斯点进
3、行数值积分,求得单刚、单元载荷在高斯点进行数值积分,求得单刚、单元载荷 组集成总刚、总载组集成总刚、总载 求解求解三、三、数据输出阶段数据输出阶段后后处理输出结果(场变量和场变量导数等),打印结果。输出结果(场变量和场变量导数等),打印结果。场变量包括:位移、温度、流场的速度势等;场变量包括:位移、温度、流场的速度势等;场变量导数包括:应力、应变、热流、流场速度势等场变量导数包括:应力、应变、热流、流场速度势等输出形式:输出形式:数据输出和图形输出数据输出和图形输出1-2 有限元求解器有限元求解器带宽法:只存储总刚矩阵的半带宽内的元素。带宽法:只存储总刚矩阵的半带宽内的元素。等带宽法:每行的带
4、宽相等,常采用二维数组存储等带宽法:每行的带宽相等,常采用二维数组存储变带宽法:每行的带宽不等,常采用一维数组存储变带宽法:每行的带宽不等,常采用一维数组存储一、一、带宽法带宽法变带宽分块求解思想:变带宽分块求解思想: 一个变量的消元只影响刚度矩阵的一部分元一个变量的消元只影响刚度矩阵的一部分元素,较大的节点分量方程组可以分成较小的局部素,较大的节点分量方程组可以分成较小的局部系数矩阵按节点逐步求解。系数矩阵按节点逐步求解。 波前法是另一种分块储存的变带宽法,其消元次波前法是另一种分块储存的变带宽法,其消元次序是按单元编号进行,边组集边消元。序是按单元编号进行,边组集边消元。 调入内存的单元所
5、保留的节点称为波前节点,所调入内存的单元所保留的节点称为波前节点,所消去的节点称为消元节点,消元节点是与以后调入的消去的节点称为消元节点,消元节点是与以后调入的单元没有联系的节点,即该节点的方程已组集完。单元没有联系的节点,即该节点的方程已组集完。 波前法的回代按消元节点的反序进行。对内存的波前法的回代按消元节点的反序进行。对内存的需求取决与最大波前宽。需求取决与最大波前宽。二、二、波前法波前法V-Fortran 1. Fortran语言的基本格式语言的基本格式2. 变量变量3. 基本语句基本语句4. 子例子程序子例子程序5. 函数子程序函数子程序 6. 其它功能、模块其它功能、模块第二章第二
6、章 FEP2 程序的总体设计与输入程序的总体设计与输入数据数据 FEP2 的设计任务的设计任务 FEP2 的结构设计的结构设计 FEP2 的主程序的主程序 FEP2 的主控程序的主控程序 FEP2 的数据输入格式与程序实现的数据输入格式与程序实现2-1 FEP2 的设计任务的设计任务1. FEP2的简要题目说明的简要题目说明 FEP2是一个具有通用性的教学程序,可用于计算是一个具有通用性的教学程序,可用于计算一般的线性静力学问题。已设计了平面梁单元与平面一般的线性静力学问题。已设计了平面梁单元与平面3-9节点元两种单元,但留下接口。节点元两种单元,但留下接口。2. 支持软件与硬件支持软件与硬件
7、 FORTRAN77以上编译器、各种微机以上编译器、各种微机3. FEP2的功能的功能3. FEP2的功能的功能1)输入文件名由用户自由定义,但限制为)输入文件名由用户自由定义,但限制为4个字符,输个字符,输入文件扩展名为入文件扩展名为“DAT”,输出文件扩展名为,输出文件扩展名为“OUT”。2)节点坐标、单元信息等具有线性自动生成功能。)节点坐标、单元信息等具有线性自动生成功能。3)可以处理多种工况、多种类型单元组合结构问题。)可以处理多种工况、多种类型单元组合结构问题。4)可以处理固定约束和指定位移。)可以处理固定约束和指定位移。5)采用变带宽存储、三角分解法求解刚度方程。)采用变带宽存储
8、、三角分解法求解刚度方程。6)为多种单元留下接口。)为多种单元留下接口。2-2 FEP2 的结构设计的结构设计FEP2:由形式主程序、主控程序、功能模块组成。:由形式主程序、主控程序、功能模块组成。主程序的主要功能:定义输入、输出文件名,调用主控主程序的主要功能:定义输入、输出文件名,调用主控程序程序PCONTR主控程序主控程序PCONTR的主要功能模块:的主要功能模块:1)内存分配)内存分配 2)网格生成)网格生成3)变带宽存储设置)变带宽存储设置 4)单刚的形成与组集)单刚的形成与组集5)刚度矩阵的分解)刚度矩阵的分解 6)形成节点载荷)形成节点载荷7)形成与组集单元载荷)形成与组集单元载
9、荷 8)求解位移)求解位移9)求单元应力)求单元应力 10)求结构反力)求结构反力FEP2 程序框图程序框图FEP2 (主程序)(主程序) PCONTR(主控程序主控程序) SETMEM 检查内存检查内存 PROFIL 形成变带宽刚度矩阵地址形成变带宽刚度矩阵地址 PFORM (3) 形成单刚并组集形成单刚并组集 LDLT 总刚的三角分解总刚的三角分解 GENVEC 形成节点载荷形成节点载荷 PFOM (3) 构造并组集单元载荷构造并组集单元载荷 FORBACK 前消回代求出位移前消回代求出位移 PFORM (4) 计算单元应力计算单元应力 PFORM (6) 计算结构反力计算结构反力2-3
10、FEP2 的主程序的主程序一、文件名一、文件名 FEP2 的文件名可由用户自由定义(限制为的文件名可由用户自由定义(限制为4个字个字符),通过人机交互方式确定。设计中引入以下技巧:符),通过人机交互方式确定。设计中引入以下技巧:1) 规定输入文件名规定输入文件名FI与输出文件名与输出文件名FO为为8个字符个字符 2) 规定两个字符数组规定两个字符数组NAMINP(8), NAMOUT(8)3) 用用IQUIVALENCE语句使语句使FI与与NAMINP、 FO与与NAMOUT 等价等价4) 用用DATA语句给语句给FI和和FO赋初值赋初值: “ .DAT”、 “ .OUT”5) 输入输入NAM
11、INP的前四个字符作为输入输出文件名的前四个字符作为输入输出文件名 COMMON /PSIZE/MAXM,MAXA CHARACTER*8 FI, FO CHARACTER NAMINP(8), NAMOUT(8), HEAD*50 COMMON/HEAD/HEAD1 EQUIVALENCE (FI,NAMINP(1),(FO,NAMOUT(1) DATA FI,FO/ .DAT, .OUT/ WRITE(*, (A) INPUT FILE NAME (4 LETTERS ONLY) : READ (*, (4A1) (NAMINP(I), I=1,4) DO 10 I=1,4 10 NAMO
12、UT(I)=NAMINP(I) OPEN(6, FILE=FO) OPEN(5, FILE=FI) MAXM=16000 MAXA=16380 CALL PCONTR(FO) END 二、定义数组二、定义数组 FEP2 中设置了两个数组中设置了两个数组M(1600) 和和 A(16380),数,数组组M是作为存放坐标、单元信息、载荷、位移等,数是作为存放坐标、单元信息、载荷、位移等,数组组 A 则是存放刚度矩阵用的,其上界与则是存放刚度矩阵用的,其上界与FORTRAN(编译器)版本和计算机内存有关,确定了程序的计(编译器)版本和计算机内存有关,确定了程序的计算规模。这两个数组也可合并成一个。算
13、规模。这两个数组也可合并成一个。2-4 FEP2 的主控程序的主控程序 PCONTR PCONTR : 实质上的主程序。实质上的主程序。 分以下几大段:分以下几大段:一、程序头(前一、程序头(前1212语句)语句) SUBROUTINE PCONTR(FO) CHARACTER*8 FO LOGICAL ERR, ASEM COMMON /M/M(6000) COMMON /A/A(16380) COMMON /CDATA/NDF,NDM,NEN,NJ,NE,NEQ COMMON /PSIZE/MAXM,MAXA COMMON /MDATA/NUMMAT CHARACTER FD*25,FOR
14、C*6,P COMMON /PRINT/P COMMON /ASEM/ASEM DATA FORC/ FORC /FD/ NODAL FORCE/DISPL/ FO:输出文件名:输出文件名 ERR:逻辑变量,作出错信息控制(:逻辑变量,作出错信息控制( .TRUE. 为错)为错) ASEM :逻辑变量,作为判断是否要组集总刚:逻辑变量,作为判断是否要组集总刚 数组数组A:存放总刚的元素:存放总刚的元素 数组数组M:存放单刚、单元信息、节点坐标等:存放单刚、单元信息、节点坐标等 NDF 最大自由度数最大自由度数 NDM 空间维数空间维数 NEN 单元的最多节点数单元的最多节点数 NJ 节点总数节
15、点总数 NE 总单元数总单元数 NEQ 总方程数总方程数NUMMAT 材料类型数材料类型数 FD , FORC :文字变量,作为输出的标题用:文字变量,作为输出的标题用 P :文字变量,判断是否要输出单刚:文字变量,判断是否要输出单刚二、输入控制信息、确定主要数组的地址(二、输入控制信息、确定主要数组的地址(14143434语句)语句) NEN1=NEN+1 每个单元信息的存储量(节点号每个单元信息的存储量(节点号 + 材料号材料号 ) NNEQ=NJ*NDF 总节点总节点 节点自由度数节点自由度数 NST=NDF*NEN 单刚阶数单刚阶数 NXC=1 节点坐标数组节点坐标数组XC的首址的首址
16、 NIX =NXC+NJ*NDM 单元信息数组单元信息数组IX的首址的首址 NID =NIX+NEN1*NE 结构方程号编码数组结构方程号编码数组ID的首址的首址 ND =NID+NNEQ 材料常数数组的首址材料常数数组的首址 NXL =ND +20*NUMMAT 单元节点坐标数组单元节点坐标数组XL的首址的首址 NLD =NXL+NEN*NDM 单元节点自由度数组单元节点自由度数组LD的首址的首址 NUL=NLD+NST 单元节点位移数组单元节点位移数组UL的首址的首址 NS =NUL+NST*2 单刚数组单刚数组S的首址的首址 NP =NS +NST*NST 总刚对角线地址向量总刚对角线地
17、址向量JP的首址的首址 READ(5,*) NJ,NE,NUMMAT,NDF,NDM,NEN WRITE(*,2000) NJ,NE,NUMMAT,NDF,NDM,NEN WRITE(6,2000) NJ,NE,NUMMAT,NDF,NDM,NEN NEN1=NEN+1 NNEQ=NJ*NDF NST=NDF*NEN NXC=1 NIX=NXC+NJ*NDM NS =NUL+NST*2 NP =NS +NST*NST NF =NP +NST NU =NF +NNEQ NJP=NU +NNEQ NEND=NJP+NNEQ 2-5 FEP2的数据输入格式与程序实现的数据输入格式与程序实现FEP2的
18、数据信息(自由格式):的数据信息(自由格式):1)控制信息:)控制信息:NJ,NE,NUMMAT,NDM,NEN2)坐标信息(一组)坐标信息(一组) N, NG, ( XL(I) ,I=1,NDM) 节点号节点号 节点号增量节点号增量 坐标或载荷坐标或载荷 由由GENVEC生成节点坐标或载荷向量,通过生成节点坐标或载荷向量,通过NDM, CD, FC 进行识别生成的是节点坐标,还是载荷向量。进行识别生成的是节点坐标,还是载荷向量。CD:NODAL COORDINATES FC :COORCD:NODAL FORCE/DISPL FC :FORC SUBROUTINE GENVEC(NDM, X
19、, CD, FC, NJ, ERR) CHARACTER CD*18, FC*6 LOGICAL ERR REAL X(NDM,*),XL(6) ERR=.FALSE. N=0 NG=0102 L=N LG=NG READ (5,*,ERR=999) N,NG,(XL(I),I=1,NDM)101 IF (N.LE.0 .OR. N.GT.NJ) GO TO 109 DO 103 I=1,NDM103 X(I,N) = XL(I) IF (LG) 104,102,104104 LG=ISIGN(LG,N-L) LI= (IABS(N-L+LG)-1)/IABS(LG) DO 105 I=1,N
20、DM 105 XL(I)=(X(I,N)-X(I,L)/LI106 L = L+LG IF(N-L)*LG.LE.0) GO TO 102 IF(L.LE.0.OR.L.GT.NJ) GO TO 108 DO 107 I=1,NDM LMLG=L-LG107 X(I,L)=X(I,LMLG)+XL(I) GO TO 106108 WRITE(6,3000) L,CD WRITE(*,3000) L,CD ERR=.TRUE. GO TO 102109 CONTINUE 3)单元信息(一组)单元信息(一组) L, LX, LK, ( IDL(K) ,K=1,NEN)单元号单元号 单元号增量单元号
21、增量 材料号材料号 节点号节点号 0, 0, 0, 结束结束由由ELDA子程序生成单元信息,子程序生成单元信息,IX(NEN1, NE) 二维数组。二维数组。 NEN = NEN + 1 NE 单元总数单元总数4)材料信息(一组或多组)材料信息(一组或多组) 对于每一类材料,要求输入两个记录:对于每一类材料,要求输入两个记录:a)材料类型号,单元类型号)材料类型号,单元类型号 b) 一批与单元类型相关的常数(不超过一批与单元类型相关的常数(不超过20个)个) 对于梁单元,输入两个如下对于梁单元,输入两个如下12个常数:个常数: NP, E, G, A或或 Ix , Iy或或 Iz,Rh0,As
22、,N1,N2,Ni,W, a类型类型 (NP=0:平面梁作用平面载荷;:平面梁作用平面载荷; 1:平面梁作用空间载荷):平面梁作用空间载荷)Rh0 :单位长度的质量密度:单位长度的质量密度N1 :梁左端铰为:梁左端铰为1,非铰为,非铰为0 N2:右端铰为:右端铰为1,非铰为,非铰为0 Ni :单元载荷类型(:单元载荷类型(0,1,2,3,4) (0为无载荷)为无载荷)单元载荷由单元载荷由 EQLOAD 处理成等效节点载荷处理成等效节点载荷 对于平面元,输入对于平面元,输入6个常数:个常数: E, XNU, TH , L, K, I TH:单元厚度:单元厚度 L: 沿一个方向的高斯积分点数沿一个
23、方向的高斯积分点数 (2,3,4) K:沿一个方向应力输出的高斯点数:沿一个方向应力输出的高斯点数 I:=0 平面应变平面应变 0 平面应力平面应力 PMESH 调用调用 ELEMLIB,再调用,再调用 BEAM or PLANE SUBROUTINE PMESH(XC,IX,ID,D,NEN1) CHARACTER COOR*6,XX*18 COMMON /CDATA/NDF, NDM, NEN, NJ, NE, NEQ COMMON /MDATA/NUMMAT COMMON /ELDATA/LM, N, MA, MCT, IEL, NEL DIMENSION XC(NDM,*), IX(N
24、EN1,*), ID(NDF,*), D(20,*) LOGICAL ERR DATA XX/ NODAL COORDINATES/COOR/ COOR / 1 CALL GENVEC(NDM,XC,XX,COOR,NJ,ERR) 1 CALL GENVEC(NDM,XC,XX,COOR,NJ,ERR) IF(ERR) WRITE(*,3000) IF(ERR) STOP 2 CALL ELDAT(IX,NEN1) 3 DO 304 N=1,NUMMAT WRITE(6,2000) MA,IEL WRITE(*,2000) MA,IEL IF(MA.EQ.0) GO TO 4 CALL PZE
25、RO(D(1,MA),20) D(20,MA)=IEL CALL LEMLIB(D(1,MA),P,XC,IX,S,P,NDF,NDM,NST,1)304 CONTINUE 2000 FORMAT(/ MATERIAL TYPE ,I4, ELEMENT TYPE ,I4/)4 CALL BOUN(ID) END 5)约束信息(包括指定位移)(一组)约束信息(包括指定位移)(一组) PMESH 调用调用 BOUN 输入:输入: N, NG, ( IDL(I) ,I=1,NDF) 节点号节点号 节点号增量节点号增量 坐标或载荷坐标或载荷 0, 0, 0, (平面元(平面元4个个0,梁元,梁元5个
展开阅读全文