有限元分析程序设计.DOC

上传人:国*** 文档编号:761631 上传时间:2018-10-31 格式:DOC 页数:16 大小:125KB
下载 相关 举报
有限元分析程序设计.DOC_第1页
第1页 / 共16页
有限元分析程序设计.DOC_第2页
第2页 / 共16页
有限元分析程序设计.DOC_第3页
第3页 / 共16页
有限元分析程序设计.DOC_第4页
第4页 / 共16页
有限元分析程序设计.DOC_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、 有 限 元 分 析 程 序 设 计 学校:燕山大学院系:建筑工程与力学学院专业:01 级工程力学姓名:张任良学号:010107030025指导老师:杜国君完成时间 2004 年 12 月 31 日连续体平面问题的有限元程序分析题目 : 如图所示的正方形薄板四周受均匀载荷的作用,该结构在边界上受正向分布压力, ,同时在沿对角线 y 轴上受一对集中mkNp1压力,载荷为 2KN,若取板厚 ,泊松比 。t0v2kN2kN1kN/m分析过程 :由于连续平板的对称性,只需要取其在第一象限的四分之一部分参加分析,然后人为作出一些辅助线将平板“分割”成若干部分,再为每个部分选择分析单元。采用将此模型化分为

2、 4 个全等的直角三角型单元。利用其对称性,四分之一部分的边界约束,载荷可等效如图所示。 程序原理及实现 :用 FORTRAN 程序的实现。由节点信息文件 NODE.IN 和单元信息文件 ELEMENT.IN,经过计算分析后输出一个一般性的文件DATA.OUT。模型基本信息由文件为 BASIC.IN 生成。该程序的特点如下:问题类型:可用于计算弹性力学平面问题和平面应变问题单元类型:采用常应变三角形单元位移模式:用用线性位移模式载荷类型:节点载荷,非节点载荷应先换算为等效节点载荷 材料性质:弹性体由单一的均匀材料组成约束方式:为“0”位移固定约束,为保证无刚体位移,弹性体至少应有对三个自由度的

3、独立约束方程求解:针对半带宽刚度方程的 Gauss 消元法1kN/m输入文件:由手工生成节点信息文件 NODE.IN,和单元信息文件ELEMENT.IN结果文件:输出一般的结果文件 DATA.OUT程序的原理如框图:开始输入数据(子程序READ_IN)BASIC.IN(基本信息文件)NODE.IN(节点信息文件)ELEMENT.IN(单元信息文件)形成单元刚度矩阵(子程序FORM_KE)以半带存储方式形成整体刚度矩阵( BAND_K)形成节点载荷向量(子程序 FORM_P)处理边界条件(子程序 DO_BC)求解方程获得节点位移(子程序SOLVE)计算单元及节点应力(子程序)结束输出方件DATA

4、.OUT(1)主要变量:ID: 问题类型码, ID1 时为平面应力问题, ID=2 时为平面应变问题N_NODE: 节点个数N_LOAD: 节点载荷个数N_DOF: 自由度,N_DOF=N_NODE*2 (平面问题)N_ELE: 单元个数N_BAND: 矩阵半带宽N_BC: 有约束的节点个数PE: 弹性模量PR: 泊松比PT: 厚度LJK_ELE(I,3): 单元节点编号数组,LJK_ELE(I,1),LJK_ELE(I,2),LJK_ELE(I,3)分别放单元 I 的三个节点的整体编号X(N_NODE), Y(N_NODE):节点坐标数组,X(I),Y(I)分别存放节点 I 的 x,y坐标值

5、LJK_U(N_BC,3): 节点载荷数组,P_LJK(I,1)表示第 I 个作用有节点载荷的节点的编号,P_LJK(I,2),P_LJK(I,3)分别为该节点沿 x,y 方向的节点载荷数值AK(N_DOF,N_BAND): 整体刚度矩阵AKE(6,6): 单元刚度矩阵BB(3,6): 位移应变转换矩阵(三节点单元的几何矩阵)DD(3,3): 弹性矩阵SS(3,6); 应力矩阵RESULT_N(N_NOF): 节点载荷数组,存放节点载荷向量,解方程后该矩阵存放节点位移DISP_E(6):: 单元的节点位移向量STS_ELE(N_ELE,3): 单元的应力分量STS_ND(N_NODE,3):

6、节点的应力分量(2)子程序说明:READ_IN: 读入数据 BAND_K: 形成半带宽的整体刚度矩阵FORM_KE: 计算单元刚度矩阵 FORM_P: 计算节点载荷CAL_AREA:计算单元面积 DO_BC: 处理边界条件CLA_DD: 计算单元弹性矩阵 SOLVE: 计算节点位移CLA_BB: 计算单元位移应变关系矩阵 CAL_STS:计算单元和节点应力(3)文件管理:源程序文件:chengxu.for程序需读入的数据文件:BASIC.IN,NODE.IN,ELEMENT.IN(需要手工生成)程序输出的数据文件:DATA.OUT(4)数据文件格式:需读入的模型 基本信息文件 BASIC.IN

7、 的格式如下表需读入的节点信息文件 NODE.IN 的格式如下表栏目 格式说明 实际需输入的数据节点信息每行为一个节点的信息(每行三个数,每两个数之间用空格或“, ”分开)ND_ANSYS(N_NIDE)节点号,该节点的 x 坐标,该节点 y 方向坐标需读入的单元信息文件 ELEMENT.IN 的格式如下表栏目 格式说明 实际需输入的数据栏目 格式说明 实际需输入的数据基本模型数据 第 1 行,每两个数之间用“, ”号隔开问题类型,单元个数,节点个数,有约束的节点数,有载何的节点数材料性质 第 2 行,每两个数之间用“, ”号隔开弹性模量,泊松比,单元厚度节点约束信息 在材料性质输入行之后另起

8、行, 每两个数之间用“, ”号隔开LJK_U(N_BC,3)位移约束的节点编号,该节点 x 方向约束代码,该节点 y 方向代码,节点荷载信息 在节点约束信息输入行之后另起行,每两个数之间用“, ”号隔开P_IJK(N_LOAD,3)载荷作用的节点编号,该节点 x 主向载荷,该节点 y 方向载荷,单元信息每行为一个单元的信息(每行有 14 个整型数,前 4 个为单元节点编号,对于 3 节点编号,第 4个节点编号与第 3 个节点编号相同,后 10 个数无用,可输入“0” ,每两 个整型数之间用至少一个空格分开)NE_ANSYS(N_ELE,14)单元的节点号 1(空格)单元的节点号 2(空格)单元

9、的节点号 3(空格)单元的节点号 4(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0输出结果文件 DATA.OUT 格式如下表栏目 实际输出的数据节点位移 I RESULT_N(2*I_ 1) RESULT_N(2*I)节点号 x 方向位移 y 方向位移单元应力的三个分量IE STE_ELE(IE,1) STE_ELE(IE,2) STE_ELE(IE,3)单元号 x 方向应力 y 方向应力 剪切应力节点应力的三个分量 I STS-ND(I,1) STS-ND(I,2) STS-ND(I,3)节点号 x 方向应力 y 方向应力 剪切应力算例原

10、始数据和程序分析 :(1)模型基本信息文件 BASIC.IN 的数据为1,4,6,5,31.,0.,1.1,1,0,2,1,0,4,1,1,5,0,1,6,0,11,-0.5,-1.5,3.,-1.,-1,6,-0.5,-0.5(2)手工准备的节点信息文件 NODE.IN 的数据为1 0.0 2.0 2 0.0 1.0 3 1.0 1.0 4 0. 0.5 1.0 0.6 2.0 0.(3)手工准备的单元信息文件 ELEMENT.IN 的数据为1 2 3 3 0 0 0 0 1 1 1 1 0 12 4 5 5 0 0 0 0 1 1 1 1 0 25 3 2 2 0 0 0 0 1 1 1

11、1 0 33 5 6 6 0 0 0 0 1 1 1 1 0 4(4)源程序文件 chengxu.for 为:PROGRAM FEM2DDIMENSION IJK_ELE(500,3),X(500),Y(500),IJK_U(50,3),P_IJK(50,3),&RESULT_N(500),AK(500,100)DIMENSION STS_ELE(500,3),STS_ND(500,3)OPEN(4,FILE=BASIC.IN) OPEN(5,FILE=NODE.IN)OPEN(6,FILE=ELEMENT.IN)OPEN(8,FILE=DATA.OUT)OPEN(9,FILE=FOR_POS

12、T.DAT)READ(4,*)ID,N_ELE,N_NODE,N_BC,N_LOADIF(ID.EQ.1)WRITE(8,20)IF(ID.EQ.2)WRITE(8,25)20 FORMAT(/5X,=PLANE STRESS PROBLEM=)25 FORMAT(/5X,=PLANE STRAIN PROBLEM=)CALL READ_IN(ID,N_ELE,N_NODE,N_BC,N_BAND,N_LOAD,PE,PR,PT,& IJK_ELE,X,Y,IJK_U,P_IJK)CALL BAND_K(N_DOF,N_BAND,N_ELE,IE,N_NODE,& IJK_ELE,X,Y,PE

13、,PR,PT,AK) CALL FORM_P(N_ELE,N_NODE,N_LOAD,N_DOF,IJK_ELE,X,Y,P_IJK,& RESULT_N)CALL DO_BC(N_BC,N_BAND,N_DOF,IJK_U,AK,RESULT_N)CALL SOLVE(N_NODE,N_DOF,N_BAND,AK,RESULT_N)CALL CAL_STS(N_ELE,N_NODE,N_DOF,PE,PR,IJK_ELE,X,Y,RESULT_N,& STS_ELE,STS_ND)c to putout a data file WRITE(9,70)REAL(N_NODE),REAL(N_E

14、LE)70 FORMAT(2f9.4)WRITE(9,71)(X(I),Y(I),RESULT_N(2*I-1),RESULT_N(2*I),& STS_ND(I,1),STS_ND(I,2),STS_ND(I,3),I=1,N_NODE)71 FORMAT(7F9.4)WRITE(9,72)(REAL(IJK_ELE(I,1),REAL(IJK_ELE(I,2),&REAL(IJK_ELE(I,3),REAL(IJK_ELE(I,3),&STS_ELE(I,1),STS_ELE(I,2),STS_ELE(I,3),I=1, N_ELE)72 FORMAT(7f9.4)cCLOSE(4)CLO

15、SE(5)CLOSE(6)CLOSE(8)CLOSE(9)ENDc c to get the original data in order to model the problemSUBROUTINE READ_IN(ID,N_ELE,N_NODE,N_BC,N_BAND,N_LOAD,PE,PR,&PT,IJK_ELE,X,Y,IJK_U,P_IJK)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),IJK_U(N_BC,3),& P_IJK(N_LOAD,3),NE_ANSYS(N_ELE,14)REAL ND_ANSYS(N_NODE,3)READ

16、(4,*)PE,PR,PT READ(4,*)(IJK_U(I,J),J=1,3),I=1,N_BC)READ(4,*)(P_IJK(I,J),J=1,3),I=1,N_LOAD)READ(5,*)(ND_ANSYS(I,J),J=1,3),I=1,N_NODE)READ(6,*)(NE_ANSYS(I,J),J=1,14),I=1,N_ELE)DO 10 I=1,N_NODEX(I)=ND_ANSYS(I,2)Y(I)=ND_ANSYS(I,3)10 CONTINUEDO 11 I=1,N_ELEDO 11 J=1,3IJK_ELE(I,J)=NE_ANSYS(I,J)11 CONTINUE

17、N_BAND=0DO 20 IE=1,N_ELEDO 20 I=1,3DO 20 J=1,3IW=IABS(IJK_ELE(IE,I)-IJK_ELE(IE,J)IF(N_BAND.LT.IW)N_BAND=IW20 CONTINUEN_BAND=(N_BAND+1)*2IF(ID.EQ.1) THEN ELSEPE=PE/(1.0-PR*PR)PR=PR/(1.0-PR)END IFRETURNENDcC to form the stiffness matrix of element SUBROUTINE FORM_KE(IE,N_NODE,N_ELE,IJK_ELE,X,Y,PE,PR,P

18、T,AKE)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),BB(3,6),DD(3,3),& AKE(6,6), SS(6,6)CALL CAL_DD(PE,PR,DD)CALL CAL_BB(IE,N_NODE,N_ELE,IJK_ELE,X,Y,AE,BB)DO 10 I=1,3DO 10 J=1,6SS(I,J)=0.0DO 10 K=1,310 SS(I,J)=SS(I,J)+DD(I,K)*BB(K,J)DO 20 I=1,6DO 20 J=1,6AKE(I,J)=0.0DO 20 K=1,320 AKE(I,J)=AKE(I,J)+SS(

19、K,I)*BB(K,J)*AE*PTRETURN ENDcc to form banded global stiffness matrixSUBROUTINE BAND_K(N_DOF,N_BAND,N_ELE,IE,N_NODE,IJK_ELE,X,Y,PE,& PR,PT,AK)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),AKE(6,6),AK(500,100)N_DOF=2*N_NODEDO 40 I=1,N_DOFDO 40 J=1,N_BAND40 AK(I,J)=0DO 50 IE=1,N_ELECALL FORM_KE(IE,N_NO

20、DE,N_ELE,IJK_ELE,X,Y,PE,PR,PT,AKE)DO 50 I=1,3DO 50 II=1,2IH=2*(I-1)+IIIDH=2*(IJK_ELE(IE,I)-1)+IIDO 50 J=1,3DO 50 JJ=1,2IL=2*(J-1)+JJIZL=2*(IJK_ELE(IE,J)-1)+JJIDL=IZL-IDH+1IF(IDL.LE.0) THEN ELSEAK(IDH,IDL)=AK(IDH,IDL)+AKE(IH,IL) END IF50 CONTINUERETURNENDcc to calculate the area of element SUBROUTINE CAL_AREA(IE,N_NODE,IJK_ELE,X,Y,AE)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。