第7章——有限元三角形单元程序设计

合集下载

有限元中三角形单元源程序

有限元中三角形单元源程序

附录:平面问题三角形单元源程序******************************************************************* * ANALYSIS PROGTAM OF FINITE ELEMENT METHOD * * FOR PLANE STRESS/STRAIN OF TRIANGULAR ELEMENT * * ----- FEMT3.FOR ----- * *------------------------------------------------------------- * * Subroutines: 1-SDATA, 2-STE, 3-ATE, 4-DTE, 5-BTE, 6-STIFF * * 7-EQUPE, 8-INSCD, 9-BGSMT, 10-SIGME * ******************************************************************* DIMENSION LND(50,3),X(100),Y(100),JR(20,3),PJ(20,3),P(200) REAL KS(200,100)OPEN(5,FILE='FEMT3.DAT')OPEN(6,FILE='FEMT3.OUT',STATUS='NEW')READ(5,*) NJ,NE,NS,NPJ,IPS(结点、单元、支承、荷载、类型)WRITE(6,*)' FINITE ELEMENT ANALYSIS IN PLANE PROBLEM'WRITE(6,*)' SOURCE DATA OUTPUT'WRITE(6,20) NJ,NE,NS,NPJ,IPS20 FORMAT(4X,'NJ',3X,'NE',3X,'NS',3X,'NPJ',2X,'IPS'/1X,5I5)IF(IPS.EQ.0) WRITE(6,*)' PLANE STRESS PROBLEM'IF(IPS.EQ.1) WRITE(6,*)' PLANE STRAIN PROBLEM'CALL SDATA(NJ,NE,NS,NW,NPJ,IPS,E,PR,T,V,LND,X,Y,JR,PJ)NJ2=2*NJWRITE(6,50) NJ250 FORMAT(/1X,'DEGREES OF FREEDOM=',I5)WRITE(6,60) NW60 FORMAT(1X,'BAND WIDTH=',I5)CALL STIFF(NJ,NE,NJ2,NW,LND,X,Y,E,PR,T,KS)(总刚6)CALL EQUPE(NJ,NE,NPJ,NJ2,T,V,LND,X,Y,PJ,P)({P}7)CALL INSCD(NS,NW,NJ2,JR,KS,P)(引入支承条件8)CALL BGSMT(NJ,NJ2,NW,KS,P)(解方程9)CALL SIGME(NE,NJ,NJ2,E,PR,LND,X,Y,P)(求应力10)CLOSE(5)CLOSE(6)END*--------------------------------------------------------C SUBPROGRAM-1C INPUT STRUCTURAL DATASUBROUTINE SDATA(NJ,NE,NS,NW,NPJ,IPS,E,PR,* T,V,LND,X,Y,JR,PJ)DIMENSION LND(NE,3),X(NJ),Y(NJ),JR(NS,3),PJ(NPJ,3)READ(5,*) E,PR,T,V(弹性模量、泊松比、厚度、容重)WRITE(6,10) E,PR,T,V10 FORMAT(/6X,'E',10X,'PR',9X,'T',9X,'V'/,4F10.2)READ(5,*)((LND(I,J),J=1,3),I=1,NE)(结点编码)WRITE(6,20)20 FORMAT(/1X,'ELEMENT INFORMATION'/3X,'ELEM',3X,* 'I J K'/)WRITE(6,30)(I,(LND(I,J),J=1,3),I=1,NE)30 FORMAT(1X,4I5)READ(5,*)(X(I),Y(I),I=1,NJ)(结点坐标)WRITE(6,40)40 FORMAT(/1X,'COORDINATES OF NODES'/3X,'NODES',* 8X,'X',13X,'Y')WRITE(6,50)(I,X(I),Y(I),I=1,NJ)50 FORMAT(1X,I5,2E15.6)READ(5,*)((JR(I,J),J=1,3),I=1,NS)(约束信息)WRITE(6,60)60 FORMAT(/1X,'CONSTRAINED NODES'/3X,'NODE',3X,'X',4X,'Y') WRITE(6,70)((JR(I,J),J=1,3),I=1,NS)70 FORMAT(1X,3I5)READ(5,*)((PJ(I,J),J=1,3),I=1,NPJ)(荷载信息)WRITE(6,80)80 FORMAT(/1X,'LOAD CASES'/3X,'NODE',8X,'X',13X,'Y')WRITE(6,90)((PJ(I,J),J=1,3),I=1,NPJ)90 FORMAT(1X,F5.0,2E15.6)100 NW=0(半带宽)DO 110 IE=1,NEDO 110 I=1,3DO 110 J=1,3IW=IABS(LND(IE,I)-LND(IE,J))IF(NW.LT.IW) THENNW=IWENDIF110 CONTINUENW=(NW+1)*2IF(IPS.NE.0) THENE=E/(1.0-PR*PR)PR=PR/(1.0-PR)ENDIFEND*---------------------------------------------------------C SUBPROGRAM-2C CALCULATE ELEMENT STIFFNESS MATRIXSUBROUTINE STE(IE,NJ,NE,LND,X,Y,E,PR,T,KE)DIMENSION LND(NE,3),X(NJ),Y(NJ),B(3,6),D(3,3)REAL KE(6,6)CALL ATE(IE,NJ,NE,LND,X,Y,AE)CALL DTE(E,PR,D)CALL BTE(IE,NJ,NE,LND,X,Y,AE,B)DO 10 I=1,6DO 10 J=1,6KE(I,J)=0.DO 10 K=1,3DO 10 K1=1,310 KE(I,J)=KE(I,J)+B(K,I)*D(K,K1)*B(K1,J)C=AE*TDO 30 I=1,6DO 30 J=1,630 KE(I,J)=KE(I,J)*CEND*------------------------------------------------ C SUBPROGRAM-3C CALCULATE ELEMENT AREASUBROUTINE ATE(IE,NJ,NE,LND,X,Y,AE)DIMENSION LND(NE,3),X(NJ),Y(NJ)I=LND(IE,1)J=LND(IE,2)K=LND(IE,3)XIJ=X(J)-X(I)YIJ=Y(J)-Y(I)XIK=X(K)-X(I)YIK=Y(K)-Y(I)AE=.5*(XIJ*YIK-XIK*YIJ)END*----------------------------------------------C SUBPROGRAM-4C CALCULATE ELASTICITY MATRIXSUBROUTINE DTE(E,PR,D)DIMENSION D(3,3)DO 10 I=1,3DO 10 J=1,310 D(I,J)=0.D(1,1)=E/(1.-PR*PR)D(1,2)=E*PR/(1.-PR*PR)D(2,1)=D(1,2)D(2,2)=D(1,1)D(3,3)=.5*E/(1.+PR)END*------------------------------------------------ C SUBPROGRAM-5C CALCULATE MATRIX [B]SUBROUTINE BTE(IE,NJ,NE,LND,X,Y,AE,B)DIMENSION LND(NE,3),X(NJ),Y(NJ),B(3,6)I=LND(IE,1)J=LND(IE,2)K=LND(IE,3)DO 10 II=1,3DO 10 JJ=1,610 B(II,JJ)=0.B(1,1)=Y(J)-Y(K)B(1,3)=Y(K)-Y(I)B(1,5)=Y(I)-Y(J)B(2,2)=X(K)-X(J)B(2,4)=X(I)-X(K)B(2,6)=X(J)-X(I)B(3,1)=B(2,2)B(3,2)=B(1,1)B(3,3)=B(2,4)B(3,4)=B(1,3)B(3,5)=B(2,6)B(3,6)=B(1,5)DO 20 I1=1,3DO 20 J1=1,620 B(I1,J1)=.5/AE*B(I1,J1)END*------------------------------------------------------- C SUBPROGRAM-6C CALCULATE GLOBAL STIFFNESS MATRIXSUBROUTINE STIFF(NJ,NE,NJ2,NW,LND,X,Y,E,PR,T,KS) DIMENSION LND(NE,3),X(NJ),Y(NJ)REAL KS(NJ2,NW),KE(6,6)DO 5 I=1,NJ2DO 5 J=1,NW5 KS(I,J)=0.DO 10 IE=1,NECALL STE(IE,NJ,NE,LND,X,Y,E,PR,T,KE)DO 10 I=1,3IZ=LND(IE,I)DO 10 II=1,2IH =2*(I -1)+IIIDH=2*(IZ-1)+IIDO 10 J=1,3JZ=LND(IE,J)DO 10 JJ=1,2L =2*(J -1)+JJIL=2*(JZ-1)+JJIF(IL.GE.IDH) THENIDL=IL-IDH+1KS(IDH,IDL)=KS(IDH,IDL)+KE(IH,L)ENDIF10 CONTINUEEND*-------------------------------------------------------- C SUBPROGRAM-7C CALCULATE NODAL LOAD VECTORSUBROUTINE EQUPE(NJ,NE,NPJ,NJ2,T,V,LND,X,Y,PJ,P) DIMENSION LND(NE,3),X(NJ),Y(NJ),PJ(NPJ,3),P(NJ2) DO 10 I=1,NJ210 P(I)=0.DO 20 I=1,NPJII=PJ(I,1)P(2*II-1)=PJ(I,2)20 P(2*II)=PJ(I,3)30 IF(V.EQ.0.) GOTO 50DO 40 IE=1,NECALL ATE(IE,NJ,NE,LND,X,Y,AE)PE=-V*AE*T/3.DO 40 I=1,3II=LND(IE,I)40 P(2*II)=P(2*II)+PE50 RETURNEND*---------------------------------------------C SUBPROGRAM-8C INTRODUCE BOUNDARY CONDITIONSUBROUTINE INSCD(NS,NW,NJ2,JR,KS,P)DIMENSION P(NJ2),JR(NS,3)REAL KS(NJ2,NW)DO 30 I=1,NSIR=JR(I,1)DO 30 J=2,3IF(JR(I,J).EQ.0) GOTO 30II=2*IR+J-3KS(II,1)=1.DO 10 JJ=2,NW10 KS(II,JJ)=0.IF(II.GT.NW) JO=NWIF(II.LE.NW) JO=IIDO 20 JJ=2,JO20 KS(II-JJ+1,JJ)=0.P(II)=0.30 CONTINUEEND*-------------------------------------------C SUBPROGRAM-9C SOLVE EQUATIONS BY GS METHODSUBROUTINE BGSMT(NJ,NJ2,NW,KS,P)DIMENSION P(NJ2)REAL KS(NJ2,NW)NJ1=NJ2-1DO 20 K=1,NJ1IF(NJ2.GT.K+NW-1) IM=K+NW-1IF(NJ2.LE.K+NW-1) IM=NJ2K1=K+1DO 20 I=K1,IML=I-K+1C=KS(K,L)/KS(K,1)IW=NW-L+1DO 10 J=1,IWM=J+I-K10 KS(I,J)=KS(I,J)-C*KS(K,M)20 P(I)=P(I)-C*P(K)P(NJ2)=P(NJ2)/KS(NJ2,1)DO 40 I1=1,NJ1I=NJ2-I1IF(NW.GT.NJ2-I+1) JO=NJ2-I+1IF(NW.LE.NJ2-I+1) JO=NWDO 30 J=2,JOK=J+I-130 P(I)=P(I)-KS(I,J)*P(K)40 P(I)=P(I)/KS(I,1)WRITE(6,50)50 FORMAT(/1X,'NODAL DISPLACEMENTS'/3X,* 'NODE',5X,'X-DISP.',8X,'Y-DISP.')DO 60 I=1,NJ60 WRITE(6,70) I,P(2*I-1),P(2*I)70 FORMAT(1X,I5,2E15.6)END*---------------------------------------------------C SUBPROGRAM-10C CALCULATE ELEMENT STRESS MATRIXSUBROUTINE SIGME(NE,NJ,NJ2,E,PR,LND,X,Y,P)DIMENSION LND(NE,3),X(NJ),Y(NJ),D(3,3),B(3,6), * S(3,6),ST(3),P(NJ2),DE(6)WRITE(6,*)WRITE(6,*)' ELEMENT STRESSES'CALL DTE(E,PR,D)DO 50 IE=1,NECALL ATE(IE,NJ,NE,LND,X,Y,AE)CALL BTE(IE,NJ,NE,LND,X,Y,AE,B)DO 10 I=1,3DO 10 J=1,6S(I,J)=0.DO 10 K=1,310 S(I,J)=S(I,J)+D(I,K)*B(K,J)DO 20 I=1,3DO 20 J=1,2IH=2*(I-1)+JIW=2*(LND(IE,I)-1)+J20 DE(IH)=P(IW)DO 30 I=1,3ST(I)=0.DO 30 J=1,630 ST(I)=ST(I)+S(I,J)*DE(J)SGX=ST(1)SGY=ST(2)TXY=ST(3)ASG=(SGX+SGY)*.5RSG=SQRT(.25*(SGX-SGY)**2+TXY*TXY)SGMA=ASG+RSGSGMI=ASG-RSGIF(SGY.EQ.SGMI) CETA=0.IF(SGY.NE.SGMI) CETA=90.-57.29578*ATAN* (TXY/(SGY-SGMI))50 WRITE(6,60) IE,SGX,SGY,TXY,SGMA,SGMI,CETA60 FORMAT(1X,'ELEMENT NO.=',I4/2X,'SIGX=',E10.4, * 2X,'SIGY=',E10.4,2X,'TXY =',E10.4/2X,'SGMA=', * E10.4,2X,'SGMI=',E10.4,2X,'CETA=',E10.4)END。

第7章 有限元分析概述

第7章 有限元分析概述

3、变形体及受力情况的描述:
基本变量:
u
(位移)
ε
(应变)
ζ
(应力)
(如果考虑三个方向(xyz)的情况,则有对应的向量、张量描述:
ε ij
ζ ij
ui

基本方程: ①力的平衡方面 三大类变量 ②几何方面 三大类方程 ③材料方面
求解方法: ①经典解析 ②半解析法 ③传统数值求解 ④现代数值求解(计算机软硬件,规范化,标准化, 规模化,计算机化)
几个概念: 单元:把弹性体假想地分割成有限个离散体,这些离
散体称为单元。 节点:离散单元仅在其顶点处相互连接,连接点成为节点。 要求:这种连接必须满足变形协调条件, 既:不能出现裂缝,不能发生重叠。 节点力:单元之间只能通过节点传递内力,通过节点 传递的内力成为节点力。 节点载荷:作用在节点上的载荷为节点载荷。 节点位移:当弹性体受到外力作用发生变形时,组成它的 各个单元也将发生变形,因而各个节点将产生
在工程技术领域内,经常会遇到两类典型的问题。 第一类问题,可以归结为有限个已知单元体的组合。把这类 问题称为离散系统。
例如,材料力学中的连续梁、建筑结构框架和桁架结构。
平面桁架结构
ቤተ መጻሕፍቲ ባይዱ
双向拉索悬索桥
第二类问题,通常可以建立它们应遵循的基本方程,即微分方 程和相应的边界条件。这类问题称为连续系统。
例如弹性力学问题,热传导问题,电磁场问题等。
目前应用较多的通用有限元软件如下表所列:
软件名称 简介
MSC/Nastran
MSC/Dytran MSC/Marc ANSYS ADINA ABAQUS
著名结构分析程序,最初 由NASA研制 动力学分析程序 非线性分析软件 通用结构分析软件 非线性分析软件 非线性分析软件

matlab有限元三角形单元编程

matlab有限元三角形单元编程

matlab有限元三角形单元编程
在MATLAB中进行有限元分析,可以使用其自带的有限元分析工具箱(FEATool)进行编程。

以下是一个简单的例子,演示如何使用三角形单元进行有限元分析:
1. 打开MATLAB,进入FEATool环境。

2. 创建新的有限元模型。

选择“Model”菜单下的“New Model”选项,进入“Model Builder”界面。

3. 在“Model Builder”界面中,选择“2D Triangle”单元类型,并在绘图区域中绘制出三角形网格。

4. 在“Model Builder”界面中,设置材料属性、边界条件和载荷等参数。

5. 运行有限元分析。

选择“Model”菜单下的“Solve”选项,进行有限元求解。

6. 查看结果。

选择“Model”菜单下的“Results”选项,可以查看位移、应力、应变等结果。

以上是一个简单的例子,演示了如何使用三角形单元进行有限元分析。

在实际应用中,还需要根据具体问题进行详细的建模和计算。

第七章 平面问题的有限单元法(Q4)

第七章  平面问题的有限单元法(Q4)
b y3 y2 y y1 4 2 2
8
4节点四边形单元
y, v
u1 v 1 u2 u de 2 u3 u3 u4 u 4 displacements at node 1 displacements at node 2 displacements at node 3 displacements at node 4
x 1 2 3 4 N1 x1 N 2 x2 N 3 x3 N 4 x4 y 1 2 3 4 N1 y1 N 2 y2 N 3 y3 N 4 y4
1 N (1 )(1 ) 1 4 N 1 (1 )(1 ) 2 4 1 N (1 )(1 ) 3 4 N 1 (1 )(1 ) 4 4
1 4
Nj 1 4 (1 j )(1 j )
4 ( 1, +1) ( u4, v4)
1
N3 1 4 (1 )(1 ) N4 1 4 (1 )(1 )
N 3 at node 1 1 4 (1 )(1 ) 1 0 N 3 at node 2 1 4 (1 )(1 ) 1 0
同理:
1 1 1 1 1 y1 2 1 1 1 1 1 y2 1 1 1 1 4 3 y3 1 1 1 1 y4 4
K e B DBtd
e
T

11
等参单元

对于一般的四边形单元,在总体坐标系下构造 位移插值函数,则计算形状函数矩阵、单元刚 度矩阵及等效节点载荷列阵时十分冗繁;而对 于矩形单元,相应的计算要简单的多。 矩形单元明显的缺点是不能很好的符合曲线边 界,因此可以采用矩形单元和三角形单元混合 使用(网格划分困难)。更为一般的方法是通 过等参变换将局部自然坐标系内的规格化矩形 单元变换为总体坐标系内的任意四边形单元( 包括高次曲边四边形单元)。 等参单元的提出为有限元法成为现代工程实

有限元单元法程序设计

有限元单元法程序设计

有限元单元法程序设计有限元单元法是一种用于工程结构分析和设计的计算方法,它将大型结构分解为许多小的离散单元,通过分析单元之间的相互作用来预测结构的力学行为。

有限元单元法程序设计是指针对特定工程问题,编写计算机程序来实现有限元分析的过程。

下面将介绍有限元单元法程序设计的基本流程和关键要点。

一、问题建模和网格划分有限元单元法程序设计的第一步是对工程结构进行合理的建模和网格划分。

建模的目的是将实际结构抽象为适用于有限元分析的数学模型,包括定义结构的几何特征、材料属性、边界条件等。

网格划分是将结构分解为许多小的单元,每个单元具有一定的形状和尺寸,以便于数值计算。

常用的单元形状包括三角形、四边形、四面体、六面体等,根据结构的特点选择合适的单元形状和尺寸。

二、单元刚度矩阵和载荷矩阵的求解在有限元单元法程序设计中,需要编写算法来求解每个单元的刚度矩阵和载荷矩阵。

单元刚度矩阵描述了单元内部的力学性能,包括刚度、弹性模量、泊松比等,它们通常通过数学公式或有限元理论推导得到。

载荷矩阵描述了单元受到的外部荷载,可以是均匀分布载荷、集中载荷或者边界条件引起的约束力。

通过合适的数值积分方法,可以计算得到每个单元的刚度矩阵和载荷矩阵。

三、组装全局刚度矩阵和载荷向量在有限元单元法程序设计中,需要将所有单元的刚度矩阵和载荷向量组装成整个结构的全局刚度矩阵和载荷向量。

这涉及到单元之间的连接关系以及边界条件的处理。

采用适当的组装算法,可以将各个单元的刚度矩阵和载荷向量叠加在一起,形成整个结构的刚度矩阵和载荷向量。

四、求解位移和应力有限元单元法程序设计的最后一步是求解结构的位移和应力。

通过斯蒂芬-泰勒算法或者其他迭代算法,可以得到整个结构的位移分布,然后根据位移场计算各个点的应变和应力。

这一过程涉及到对整个结构刚度矩阵的求解和对位移的后处理。

有限元单元法程序设计是一个复杂而又精密的工作,需要深入理解有限元原理、结构力学知识和数学方法。

matlab有限元三角形单元程序

matlab有限元三角形单元程序

matlab有限元三角形单元程序以下是一个简单的 MATLAB 有限元三角形单元程序的示例:```matlab% 定义模型参数E = 1000; % 弹性模量nu = 0.3; % 泊松比thickness = 1; % 板的厚度% 定义节点坐标nodes = [0, 0; 1, 0; 1, 1; 0, 1; 0.5, 0.5];% 定义单元连接关系connectivity = [1, 2, 5; 2, 3, 5; 3, 4, 5; 4, 1, 5];% 计算总节点数和总单元数numNodes = size(nodes, 1);numElements = size(connectivity, 1);% 初始化全局刚度矩阵和载荷向量K = zeros(numNodes);F = zeros(numNodes, 1);% 循环遍历每个单元for i = 1:numElements% 查找当前单元的节点编号nodesIndex = connectivity(i, :);% 根据节点编号从全局坐标矩阵中取出节点坐标coordinates = nodes(nodesIndex, :);% 计算当前单元的局部刚度矩阵localK = calculateLocalStiffness(E, nu, thickness, coordinates);% 组装局部刚度矩阵到全局刚度矩阵中K(nodesIndex, nodesIndex) = K(nodesIndex, nodesIndex) + localK;% 计算当前单元的局部载荷向量localF = calculateLocalLoad(thickness, coordinates);% 组装局部载荷向量到全局载荷向量中F(nodesIndex) = F(nodesIndex) + localF;end% 边界条件:节点1固定K(1, :) = 0;K(1, 1) = 1;F(1) = 0;% 解线性方程组U = K \ F;% 输出位移结果disp('节点位移:');disp(U);% 计算应力结果stress = calculateStress(E, nu, thickness, nodes, connectivity, U);% 输出应力结果disp('节点应力:');disp(stress);% 计算局部刚度矩阵的函数function localK = calculateLocalStiffness(E, nu, thickness, coordinates)% 计算单元的雅可比矩阵J = (1/2) * [coordinates(2,1)-coordinates(1,1), coordinates(3,1)-coordinates(1,1);coordinates(2,2)-coordinates(1,2), coordinates(3,2)-coordinates(1,2)];% 计算雅可比矩阵的逆矩阵invJ = inv(J);% 计算单元刚度矩阵B = invJ * [-1, 1, 0; -1, 0, 1];D = (E/(1-nu^2)) * [1, nu, 0; nu, 1, 0; 0, 0, (1-nu)/2]; localK = thickness * abs(det(J)) * (B' * D * B);end% 计算局部载荷向量的函数function localF = calculateLocalLoad(thickness, coordinates) localF = zeros(3, 1);midPoint = [sum(coordinates(:,1))/3,sum(coordinates(:,2))/3];localF(3) = thickness * 1 * det([coordinates(1,:); coordinates(2,:); midPoint]);end% 计算各节点应力的函数function stress = calculateStress(E, nu, thickness, nodes, connectivity, U)stress = zeros(size(nodes, 1), 3);for i = 1:size(connectivity, 1)nodesIndex = connectivity(i, :);coordinates = nodes(nodesIndex, :);Ke = calculateLocalStiffness(E, nu, thickness, coordinates);Ue = U(nodesIndex);stress(nodesIndex, :) = stress(nodesIndex, :) + (Ke * Ue)';endstress = stress / thickness;end```这个程序实现了一个简单的平面三角形单元有限元分析,包括定义节点坐标和单元连接关系、计算全局刚度矩阵和载荷向量、施加边界条件、解线性方程组、计算节点位移和应力等。

1 三角形单元有限元

1 三角形单元有限元

节点三角形单元,将矩阵位移法用到平面问题上。同时,联邦德国
斯图加特大学的J. H. Argyris教授发表了一组能量原理与矩阵分 析的论文,为这一方法的理论基础作出了杰出贡献。1960年美国的
R. W. Clough教授在一篇题为“平面应力分析的有限单元法”的论
文中首先使用“有限单元法(the Finite Element Method)”一 词,此后这一名称得到广泛承认。
2、位移函数设定 不同类型结构会有不同的位移函数。这里,仍 以平面问题三角形单元(图1-2)为例,说明设定位 移函数的有关问题。 v
yHale Waihona Puke 图 1-2 是一个三节点三角形 单元,其节点i、j、m按逆时针 方向排列。每个节点位移在单 元平面内有两个分量:
{ i } [ui
m m
um
vj
j
vi
i
ui
uj x
2
l/2 1、F1 3、F3
4、F4
2、F2
2

3
l/2 1、F1 3、F3
4、F4
(3)由平衡方程求解得节点位移和计算单元应力。
1.1.2 有限元法分析思路流程
离散(剖分)结构
为若干单元
单元分析
(建立单元刚度矩阵[k]e 形成单元等价节点力)
系统分析
(把单元刚度矩阵集合成结构刚度矩阵[K] 形成等价节点荷载{P} )
•20世纪60年代有限单元法发展迅速,除力学界外,许多数学家也参与 了这一工作,奠定了有限单元法的理论基础,搞清了有限单元法与变 分法之间的关系,发展了各种各样的单元模式,扩大了有限单元法的 应用范围。
• 20世纪70年代以来,有限单元法进一步得到蓬勃发展,其应用范围

三角形单元有限元程序设计

三角形单元有限元程序设计

三角形单元有限元程序设计一、引言
⑴文档背景
⑵文档目的
⑶读者对象
⑷名词解释
二、程序结构设计
⑴程序流程图
⑵程序组成模块描述
⑶主要数据结构设计
⑷代码逻辑设计
三、数据预处理
⑴数据输入格式与读取
⑵数据清洗与去噪
⑶数据预处理方法
⑷数据分割与划分
四、网格
⑴网格算法介绍
⑵网格质量评估与改善
⑶网格的实现方法
五、有限元方法
⑴有限元离散的原理
⑵有限元单元的选择
⑶有限元离散的网格节点选取
⑷有限元插值函数的计算六、模型求解
⑴线性方程组的求解方法
⑵模型参数的设置与调整
⑶迭代算法的选择与实现七、模型评估与验证
⑴结果评估指标的选择
⑵模型验证方法
⑶结果可视化与分析
八、性能优化
⑴程序性能分析与评估
⑵程序高效化的方法与技巧
⑶并行计算与优化
九、实例与案例
⑴实例介绍与问题描述
⑵实例数据处理过程
⑶实例模型求解与结果分析十、总结与展望
⑴工作总结
⑵程序改进与优化展望
⑶研究方向与发展趋势
十一、附件
●附件1、程序源代码
●附件2、输入数据样例文件
●附件3、网格结果数据文件附录:法律名词及注释
●法律名词1、注释1
●法律名词2、注释2
●法律名词3、注释3
请注意,附件的具体文件名和数据内容将根据你的实际情况进行调整。

法律名词及注释部分需要根据实际需要进行扩充和修改。

请合理对文档结构和章节内容进行调整,以符合你的具体要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南大学 机械与运载工程学院
Hunan University
College of Mechanical & Vehicle Engineering
崔向阳
第7讲: 三角形单元程序设计
问题描述
考虑一个平面应力问题如图所示,假设厚度h=1,材料为各项 同性,杨氏模量为 E=1,泊松比为ν=0,相关力和位移边界条 件如图中所示,问题左端为固定约束。试用两个三角形单元 分析此问题,三角形单元的网格划分如图所示。试求问题各 节点位移u、v和应力σx,σy和σxy。
A(0, (0 0)
D (4, (4 0)
C ( 4, 1)
B(0, 2)
12:45
有限单元法
崔向阳
三角形单元程序
%------------------------------------------------%initialization of matrices and vectors %------------------------------------------------ff ff=sparse(sdof,1); ( d f 1) % t %system force f vector t k=sparse(edof,edof k=sparse( edof,edof); ); %initialization of element matrix kk=sparse( kk =sparse(sdof,sdof sdof,sdof); ); %system matrix disp=sparse(sdof,1); disp =sparse(sdof,1); %system displacement vector eldisp=sparse(edof,1); eldisp =sparse(edof,1); %element displacement vector stress=zeros(nel,3); stress=zeros(nel 3); %matrix containing stress components strain=zeros(nel,3); %matrix containing strain components index=sparse(edof,1); %index vector kinmtx=sparse(3,edof); kinmtx =sparse(3,edof); %kinematic matrix matmtx=sparse(3,3); %constitutive matrix %------------------------------------------------%compute material matrices %------------------------------------------------matmtx=fematiso matmtx= fematiso(1 fematiso(1,emodule,poisson); (1 emodule poisson); %constitutive matrice (1,emodule,poisson); 12:45
-0.5*lengthy*(1+(lx+1 0.5*lengthy*(1+(lx+1-i)/lx)*(1 i)/lx)*(1-(j (j-1)/ 1)/ly ly)]; )];
有限单元法
崔向阳
三角形单元程序
%---------------------------------------------------------------------%input data for nodal connectivity for each element %nodes(i,j %nodes( i,j) ) where i->element no. and j j->connected nodes %---------------------------------------------------------------------nodes=[]; for i=1:lx for j=1:ly nodes=[nodes; (ly+1)*(i(ly+1)*(i-1)+j (ly+1)*i+j (ly+1)*i+j (ly+1)*(i(ly+1)*(i-1)+j+1;]; nodes=[nodes; (ly+1)*i+j (ly+1)*i+j (ly+1)*i+j+1 (ly+1)*(i(ly+1)*(i-1)+j+1;]; end end
A(0, 0)
D (4, 0)
F 1
C ( 4, 1)
B(0, 2)
12:45
有限单元法
崔向阳
三角形单元程序
clear all first_time= first_time =cputime cputime; ; format long g %-------------------------------------------%input data for control parameters %-------------------------------------------lengthx=4; lengthx =4; %length of xx-axis side of problem lengthy=2; %length of yy-axis side of problem emodule=1.0; emodule=1.0; ; poisson=0.0; poisson =0.0; fload= fload =-1; %elastic modulus %Poisson's ratio % the total load
12:45单元程序
%---------------------------------%input data for boundary conditions %---------------------------------bcdof=[]; bcdof =[]; bcval=[]; bcval =[]; for i=1:ly+1 bcdof=[ bcdof =[bcdof bcdof 1+2*(i 1+2*(i-1) 2+2*(i2+2*(i-1)]; bcval=[ bcval =[bcval bcval 0 0]; end
Ni,x
area=0.5*(x1*y2+x2*y3+x3*y1-x1*y3 area=0.5*(x1*y2+x2*y3+x3*y1x1*y3-x2*y1 x2*y1-x3*y2); %area of triangula area2=area*2; dhdx=(1/area2)*[(y2dhdx=(1/area2)*[(y2 -y3) (y3 (y3-y1) (y1 (y1-y2)]; dhdy=(1/area2)*[(x3 dhdy=(1/area2) dhdy =(1/area2) =(1/area2)*[(x3[(x3-x2) (x1[(x3(x1-x3) (x2(x2-x1)]; %derivatives w.r.t x %derivatives w.r.t wrt y %kinematic matrice %element stiffness matrice
B(0, 2)
A(0, 0) D (4, 0)
F 1
C ( 4, 4 1)
12:45
有限单元法
崔向阳
三角形单元程序
lx=16; % number of element in x x-axis ly=8; ly =8; % number of element in yy-axis nel=2*lx* nel =2*lx*ly ly; ; % number of element nnel=3; nnel =3; %number of nodes per element ndof=2; ndof =2; %number of dofs per node nnode=(lx+1)*(ly+1); nnode =(lx+1)*(ly+1); (lx 1) (ly 1); %total number of nodes in system sdof= sdof =nnode* nnode*ndof; ndof; %total system dofs edof= edof =nnel* nnel*ndof; ndof; %degrees of freedom per element %------------------------------------------------------%input data for nodal coordinate values %------------------------------------------------------x0=[]; for i=1:lx+1 for j j=1:ly+1 1:ly+1 x0=[x0; (i(i-1)* 1)*lengthx lengthx/lx /lx end end 12:45
12:45
有限单元法
崔向阳
三角形单元程序
%--------------------------------------%find the derivatives of shape functions %---------------------------------------
1 Ni ai bi x ci y 2A
Ni, y
kinmtx2=fekine2d( kinmtx2=fekine2d (nnel,dhdx,dhdy nnel,dhdx,dhdy); ); k=kinmtx2'*matmtx k=kinmtx2'* matmtx*kinmtx2*area; *kinmtx2*area;
相关文档
最新文档