有限元分析中《结构力学》矩阵位移法C语言程序(附例题)

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

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

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

资源描述

程序:#includestdafx.h#includestdio.h#includemath.h#includestdlib.hvoidmain(){intloc[3][2]={0},ifix[6]={0};floatarea[3]={0.0},fint[3]={0.0},cx[4]={0.0},cy[4]={0.0},f[12]={0.0},fr[12]={0.0},fe[3][6]={0.0};intnn,ne,nd,nfix;floatea;inti,j,k;FILE*shuru,*shuchu;shuru=fopen(shuru.dat,r);shuchu=fopen(shuchu.dat,w);fscanf(shuru,%d%d%d%d%f,&nn,&ne,&nd,&nfix,&ea);fprintf(shuchu,nnnendnfixe\n%d%d%d%d%f\n,nn,ne,nd,nfix,ea);i=0;while(i=ne-1){fscanf(shuru,%d%d%f%f,&loc[i][0],&loc[i][1],&area[i],&fint[i]);i++;}fprintf(shuchu,elementnode1node2areafint\n);i=0;while(i=ne-1){fprintf(shuchu,%d%d%d%f%f\n,i+1,loc[i][0],loc[i][1],area[i],fint[i]);i++;}j=0;while(j=nn-1){fscanf(shuru,%f%f,&cx[j],&cy[j]);j++;}fprintf(shuchu,nodex-coordy-coord\n);j=0;while(j=nn-1){fprintf(shuchu,%d%f%f\n,j+1,cx[j],cy[j]);j++;}k=0;while(k=nfix-1){fscanf(shuru,%d,&ifix[k]);k++;}fprintf(shuchu,ifix=);k=0;while(k=nfix-1){fprintf(shuchu,%d,ifix[k]);k++;}fprintf(shuchu,\n);voidcst(int(*loc)[2],int*ifix,float*area,float*fint,float*cx,float*cy,float*f,float*fr,float(*fe)[6],FILE*shuru,FILE*shuchu,floatea);cst(loc,ifix,area,fint,cx,cy,f,fr,fe,shuru,shuchu,ea);fprintf(shuchu,nodex-dispy-dispthita\n);i=0;while(i=3){fprintf(shuchu,%d%f%f%f\n,i+1,f[3*i],f[3*i+1],f[3*i+2]);i++;}fprintf(shuchu,reactionnodalforcesfromtheequations\n);fprintf(shuchu,nodex-loady-loadmoment\n);i=0;while(i=3){fprintf(shuchu,%d%f%f%f\n,i+1,fr[3*i],fr[3*i+1],fr[3*i+2]);i++;}fprintf(shuchu,elementaxi-fshear-qmoment-m\n);i=0;while(i=ne-1){fprintf(shuchu,%d%f%f%f%f%f%f\n,i+1,fe[i][0],fe[i][1],fe[i][2],fe[i][3],fe[i][4],fe[i][5]);i++;}fclose(shuru);fclose(shuchu);}voidcst(int(*loc)[2],int*ifix,float*area,float*fint,float*cx,float*cy,float*f,float*fr,float(*fe)[6],FILE*shuru,FILE*shuchu,floatea){intnp,nvd;floatp1[3][6]={0.0},p2[3][6]={0.0},gk[12][12]={0.0},gk1[12][12]={0.0},al[3]={0.0},tt[3][6][6]={0.0},bkl[3][6][6]={0.0};floatt[6][6]={0.0},css[3]={0.0},snn[3]={0.0},ek[6][6]={0.0},ekl[6][6]={0.0},ekk[3][6][6]={0.0},xx[6]={0.0},ba[6][6]={0.0};intnn=4,ne=3,nd=12,nfix=6;intii,jj,i,j,k,l,inode,nodei,idofn,nrows,nrowe,jnode,nodej,jdofn,ncols,ncole;inti1,i2,ie,ix;floatx12,y12,q,eal,eil1,eil2,eil3;i=0;{for(;i=ne-1;i++){i1=loc[i][0];i2=loc[i][1];x12=cx[i2-1]-cx[i1-1];y12=cy[i2-1]-cy[i1-1];al[i]=sqrt(pow(x12,2)+pow(y12,2));css[i]=x12/al[i];snn[i]=y12/al[i];}}fscanf(shuru,%d%d,&np,&nvd);if(np!=0)i=0;for(;i=np-1;i++){fscanf(shuru,%d%f%f%f,&i,&f[3*i],&f[3*i+1],&f[3*i+2]);}if(nvd!=0)i=0;for(;i=nvd-1;i++){fscanf(shuru,%d%f,&ie,&q);i1=loc[ie-1][0];i2=loc[ie-1][1];p1[ie-1][1]=q*al[ie-1]/2;p1[ie-1][2]=q*al[ie-1]*al[ie-1]/12;p1[ie-1][4]=q*al[ie-1]/2;p1[ie-1][5]=-q*al[ie-1]*al[ie-1]/12;}i=0;for(;i=nd-1;i++){j=0;for(;j=nd-1;j++){gk[i][j]=0.0;}}for(i=0;i=ne-1;i++){j=0;for(;j=5;j++){k=0;for(;k=5;k++){ekl[j][k]=0.0;ek[j][k]=0.0;t[j][k]=0.0;}}eal=ea*area[i]/al[i];eil1=ea*fint[i]/al[i];eil2=ea*fint[i]/(al[i]*al[i]);eil3=ea*fint[i]/(al[i]*al[i]*al[i]);ekl[0][0]=eal;ekl[1][1]=12.0*eil3;ekl[2][2]=4.0*eil1;ekl[3][3]=eal;ekl[4][4]=12.0*eil3;ekl[5][5]=4.0*eil1;ekl[2][1]=6.0*eil2;ekl[3][0]=-eal;ekl[4][1]=-12.0*eil3;ekl[4][2]=-6.0*eil2;ekl[5][1]=6.0*eil2;ekl[5][2]=2.0*eil1;ekl[5][4]=-6.0*eil2;ii=0;for(;ii=4;ii++){jj=ii+1;for(;jj=5;jj++){ekl[ii][jj]=ekl[jj][ii];}}k=0;for(;k=5;k++){l=0;for(;l=5;l++){{ekk[i][k][l]=ekl[k][l];fprintf(shuchu,%d%d%d%f%f\n,i+1,k+1,l+1,ekl[k][l],ekk[i][k][l]);}}}t[0][0]=css[i];t[0][1]=-snn[i];t[1][0]=snn[i];t[1][1]=css[i];t[2][2]=1.0;t[3][3]=css[i];t[3][4]=-snn[i];t[4][3]=snn[i];t[4][4]=css[i];t[5][5]=1.0;j=0;for(;j=5;j++){k=0;for(;k=5;k++){tt[i][j][k]=t[j][k];p2[i][j]=p2[i][j]+t[j][k]*p1[i][k];}}ii=0;for(;ii=5;ii++){j=0;for(;j=5;j++){ba[ii][j]=0.0;k=0;for(;k=5;k++){ba[ii][j]=ba[ii][j]+tt[i][ii][k]*ekl[k][j];}}}ek[ii][j]=0.0;ii=0;for(;ii=5;ii++){j=0;for(;j=5;j++){k=0;for(;k=5;k++){ek[ii][j]=ek[ii][j]+ba[ii][k]*tt[i][j][k];}}}j=0;for(;j=5;j++){ii=0;for(;ii=5;ii++){fprintf(shuchu,i,ii,j,ek,tt=%d%d%d%f%f\n,i+1,ii+1,j+1,ek[ii][j],tt[i][ii][j]);}}inode=0;while(inode=1){nodei=loc[i][inode];idofn=0;while(idofn=2){nrows=(nodei-1)*3+idofn;nrowe=inode*3+idofn;f[nrows]=f[nrows]+p2[i][nrowe];jnode=0;while(jnode=1){nodej=loc[i][jnode];jdofn=0;while(jdofn=2){ncols=(nodej-1)*3+jdofn;ncole=jnode*3+jdofn;gk[nrows][ncols]=gk[nrows][ncols]+ek[nrowe][ncole];jdofn++;}jnode++;}idofn++;}inode++;}}i=0;for(;i=nd-1;i++){j=0;for(;j=nd-1;j++){gk1[i][j]=gk[i][j];}}fprintf(shuchu,nodalforcesfromappliedloads\nodex-loady-loadmoment\n);i=0;for(;i=nn-1;i++){fprintf(shuchu,%d%f%f%f\n,i+1,f[3*i],f[3*i+1],f[3*i+2]);}i=0;for(;i=nd-1;i++){j=0;for(;j=nd-1;j++){fprintf(shuchu,i,j,gk1%d%d%f\n,i+1,j+1,gk[i][j]);}}i=0;for(;i=nfix-1;i++){ix=ifix[i];gk[ix-1][ix-1]=gk[ix-1][ix-1]*1.0e20;}voidgauss(float(*a)[12],float*b,intn);gauss(gk,f,nd);i=0;for(;i=nd-1;i++){fr[i]=0.0;j=0;for(;j=nd-1;j++){fr[i]=fr[i]+gk1[i][j]*f[j];fr[i]=fr[i]-f[i];}}for(i=0;i=ne-1;i++){i1=loc[i][0];i2=loc[i][1];xx[0]=f[3*i1-3];xx[1]=f[3*i1-2];xx[2]=f[3*i1-1];xx[3]=f[3*i2-3];xx[4]=f[3*i2-2];xx[5]=f[3*i2-1];j=0;for(;j=5;j++){k=0;for(;k=5;

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

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

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

×
保存成功