三角形水坝的有限元分析Word文档格式.docx
- 文档编号:18232113
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:24
- 大小:159.24KB
三角形水坝的有限元分析Word文档格式.docx
《三角形水坝的有限元分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《三角形水坝的有限元分析Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
AJZ
{0.000000,0.000000,0.000000},//1节点坐标
{0.000000,1.000000,0.000000},//2节点坐标
{0.000000,2.000000,0.000000},//3节点坐标
{0.000000,3.000000,0.000000},//4节点坐标
{0.000000,4.000000,0.000000},//5节点坐标
{0.000000,5.000000,0.000000},//6节点坐标
{0.000000,6.000000,0.000000},//7节点坐标
{0.000000,0.000000,1.500000},//8节点坐标
{0.000000,1.000000,1.500000},//9节点坐标
{0.000000,2.000000,1.500000},//10节点坐标
{0.000000,3.000000,1.500000},//11节点坐标
{0.000000,4.000000,1.500000},//12节点坐标
{0.000000,5.000000,1.500000},//13节点坐标
{0.000000,0.000000,3.000000},//14节点坐标
{0.000000,1.000000,3.000000},//15节点坐标
{0.000000,2.000000,3.000000},//16节点坐标
{0.000000,3.000000,3.000000},//17节点坐标
{0.000000,4.000000,3.000000},//18节点坐标
{0.000000,0.000000,4.500000},//19节点坐标
{0.000000,1.000000,4.500000},//20节点坐标
{0.000000,2.000000,4.500000},//21节点坐标
{0.000000,3.000000,4.500000},//22节点坐标
{0.000000,0.000000,6.000000},//23节点坐标
{0.000000,1.000000,6.000000},//24节点坐标
{0.000000,2.000000,6.000000},//25节点坐标
{0.000000,0.000000,7.500000},//26节点坐标
{0.000000,1.000000,7.500000},//27节点坐标
{0.000000,0.000000,9.000000},//28节点坐标
7.节点码数组:
JM
{0,1,2,8},//单元1
{0,2,9,8},//单元2
{0,2,3,9},//单元3
{0,3,10,9},//单元4
{0,3,4,10},//单元5
{0,4,11,10},//单元6
{0,4,5,11},//单元7
{0,5,12,11},//单元8
{0,5,6,12},//单元9
{0,6,13,12},//单元10
{0,6,7,13},//单元11
{0,12,13,18},//单元12
{0,12,18,17},//单元13
{0,11,12,17},//单元14
{0,11,17,16},//单元15
{0,10,11,16},//单元16
{0,10,16,15},//单元17
{0,9,10,15},//单元18
{0,9,15,14},//单元19
{0,8,9,14},//单元20
{0,14,15,19},//单元21
{0,15,20,19},//单元22
{0,15,16,20},//单元23
{0,16,21,20},//单元24
{0,16,17,21},//单元25
{0,17,22,21},//单元26
{0,17,18,22},//单元27
{0,21,22,25},//单元28
{0,21,25,24},//单元29
{0,20,21,24},//单元30
{0,20,24,23},//单元31
{0,19,20,23},//单元32
{0,23,24,26},//单元33
{0,24,27,26},//单元34
{0,24,25,27},//单元35
{0,26,27,28},//单元36
8.支承数组:
NZC
NZC[NZ+1]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
9.节点载荷数组:
PJ
PJ[NPJ+1][2+1]={{0,0,0},{0,3675,55},{0,22050,51},{0,44100,45},{0,66150,37},{0,88200,27},{0,110250,15},{0,132300,1}};
3.主程序:
#include<
stdio.h>
math.h>
#defineNE36//单元数
#defineNJ28//节点数
#defineNZ14//支承数
#defineNPJ7//节点载荷数
#defineNJ256//节点位移数
#defineDD16//半带宽
intLXM=0;
//类型判别码
doubleE0=20000000000;
//弹性模量
doubleMU=0.17;
//泊松比
doubleLOU=24000.0;
//容重
doubleTE=1.0;
//节点坐标数组
doubleAJZ[NJ+1][3]={{0.000000,0.000000,0.000000},
{0.000000,0.000000,0.000000},//1节点坐标为:
{0.000000,1.000000,0.000000},//2节点坐标为:
{0.000000,2.000000,0.000000},//3节点坐标为:
{0.000000,3.000000,0.000000},//4节点坐标为:
{0.000000,4.000000,0.000000},//5节点坐标为:
{0.000000,5.000000,0.000000},//6节点坐标为:
{0.000000,6.000000,0.000000},//7节点坐标为:
{0.000000,0.000000,1.500000},//8节点坐标为:
{0.000000,1.000000,1.500000},//9节点坐标为:
{0.000000,2.000000,1.500000},//10节点坐标为:
{0.000000,3.000000,1.500000},//11节点坐标为:
{0.000000,4.000000,1.500000},//12节点坐标为:
{0.000000,5.000000,1.500000},//13节点坐标为:
{0.000000,0.000000,3.000000},//14节点坐标为:
{0.000000,1.000000,3.000000},//15节点坐标为:
{0.000000,2.000000,3.000000},//16节点坐标为:
{0.000000,3.000000,3.000000},//17节点坐标为:
{0.000000,4.000000,3.000000},//18节点坐标为:
{0.000000,0.000000,4.500000},//19节点坐标为:
{0.000000,1.000000,4.500000},//20节点坐标为:
{0.000000,2.000000,4.500000},//21节点坐标为:
{0.000000,3.000000,4.500000},//22节点坐标为:
{0.000000,0.000000,6.000000},//23节点坐标为:
{0.000000,1.000000,6.000000},//24节点坐标为:
{0.000000,2.000000,6.000000},//25节点坐标为:
{0.000000,0.000000,7.500000},//26节点坐标为:
{0.000000,1.000000,7.500000},//27节点坐标为:
{0.000000,0.000000,9.000000},//28节点坐标为:
};
//单元节点码数组JM
intJM[NE+1][4]={{0,0,0,0},
{0,26,27,28},};
//单元36};
//支撑数组NZC
intNZC[NZ+1]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
//节点载荷数组PJ
doublePJ[NPJ+1][2+1]={{0,0,0},{0,3675,55},//节点载荷数组PJ,横向坐标
{0,22050,51},
{0,44100,45},
{0,66150,37},
{0,88200,27},
{0,110250,15},
{0,132300,1}};
doubleAE,KZ[NJ2+1][DD+1],P[NJ2+1],S[3+1][6+1],KE[6+1][6+1];
intIE,JE,ME;
voidDUGD(int,int);
voidmain()
{
intNJ1,k,IN,IM,jn,m,i,j,z,J0,ii,jj,h,dh,E,l,zl,dl;
doublePE,c,SIG1,SIG2,SIG3,PYL,RYL,MAYL,MIYL,CETA;
doubleWY[6+1],YL[3+1];
if(LXM!
=0)
{
E0=E0/(1.0-MU*MU);
//类型判别
MU=MU/(1.0-MU);
}
for(i=0;
i<
=NJ2;
i++)//调用函数DUGD(),生成KZ矩阵
for(j=0;
j<
=DD;
j++)
KZ[i][j]=0.0;
for(E=1;
E<
=NE;
E++)
DUGD(E,3);
//调用函数DUGD(),并生成KE矩阵
for(i=1;
=3;
i++)
{
for(ii=1;
ii<
=2;
ii++)
{
h=2*(i-1)+ii;
//元素在单元刚度矩阵的行码
dh=2*(JM[E][i]-1)+ii;
//元素在KZ中的行码
for(j=1;
j++)//列码循环
{
for(jj=1;
jj<
jj++)
{
l=2*(j-1)+jj;
//元素在单元刚度矩阵的列码
zl=2*(JM[E][j]-1)+jj;
//元素在KZ中的列码
dl=zl-dh+1;
//元素在KZ*中的列码
if(dl>
0)
KZ[dh][dl]=KZ[dh][dl]+KE[h][l];
//将单元刚度矩阵中的元素送到KZ*中
}
}
}
}
//********************形成P矩阵**********************
for(i=1;
P[i]=0.0;
//P清零
if(NPJ>
=NPJ;
j=(int)PJ[i][2];
P[j]=PJ[i][1];
if(LOU>
for(E=1;
DUGD(E,1);
//计算自重引起的等效节点载荷并送入P中
PE=-LOU*(AE)*TE/3;
P[2*IE]=P[2*IE]+PE;
P[2*JE]=P[2*JE]+PE;
P[2*ME]=P[2*ME]+PE;
//***********引入边界条件*****************//
=NZ;
z=NZC[i];
//处理的位移数Z
KZ[z][1]=1.0;
//Z行1列置“1”
for(j=2;
KZ[z][j]=0.0;
//Z行置“0”
if(z!
=1)
if(z>
DD)J0=DD;
//求最大列码
elseJ0=z;
for(j=2;
=J0;
KZ[z-j+1][j]=0.0;
//列(45度斜线)置“0”
P[z]=0.0;
//Z行荷载项置“0”
//********求解方程并输出位移***********//
//*高斯消元*
NJ1=NJ2-1;
//节点位移数
for(k=1;
k<
=NJ1;
k++)//消元(轴行)轮次循环
if(NJ2>
k+DD-1)
IM=k+DD-1;
//求最大行码
elseIM=NJ2;
IN=k+1;
for(i=IN;
=IM;
i++)//消元过程
l=i-k+1;
c=KZ[k][l]/KZ[k][1];
jn=DD-l+1;
=jn;
m=j+i-k;
KZ[i][j]=KZ[i][j]-c*KZ[k][m];
P[i]=P[i]-c*P[k];
//*矩阵回代*
P[NJ2]=P[NJ2]/KZ[NJ2][1];
//求最后一个位移
for(i=NJ1;
i>
=1;
i--)//按位移数(行)逆循环
if(DD>
NJ2-i+1)J0=NJ2-i+1;
elseJ0=DD;
h=j+i-1;
P[i]=P[i]-KZ[i][j]*P[h];
//回代运算求其它位移
P[i]=P[i]/KZ[i][1];
printf("
\n"
);
JDUV\n"
//输出位移
=NJ;
printf("
%2d%-9.6f%9.6f\n"
i,P[2*i-1],P[2*i]);
//**********求单元应力和主应力*************//
DUGD(E,2);
for(i=1;
h=2*(i-1)+j;
dh=2*(JM[E][i]-1)+j;
WY[h]=P[dh];
YL[i]=0;
=6;
YL[i]=YL[i]+S[i][j]*WY[j];
SIG1=YL[1];
SIG2=YL[2];
SIG3=YL[3];
PYL=(SIG1+SIG2)/2;
RYL=sqrt(pow((SIG1-SIG2)/2.0,2)+pow(SIG3,2));
MAYL=PYL+RYL;
MIYL=PYL-RYL;
if(SIG2==MIYL)
CETA=0;
else
CETA=90-57.29578*atan2(SIG3,(SIG2-MIYL));
E=%2d\n"
E);
sx=%-18.6fsy=%-18.6ftou=%-18.6f\n"
SIG1,SIG2,SIG3);
s1=%-18.6fs2=%-18.6ftheta=%-18.6f\n"
MAYL,MIYL,CETA);
}
voidDUGD(intE,intASK)
doubleB[3+1][6+1],D[3+1][3+1];
//变量数组说明
inti,j,k,CM1,CM2,CM,BM,CJ,BJ;
IE=JM[E][1];
//单元节点编号
JE=JM[E][2];
ME=JM[E][3];
CM=AJZ[JE][1]-AJZ[IE][1];
BM=AJZ[IE][2]-AJZ[JE][2];
CJ=AJZ[IE][1]-AJZ[ME][1];
BJ=AJZ[ME][2]-AJZ[IE][2];
AE=(BJ*CM-BM*CJ)/2.0;
if(ASK>
1)
for(j=1;
B[i][j]=0.0;
B[1][1]=(-BJ-BM)/(2.0*AE);
B[1][3]=BJ/(2*AE);
B[1][5]=BM/(2*AE);
B[2][2]=(-CJ-CM)/(2*AE);
B[2][4]=CJ/(2*AE);
B[2][6]=CM/(2*AE);
B[3][1]=B[2][2];
B[3][2]=B[1][1];
B[3][3]=B[2][4];
B[3][4]=B[1][3];
B[3][5]=B[2][6];
B[3][6]=B[1][5];
D[1][1]=E0/(1-MU*MU);
D[1][2]=E0*MU/(1-MU*MU);
D[1][3]=0;
D[2][1]=D[1][2];
D[2][2]=D[1][1];
D[2][3]=0;
D[3][1]=0;
D[3][2]=0;
D[3][3]=E0/(2*(1+MU));
{for(j=1;
{S[i][j]=0.0;
for(k=1;
k++)
S[i][j]=S[i][j]+D[i][k]*B[k][j];
2)
{for(j=1;
{KE[i][j]=0.0;
KE[i][j]=KE[i][j]+S[k][i]*B[k][j]*AE*TE;
}//程序结束
4.运算结果:
输出位移:
JDUV
10.0000000.000000
20.0000000.000000
30.0000000.000000
40.0000000.000000
50.0000000.000000
60.0000000.000000
70.0000000.000000
80.0000130.000003
90.000010-0.000002
100.000008-0.000004
110.000007-0.000005
120.000006-0.00000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三角形 水坝 有限元分析