[Fortran] 纯文本查看 复制代码 Subroutine SDB(NEL) !子程序SDB的功能是形成几何矩阵[B]和应力矩阵【S】 Real :: A,B,C,D,E,F,G,H Real::p,q,r,s,t,u,v,w,x,y,z Integer::I,J Dimension NODES(3) Common /BB/LNODS(350,3),MATNO(350),& COORDS(200,2),ID(400) Common /CC/NFIX(100,3),AFIX(100,2),SL(400),AMAT(5,4) Common /WORK/D(4,4),B(4,6),DB(4,6),ELSTIF(6,6),ICN(6) Common /WORK2/DISP(6),STRESS(6),NODE(80),NELNO(80) Common /COUNT1/MAXNEL,MAXNOD,MAXLOD,MAXFIX,NCNTRAL,& NLOAD,MATER,NN ! AMAT(i,1)——第i种材料的杨氏弹性模量; ! N 一维存放的总体刚度元素个数 ! NCNTRAL 求解问题的类别控制信息;NCNTRAL=1,2,3分别表示平面 ! 应力,平面应变,轴对称问题。 COMMON /COUNT2/GAMA,AREA,T DO I=1,NN DO J=1,6 B(I,J)=0.0 End Do End Do !295~305 取出单元的三个节点号,存放在工作数组NODES中,对轴对称 !!问题求出单元形心的R0和Z0 DO I=1,3 NODES(I)=LNODS(NEL,I) !! 取出单元的三个节点号,存放在工作数组NODES中,对轴对称问题求出 ! 单元形心的R0和Z0& End do IF(NN==4) THEN X0=0.0 Y0=0.0 DO I=1,3 J=NODES(I) X0=X0+COORDS(J,1)/3.0 Y0=Y0+COORDS(J,2)/3.0 End Do End if !306~319 求得坐标参数Ai,Bi,Ci(i=i,j,m),并形成集合矩阵【B】 !如为轴对称问题,形成【B】矩阵中第二行的非零元素 DO I=1,3 IA=I+1-I/3*3 IB=3-I/2*(4-I) IA=NODES(IA) IB=NODES(IB) J=2*I B(1,J-1)=COORDS(IA,2)-COORDS(IB,2) B(NN,J-1)=COORDS(IB,1)-COORDS(IA,1) B(NN,J)=B(1,J-1) B(NN-1,J)=B(NN,J-1) IF (NN==4) THEN AI=COORDS(IA,1)*COORDS(IB,2)-COORDS(IB,1)*COORDS(IA,2) B(2,J-1)=(AI+B(4,J-1)*Y0)/X0+B(1,J-1) END if End do !321求三角形单元的面积 AREA=(B(1,3)*B(NN,5)-B(1,5)*B(NN,3))/2.0 !322~324最终形成集合矩阵【B】 DO I=1,NN DO J=1,6 B(I,J)=B(I,J)/(2.0*AREA) End do End do !325~328 取出单元的材料号,并得到相应的E I=MATNO(NEL) YM=AMAT(I,1) PR=AMAT(I,2) T=AMAT(I,4) !329~333 对于平面应变问题,对材料常数做相应的处理 IF(NCNTRAL==2)THEN YM=YM/(1.0-PR*PR) PR=PR/(1.0-PR) T=1.0 END if DO I=1,NN DO J=1,NN D(I,J)=0.0 End do End do !337~357 形成弹性矩阵【D】,对平面问题是3*3阶,对轴对称问题是4*4阶 If(NCNTRAL==3)THEN T=6.283185*X0 EC2=YM/(1.0+PR)/(1.0-2.0*PR) EC=EC2*(1.0-PR)/PR D(1,3)=EC2 D(2,3)=EC2 D(3,1)=EC2 D(3,2)=EC2 D(1,2)=EC2 D(2,1)=EC2 D(1,1)=EC D(2,2)=EC D(3,3)=EC D(4,4)=0.5*EC*(2.*PR)/(1-PR) ELSE EC=YM/(1.0-PR*PR) D(1,1)=EC D(2,1)=PR*EC D(2,2)=EC D(1,2)=PR*EC D(3,3)=0.5*EC*(1.0-PR) END If !359~364 应用公式[S]=[D][B]形成应力矩阵存放于数组DB DO I=1,NN DO J=1,6 DB(I,J)=0.0 DO K=1,NN DB(I,J)=DB(I,J)+D(I,K)*B(K,J) End do End do End do Return END Subroutine |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2024-11-23 10:02