|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
- #include <math.h>
- #include <iostream.h>
- #include<fstream.h>
- #include"iomanip.h"
- int loc[200][4],e;
- float a,b,g[12][12],h,anu;
- MATD()
- { int i,j,l,s,p,m;
- float afh1[4],afh2[4],fh1,fh2,d,n,k1[3][3],ab;
- afh1[0]=-1;afh1[1]=1;afh1[2]=1;afh1[3]=-1;
- afh2[0]=-1;afh2[1]=-1;afh2[2]=1;afh2[3]=1;
- d=e*h*h*h/(12*(1-anu*anu));
- n=d/(60*a*b);
- ab=b*b/(a*a);
- for(i=0;i<4;i++)
- for(j=0;j<4;j++)
- {fh1=afh1[i]*afh1[j];
- fh2=afh2[i]*afh2[j];
- k1[0][0]=3*n*(15.0*(ab*fh1+fh2/ab)+(14-4*anu+5*ab+5.0/ab)*fh1*fh2);
- k1[0][1]=-3*n*b*((2+3*anu+5.0/ab)*fh1*afh2[i]+15*afh2[i]/ab+5*anu*fh1*afh2[j]);
- k1[0][2]=3*n*a*((2+3*anu+5*ab)*fh2*afh1[i]+15*afh1[i]*ab+5.0*anu*fh2*afh1[j]);
- k1[1][0]=-3*n*b*((2+3*anu+5.0/ab)*fh1*afh2[j]+15*afh2[j]/ab+5*anu*fh1*afh2[i]);
- k1[1][1]=n*b*b*(2*(1-anu)*fh1*(3+5*fh2)+5*(3+fh1)*(3+fh2)/ab);
- k1[1][2]=-15*n*anu*a*b*(afh1[i]+afh1[j])*(afh2[i]+afh2[j]);
- k1[2][0]=3*n*a*((2+3*anu+5*ab)*fh2*afh1[j]+15*afh1[j]*ab+5*anu*fh2*afh1[i]);
- k1[2][1]=-15*n*anu*a*b*(afh1[i]+afh1[j])*(afh2[i]+afh2[j]);
- k1[2][2]=n*a*a*(2*(1-anu)*fh2*(3+5*fh1)+5*(3+fh1)*(3+fh2)*ab);
- for(m=0;m<3;m++)
- for(l=0;l<3;l++)
- {s=3*i+m;
- p=3*j+l;
- g[s][p]=k1[m][l]; } }
-
- }
- void main()
- { int i,j,l,v,maxnel,inode,nodei,idofn,nrows,nrowe,jnode,nodej,jdofn,
- ncols,ncole,nel,maxnod,a1,b1;
- float t[12][12],k2[12][12],sum[12][12],astif[100][100],ast[100][100],k[100][100]={0};
- ifstream ifile("e:\\shaohuan001.txt");
- ifile>>e>>h>>anu>>a>>b>>v>>maxnel>>maxnod;
- for(i=0;i<12;i++)
- for(j=0;j<12;j++)
- t[i][j]=0;
- for(j=0;j<maxnel;j++)
- {
- ifile>>loc[j][0]>>loc[j][1]>>loc[j][2]>>loc[j][3];
- loc[j][0]--;loc[j][1]--;loc[j][2]--;loc[j][3]--;
- if(loc[j][0]%6==0)
- i=(loc[j][0]-1)%6;
- else
- i=loc[j][0]%6-1;
- t[0][0]=cos(i*v);t[0][1]=-sin(i*v);t[1][0]=sin(i*v);t[1][1]=cos(i*v); t[2][2]=1;
- t[3][3]=cos(i*v); t[3][4]=-sin(i*v);t[4][3]=sin(i*v);t[4][4]=cos(i*v); t[5][5]=1;
- t[6][6]=cos(i*v);t[6][7]=-sin(i*v); t[7][6]=sin(i*v);t[7][7]=cos(i*v);t[8][8]=1;
- t[9][9]=cos(i*v);t[9][10]=-sin(i*v);t[10][9]=sin(i*v);t[10][10]=cos(i*v);t[11][11]=1;
- MATD();
- for(a1=0;a1<12;a1++)
- for(b1=0;b1<12;b1++)
- { sum[a1][b1]=0.0;
- for(l=0;l<12;l++)
- sum[a1][b1]=sum[a1][b1]+g[a1][l]*t[l][b1]; }
- for(a1=0;a1<12;a1++)
- for(b1=0;b1<12;b1++)
- { k2[a1][b1]=0.0;
- for(l=0;l<12;l++)
- k2[a1][b1]=k2[a1][b1]+t[l][a1]*sum[l][b1];
- }
- for(a1=0;a1<3*maxnod;a1++)
- for(b1=0;b1<3*maxnod;b1++)
- astif[a1][b1]=0;
- for(nel=0;nel<maxnel;nel++)
- for(inode=0;inode<4;inode++)
- { nodei=loc[nel][inode];
- for(idofn=0;idofn<3;idofn++)
- { nrows=nodei*3+idofn;
- nrowe=inode*3+idofn;
- for(jnode=0;jnode<4;jnode++)
- { nodej=loc[nel][jnode];
- for(jdofn=0;jdofn<3;jdofn++)
- { ncols=nodej*3+jdofn;
- ncole=jnode*3+jdofn;
- astif[nrows][ncols]=astif[nrows][ncols]+k2[nrowe][ncole];
- } } } }
- for(a1=0;a1<3*maxnod;a1++)
- for(b1=0;b1<3*maxnod;b1++)
- k[a1][b1]=k[a1][b1]+astif[a1][b1];}
- for(a1=0;a1<3*maxnod;a1++)
- {for(b1=0;b1<3*maxnod;b1++)
- cout<<k[a1][b1]<<"\t";}
- cout<<endl;
- }
复制代码
[ 本帖最后由 风花雪月 于 2007-6-15 11:01 编辑 ] |
|