文档详情

有限元程序设计作业.doc

发布:2017-07-16约3.33千字共7页下载文档
文本预览下载声明
有限元程序设计作业 2.1 平面刚架结构的程序设计 1、程序源代码 注明程序每一部分的功能 2、计算对象,单元及节点编码在图上标注,已知条件,需要求解的内容 计算题目可以自行选择 3、所选桁架算例如下: 确定节点1的水平、竖直位移,以及每一个杆的应力。 弹性模量E=200Gpa,截面面积为A=6×10-4m2。 4、总刚度矩阵以及程序 #include stdio.h #include math.h #define N 2 #define M 2 #define X 4 #define P 3 #define Q 2 /*N:结点数 M:自由度 X:总刚节点数 P:杆数量 Q:杆:2,梁:3*/ int MATNO1[P]={1,1,1};//定义 float PROPS[P][2]={{210,400},{210,400},{210,400}}; float IA1[P][N]={{1,2},{1,3},{1,4}}; float XY[X][2] ={{0,0},{3,0},{44,{0,3}}; float ekzong[M*X][M*X]={0}; float ek1[M*2][M*2]={0}; float ek2[M*2][M*2]={0}; float ek3[M*2][M*2]={0}; void main() { void Estif1(int mm,float ek1[4][4]); void jiedangang(); void hecheng(); int m,n,p,q,i,j; float ek1[4][4]={0}; jiedangang(); void Estif1(int mm,float ek1[4][4]); void jiedangang(); void hecheng(); int m,n,p,q,i,j; float ek1[4][4]={0}; printf(总刚:\n); for(i=0;i4;i++)//合成总刚 for(j=0;j4;j++)//叠加第一次 { ekzong[i][j]=ek1[i][j]; } for(i=0;i6;i++)//叠加第二次 { if(i=2i4) continue; for(j=0;j6;j++) { if(j=2j4) continue; if(i=2j=2) ekzong[i][j]=ekzong[i][j]+ek2[i-2][j-2]; else if(i=2j2) ekzong[i][j]=ekzong[i][j]+ek2[i-2][j]; else if(i2j=2) ekzong[i][j]=ekzong[i][j]+ek2[i][j-2]; else ekzong[i][j]=ekzong[i][j]+ek2[i][j]; } } for(i=0;i8;i++)//叠加第三次 { if(i=2i6) continue; for(j=0;j8;j++) { if(j=2j6) continue; if(i=2j=2) ekzong[i][j]=ekzong[i][j]+ek3[i-4][j-4]; else if(i=2j2) ekzong[i][j]=ekzong[i][j]+ek3[i-4][j]; else if(i2j=2) ekzong[i][j]=ekzong[i][j]+ek3[i][j-4]; else ekzong[i][j]=ekzong[i][j]+ek3[i][j]; } } for(m=0;m8;m++)//输出总刚 { for(n=0;n8;n++) { printf(%f\t,ekzong[m][n]); } printf(\n); } } void Estif1(int mm,float ek1[4][4]) { int i,j,lmat;
显示全部
相似文档