结构力学 结构矩阵程序设计原理源程序代码文档格式.docx
- 文档编号:17339752
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:16
- 大小:17.43KB
结构力学 结构矩阵程序设计原理源程序代码文档格式.docx
《结构力学 结构矩阵程序设计原理源程序代码文档格式.docx》由会员分享,可在线阅读,更多相关《结构力学 结构矩阵程序设计原理源程序代码文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
npj"
npe"
n"
Input#1,nn,ne,nf,nd,ndf,npj,npe
n=3*(nn-nf)
Print#2,nn;
ne;
nf;
nd;
ndf;
npj;
npe;
n
NodalCoordinates"
---------------------------"
Node"
x"
Spc(5);
y"
i=nn
Forinti=1Toi
Input#1,inti,x(inti),y(inti)
Print#2,inti;
x(inti);
y(inti)
Nextinti
ElementInformation"
-----------------------------"
Ele.No."
jl"
jr"
ea"
Spc(7);
ei"
al"
i=ne
Input#1,inti,jl(inti),jr(inti),ea(inti),ei(inti)
Ifjl(inti)>
=jr(inti)ThenStop
j=jl(inti)
k=jr(inti)
dx=x(k)-x(j)
dy=y(k)-y(j)
al(inti)=Sqr(dx*dx+dy*dy)
Print#2,Spc(3);
inti;
Spc(4);
jl(inti);
jr(inti);
ea(inti);
ei(inti);
al(inti)
k=npj
Ifk<
>
0Then
Print#2,"
NodalLoad"
---------------"
i"
mj"
xd"
yd"
md"
Forinti=1Tok
Input#1,inti,mj(inti),qj(inti,1),qj(inti,2),qj(inti,3)
mj(inti);
qj(inti,1);
qj(inti,2);
qj(inti,3)
Nextinti
EndIf
i=npe
Ifi<
ElementLoads"
-------------------"
mf"
ind"
aq"
bq"
q1"
q2"
Forinti=1Toi
Input#1,inti,mf(inti),ind(inti),aq(inti),bq(inti),q1(inti),q2(inti)
mf(inti);
ind(inti);
aq(inti);
bq(inti);
q1(inti);
q2(inti)
j=ndf
Ifj<
Boundaryconditions"
--------------------------"
ibd"
bd"
Forinti=1Toj
Input#1,inti,ibd(inti),bd(inti)
ibd(inti);
bd(inti)
EndSub
===================================================
SUB-2AssembleStructuralStiffnessMatrix{R}
Subwstiff()
DimiAsInteger,jAsInteger,ieAsInteger,k1AsInteger,k2AsInteger
Fori=1Ton
Forj=1Ton
r(i,j)=0
Nextj
Nexti
ie=1
DoWhileie<
=ne
Callstiff(ie)
Calllocat(ie)
Fork1=1To6
i=ii(k1)
Ifi<
=nThen
Fork2=k1To6
j=ii(k2)
Ifj<
r(i,j)=r(i,j)+c(k1,k2)
EndIf
Nextk2
Nextk1
ie=ie+1
Loop
Fori=2Ton
Forj=1To(i-1)
r(i,j)=r(j,i)
================================
SUB-3SetUpStiffnessMatrix[C](GlobalCoordinateSystem)
Substiff(ie)
DimiAsInteger,jAsInteger
DimcxAsDouble,cyAsDouble,b1AsDouble,b2AsDouble,b3AsDouble,b4AsDouble
Dims1AsDouble,s2AsDouble,s3AsDouble,s4AsDouble,s5AsDouble,s6AsDouble
i=jl(ie)
j=jr(ie)
cx=(x(j)-x(i))/al(ie)
cy=(y(j)-y(i))/al(ie)
b1=ea(ie)/al(ie)
b2=12#*ei(ie)/al(ie)^3
b3=6#*ei(ie)/al(ie)^2
b4=2#*ei(ie)/al(ie)
s1=b1*cx^2+b2*cy^2
s2=(b1-b2)*cx*cy
s3=b3*cy
s4=b1*cy^2+b2*cx^2
s5=b3*cx
s6=b4
c(1,1)=s1
c(1,2)=s2
c(1,3)=s3
c(1,4)=-s1
c(1,5)=-s2
c(1,6)=s3
c(2,2)=s4
c(2,3)=-s5
c(2,4)=-s2
c(2,5)=-s4
c(2,6)=-s5
c(3,3)=2#*s6
c(3,4)=-s3
c(3,5)=s5
c(3,6)=s6
c(4,4)=s1
c(4,5)=s2
c(4,6)=-s3
c(5,5)=s4
c(5,6)=s5
c(6,6)=2#*s6
Fori=2To6
c(i,j)=c(j,i)
=======================
SUB-4SetUpElementLocationVector{Ⅱ}
Sublocat(ie)
ii
(1)=3*i-2
ii
(2)=3*i-1
ii(3)=3*i
ii(4)=3*j-2
ii(5)=3*j-1
ii(6)=3*j
===================
SUB-5SetUpToalNodalVector{p}
Subload()
DimiAsInteger,jAsInteger,kAsInteger
i=1
DoWhilei<
=n
p(i)=0#
i=i+1
Ifnpj>
Fori=1Tonpj
k=mj(i)
p(3*k-2)=qj(i,1)
p(3*k-1)=qj(i,2)
p(3*k)=qj(i,3)
Nexti
Ifnpe<
Calleload
i=1
DoWhilei<
p(i)=p(i)+pe(i)
Loop
====================
SUB-6SetUpElementEffectiveLoad
Subeload()
DimiAsInteger,jAsInteger,kAsInteger,k1AsInteger,k2AsInteger,k3AsInteger
pe(i)=0#
j=1
DoWhilej<
=npe
k=mf(j)
Calltrans(k)
Calllocat(k)
Callefix(j)
f(k1)=0#
Fork2=1To6
f(k1)=f(k1)+t(k2,k1)*ff(k2)
Fork3=1To6
i=ii(k3)
pe(i)=pe(i)-f(k3)
Nextk3
j=j+1
=====================
SUB-7SetUpFixed-EndForceOfElement
Subefix(i)
DimjAsInteger,kAsInteger
Dims1AsDouble,aAsDouble,bAsDouble,p1AsDouble,p2AsDouble
Dimb1AsDouble,b2AsDouble,b3AsDouble,c1AsDouble,c2AsDouble,c3AsDouble
Dimd1AsDouble,d2AsDouble
Forj=1To6
ff(j)=0#
k=mf(i)
s1=al(k)
a=aq(i)
b=bq(i)
p1=q1(i)
p2=q2(i)
b1=s1-(a+b)/2#
b2=b-a
b3=(a+b)/2#
c1=s1-(2#*b+a)/3#
c2=b2
c3=(2#*b+a)/3#
d1=b^3-a^3
d2=b*b-a*a
SelectCaseind(i)
Case1
ff
(2)=-p1*(s1-a)^2*(1#+2#*a/s1)/s1^2
ff(3)=p1*a*(s1-a)^2/s1^2
ff(5)=-p1-ff
(2)
ff(6)=-p1*a^2*(s1-a)/s1^2
Case2
ff
(2)=-p1*b2*(12#*b1^2*s1-8#*b1^3+b2^2*s1-2#*b1*b2^2)/(4#*s1^3)
ff(3)=p1*b2*(12#*b3*b1^2-3*b1*b2^2+b2^2*s1)/12#/s1^2
ff(5)=-p1*b2-ff
(2)
ff(6)=-p1*b2*(12#*b3^2*b1+3#*b1*b2^2-2#*b2^2*s1)/12#/s1^2
Case3
ff
(2)=-p2*c2*(18*c1^2*s1-12*c1^3+c2^2*s1-2*c1*c2^2-4*c2^3/45)/12/s1^3
ff(3)=p2*c2*(18#*c3*c1^2-3#*c1*c2^2+c2^2*s1-2#*c2^3/15#)/36#/s1^2
ff(5)=-0.5*p1*c2-ff
(2)
ff(6)=-p2*c2*(18#*c3^2*c1+3*c1*c2^2-2*c2^2*s1+2*c2^3/15#)/36#/s1^2
Case4
ff
(2)=-6#*p1*a*(s1-a)/s1^3
ff(3)=p1*(s1-a)*(3#*a-s1)/s1^2
ff(5)=-ff
(2)
ff(6)=p1*a*(2#*s1-3#*a)/s1^2
Case5
ff
(2)=-p1*(3#*s1*d2-2#*d1)/s1^3
ff(3)=p1*(2#*d2+(b-a)*s1-d1/s1)/s1
ff(6)=p1*(d2-d1/s1)/s1
Case6
ff
(1)=-p1*(1#-a/s1)
ff(4)=-p1*a/s1
Case7
ff
(1)=-p1*(b-a)*(1#-(b+a)/(2#*s1))
ff(4)=-p1*d2/2#/s1
Case8
ff(3)=-a*(p1-p2)*ei(k)/b
ff(6)=-ff(3)
EndSelect
EndSub
'
SUB-8SetUpCoordinateTransferMatrix[T]
Subtrans(ie)
DimiAsInteger,jAsInteger
DimcxAsDouble,cyAsDouble
i=jl(ie)
j=jr(ie)
cx=(x(j)-x(i))/al(ie)
cy=(y(j)-y(i))/al(ie)
Fori=1To6
t(i,j)=0#
Fori=1To4Step3
t(i,i)=cx
t(i,i+1)=cy
t(i+1,i)=-cy
t(i+1,i+1)=cx
t(i+2,i+2)=1#
=================
SUB-9IntroduceSupportConditions
Subbound()
DimaAsDouble
Ifndf<
Forj=1Tondf
a=1E+20
Fori=1Tondf
k=ibd(i)
r(k,k)=a
p(k)=a*bd(i)
==============================
SUB-10SolveEquations
Subgauss()
DimiAsInteger,jAsInteger,kAsInteger,k1AsInteger,n1AsInteger
DimcAsDouble
n1=n-1
Fork=1Ton1
k1=k+1
Fori=k1Ton
c=r(k,i)/r(k,k)
p(i)=p(i)-p(k)*c
Forj=k1Ton
r(i,j)=r(i,j)-r(k,j)*c
Nextk
p(n)=p(n)/r(n,n)
Fori=1Ton1
k=n-1
Forj=k1To
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构力学 结构矩阵程序设计原理源程序代码 结构 力学 矩阵 程序设计 原理 源程序 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)