📄 new text document.txt
字号:
m=m+1;
}
k=k+1;
}
fclose(fp1);
}
void CHapibirdView::OnCalculate()
{
int hr,hl;
float l1,l2,l3,l4,area,a1,a2,a3,b1,b2,b3,c1,c2,c3;
float bb[3][4],kk[4][4],fv[4],f21,f22;
ele=2*numl*numw;
for(j=1;j<=jz;j++)
{
for(r=1;r<=jz;r++)
{
kz[j][r]=0.0;
}
}
for(j=1;j<=jz;j++)
{
f[j]=0.0;
}
fp2=fopen("shiyan.txt","w");
for(i=1;i<=ele;i++)
{
fprintf(fp2,"\n");
ii=ejd[i][1];
jj=ejd[i][2];
mm=ejd[i][3];
l1=xy[jj][1]-xy[ii][1];
l2=xy[jj][2]-xy[ii][2];
l3=xy[mm][1]-xy[ii][1];
l4=xy[mm][2]-xy[ii][2];
area=0.5*(l1*l4-l2*l3);
/* a1=xy[ii][1]*xy[mm][2]-xy[mm][1]*xy[ii][2];
a2=xy[jj][1]*xy[ii][2]-xy[ii][1]*xy[jj][2];
a3=xy[mm][1]*xy[jj][2]-xy[jj][1]*xy[mm][2];
*/
b1=xy[jj][2]-xy[mm][2];
b2=xy[mm][2]-xy[ii][2];
b3=xy[ii][2]-xy[jj][2];
c1=xy[mm][1]-xy[jj][1];
c2=xy[ii][1]-xy[mm][1];
c3=xy[jj][1]-xy[ii][1];
//局部刚度阵
bb[1][1]=b1/(2*area);
bb[1][2]=b2/(2*area);
bb[1][3]=b3/(2*area);
bb[2][1]=c1/(2*area);
bb[2][2]=c2/(2*area);
bb[2][3]=c3/(2*area);
// fprintf(fp2,"%d %d %d %d\n",i,ii,jj,mm);
// fprintf(fp2,"%d %f %f %f\n",i,c1,c2,c3);
// fprintf(fp2,"%f %f %f %f\n",area,b1,b2,b3);
// fprintf(fp2,"%f %f %f\n",bb[1][1],bb[1][2],bb[1][3]);
// fprintf(fp2,"%f %f %f\n",bb[2][1],bb[2][2],bb[2][3]);
/* bb[1][1]=1;
bb[1][2]=2;
bb[1][3]=3;
bb[2][1]=4;
bb[2][2]=5;
bb[2][3]=6;
for(j=1;j<=2;j++)
{
fprintf(fp2,"\n");
for(m=1;m<=3;m++)
{
fprintf(fp2,"%f",bb[j][m]);
}
}
*/
// fprintf(fp2,"%d %f %f %f\n",i,c1,c2,c3);
// fprintf(fp2,"%f %f %f %f\n",area,b1,b2,b3);
//单刚
for(j=1;j<=3;j++)
{
// fprintf(fp2,"\n");
for(m=1;m<=3;m++)
{
kk[j][m]=0;
for(k=1;k<=2;k++)
{
kk[j][m]=kk[j][m]+kk0*bb[k][j]*bb[k][m]*area;
}
// fprintf(fp2,"%f",kk[j][m]);
}
// fprintf(fp2,"%d\n",i);
}
/*//输出单刚
for(j=1;j<=3;j++)
{
fprintf(fp2,"\n");
for(m=1;m<=3;m++)
{
fprintf(fp2,"%f",kk[j][m]);
}
fprintf(fp2,"%d\n",i);
}
//单元热源向量
fv[1]=area/3;
fv[2]=area/3;
fv[3]=area/3;
*/
//整体刚度阵
for(m=1;m<=3;m++)
{
hr=ejd[i][m];
for(k=1;k<=3;k++)
{
hl=ejd[i][k];
kz[hr][hl]=kz[hr][hl]+kk[m][k];
// fprintf(fp2,"%f",kz[hr][hl]);
}
}
/*//整体单元热源向量
for(k=1;k<=3;k++)
{
hl=ejd[i][k];
f[hl]=f[hl]+fv[k];
}
*/
}
//输出总刚
for(j=1;j<=jz;j++)
{
fprintf(fp2,"\n");
for(r=1;r<=jz;r++)
{
// fprintf(fp2,"%f",kz[j][r]);
}
}
//引入边界条件
//上面
if(up==3)
{
kk[1][1]=uph*(sizel/numl)/3.0;
kk[1][2]=0.0;
kk[1][3]=uph*(sizel/numl)/6.0;
kk[2][1]=0.0;
kk[2][2]=0.0;
kk[2][3]=0.0;
kk[3][1]=uph*(sizel/numl)/6.0;
kk[3][2]=0.0;
kk[3][3]=uph*(sizel/numl)/3.0;
for(i=1;i<=numl;i++)
{
for(m=1;m<=3;m++)
{
hr=ejd[2*i][m];
for(k=1;k<=3;k++)
{
hl=ejd[2*i][k];
kz[hr][hl]=kz[hr][hl]+kk[m][k];
}
}
}
for(i=1;i<=numl;i++)
{
e=i*2;
mm=ejd[e][3];
ii=ejd[e][1];
f21=uph*uptf*(sizel/numl)*(1.0/2.0);
f22=uph*uptf*(sizel/numl)*(1.0/2.0);
f[mm]=f[mm]-f21;
f[ii]=f[ii]-f22;
}
}
else if(up==2)
{
for(i=1;i<=numl;i++)
{
e=i*2;
mm=ejd[e][3];
ii=ejd[e][1];
f21=upq2*(sizel/numl)*(1.0/2.0);
f22=upq2*(sizel/numl)*(1.0/2.0);
f[mm]=f[mm]-f21;
f[ii]=f[ii]-f22;
}
}
else if(up==1)
{
for(i=1;i<=numl+1;i++)
{
f[i]=upt1*10000000000*kz[i][i];
kz[i][i]=10000000000*kz[i][i];
}
}
else
{
for(i=2;i<=numl;i++)
{
f[i]=0.0;
}
}
/**/
//右面
if(right==3)
{
kk[1][1]=0.0;
kk[1][2]=0.0;
kk[1][3]=0.0;
kk[2][1]=0.0;
kk[2][2]=righth*(sizew/numw)/3.0;
kk[2][3]=righth*(sizew/numw)/6.0;
kk[3][1]=0.0;
kk[3][2]=righth*(sizew/numw)/6.0;
kk[3][3]=righth*(sizew/numw)/3.0;
for(i=1;i<=numw;i++)
{
for(m=1;m<=3;m++)
{
hr=ejd[i*2*numl][m];
for(k=1;k<=3;k++)
{
hl=ejd[i*2*numl][k];
kz[hr][hl]=kz[hr][hl]+kk[m][k];
}
}
}
for(i=1;i<=numw;i++)
{
e=i*2*numl;
jj=ejd[e][2];
mm=ejd[e][3];
f21=righth*rightf*(sizew/numw)*(1.0/2.0);
f22=righth*rightf*(sizew/numw)*(1.0/2.0);
f[jj]=f[jj]-f21;
f[mm]=f[mm]-f22;
}
}
else if(right==2)
{
for(i=1;i<=numw;i++)
{
e=i*2*numl;
jj=ejd[e][2];
mm=ejd[e][3];
f21=rightq2*(sizew/numw)*(1.0/2.0);
f22=rightq2*(sizew/numw)*(1.0/2.0);
f[jj]=f[jj]-f21;
f[mm]=f[mm]-f22;
}
}
else if(right==1)
{
for(i=1;i<=numw+1;i++)
{
e=i*(numl+1);
f[e]=right1*10000000000*kz[e][e];
kz[e][e]=10000000000*kz[e][e];
}
}
else
{
for(i=1;i<=numw-1;i++)
{
e=(i+1)*(numl+1);
f[e]=0.0;
}
}
/**/
//下面
if(below==3)
{
kk[1][1]=0.0;
kk[1][2]=0.0;
kk[1][3]=0.0;
kk[2][1]=0.0;
kk[2][2]=belowh*(sizel/numl)/3.0;
kk[2][3]=belowh*(sizel/numl)/6.0;
kk[3][1]=0.0;
kk[3][2]=belowh*(sizel/numl)/6.0;
kk[3][3]=belowh*(sizel/numl)/3.0;
for(i=1;i<=numl;i++)
{
for(m=1;m<=3;m++)
{
hr=ejd[2*(numw-1)*numl+2*i-1][m];
for(k=1;k<=3;k++)
{
hl=ejd[2*(numw-1)*numl+2*i-1][k];
kz[hr][hl]=kz[hr][hl]+kk[m][k];
}
}
}
for(i=1;i<=numl;i++)
{
e=2*(numw-1)*numl+2*i-1;
jj=ejd[e][2];
mm=ejd[e][3];
f21=belowh*belowtf*(sizel/numl)*(1.0/2.0);
f22=belowh*belowtf*(sizel/numl)*(1.0/2.0);
f[jj]=f[jj]-f21;
f[mm]=f[mm]-f22;
}
}
else if(below==2)
{
for(i=1;i<=numl;i++)
{
e=2*(numw-1)*numl+2*i-1;
jj=ejd[e][2];
mm=ejd[e][3];
f21=belowq2*(sizel/numl)*(1.0/2.0);
f22=belowq2*(sizel/numl)*(1.0/2.0);
f[jj]=f[jj]-f21;
f[mm]=f[mm]-f22;
}
}
else if(below==1)
{
for(i=numw*(numl+1)+1;i<=jz;i++)
{
kz[i][i]=10000000000*kz[i][i];
f[i]=belowt1*kz[i][i];
}
}
else
{
for(i=numw*(numl+1)+1;i<=jz-1;i++)
{
f[i]=0.0;
}
}
/**/
//左面
if(left==3)
{
kk[1][1]=lefth*(sizew/numw)/3.0;
kk[1][2]=lefth*(sizew/numw)/6.0;
kk[1][3]=0.0;
kk[2][1]=lefth*(sizew/numw)/6.0;
kk[2][2]=lefth*(sizew/numw)/3.0;
kk[2][3]=0.0;
kk[3][1]=0.0;
kk[3][2]=0.0;
kk[3][3]=0.0;
/* for(j=1;j<=3;j++)
{
fprintf(fp2,"\n");
for(m=1;m<=3;m++)
{
fprintf(fp2,"%f",kk[j][m]);
}
fprintf(fp2,"%d\n",i);
}
*/
for(i=1;i<=numw;i++)
{
for(m=1;m<=3;m++)
{
e=(i-1)*2*numl+1;
hr=ejd[e][m];
fprintf(fp2,"%d\n",e);
for(k=1;k<=3;k++)
{
hl=ejd[e][k];
kz[hr][hl]=kz[hr][hl]+kk[m][k];
}
}
}
for(i=1;i<=numw;i++)
{
e=(i-1)*2*numl+1;
ii=ejd[e][1];
jj=ejd[e][2];
f21=lefth*leftf*(sizew/numw)*(1.0/2.0);
f22=lefth*leftf*(sizew/numw)*(1.0/2.0);
f[ii]=f[ii]-f21;
f[jj]=f[jj]-f22;
}
}
else if(left==2)
{
for(i=1;i<=numw;i++)
{
e=(i-1)*2*numl+1;
ii=ejd[e][1];
jj=ejd[e][2];
f21=leftq2*(sizew/numw)*(1.0/2.0);
f22=leftq2*(sizew/numw)*(1.0/2.0);
f[ii]=f[ii]-f21;
f[jj]=f[jj]-f22;
}
}
else if(left==1)
{
for(i=1;i<=numw+1;i++)
{
e=(i-1)*(numl+1)+1;
kz[e][e]=10000000000*kz[e][e];
f[e]=left1*kz[e][e];
}
}
else
{
for(i=1;i<=numw-1;i++)
{
e=(i)*(numl+1)+1;
f[e]=0.0;
}
}
/**/
//输出右端
for(j=1;j<=jz;j++)
{
// fprintf(fp2,"%d",j);
// fprintf(fp2,"\n");
// fprintf(fp2,"%f\n",f[j]);
}
fclose(fp2);
}
void CHapibirdView::Onbianjie()
{
dlg12 DLG1;
DLG1.DoModal();
up=DLG1.m_up;
uph=DLG1.m_uph;
upq2=DLG1.m_upq2;
upt1=DLG1.m_upt1;
uptf=DLG1.m_uptf;
right=DLG1.m_right;
righth=DLG1.m_righth;
rightq2=DLG1.m_rightq2;
right1=DLG1.m_right1;
rightf=DLG1.m_rightf;
below=DLG1.m_below;
belowh=DLG1.m_belowh;
belowq2=DLG1.m_belowq2;
belowt1=DLG1.m_belowt1;
belowtf=DLG1.m_belowtf;
left=DLG1.m_left;
lefth=DLG1.m_lefth;
leftq2=DLG1.m_leftq2;
left1=DLG1.m_left1;
leftf=DLG1.m_leftf;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -