xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 11KB
    文件類型: .c
    金幣: 1
    下載: 1 次
    發(fā)布日期: 2024-02-14
  • 語言: C/C++
  • 標(biāo)簽:

資源簡介

這個(gè)C語言編寫的有限元?jiǎng)偧艹绦蚩梢灾苯舆\(yùn)行,詳細(xì)包括了單剛集成的過程,又采用了半帶寬存儲(chǔ)總剛的辦法,詳細(xì)編寫了高斯消元法過程,整個(gè)代碼非常實(shí)用

資源截圖

代碼片段和文件信息

//計(jì)算平面鋼架的程序
//程序開始

#include
#include


#define?NE?2
#define?NJ?3???????????????????//定義并輸入基本參數(shù)
#define?NZ?6
#define?NPJ?3
#define?NPF?2
#define?NJ3?9
#define?DD?9
#define?E0?3.0000E8????????????//?定義并輸入常數(shù)
#define?A0?0.5
#define?I0?4.1667E-2
#define?PI?3.141592654


//?這是輸入?yún)?shù)的初始化和定義全局變量

int?jm[NE+1][3]={{000}{012}{031}};
double?gc[NE+1]={0.05.05.0};
double?gj[NE+1]={0.00.090.0};
double?mj[NE+1]={0.0A0A0};
double?gx[NE+1]={0.0I0I0};
int?zc[NZ+1]={0456789};
double?pj[NPJ+1][3]={{0.00.00.0}{0.06.01.0}{0.02.02.0}{0.0-5.03.0}};
double?pf[NPF+1][5]={{00000}{0.0-4.85.01.01.0}{0.0-8.02.52.02.0}};
double?kz[NJ3+1][NJ3+1]p[NJ3+1];
double?pe[7]f[7]f0[7]t[7][7];
double?ke[7][7]kd[7][7];
//??kz[][]---整體剛度矩陣
//??ke[][]---整體坐標(biāo)系下的單元?jiǎng)偠染仃?br/>//??kd[][]---局部坐標(biāo)系下的單元?jiǎng)偠染仃?br/>//??t[][]?---坐標(biāo)板換矩陣


//*****函數(shù)聲明*****
void?jdugd(int);
void?zb(int);
void?gdnl(int);
void?dugd(int);


//***主函數(shù)開始*****
void?main(void)
{
?????FILE?*fp;
int?ijkedhhiijjhza1b1mldlzlzj0;
double?clwy[7];
int?IMINjn;


//<功能:形成矩陣p>
if(NPJ>0)
{
for(i=1;i<=NPJ;i++)
{
j=(int)pj[i][2];
p[j]=pj[i][1];
}
}
if(NPF>0)
{
for(i=1;i<=NPF;i++)
{
hz=i;??//可否省略此行代碼,下一行直接寫gdnl(i),這樣也是將實(shí)參i傳遞給形參hz
gdnl(hz);
e=(int)pf[hz][3];
zb(e);
for(j=1;j<=6;j++)
{
pe[j]=0.0;
for(k=1;k<=6;k++)
{
pe[j]=pe[j]-t[k][j]*f0[k];????//用的是轉(zhuǎn)秩矩陣?????zb()函數(shù)出來的是直接矩陣???在這先讓列不動(dòng)行動(dòng)??相當(dāng)于乘的轉(zhuǎn)秩
}
}
a1=jm[e][1];
b1=jm[e][2];
p[3*a1-2]=p[3*a1-2]+pe[1];
p[3*a1-1]=p[3*a1-1]+pe[2];
p[3*a1]=p[3*a1]+pe[3];
p[3*b1-2]=p[3*b1-2]+pe[4];
p[3*b1-1]=p[3*b1-1]+pe[5];
p[3*b1]=p[3*b1]+pe[6];

}
}






//*********************************************
//<功能:生成整體剛度矩陣ke[][]>
for(e=1;e<=NE;e++)????????????????????????????//這里的總剛KE實(shí)際是已經(jīng)處理過的帶狀矩陣KZ*了!
{

dugd(e);
for(i=1;i<=2;i++)
{
for(ii=1;ii<=3;ii++)
{
h=3*(i-1)+ii;
dh=3*(jm[e][i]-1)+ii;



for(j=1;j<=2;j++)
{
for(jj=1;jj<=3;jj++)
{
l=3*(j-1)+jj;
zl=3*(jm[e][j]-1)+jj;
dl=zl-dh+1;????
if(dl>0)
kz[dh][dl]=kz[dh][dl]+ke[h][l];
}
}
}
}
}

//****引入邊界條件*******
for(i=1;i<=NZ;i++)????//按支撐循環(huán),即約束總數(shù)(假設(shè)共一個(gè)固定端支座和一個(gè)固定鉸支座,則總數(shù)仍為6?)
{
z=zc[i];??????????//取出支撐對(duì)應(yīng)的位移數(shù)(如固定鉸支座對(duì)應(yīng)節(jié)點(diǎn)碼為3,則z=7?8?9)放入變量z中
kz[z][1]=1.0;?????//Z行第一個(gè)元素置為1.0,注意這里的KZ已是處理后的帶狀矩陣了,即對(duì)應(yīng)于原總剛中的Z行中對(duì)角線處的元素置一了!
for(j=2;j<=DD;j++)??//這個(gè)循環(huán)是將帶狀矩陣中Z行的其他元素全部置為零,由于KZ與KZ*中行元素是不變的,即KZ中的r行元素在KZ*中
kz[z][j]=0.0;???//仍在r行。即這個(gè)循環(huán)的本質(zhì)是將KZ總剛中Z行除對(duì)角線位置元素外的所有元素置為零!
if((z!=1))
{
if(z>DD)j0=DD;????//先通過一個(gè)判斷語句,得出正確的列數(shù)J0,要用這個(gè)列數(shù)來實(shí)現(xiàn)Z行斜向上45°所有元素置零,這個(gè)操作等同于
else?if(z<=DD)j0=z;??//將總剛KZ中的Z列除對(duì)角線元素外的所有元素置零!
for(j=2;j<=j0;j++)????//j從2到j(luò)0代表了斜向上45°各元素的列變化規(guī)律
kz[z-j+1][j]=0.0;??//代表了斜向上45°各元素的行變化規(guī)律
}
p[z]=0.0;???//將位移約束代碼所對(duì)應(yīng)的荷載列陣處的元素置為零??????????????????????????
}



/*高斯

評(píng)論

共有 條評(píng)論

相關(guān)資源