有限元程序设计.ppt
《有限元程序设计.ppt》由会员分享,可在线阅读,更多相关《有限元程序设计.ppt(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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.其它功能、模块其它功能、模块第二章第二章 FEP2 程序的总体
6、设计与输入程序的总体设计与输入数据数据 FEP2 的设计任务的设计任务 FEP2 的结构设计的结构设计 FEP2 的主程序的主程序 FEP2 的主控程序的主控程序 FEP2 的数据输入格式与程序实现的数据输入格式与程序实现2-1 FEP2 的设计任务的设计任务1.FEP2的简要题目说明的简要题目说明 FEP2是一个具有通用性的教学程序,可用于计算是一个具有通用性的教学程序,可用于计算一般的线性静力学问题。已设计了平面梁单元与平面一般的线性静力学问题。已设计了平面梁单元与平面3-9节点元两种单元,但留下接口。节点元两种单元,但留下接口。2.支持软件与硬件支持软件与硬件 FORTRAN77以上编译
7、器、各种微机以上编译器、各种微机3.FEP2的的功能功能3.FEP2的功能的功能1)输入文件名由用户自由定义,但限制为输入文件名由用户自由定义,但限制为4个字符,输个字符,输入文件扩展名为入文件扩展名为“DAT”,输出文件扩展名为输出文件扩展名为“OUT”。2)节点坐标、单元信息等具有线性自动生成功能。节点坐标、单元信息等具有线性自动生成功能。3)可以处理多种工况、多种类型单元组合结构问题。)可以处理多种工况、多种类型单元组合结构问题。4)可以处理固定约束和指定位移。)可以处理固定约束和指定位移。5)采用变带宽存储、三角分解法求解刚度方程。)采用变带宽存储、三角分解法求解刚度方程。6)为多种单
8、元留下接口。)为多种单元留下接口。2-2 FEP2 的的结构设计结构设计FEP2:由形式主程序、主控程序、功能模块组成。由形式主程序、主控程序、功能模块组成。主程序的主要功能:定义输入、输出文件名,调用主控主程序的主要功能:定义输入、输出文件名,调用主控程序程序PCONTR主控程序主控程序PCONTR的主要功能模块:的主要功能模块:1)内存分配内存分配 2)网格生成)网格生成3)变带宽存储设置变带宽存储设置 4)单刚的形成与组集)单刚的形成与组集5)刚度矩阵的分解)刚度矩阵的分解 6)形成节点载荷)形成节点载荷7)形成与组集单元载荷)形成与组集单元载荷 8)求解位移)求解位移9)求单元应力)求
9、单元应力 10)求结构反力)求结构反力FEP2 程序框图程序框图FEP2(主程序)主程序)PCONTR(主控程序主控程序)SETMEM 检查内存检查内存 PROFIL 形成变带宽刚度矩阵地址形成变带宽刚度矩阵地址 PFORM(3)形成单刚并组集形成单刚并组集 LDLT 总刚的三角分解总刚的三角分解 GENVEC 形成节点载荷形成节点载荷 PFOM(3)构造并组集单元载荷构造并组集单元载荷 FORBACK 前消回代求出位移前消回代求出位移 PFORM(4)计算单元应力计算单元应力 PFORM(6)计算结构反力计算结构反力2-3 FEP2 的主程序的主程序一、文件名一、文件名 FEP2 的文件名可
10、由用户自由定义(限制为的文件名可由用户自由定义(限制为4个字符)个字符),通过人机交互方式确定。设计中引入以下技巧:,通过人机交互方式确定。设计中引入以下技巧:1)规定输入文件名规定输入文件名FI与输出文件名与输出文件名FO为为8个字符个字符 2)规定两个字符数组规定两个字符数组NAMINP(8),NAMOUT(8)3)用用IQUIVALENCE语句使语句使FI与与NAMINP、FO与与NAMOUT 等价等价4)用用DATA语句给语句给FI和和FO赋赋初值初值:“.DAT”、“.OUT”5)输入输入NAMINP的前的前四个字符作为输入输出文件名四个字符作为输入输出文件名 COMMON/PSIZ
11、E/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 NAMOUT(I)=NAMINP(I)OPEN(6,FILE=FO)OPEN(5,FILE=FI)MAXM=16000 MAXA=163
12、80 CALL PCONTR(FO)END 二、定义数组二、定义数组 FEP2 中设置了两个数组中设置了两个数组M(1600)和和 A(16380),数数组组M是作为存放坐标、单元信息、载荷、位移等,数组是作为存放坐标、单元信息、载荷、位移等,数组 A 则是存放刚度矩阵用的,其上界与则是存放刚度矩阵用的,其上界与FORTRAN(编译编译器)版本和计算机内存有关,确定了程序的计算规模。器)版本和计算机内存有关,确定了程序的计算规模。这两个数组也可合并成一个。这两个数组也可合并成一个。2-4 FEP2 的主控程序的主控程序 PCONTR PCONTR:实质上的主程序。实质上的主程序。分以下几大段:
13、分以下几大段:一、程序头(前一、程序头(前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,FORC*6,P COMMON/PRINT/P COMMON/ASEM/ASEM DATA FORC/FORC/FD/NODAL FORCE/DISPL/FO:输出文件名输出文件
14、名 ERR:逻辑变量,作出错信息控制(逻辑变量,作出错信息控制(.TRUE.为错)为错)ASEM:逻辑变量,作为判断是否要组集总刚逻辑变量,作为判断是否要组集总刚 数组数组A:存放总刚的元素存放总刚的元素 数组数组M:存放单刚、单元信息、节点坐标等存放单刚、单元信息、节点坐标等 NDF 最大自由度数最大自由度数 NDM 空间维数空间维数 NEN 单元的最多节点数单元的最多节点数 NJ 节点总数节点总数 NE 总单元数总单元数 NEQ 总方程数总方程数NUMMAT 材料类型数材料类型数 FD,FORC:文字变量,作为输出的标题用文字变量,作为输出的标题用 P:文字变量,判断是否要输出单刚文字变量
15、,判断是否要输出单刚二、输入控制信息、确定主要数组的地址(二、输入控制信息、确定主要数组的地址(14341434语句)语句)NEN1=NEN+1 每个单元信息的存储量(节点号每个单元信息的存储量(节点号+材料号材料号)NNEQ=NJ*NDF 总节点总节点 节点自由度数节点自由度数 NST=NDF*NEN 单刚阶数单刚阶数 NXC=1 节点坐标数组节点坐标数组XC的的首址首址 NIX=NXC+NJ*NDM 单元信息数组单元信息数组IX的首址的首址 NID=NIX+NEN1*NE 结构方程号编码数组结构方程号编码数组ID的首址的首址 ND=NID+NNEQ 材料常数数组的首址材料常数数组的首址 N
16、XL=ND+20*NUMMAT 单元节点坐标数组单元节点坐标数组XL的首址的首址 NLD=NXL+NEN*NDM 单元节点自由度数组单元节点自由度数组LD的首址的首址 NUL=NLD+NST 单元节点位移数组单元节点位移数组UL的首址的首址 NS=NUL+NST*2 单刚数组单刚数组S的首址的首址 NP=NS+NST*NST 总刚对角线地址向量总刚对角线地址向量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
17、 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的数据信息(自由格式):的数据信息(自由格式):1)控制信息:)控制信息:NJ,NE,NUMMAT,NDM,NEN2)坐标信息(一组)坐标信息(一组)N,NG,(XL(I),I=1,NDM)节点号节点号 节点号增量节点号增量 坐标或载荷坐标或载荷 由由GENVEC生
18、成节点坐标或载荷向量,通过生成节点坐标或载荷向量,通过NDM,CD,FC 进行识别生成的是节点坐标,还是载荷向量。进行识别生成的是节点坐标,还是载荷向量。CD:NODAL COORDINATES FC:COORCD:NODAL FORCE/DISPL FC:FORC SUBROUTINE GENVEC(NDM,X,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(
19、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,NDM 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 WRIT
20、E(6,3000)L,CD WRITE(*,3000)L,CD ERR=.TRUE.GO TO 102109 CONTINUE 3)单元信息(一组)单元信息(一组)L,LX,LK,(IDL(K),K=1,NEN)单元号单元号 单元号增量单元号增量 材料号材料号 节点号节点号 0,0,0,结束结束由由ELDA子程序生成单元信息,子程序生成单元信息,IX(NEN1,NE)二维数组。二维数组。NEN=NEN+1 NE 单元总数单元总数4)材料信息(一组或多组)材料信息(一组或多组)对于每一类材料,要求输入两个记录:对于每一类材料,要求输入两个记录:a)材料类型号,单元类型号材料类型号,单元类型号 b
21、)一批与单元类型相关的常数(不超过一批与单元类型相关的常数(不超过20个)个)对于梁单元,输入两个如下对于梁单元,输入两个如下12个常数:个常数:NP,E,G,A或或 Ix,Iy或或 Iz,Rh0,As,N1,N2,Ni,W,a类型类型(NP=0:平面梁作用平面载荷;平面梁作用平面载荷;1:平面梁作用空间载荷)平面梁作用空间载荷)Rh0:单位长度的质量密度单位长度的质量密度N1:梁左端铰为梁左端铰为1,非铰为,非铰为0 N2:右端铰为右端铰为1,非铰为,非铰为0 Ni:单元载荷类型(单元载荷类型(0,1,2,3,4)(0为无载荷)为无载荷)单元载荷由单元载荷由 EQLOAD 处理成等效节点载荷
22、处理成等效节点载荷 对于平面元,输入对于平面元,输入6个常数:个常数:E,XNU,TH,L,K,I TH:单元厚度单元厚度 L:沿一个方向的高斯积分点数沿一个方向的高斯积分点数(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/NUMMA
23、T COMMON/ELDATA/LM,N,MA,MCT,IEL,NEL DIMENSION XC(NDM,*),IX(NEN1,*),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 WRI
24、TE(*,2000)MA,IEL IF(MA.EQ.0)GO TO 4 CALL PZERO(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)节点号节点号 节点号增量节点号增量 坐标或载荷坐标或载
25、荷 0,0,0,(平面元(平面元4个个0,梁元,梁元5个个0)IDL(I):约束信息,被约束的自由度给非零值(约束信息,被约束的自由度给非零值(1或或-1),),其它为其它为0。1:该自由度被约束,但不继续生成该自由度被约束,但不继续生成-1:该自由度被约束,要求继续生成:该自由度被约束,要求继续生成6)载荷信息)载荷信息 载荷输入仍由载荷输入仍由 GENVEC 完成,维数:完成,维数:NDF 对于指定位移,生成方式与节点载荷相同,对于指定位移,生成方式与节点载荷相同,5)输入)输入约束信息,约束信息,6)输入其值。)输入其值。第三章第三章 总刚度矩阵的变带宽存贮与求总刚度矩阵的变带宽存贮与求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限元 程序设计
限制150内