平面四边形4结点等参有限单元法
更新时间:2023-09-13 04:28:01 阅读量: 综合文库 文档下载
- 节点电压法只适用于推荐度:
- 相关推荐
有限元程序设计
-1-
平面四边形4结点等参有限单元法
程序设计
1、程序功能及特点
a.该程序采用四边形4节点等参单元,能解决弹性力学的平面应力应变问题。 b.前处理采用网格自动划分技术,自动生成单元及结点信息。 b.能计算受集中力、自重体力、分布面力和静水压力的作用。 c.计算结点的位移和单元中心点的应力分量及其主应力。 d.后处理采取整体应力磨平求得各个结点的应力分量。 e.算例计算结果与ANSYS计算结果比较,并给出误差分析。 f.程序采用Visual Fortran 5.0编制而成。
2、程序流程及图框
启动输入原始数据自动划分网格形成MA,计算N,NH,MX形成整体刚度矩阵K形成荷载列向量RLU分解K=LU回代并求得结点位移输入结点位移计算单元应力及主应力等整体应力磨平结点应力停机
图2-1 程序流程图
-2-
MAINPROGRAMINPUTHUAFENCBANDSKOSTIFCONCRDECOPFOBASTRESSOUTDISTREBODYRSUMSTRSSUMSFACERFDNXFUN8GAUSSSTRESS
图2-2子程序框图
其中,各子程序的主要功能为: INPUT――输入原始数据
HUAFEN――自动网格划分,形成COOR(2,NP),X,Y的坐标值与单元信息 CBAND――形成主元素序号指示矩阵MA(*) SKO――形成整体刚度矩阵[K]
CONCR――计算集中力引起的等效结点荷载{R}e BODYR――计算自重体力引起的等效结点荷载{R} FACER――计算分布面力引起的等效结点荷载{R} DECOP――支配方程LU三角分解 FOBA――LU分解直接解法中的回代过程 OUTDISP――输出结点位移分量 STRESS――计算单元应力分量 OUTSTRE――输出单元应力分量 STIF――计算单元刚度矩阵
ee??NiFDNX――计算形函数对整体坐标的导数???xFUN8――计算形函数及雅可比矩阵[J] SFUN ――应力磨平-单元下的‘K’=NCN‘ SCN――应力磨平-单元下的右端项系数‘CN‘
?Ni?,i?1,2,3,4。 ?y??TSUMSKN――应力磨平-单元下的右端项集成到总体的‘P‘
-3-
SUMSTRS――应力磨平-单元下的集成到总体的‘K‘ GAUSTRSS――高斯消元求磨平后的应力
3、输入数据及变量说明
当程序开始运行时,按屏幕提示,键入数据文件的名字。
在运行程序之前,根据程序中INPUT需要的数据输入建立一个存放原始数据的文件,这个文件的名字为INDAT.DAT。数据文件包括如下内容: (1)总控信息。共一条,4个数据。
L,B,NNL,NNB,NM,NR L——矩形体长度 B--矩形体宽度
NNL--L方向上划分的结点数 NNB--B方向上划分的结点数 NM—单元材料类型数 NR——约束结点总数
(2) 结点约束信息。共NR条,每条依次输入:
IP,IX,IY IP——结点号
IX、IY——分别为IP结点在x,y方向的约束情况,如果约束填0,如果自由填1。 (3)材料信息。共NM条,每条依次输入:
JJ,(AE(I,JJ),I=1,4)
JJ――材料类型号,(AE(I,JJ),I=1,4)――该材料的材料参数,共4个参数,
排列顺序为:弹性模量、泊松比、容重、单元厚度。 (4) 荷载信息
a. 荷载控制信息。共一条,3个数据 NCP,IZ
NCP——受集中力作用的结点数 IZ——面力批数 b. 若NCP>0,输入
IP,PX,PY IP——结点号
PX、PY——分别为IP结点x,y方向的集中力分量。
c. 若IZ>0,输入面力荷载信息,共IZ批,按批输入:
JS,NSE,(WG(I)I=1,4) JS——面力批号
-4-
NSE——第JS批面力受到面力作用的单元个数,
(WG(I),I=1,4)——该面力的特征参数共4个数据,第1个数为面力类型,填1表示受静水压力作用,填2表示受均布法向压力作用;第2个数为水压密度,如果是均布压力情况,就填均布压力的集度;第3个数为最高水位的y坐标,如果是均布压力情况,可以填任意数;第4个数为面力作用的单元面的面号,单元面号的规定见图2-3。
(IEW(M),M=1,NSE),IEW(*)为受面力作用的单元的单元号,共NSE个。
图3-1 单元结点编码与面号
4、理论基础和求解过程 4.1、构造插值函数:
本有限元计算采取的是四边形八结点等参元进行插值计算的。 直接调用教材115页3..3.21的结果,写出所有插值函数:
111111N1?(1??)(1??)?N5?N8N2?(??1)(1??)?N5?N6422; 422 111111N3?(??1)(1??)?N6?N7N4?(1??)(??1)?N7?N8422 422 11N5?(1??2)(1??)N6?(1??2)(??1)22 11N7?(1??2)(??1)N8?(1??2)(1??)22
4.2位移插值函数及应变应力求解:
在有限元方法中单元的位移模式一般采用多项式作为近似函数,多项式的选取应由低次到高次的完备多项式。位移模式的选取一般为:u=φβ。
-5-
?u?u???,φ为位移模式,β为广义坐标向量。根据方程求解得出广义坐标,可将位
?v?移函数表示成结点位移的函数,即u??Nu ,v??Nviii?1i?188ii,写成矩阵的形式为:
?u??Nu?????1?v??00N1N200...N80N2...?u1??v??1??u2?0????v2???IN1N8???...????u8??v??8?IN2?a1??a?...IN8??2?
?...????a8?u??N1N2...N8?ae?Nae
eN称为插值函数矩阵或形函数矩阵,a为单元结点位移列阵。
确定了单元位移后,可以很方便地利用几何方程和物理方程求得单元的应变和应力。单元应变为:
??x???????y??Lu?LNae?L?N1??xy????????x?Bi?LNi??0??????y?0?????Ni?0?y???????x?N2...N8?ae??B1B2...B8?ae?Bae
B称为应变矩阵,L是平面问题的微分算子,其中:
??Ni???x0????0?Ni????Ni???y?0?????N1?0?y???????x??0???Ni???y??Ni???x?,
B??B1B2?????x?...B8???0??????y0N1N200...N80N2...0?N8??
-6-
??u???????x???x??x??????v??????y??????0?y????xy??????u?v?????????y?x???y
根据物理方程可以求得单元应力,
?0?????u???v? ?y???????x???x???????y??D??DBae?Sae??xy???
其中
S?DB?D?B1B...2B8???S1S...2S?8,S称为应力矩阵,B是应变矩
阵。由于是平面应力问题,E0和v0取为E和v,所以弹性矩阵
???1?0??E?D??10??1??2?1????00??2?。
这部分内容参考了教材第2.2节。
4.3、等参元变换:
为了将局部(自然)坐标中几何形状规则的单元转换成总体坐标中几何形状扭曲的单元,以满足对一般形状求解域进行离散化的需要,必须建立坐标转换:
x?f????y?g????,
最方便的方法是将上式中表示成插值函数的形式,
x??Ni'xii?0m,
y??Ni'yii?0m
在有限元分析中,为建立求解方程,需要进行各个单元面积内的积分,其一般形式为:
?segdS???seg(x,y)dS
而g中包含场函数对于总体坐标x,y的导数。
由于场函数是用自然坐标表述的,又因为在自然坐标内的积分限是规格化的,因此希望能在自然坐标内按规格化的数值积分方法进行上述积分。为此需要建立两个坐标系内导数之间的变换关系。
-7-
设x??N'x, y??N'yii88ii,xi,yi,zi是结点在总体坐标内的坐标值,N’i为
i?1i?1形状函数,实际上它也是用局部(自然)坐标表示的插值函数。对于等参变换,结点数、结点号和插值函数都不变。
??Ni?Ni?x?Ni?y?????x.????y.???函数Ni对ξ的偏导数可以表示成: ?
??Ni??Ni.?x??Ni.?y??x???y???????Ni???x??????????集合成矩阵形式就是: ???Ni???x??????????8?y???Ni???Ni???x??????x??.???J?? ?y???Ni???Ni?????????y?????y?8iiii式中的J称为雅克比矩阵,利用x?函数,即:
?Nx, y??Nyi?1i?1,J可以表示为自然坐标的
?8???Nixi?i?1??x,y????J???8???,?????Nixi?i?1??????Ny?ii???Ni?1??1??????????N8?Niyi??1?????i?1????8?N2???N2???N8??x1...?????x2??N8??......??????x8y1?y2??...??y8?,
Ni对于x,y的偏导数可以用自然坐标显示地表示为:
??Ni???Ni???????x??1????J.???Ni???Ni????????y????
其中J是J的逆矩阵,它可以按照下式计算得到:J?1?*Jij?11*J,J是J的伴随矩阵,J它的元素是J的元素
Jij的代数余子式。
4.4、总体应力磨平
根据《有限单元法》第5章中的(5.3.15),即
M??e?1Ve?)TCN*dV?0,(i?1,2,...,N)(?*??i
其另一种矩阵形式为:
-8-
?)TCN(?*)TNTCN?(?
令
Ke??Ni*?CNi*T
?Pe??a??i*??
TCNi*
并利用以下表达式,
?x*?(N1N2N3N4)(?*1x?*2x?*3x?*4x)T
?y*?(N1?xy*?(N1和
N2N2N3N3N4)(?*1yN4)(?*1xy?*2y?*3y?*4y)T?*2xy?*3xy?*4xy)T1?v/(1?v)0????C??1?v2?/E??v/(1?v)10??002/(1?v)???
以及
?N1?Ni*????N2N1N1N2N2N3N3N3N4N4???N4??
,只不过,这里有Ke为
就可以像单元元刚度矩阵到总体刚度矩阵一样,求出
a??i*12*12的矩阵,而“总刚”K为3*NP阶的矩阵,NP为结点数。
5、算例
应用本程序计算一个矩形土体受到均布荷载时的位移和应力,如下图所示,三面约束的土体尺寸为40m*10m,取一半为20m*10m,E=1.0×104 kN/m,??0.3,在右端受均布荷载q?10.0
2
kN/m,不考虑自重体力。
给定网格大小为0.2m?0.5m,有限元网格自动划分如图3-2所示,单元总数2000,节点总数2121。由于对称性,右端约束为滑移支座,只限制x方向位移。
虽然土体一般不为弹性,但是方法是一样的,只是刚度矩阵改动即可使用弹塑性模型。
2
-9-
长度单位:
图5-1 算例模型
图5-2 ANSYS计算模型图
实际计算结果与ANSYS分析结果的比较(详细计算结果见后面): (1) 位移比较 比较项目 本程序计算结果 ANSYS分析结果 误差 X方向最大位移 0.0863mm 0.1200mm 28.0% Y方向最大位移 5.890mm 6.000mm 1.83%
-10-
&TOALFUN(10000,10000),SUMS(10000),GOODSTR(10000)
COMMON /CMN1/ NP,NE,NM,NR COMMON /CMN2/ N,MX,NH
COMMON /CMN3/ RF(8),SKE(8,8),NN(8) OPEN(1,FILE='INDAT.DAT',STATUS='OLD') OPEN(2,FILE='OUT.DAT',STATUS='NEW')
CALL INPUT(XL,B,IX,IY,AE,NCP,IZ,NNL,NNB,JR) !输入数据 CALL HUAFEN(XL,B,NNL,NNB,COOR,MEL)
CALL CBAND (MA,JR,MEL) !形成主元素序号指示矩阵MA DO I=1,NH SK(I)=0.0 ENDDO
CALL SK0(SK,MEL,COOR,JR,MA,AE) !形成整体刚度矩阵[K] DO I=1,N R(I)=0.0 ENDDO
IF(NCP.GT.0) CALL CONCR(NCP,R,JR) CALL BODYR(R,MEL,COOR,JR,AE) READ(1,70) TL READ(1,70) TL READ(1,70) TL 70 FORMAT(A)
IF(iz.GT.0)then DO jj=1,iz
READ (1,*)JS,NSE,(WG(I),I=1,4) READ(1,70) TL READ(1,70) TL
READ(1,*)(IEW(M),M=1,NSE)
CALL FACER(IEW,NSE,R,MEL,COOR,JR,WG) ENDDO ENDIF
CALL DECOP (SK,MA) CALL FOBA (SK,MA,R) CALL OUTDISP(NP,R,JR)
CALL STRESS (COOR,MEL,JR,AE,R,STRE)
CALL GAUSTRSS(MEL,COOR,AE,TOALFUN,SUMS,GOODSTR,STRE,JR,R)
!应力磨平并输出磨平后的应力值
WRITE(2,'(A)')' PROGRAM SAFF HAS BEEN ENDED' WRITE(*,'(A)')' PROGRAM SAFF HAS BEEN ENDED' CLOSE(1) CLOSE(2) END
!INPUT为原始数据输入子程序
-16-
SUBROUTINE INPUT(XL,B,IX,IY,AE,NCP,IZ,NNL,NNB,JR) DIMENSION AE(4,*),JR(2,*) CHARACTER*400 TL
COMMON /CMN1/ NP,NE,NM,NR COMMON /CMN2/ N,MX,NH READ(1,70)TL READ(1,70)TL
READ(1,*)XL,B,NNL,NNB,NM,NR WRITE(2,10)XL,B,NNL,NNB,NM,NR
10 FORMAT(5X,'平面四边形四结点单元有限元程序'//5X,'L=',F5.2,4X,'
&B=',F5.2,4X,'NNL=',I3,4X,'NNB=',I3,4X,'NM=',I2,4X,'NR=',I3) NP=NNL*NNB DO 15 I=1,NP DO 15 J=1,2 15 JR(J,I)=1 READ(1,70)TL READ(1,70)TL READ(1,70)TL WRITE(2,110)
110 FORMAT(/5X,'约束信息'/5X,'结点号',5X,'X向约束',5X,'Y向约束') DO 20 I=1,NR
READ(1,*)IP,IX,IY WRITE(2,100)IP,IX,IY
100 FORMAT(8X,I5,5X,I2,9X,I2) JR(1,IP)=IX JR(2,IP)=IY 20 CONTINUE N=0
DO 30 I=1,NP DO 30 J=1,2
IF (JR(J,I)) 30,30,25 25 N=N+1
JR(J,I)=N 30 CONTINUE
READ(1,70) TL READ(1,70) TL READ(1,70) TL DO 55 J=1,NM
READ (1,*) JJ,(AE(I,JJ),I=1,4) WRITE(2,910) JJ,(AE(I,JJ),I=1,4) 55 CONTINUE
910 FORMAT (/5X,'材料信息'/5X,'类型号',5X,'弹性模量',5X,'泊松比',5X,'容重
& ',8X,'单元厚度'/5X,I5,4(5x,E8.3))
READ(1,70) TL
-17-
READ(1,70) TL READ(1,70) TL READ(1,*)NCP,IZ WRITE(2,920)NCP,IZ
920 FORMAT (/5X,'荷载信息'/5X,'受集中力作用的结点数',8X,'面力批数
&'/(2(12X,I5)))
READ(1,70) TL READ(1,70) TL 70 FORMAT(A) RETURN END
!自动划分网格子程序,计算单元数,结点数,结点坐标,每个单元包含的结点 !单元的4个结点号与材料类型号,从左下角逆时针编号顺序; SUBROUTINE HUAFEN(XL,B,NNL,NNB,COOR,MEL) DIMENSION COOR(2,*),MEL(5,*) COMMON /CMN1/ NP,NE,NM,NR NP=NNL*NNB
NE=(NNL-1)*(NNB-1)
WRITE(2,*)'总结点数 NP=',NP WRITE(2,*)'总单元数 NE=',NE DL=XL/(NNL-1) DB=B/(NNB-1) N=1 M=1
T=NNL*NNB
DO 10 K=NNB,T,NNB DO 20 I=N,K IP=I
COOR(1,I)=DL*(K-NNB)/NNB 20 CONTINUE N=K+1 10 CONTINUE
DO 30 J=NNB,T,NNB DO 40 I=M,J
COOR(2,I)=DB*(I-M) 40 CONTINUE M=J+1 30 CONTINUE
WRITE(2,100) (J,(COOR(I,J),I=1,2),J=1,NP)
100 FORMAT(/7X,'结点号',10X,'X坐标',8X,'Y坐标'/(8X,I5,5X,2F12.6)) N=1
DO 50 K=1,(NNL-1) DO 60 I=N,(NNB-1)*K NNE=I
-18-
MEL(1,I)=I+K-1
MEL(2,I)=MEL(1,I)+NNB MEL(3,I)=MEL(1,I)+NNB+1 MEL(4,I)=MEL(1,I)+1 60 CONTINUE N=N+(NNB-1) 50 CONTINUE
WRITE(2,111)(J,(MEL(I,J),I=1,4),J=1,NE)
111 FORMAT(/7X,'单元号',5X,'结点1',5X,'结点2',5X,'结点3',5X,'结点
&4'/(7X,I5,5X,I5,5X,I5,5X,I5,5X,I5)) DO 70 IE=1,NE MEL(5,IE)=1 70 CONTINUE END
!************************************************************** ! LU三角分解子程序
! ************************************************************* SUBROUTINE DECOP (SK,MA) !方程LU分解 DIMENSION SK(*),MA(*) COMMON /CMN2/ N,MX,NH DO 50 I=2,N
L=I-MA(I)+MA(I-1)+1 K=I-1 L1=L+1
IF (L1.GT.K) GOTO 30 DO 20 J=L1,K IJ=MA(I)-I+J
M=J-MA(J)+MA(J-1)+1 IF (L.GT.M) M=L MP=J-1
IF (M.GT.MP) GO TO 20 DO 10 LP=M,MP IP=MA(I)-I+LP JP=MA(J)-J+LP
SK(IJ)=SK(IJ)-SK(IP)*SK(JP) 10 CONTINUE 20 CONTINUE
30 IF (L.GT.K) GOTO 50 DO 40 LP=L,K IP=MA(I)-I+LP LPP=MA(LP)
SK(IP)=SK(IP)/SK(LPP) II=MA(I)
SK(II)=SK(II)-SK(IP)*SK(IP)*SK(LPP)
-19-
40 CONTINUE 50 CONTINUE RETURN END
!************************************************************** ! LU三角分解后的回代求解
! ************************************************************* SUBROUTINE FOBA (SK,MA,R) !回代求解 DIMENSION SK(*),MA(*),R(*) COMMON /CMN2/ N,MX,NH DO 10 I=2,N
L=I-MA(I)+MA(I-1)+1 K=I-1
IF (L.GT.K) GOTO 10 DO 5 LP=L,K IP=MA(I)-I+LP
R(I)=R(I)-SK(IP)*R(LP) 5 CONTINUE 10 CONTINUE DO 20 I=1,N II=MA(I)
45 R(I)=R(I)/SK(II) 20 CONTINUE
DO 30 J1=2,N I=2+N-J1
L=I-MA(I)+MA(I-1)+1 K=I-1
IF (L.GT.K) GO TO 30 DO 25 J=L,K IJ=MA(I)-I+J
55 R(J)=R(J)-SK(IJ)*R(I) 25 CONTINUE 30 CONTINUE RETURN END
!************************************************************** ! 计算形函数对整体坐标的导数
! ************************************************************* SUBROUTINE FDNX (XYZ,DNX,DET,R,S,RJAC,IVEN,NEE) DIMENSION XYZ(2,*),DNX(2,4),RJAC(2,2),IVEN(*)
COMMON /CMN5/ FUN(4),PN(2,4),XJAC(2,2) CALL FUN8 (XYZ,R,S,DET) !求形函数 IF (DET.LT.1.0E-5)THEN !判断J的大小 WRITE(2,600) NEE,R,S,det
-20-
YMAX=U(2) JNYMAX=I ENDIF
WRITE(*,'(5X,I5,10X,2E14.3)') I,U WRITE(2,'(5X,I5,10X,2E14.3)') I,U ENDDO
650 FORMAT(/25X,'结点位移计算结果'/8X,'结点',13X,'X向位移',8X,'Y向位移') WRITE(2,651)XMAX,JNXMAX,YMAX,JNYMAX
651 FORMAT('X向最大位移=',E14.3,5X,'所在结点号=',I4/'Y向最大位移=
&',E14.3,5X,'所在结点号=',I4)
RETURN END
!************************************************************** ! !输出单元应力分量子程序
! ************************************************************* SUBROUTINE OUTSTRE(NE,STRE) DIMENSION STRE(3,*),ST(6) REAL STREMAX STREMAX=0.0 NESTREMAX=0 WRITE(*,700) WRITE(2,700)
DO IE=1,NE !对单元循环 SX=STRE(1,IE) SY=STRE(2,IE) SXY=STRE(3,IE) ST(1)=SX ST(2)=SY ST(3)=SXY H1=SX+SY
H2=SQRT((SX-SY)*(SX-SY)+4.0*SXY*SXY) ST(4)=(H1+H2)/2.0 !计算最大应力 ST(5)=(H1-H2)/2.0 !计算最小应力 IF(ABS(SXY).LT.1.0E-4)THEN
IF (SX.GT.SY) ST(6)=0.0 !计算最大最小应力夹角 IF (SX.LE.SY) ST(6)=90.0 ELSE
ST(6)=ATAN((ST(4)-SX)/SXY)*57.29578 ENDIF
WRITE(*,'(6X,I4,3X,6F11.3)') IE,ST WRITE(2,'(4X,I4,5X,6F11.3)') IE,ST IF(ABS(STREMAX).LT.ABS(ST(4)))THEN STREMAX=ST(4) NESTREMAX=IE
-26-
ENDIF ENDDO 700 FORMAT(/30X,'单元应力'/5X,'单元号',8X,'X向应力',3X,'Y向应力',2X,'XY剪
&切应力',1X,'最大应力',1X,'最小应力',8X,'角度')
WRITE(2,701)STREMAX,NESTREMAX
701 FORMAT('最大单元应力值=',F11.3/'所在单元号=',I5) RETURN END
!************************************************************** ! 计算单元应力子程序
! ************************************************************* SUBROUTINE STRESS(COOR,MEL,JR,AE,R,STRE)
DIMENSION XYZ(2,4),DNX(2,4),AE(4,*),STRE(3,*),COOR(2,*),MEL(5,*),
&JR(2,*),RJAC(2,2),SIG(3),B(3,8),R(*),iven(4)
COMMON /CMN1/ NP,NE,NM,NR
COMMON /CMN3/ RF(8),SKE(8,8),NN(8)
COMMON /CMN5/ FUN(4),PN(2,4),XJAC(2,2) DO 106 IE=1,NE !对每个单元循环
NME=MEL(5,IE) !取IE号单元的材料类型号 DO 300 K=1,4 !对单元四个结点循环 IEK=MEL(K,IE) !取单元的结点号
DO 310 M=1,2 !对结点的两个自由度循环 310 XYZ(M,K)=COOR(M,IEK) !取结点的坐标
DO 320 M=1,2 !对结点的两个自由度循环 JRR=2*(K-1)+M !取单元的自由度号
320 NN(JRR)=JR(M,IEK) !取该自由度的总体自由度号 300 CONTINUE
E=AE(1,NME) !取材料的弹性模量 U=AE(2,NME) !取材料的泊松比
D1=E*(1.00-U)/((1.00+U)*(1.00-2.00*U)) !求应力应变关系矩阵系数 D2=E*U/((1.00+U)*(1.00-2.00*U)) D3=0.50*E/(1.00+U) SS=0.0 RR=0.0
CALL FDNX (XYZ,DNX,DET,RR,SS,RJAC,IVEN,IE) !计算形函数对整体坐标的导
&数,存放在DNX数组中
DO 30 I=1,4 !对单元四个结点循环 II=2*(I-1) J1=II+1 J2=II+2
BI=DNX(1,I) CI=DNX(2,I)
B(1,J1)=BI !计算应变位移关系矩阵系数 B(2,J1)=0.
-27-
B(3,J1)=CI B(1,J2)=0. B(2,J2)=CI B(3,J2)=BI 30 CONTINUE
DO 55 II=1,3 SIG(II)=0.00 55 CONTINUE DO 70 K=1,8 NA=NN(K) !取总体自由度号
IF (NA.EQ.0) GOTO 70 !如果NA=0,该结点自由度有约束,位移为0,跳过 DO 60 L=1,3
SIG(L)=SIG(L)+B(L,K)*R(NA) !计算应变 60 CONTINUE 70 CONTINUE
SX=D1*SIG(1)+D2*SIG(2) !计算应力 SY=D2*SIG(1)+D1*SIG(2) SXY=D3*SIG(3)
STRE(1,IE)=SX !将应力值赋值给应力数组 STRE(2,IE)=SY STRE(3,IE)=SXY 106 CONTINUE
CALL OUTSTRE(NE,STRE) !输出应力结果 RETURN END
!************************************************************** ! 计算集中力引起的等效结点荷载子程序
! ************************************************************* SUBROUTINE CONCR(NCP,R,JR)
DIMENSION R(*),JR(2,*),XYZ(2)!定义荷载列阵,自由度集中力引起的荷载分量 DO 100 I=1,NCP
READ (1,*) IP,PX,PY !读入结点信息 XYZ(1)=PX XYZ(2)=PY DO 95 J=1,2
L=JR(J,IP) !判断结点自由度 IF(L.EQ.0) GO TO 95
R(L)=R(L)+XYZ(J) !自由度为1,将集中力分量叠加到荷载列阵 95 CONTINUE 100 CONTINUE
!WRITE(2,*)(R(I),I=1,NH) !90 FORMAT('JIEDIANLI',F10.2) RETURN END
-28-
!************************************************************** ! 计算自重体力引起的等效结点荷载子程序
! ************************************************************* SUBROUTINE BODYR(R,MEL,COOR,JR,AE)
DIMENSION R(*),MEL(5,*),COOR(2,*),JR(2,*),AE(4,*),XYZ(2,4),IVEN(4) COMMON /CMN1/ NP,NE,NM,NR COMMON /CMN2/ N,MX,NH
COMMON /CMN3/ RF(8),SKE(8,8),NN(8)
COMMON /CMN5/ FUN(4),PN(2,4),XJAC(2,2) COMMON /GAUSS/ RSTG(3),H(3) H(1)=1.0 !定义高斯积分权系数 H(2)=1.0
RSTG(1)=-0.5773502691896260 !定义高斯积分点坐标 RSTG(2)=-RSTG(1) DO 10 IE=1,NE
DO I=1,8 !定义单元结点体力分量 RF(I)=0.00 ENDDO NEE=IE
NME=MEL(5,NEE) !读入单元材料信息 GAMMA=AE(3,NME) !引入材料重度 DO 75 K=1,4
IEK=MEL(K,NEE) !引入单元结点号 IVEN(k)=IEK DO 95 M=1,2 JJ=2*(K-1)+M
NN(JJ)=JR(M,IEK) !将整体结点自由度值赋于单元局部结点自由度 95 XYZ(M,K)=COOR(M,IEK) !整体结点坐标赋于单元局部结点坐标 75 CONTINUE
DO 99 IS=1,2 !定义高斯积分点和权系数 S=RSTG(IS) SH=H(IS)
DO 98 IR=1,2 RR=RSTG(IR) RH=H(IR)
CALL FUN8 (XYZ,RR,S,DET) !调用函数FUN8计算形函数和雅各比行列式 DO 30 I=1,4 J=2*I
RF(J)=RF(J)-FUN(I)*RH*SH*DET*GAMMA !体积力计算公式计算单元结点y向分量 30 CONTINUE 98 CONTINUE 99 CONTINUE
CALL ASLOAD (R) !调用ASLOAD,将自重引起的荷载分量叠加到荷载列阵 10 CONTINUE
-29-
RETURN END
!************************************************************** ! 计算面力引起的等效结点荷载子程序
! ************************************************************* SUBROUTINE FACER(IEW,NSE,R,MEL,COOR,JR,WG)
DIMENSION R(*),MEL(5,*),COOR(2,*),JR(2,*),wg(*), &XYZ(2,4),IEW(*),PR(2)
COMMON /CMN1/ NP,NE,NM,NR COMMON /CMN2/ N,MX,NH
COMMON /CMN3/ RF(8),SKE(8,8),NN(8) COMMON /CMN4/ NEE,NME
COMMON /GAUSS/ RSTG(3),H(3) H(1)=1.0 !定义高斯积分权系数 H(2)=1.0
RSTG(1)=-0.5773502691896260 !定义高斯积分点坐标 RSTG(2)=-RSTG(1)
NWF=0 !引入参数判断面力类型 NNF=0
IR=WG(1)+0.1 !引入面力类型值
if(IR.EQ.1)NWF=1 !判断受静水压力的面力类型
if(IR.EQ.2)NNF=1 !判断受均布法向压力的面力类型 DO 510 IE=1,NSE DO I=1,8
RF(I)=0.00 !定义单元结点面力分量 ENDDO
NEE=IEW(IE) !受面力作用的单元的单元号 DO 575 K=1,4
IEK=MEL(K,NEE) !引入单元结点号 DO 595 M=1,2 JJ=2*(K-1)+M
NN(JJ)=JR(M,IEK) !将整体结点自由度值赋于单元局部结点自由度 595 XYZ(M,K)=COOR(M,IEK) !整体结点坐标赋于单元局部结点坐标 575 CONTINUE
IF(NWF.EQ.1) then !面力是静水压力类型 GAMA=WG(2) !水压密度 Z0=WG(3) !最高水位的y坐标 NSU=WG(4)+0.1 !
CALL SURLOD (NSU,XYZ,PR,Z0,GAMA,1) !调用SURLOD,计算结点面力分量 endif
IF(NNF.EQ.1) then !面力是均布法向压力类型 q=WG(2) !均布值 NSU=WG(4)+0.1 ! do j=1,2
-30-
正在阅读:
平面四边形4结点等参有限单元法09-13
常见有机化学反应及机理04-12
高二历史人民版选修3作业:专题三 第二课 课时跟踪训练01-03
培训学习家庭教育心得(601)109-04
2004年注册岩土工程师(专业案例)下午试卷真题试卷05-06
纺织材料学期末考试重点10-02
吉林大学珠海学院-C语言试卷 - A卷11-25
第12讲 移一移 变一变06-07
2012隧道冬期施工方案及技术措施06-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 四边形
- 结点
- 单元
- 平面
- 有限
- 大一c语言考试试题
- 风电功率预测方法的研究
- 可靠性测试的计算方法
- 第9期反洗钱简报
- 现代材料成形加工的技术与科学
- 利用绘本激发幼儿的阅读兴趣—袁小林
- 2016年新人教版八年级(下)期末物理经典试卷(6)
- 武汉协和医院 2014年 暑期优秀大学生学术夏令营 入营名单
- 计算机基础知识题
- 数控加工工艺及设备复习资料
- 《西方经济学》名校考研专业课常考知识点
- 辩论赛-愚公应该搬家
- 工商管理统计
- 锅炉、输煤专业安全检查资料
- 管理信息系统200问
- 素质拓展计划课外活动策划书
- 小学数学教学中估算意识的培养-开题报告Microsoft Word 文档(5)
- 2020高考生物一本培养优讲二轮限时规范训练:专题一第三讲 细胞的生命历程Word版含解析
- 天正与探索者合并方法(无论什么版本均可)
- 交通运输经济学2012期末试题A