有限元程序.docx

上传人:b****8 文档编号:10588667 上传时间:2023-02-21 格式:DOCX 页数:55 大小:73.42KB
下载 相关 举报
有限元程序.docx_第1页
第1页 / 共55页
有限元程序.docx_第2页
第2页 / 共55页
有限元程序.docx_第3页
第3页 / 共55页
有限元程序.docx_第4页
第4页 / 共55页
有限元程序.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

有限元程序.docx

《有限元程序.docx》由会员分享,可在线阅读,更多相关《有限元程序.docx(55页珍藏版)》请在冰豆网上搜索。

有限元程序.docx

有限元程序

 

有限单元法程序设计

 

学生姓名:

汪菊

学号:

094812284

专业:

结构工程

指导老师:

周文伟

 

目录

程序1:

平面三节点有限元程序………………………………………..1

程序2:

四节点矩形薄板单元程序……………………………………..8

程序3:

平面刚架静力分析程序(PF.FOR)……………………………20

 

程序一:

平面三节点有限元程序

如图1所示的悬臂梁,受均布荷载q=1N/mm2作用。

E=2.1×105N/mm2,

,厚度h=10mm,现用有限元法分析其位移及应力。

图1

梁可视为平面应力状态,按图1尺寸划分为均匀的三角形网格,共80个单元,55个节点,坐标轴及单元与节点的编号如图。

将均不荷载分配到相应的节点上,把有约束的节点51、52、53、54、55视作固定铰链,建立如图1所示的离散化计算模型。

计算源程序如下:

PROGRAMMAIN

DIMENSIONSK(300,30),EK(12,12),Q(300),MC(55),XY(3,100),XYE(3,4),&

QE(12),NX(4,100)

OPEN(7,FILE='INP.DAT')

REWIND7

READ(7,10)NF,NE,NN,MB,ND,LE,LS

READ(7,12)E,UM,T

10FORMAT(7I5)

12FORMAT(3F15.2)

WRITE(*,600)NF,NE,NN,MB,ND,LE,LS,E,UM,T

ME=NE*NF

MS=NN*NF

CALLINPUT(XY,Q,NX,MC,LS,NN,MS,NE,LE,ND)

WRITE(*,102)((XY(I,J),I=1,LS),J=1,NN)

102FORMAT(10X,'XY'/,(2X,6F12.3))

WRITE(*,101)(Q(I),I=1,MS)

101FORMAT(10X,'Q'/,(2X,6F12.3))

WRITE(*,500)((NX(I,J),I=1,NE),J=1,LE)

WRITE(*,400)(MC(I),I=1,ND)

500FORMAT(10X,'NX'/,(2X,12I6))

600FORMAT(10X,'NFNENNMBNDLELSEUMT'/7(2X,I4),3(2X,F8.4))

400FORMAT(10X,'MC'/,(2X,10I6))

CALLSTIFS(SK,EK,Q,NX,XY,XYE,MC,MS,MB,ME,ND,LE,NE,NF,NN,LS,E,&

UM,T)

CALLSOLVE(SK,Q,MS,MB)

OPEN(9,FILE='OUT.DAT')

REWIND9

WRITE(9,200)

WRITE(9,250)(Q(I),I=1,MS)

200FORMAT(5X,'DISPLACEMENT')

250FORMAT(2X,6E14.5)

CALLSTRES(Q,QE,NX,XY,XYE,MS,ME,NE,LE,NF,NN,LS,E,UM,T)

STOP1000

END

SUBROUTINEINPUT(XY,Q,NX,MC,LS,NN,MS,NE,LE,ND)

DIMENSIONXY(LS,NN),Q(MS),NX(NE,LE),MC(ND)

READ(7,*)XY

READ(7,*)Q

READ(7,*)NX

READ(7,*)MC

CLOSE(7)

10FORMAT(6F11.2)

20FORMAT(12I5)

RETURN

END

SUBROUTINESTIFS(SK,EK,Q,NX,XY,XYE,MC,MS,MB,ME,ND,LE,NE,NF,NN,LS,E,UM,T)

DIMENSIONSK(MS,MB),EK(ME,ME),Q(MS),NX(NE,LE),MC(ND),XY(LS,NN),XYE(LS,NE)

DO35I=1,MS

DO35J=1,MB

35SK(I,J)=0

DO200L=1,LE

DO40J=1,NE

LJ=NX(J,L)

DO40I=1,LS

40XYE(I,J)=XY(I,LJ)

DO50I=1,ME

DO50J=1,ME

50EK(I,J)=0.0

CALLSTIFE(EK,XYE,ME,NE,NF,LS,E,UM,T)

IF(L.EQ.1)WRITE(*,70)EK

70FORMAT(10X,'EK'/,(6E14.5))

DO200I=1,NE

DO200II=1,NF

M=NF*(I-1)+II

M1=NF*(NX(I,L)-1)+II

DO200J=1,NE

DO200JJ=1,NF

N=NF*(J-1)+JJ

N1=NF*(NX(J,L)-1)+JJ

MN=N1-M1+1

IF(MN)200,200,150

150SK(M1,MN)=SK(M1,MN)+EK(M,N)

200CONTINUE

DO220I=1,ND

M=MC(I)

220SK(M,1)=SK(M,1)*1E8

RETURN

END

SUBROUTINESOLVE(SK,Q,MS,MB)

DIMENSIONSK(MS,MB),Q(MS)

K1=MS-1

DO125K=1,K1

IF(K+MB-1-MS)105,106,106

105N=K+MB-1

GOTO110

106N=MS

110I1=K+1

DO125I=I1,N

L=I-K+1

C=SK(K,L)/SK(K,1)

J1=MB-L+1

DO122J=1,J1

122SK(I,J)=SK(I,J)-C*SK(K,M)

125Q(I)=Q(I)-C*Q(K)

Q(MS)=Q(MS)/SK(MS,1)

M=MS-1

DO145I1=1,M

I=MS-I1

IF(MS-I+1-MB)135,136,136

135N=MS-I+1

GOTO140

136N=MB

140DO142J=2,N

L=J+I-1

142Q(I)=Q(I)-SK(I,J)*Q(L)

145Q(I)=Q(I)/SK(I,1)

WRITE(*,147)

147FORMAT(5X,'DISPLACEMENT')

WRITE(*,150)(Q(I),I=1,MS)

150FORMAT(2X,6E14.5)

RETURN

END

SUBROUTINESTRES(Q,QE,NX,XY,XYE,MS,ME,NE,LE,NF,NN,LS,E,UM,T)

DIMENSIONQ(MS),QE(ME),NX(NE,LE),XY(LS,NN),XYE(LS,NE)

DO400L=1,LE

DO160I=1,NE

DO160J=1,NF

N=NF*(I-1)+J

N1=NF*(NX(I,L)-1)+J

160QE(N)=Q(N1)

WRITE(*,165)L

WRITE(*,170)(QE(I),I=1,ME)

165FORMAT(4X,'L=',I4)

170FORMAT(6E14.5)

DO200J=1,NE

LJ=NX(J,L)

DO200I=1,LS

200XYE(I,J)=XY(I,LJ)

CALLSTE(XYE,QE,NE,LS,ME,E,UM,T)

400CONTINUE

RETURN

END

SUBROUTINESTIFE(EK,XYE,ME,NE,NF,LS,E,UM,T)

DIMENSIONEK(ME,ME),XYE(LS,NE),B(3),C(3)

B

(1)=XYE(2,2)-XYE(2,3)

B

(2)=XYE(2,3)-XYE(2,1)

B(3)=XYE(2,1)-XYE(2,2)

C

(1)=XYE(1,3)-XYE(1,2)

C

(2)=XYE(1,1)-XYE(1,3)

C(3)=XYE(1,2)-XYE(1,1)

AE=(B

(2)*C(3)-B(3)*C

(2))/2

D=E*T/4/(1-UM**2)/AE

DO30I=1,3

DO30J=1,3

M=2*(I-1)+1

N=2*(J-1)+1

EK(M,N)=D*(B(I)*B(J)+C(I)*C(J)*(1-UM)/2)

EK(M,N+1)=D*(UM*B(I)*C(J)+C(I)*B(J)*(1-UM)/2)

EK(M+1,N)=D*(UM*C(I)*B(J)+B(I)*C(J)*(1-UM)/2)

30EK(M+1,N+1)=D*(C(I)*C(J)+B(I)*B(J)*(1-UM)/2)

RETURN

END

SUBROUTINESTE(XYE,QE,NE,LS,ME,E,UM,T)

DIMENSIONXYE(LS,NE),QE(ME),SG(3),B(3),C(3),S(3,6)

B

(1)=XYE(2,2)-XYE(2,3)

B

(2)=XYE(2,3)-XYE(2,1)

B(3)=XYE(2,1)-XYE(2,2)

C

(1)=XYE(1,3)-XYE(1,2)

C

(2)=XYE(1,1)-XYE(1,3)

C(3)=XYE(1,2)-XYE(1,1)

AE=(B

(2)*C(3)-B(3)*C

(2))/2

D=E*T/2/(1-UM**2)/AE

DO220I=1,3

S(1,2*I-1)=D*B(I)

S(2,2*I-1)=D*UM*B(I)

S(3,2*I-1)=D*(1-UM)*C(I)/2

S(1,2*I)=D*UM*C(I)

S(2,2*I)=D*C(I)

220S(3,2*I)=D*(1-UM)*B(I)/2

DO250I=1,3

SG(I)=0

DO250K=1,ME

250SG(I)=SG(I)+S(I,K)*QE(K)

WRITE(*,300)SG

300FORMAT(5X,'SEGMA',3E20.4)

RETURN

END

 

悬臂梁计算的输入数据文件:

2,3,55,14,10,80,2,

2.1e5,0.3,10,

400,80,400,60,400,40,400,20,400,0,

360,80,360,60,360,40,360,20,360,0,

320,80,320,60,320,40,320,20,320,0,

280,80,280,60,280,40,280,20,280,0,

240,80,240,60,240,40,240,20,240,0,

200,80,200,60,200,40,200,20,200,0,

160,80,160,60,160,40,160,20,160,0,

120,80,120,60,120,40,120,20,120,0,

80,80,80,60,80,40,80,20,80,0,

40,80,40,60,40,40,40,20,40,0,

0,80,0,60,0,40,0,20,0,0,

0,-200,0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-400,

0,0,0,0,0,0,0,0,0,-200,0,0,0,0,0,0,0,0,

1,7,2,2,8,3,3,9,4,4,10,5,1,6,7,2,7,8,3,8,9,4,9,10,

6,12,7,7,13,8,8,14,9,9,15,10,6,11,12,7,12,13,8,13,14,

9,14,15,11,17,12,12,18,13,13,19,14,14,20,15,11,16,17,

12,17,18,13,18,19,14,19,20,16,22,17,17,23,18,18,24,19,

19,25,20,16,21,22,17,22,23,18,23,24,19,24,25,21,27,22,

22,28,23,23,29,24,24,30,25,21,26,27,22,27,28,23,28,29,

24,29,30,26,32,27,27,33,28,28,34,29,29,35,30,26,31,32,

27,32,33,28,33,34,29,34,35,31,37,32,32,38,33,33,39,34,

34,40,35,31,36,37,32,37,38,33,38,39,34,39,40,36,42,37,

37,43,38,38,44,39,39,45,40,36,41,42,37,42,43,38,43,44,

39,44,45,41,47,42,42,48,43,43,49,44,44,50,45,41,46,47,

42,47,48,43,48,49,44,49,50,46,52,47,47,53,48,48,54,49,

49,55,50,46,51,52,47,52,53,48,53,54,49,54,55,

101,102,103,104,105,106,107,108,109,110,

 

程序输出结果文件:

2.58E+02

-1.37E+03

1.30E+02

-5.13E+02

1.05E+02

-2.42E+02

6.41E+01

-1.20E+02

4.37E+01

-7.32E+01

-4.13E+01

-1.35E+03

6.76E+01

-5.32E+02

6.46E+01

-2.54E+02

4.65E+01

-1.28E+02

4.21E+01

-8.12E+01

-6.18E+00

-1.36E+03

8.22E+01

-5.27E+02

6.54E+01

-2.53E+02

4.48E+01

-1.29E+02

4.06E+01

-8.21E+01

2.48E+00

-1.36E+03

8.64E+01

-5.26E+02

6.74E+01

-2.52E+02

4.51E+01

-1.28E+02

4.04E+01

-8.17E+01

4.53E+00

-1.36E+03

8.75E+01

-5.26E+02

6.81E+01

-2.51E+02

4.55E+01

-1.28E+02

4.06E+01

-8.14E+01

4.73E+00

-1.36E+03

8.76E+01

-5.25E+02

6.82E+01

-2.51E+02

4.56E+01

-1.28E+02

4.07E+01

-8.13E+01

3.65E+00

-1.36E+03

8.70E+01

-5.25E+02

6.78E+01

-2.51E+02

4.53E+01

-1.28E+02

4.06E+01

-8.12E+01

-6.27E-01

-1.35E+03

8.39E+01

-5.24E+02

6.61E+01

-2.51E+02

4.43E+01

-1.27E+02

3.98E+01

-8.10E+01

-1.53E+01

-1.35E+03

7.21E+01

-5.20E+02

5.94E+01

-2.48E+02

4.01E+01

-1.26E+02

3.65E+01

-7.98E+01

-4.41E+01

-1.27E+03

2.95E+01

-4.92E+02

3.53E+01

-2.34E+02

2.63E+01

-1.18E+02

2.21E+01

-7.52E+01

3.01E-06

-8.84E-06

-6.76E-07

-2.63E-07

-2.43E-07

-7.39E-08

-8.58E-08

-1.60E-08

-7.74E-08

-4.72E-09

 

程序二:

四节点矩形薄板单元程序

如图2为两对边简支、另两对边固支的矩形薄板。

其上受有均布压力q的作用,根据结构与荷载的对称性,可取其1/4为计算对象。

已知E=2.1×105N/mm2,

,厚度h=20mm。

将它划分为4×5的矩形网格,其节点及单元编号如图2。

建立如图2所示的离散化计算模型。

图2

计算源程序如下:

PROGRAMMAIN

DIMENSIONSK(90,21),EK(12,12),Q(90),MC(35),XY(2,100),XYE(2,4),QE(12),NX(4,30)

OPEN(7,FILE='INP.DAT')

REWIND7

READ(7,*)NF,NE,NN,MB,ND,LE,LS

READ(7,*)E,UM,T

10FORMAT(7I5)

12FORMAT(6F15.2)

WRITE(*,600)NF,NE,NN,MB,ND,LE,LS,E,UM,T

ME=NE*NF

MS=NN*NF

CALLINPUT(XY,Q,NX,MC,LS,NN,MS,NE,LE,ND)

WRITE(*,102)((XY(I,J),I=1,LS),J=1,NN)

102FORMAT(10X,'XY'/,(2X,6F12.1))

WRITE(*,101)(Q(I),I=1,MS)

101FORMAT(10X,'Q'/,(2X,3F20.3))

WRITE(*,500)((NX(I,J),I=1,NE),J=1,LE)

WRITE(*,400)(MC(I),I=1,ND)

500FORMAT(10X,'NX'/,(2X,12I6))

600FORMAT(10X,'NFNENNMBNDLELSEUMT'/7(2X,I4),3(2X,F8.4))

400FORMAT(10X,'MC'/,(2X,10I6))

!

CALLQS(Q,TL,TH,P,LE,NE,MS,NX)

!

WRITE(*,120)(Q(I),I=1,MS)

!

120FORMAT(10X,'Q'/(10X,3F20.3))

CALLSTIFS(SK,EK,Q,NX,XY,XYE,MC,MS,MB,ME,ND,LE,NE,NF,NN,LS,E,&

UM,T)

CALLSOLVE(SK,Q,MS,MB)

OPEN(9,FILE='OUT.DAT')

REWIND9

WRITE(9,200)

WRITE(9,250)(Q(I),I=1,MS)

200FORMAT(5X,'DISPLACEMENT')

250FORMAT(2X,6E14.5)

CALLSTRES(Q,QE,NX,XY,XYE,MS,ME,NE,LE,NF,NN,LS,E,UM,T)

STOP1000

END

SUBROUTINEINPUT(XY,Q,NX,MC,LS,NN,MS,NE,LE,ND)

DIMENSIONXY(LS,NN),Q(MS),NX(NE,LE),MC(ND)

READ(7,*)XY

READ(7,*)Q

READ(7,*)NX

READ(7,*)MC

CLOSE(7)

10FORMAT(6F11.2)

20FORMAT(12I5)

RETURN

END

!

SUBROUTINEQS(Q,TL,TH,P,LE,NE,MS,NX)

!

DIMENSIONNX(NE,LE),Q(MS)

!

DOI=1,MS

!

Q(I)=0.0

!

ENDDO

!

DOJ=1,LE

!

I1=3*NX(1,J)-2

!

I2=3*NX(2,J)-2

!

I3=3*NX(3,J)-2

!

I4=3*NX(4,J)-2

!

Q(I1)=Q(I1)+P*TL*TH

!

Q(I1+1)=Q(I1+1)+P*TL*TH*TH/3

!

Q(I1+2)=Q(I1+2)-P*TL*TL*TH/3

!

Q(I2)=Q(I2)+P*TL*TH

!

Q(I2+1)=Q(I2+1)+P*TL*TH*TH/3

!

Q(I2+2)=Q(I2+2)+P*TL*TL*TH/3

!

Q(I3)=Q(I3)+P*TL*TH

!

Q(I3+1)=Q(I3+1)-P*TL*TH*TH/3

!

Q(I3+2)=Q(I3+2)+P*TL*TL*TH/3

!

Q(I4)=Q(I4)+P*TL*TH

!

Q(I4+1)=Q(I4+1)-P*TL*TH*TH/3

!

Q(I4+2)=Q(I4+2)-P*TL*TL*TH/3

!

ENDDO

!

RETURN

!

END

SUBROUTINESTIFS(SK,EK,Q,NX,XY,XYE,MC,MS,MB,ME,ND,LE,NE,NF,NN,LS,E,&

UM,T)

DIMENSIONSK(MS,MB),EK(ME,ME),NX(NE,LE),MC(ND),XY(LS,NN),&

XYE(LS,NE)

DO35I=1,MS

DO35J=1,MB

35SK(I,J)=0

DO200L=1,LE

DO40J=1,NE

LJ=NX(J,L)

DO40I=1,LS

40XYE(I,J)=XY(I,LJ)

DO50I=1,ME

DO50J=1,ME

50EK(I,J)=0.0

CALLSTIFE(EK,XYE,ME,NE,LS,E,UM,T)

IF(L.EQ.1)WRITE(*,70)EK

70FORMAT(10X,'EK'/,(6E14.5))

DO200I=1,NE

DO200II=1,NF

M=NF*(I-1)+II

M1=NF*(NX(I,L)-1)+II

DO200J=1,NE

DO200JJ=1,NF

N=NF*(J-1)+JJ

N1=NF*(NX(J,L)-1)+JJ

MN=N1-M1+1

IF(MN)200,200,150

150SK(M1,MN)=SK(M1,MN)+EK(M,N)

200CONTINUE

DO220I=1,ND

M=MC(I)

220SK(M,1)=SK(M,1)*1E8

RETURN

END

SUBROUTINESOLVE(SK,Q,MS,MB)

DIMENSIONSK(MS,MB),Q(MS)

K1=MS-1

DO125K=1,K1

IF(K+MB-1-MS)105,106,106

105N=K+MB-1

GOTO110

106N=MS

110I1=K+1

DO125I=I1,N

L=I-K+1

C=SK(K,L)/SK

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1