Fortran语言有限元程序分析报告平面钢架

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

标准文案大全程序框图:程序特点:问题类型:可用于计算结构力学的平面刚架问题单元类型:直接利用杆单元载荷类型:节点载荷及非节点载荷,其中非节点载荷包括均布荷载和垂直于杆件的集中荷载材料性质:所有杆单元几何性质相同,且由相同的均匀材料组成方程求解:结构刚度矩阵采用满阵存放,Gauss消元过程采用《数值分析》中的列主元素消去法输入文件:按先处理法的要求,由手工生成输入数据文件Sub--lsc单元长及角度Sub--elv单元定位向量Sub--esm单刚矩阵Sub--lsc单元长及角度Sub--elv单元定位向量Sub--eff单元固端力Sub--lsc单元长及角度Sub--elv单元定位向量Sub--esm单刚矩阵Sub--eff单元固端力开始调用input输入数据tsm形成结构刚度矩阵jlp形成结点荷载列阵gauss解方程组mvn计算和输出杆端力结束输出output数据文件标准文案大全1.主要变量:ne:单元个数nj:结点个数n:自由度e:弹性模量(单位:KN/m2)a:杆截面积zi:惯性矩np:结点荷载个数nf:非结点荷载个数x(nj):存放结点的x轴坐标y(nj):存放结点的y轴坐标ij(ne,2):存放单元结点编号,其中ij(nj,1)存放起始结点编号,ij(nj,2)存放终止结点编号jn(nj,3):存放结点位移编号,以组成单元定位数组pj(np,3):存放结点荷载信息,其中pj(np,1)存放结点荷载作用结点号,pj(np,2)存放荷载方向代码(1—x方向;2—y方向;3—转角),pj(np,3)存放荷载大小pf(ne,4):存放非结点荷载信息,其中pf(ne,1)存放荷载作用单元号,pf(ne,2)存放荷载代码(1—均布荷载,2—垂直集中荷载),pf(ne,3)存放荷载大小,pf(ne,4)荷载作用距离(均布荷载,集中荷载均以单元起始结点为计算起始位置)。2.子例行子程序哑元信息:第一部分:基本部分I.subroutinelsc(Length&Sin&Cos):输入哑元:m(单元号),nj,ne,x,y,ij输出哑元:bl(杆件长度),si(正弦值),co(余弦值)II.subroutineelv(ElementLocationVector):输入哑元:m,ne,nj,ij,jn输出哑元:lv(单元定位数组)III.subroutineesm(ElementStiffnessMatrix):输入哑元:e,a,zi,bl,si,co输出哑元:ek(整体坐标系下的单刚矩阵)IV.subroutineeff(ElementFixed-endForces)输入哑元:i,pf,nf,bl输出哑元:fo(局部坐标系下单元固端力)第二部分:主程序直接调用部分I.subroutinetsm(TotalStiffnessMatrix计算总刚矩阵)输入哑元:ne,nj,n,e,x,y,ij,a,zi,jn输出哑元:tkII.subroutinejlp(JointLoadVector计算结点荷载)输入哑元:ne,nj,n,np,nf,x,y,ij,jn,pj,pf输出哑元:p(结点荷载列矩阵)标准文案大全III.subroutinegauss(带列主元素消去的高斯法)输入(输出)哑元:tk,p,n;(注意,算出位移后,直接存储到结点荷载列矩阵)IV.subroutinemvn(Member-endforcesofelements计算各单元的杆端力)输入哑元:ne,nj,n,nf,e,x,y,ij,a,zi,jn,pf,p3.文件管理:源程序文件:pff.for程序需读入的数据文件:input.txt程序输出的数据文件:output4.数据文件格式:【输入文件格式】:【输出文件格式】:1.第1部分:每行数据依次为:结点号,结点x方向位移,结点y方向位移,结点转角位移2.第2部分:栏目格式说明实际需输入的数据基本模型数据第1行,每两个数之间用“,”号隔开单元个数,结点个数,总自由度,弹性模量,杆截面积,惯性矩,结点荷载个数,非结点荷载个数结点位置信息第2行,每两个数之间用“,”号隔开依次输入各结点的坐标(x,y)单元结点信息每输入一个单元换行(回车),两个数之间用“,”号隔开依次输入各单元的起点结点号和终点结点号结点约束信息每输入一个结点换行(回车),两个数之间用“,”号隔开按先处理法要求,输入各结点编号结点荷载信息每个结点荷载成一行,每两个数之间用“,”号隔开每行依次输入荷载作用的结点号,荷载方向代码,荷载大小(参考“主要变量”的叙述)非结点荷载信息每个非结点荷载成一行,每两个数之间用“,”号隔开每行依次输入荷载作用单元,荷载代码,荷载大小,荷载作用”长度”(参考“主要向量”的叙述)标准文案大全每行数据依次为:单元号,xiF,yiF,iM,xjF,yjF,jM源程序:programPFFimplicitnonerealtk(100,100),x(50),y(50),p(100),pj(50,3),pf(50,4)integerij(50,2),jn(50,3)integerne,nj,n,np,nfreale,a,ziopen(1,file=input.txt,status=old)open(2,file=output.txt,status=old)read(1,*)ne,nj,n,e,a,zi,np,nfcallinput(ne,nj,x,y,ij,jn,np,nf,pj,pf)calltsm(ne,nj,n,e,x,y,ij,a,zi,jn,tk)calljlp(ne,nj,n,np,nf,x,y,ij,jn,pj,pf,p)callgauss(tk,p,n)callmvn(ne,nj,n,nf,e,x,y,ij,a,zi,jn,pf,p)endsubroutineinput(ne,nj,x,y,ij,jn,np,nf,pj,pf)dimensionx(nj),y(nj),ij(ne,2),jn(nj,3),pj(np,3),pf(nf,4)read(1,*)(x(i),y(i),i=1,nj)read(1,*)(ij(i,1),ij(i,2),i=1,ne)标准文案大全read(1,*)((jn(i,j),j=1,3),i=1,nj)if(np0)read(1,*)((pj(i,j),j=1,3),i=1,np)if(nf0)read(1,*)((pf(i,j),j=1,4),i=1,nf)endsubroutinetsm(ne,nj,n,e,x,y,ij,a,zi,jn,tk)dimensionx(nj),y(nj),ij(ne,2),jn(nj,3),tk(n,n),ek(6,6),lv(6)doi=1,ndoj=1,ntk(i,j)=0enddoenddodom=1,necalllsc(m,ne,nj,x,y,ij,bl,si,co)callesm(e,a,zi,bl,si,co,ek)callelv(m,ne,nj,ij,jn,lv)dol=1,6i=lv(l)if(i/=0)thendok=1,6j=lv(k)标准文案大全if(j/=0)tk(i,j)=tk(i,j)+ek(l,k)enddoendifenddoenddoendsubroutinelsc(m,ne,nj,x,y,ij,bl,si,co)dimensionx(nj),y(nj),ij(ne,2)i=ij(m,1)j=ij(m,2)dx=x(j)-x(i)dy=y(j)-y(i)bl=sqrt(dx*dx+dy*dy)si=dy/blco=dx/blendsubroutineesm(e,a,zi,bl,si,co,ek)dimensionek(6,6)c1=e*a/blc2=2.0*e*zi/bl标准文案大全c3=3.0*c2/blc4=2.0*c3/bls1=c1*co*co+c4*si*sis2=(c1-c4)*si*cos3=c3*sis4=c1*si*si+c4*co*cos5=c3*cos6=c2ek(1,1)=s1ek(1,2)=s2ek(1,3)=-s3ek(1,4)=-s1ek(1,5)=-s2ek(1,6)=-s3ek(2,2)=s4ek(2,3)=s5ek(2,4)=-s2ek(2,5)=-s4ek(2,6)=s5ek(3,3)=2*s6ek(3,4)=s3ek(3,5)=-s5标准文案大全ek(3,6)=s6ek(4,4)=s1ek(4,5)=s2ek(4,6)=s3ek(5,5)=s4ek(5,6)=-s5ek(6,6)=2.0*s6doi=1,5doj=i+1,6ek(j,i)=ek(i,j)enddoenddoendsubroutineelv(m,ne,nj,ij,jn,lv)dimensionij(ne,2),jn(nj,3),lv(6)i=ij(m,1)j=ij(m,2)dok=1,3lv(k)=jn(i,k)lv(k+3)=jn(j,k)enddo标准文案大全endsubroutinejlp(ne,nj,n,np,nf,x,y,ij,jn,pj,pf,p)dimensionx(nj),y(nj),ij(ne,2),jn(nj,3),pj(np,3),pf(nf,4),p(n),fo(6),pe(6),lv(6)doi=1,np(i)=0.0enddoif(np0)thendoi=1,npj=int(pj(i,1))k=int(pj(i,2))l=jn(j,k)if(l/=0)p(l)=pj(i,3)enddoendifif(nf0)thendoi=1,nfm=int(pf(i,1))calllsc(m,ne,nj,x,y,ij,bl,si,co)calleff(i,pf,nf,bl,fo)标准文案大全callelv(m,ne,nj,ij,jn,lv)pe(1)=-fo(1)*co+fo(2)*sipe(2)=-fo(1)*si-fo(2)*cope(3)=-fo(3)pe(4)=-fo(4)*co+fo(5)*sipe(5)=-fo(4)*si-fo(5)*cope(6)=-fo(6)doj=1,6l=lv(j)if(l/=0)p(l)=p(l)+pe(j)enddoenddoendifendsubroutineeff(i,pf,nf,bl,fo)dimensionpf(nf,4),fo(6)no=int(pf(i,2))q=pf(i,3)c=pf(i,4)b=bl-cc1=c/bl标准文案大全c2=c1*c1c3=c1*c2doj=1,6fo(j)=0.0enddogoto(10,20),no10fo(2)=-q*c*(1.0-c2+c3/2.0)fo(3)=-q*c*c*(0.5-2.0*c1/3.0+0.25*c2)fo(5)=-q*c*c2*(1.0-0.5*c1)fo(6)=q*c*c*c1*(1.0/3.0-0.25*c1)return20fo(2)=-q*b*b*(1.0+2.0*c1)/bl/blfo(3)=-q*c*b*b/bl/blfo(5)=-q*c2*(1.0+2.0*b/bl)fo(6)=q*c2*breturnendsubroutinegauss(e,d,n)dimensione(n,n),d(n),a(n,n+1)doi=1,ndoj=1,n标准文案大全a(i,j)=e(i,j)enddoenddodoi=1,na(i,n+1)=d(i)enddodok=1,n-1doi=k+1,nif(abs(a(i,k))abs(a(k,k)))thendoj=1,n+1c=a(k,j)a(k,j)=a(i,j)a(i,j)=cenddoelseendifenddodoi=k+1,na(i,k)=a(i,k)/a(k,k)doj=k+1,n+1a(i,j)=a(i,j)-a(i,k)*a(k,j)标准文案大全enddoenddoenddoa(n,n+1)=a(n,n+1)/a(n,n)d

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功