⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 new text document.txt

📁 板结构,满足三类边界条边,热源在外部 ,用vc++编写工程文件很大,源程序里的主函数同大家分享
💻 TXT
📖 第 1 页 / 共 2 页
字号:
	         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 + -