• 大小: 3.33MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-22
  • 语言: C/C++
  • 标签: Simple算法  

资源简介

Simple算法3个典型算例,详细讲解。二维、结构网格单相流SIMPLE 算法的C语言实现。

资源截图

代码片段和文件信息

//#include “engine.h“
//#include “matrix.h“

#include “global_var.h“ 

void user_could_reset_some_setting_here()
{
 char *string=“-=temprature=-“;
 last=1;       //迭代次数改为10
 lsolve[4]=1;   //求解温度场
 lprint[4]=1;   //打印温度场
 title[4]=strdup(string);  //给出f[i][j][3]的说明字符串
 xl=1.0;        //求解域 x方向宽度=1.0 
 yl=2.0;        //求解域 y方向宽度=2.0 
 l1=7;    
 m1=7;          
 }

void user_generate_velocity_grid()  //速度u v的控制网格
{  int ij;
   double dxdy;  
   xu[2]=0;       //  第二个主控制容积在x方向的w界面位置,即速度u(ij)所在位置的x坐标=0   
                  //  难道说,第一个控制容积留给了虚拟的边壁? -=???=-
   dx=xl/(double)(l1-2);  // x方向上的网格宽度
   for (i=3;i<=l1;i++)  // l1-1就是最后一个控制体(虚拟边界控制体)的i坐标了。
                   //计数的习惯与C的数组的序列号保持一致,从0开始。
   {
   xu[i]=xu[i-1]+dx; //网格在x方向是均匀,所以第三列~第七列控制容积的w面简单以dx递增
   }
   // NOTE : xu[1] 没有被赋值
   yv[2]=0;
   dy=yl/(double)(m1-2);
   for (j=3;j<=m1;j++) 
   {
   yv[j]=yv[j-1]+dy;
   }
   // NOTE : yv[1] 没有被赋值
}

void user_correct_density()
{}

void user_bound_condition_setup()
{}


void user_output()
{   
//fprintf(filehandle8“\niter=%3d  SMAX=%7.3f  SSUM=%9.4f  v(47)=%9.4f   T(47)=%9.4f   F(473)=%9.4f\n“itersmaxssumv(47)t(47)f[4][7][3]);
fprintf(filehandle8“\niter==%3d time=%7.3f\n“itertime); printinfo();
   /* user_plot();*/
}


void user_gamsor()
{   int ij;
if (iter>0) return;
for (j=1;j<=m1;j++)
     for (i=1;i<=l1;i++)
    gam(ij)=1;  
}

void user_initial_grid_value()
{   

int ij;
    for (j=1;j<=m1;j++)
     for (i=1;i<=l1;i++)
  {  
  t(ij)=0;     //#define t(ij)   (f[i][j][4])
          if ((i==1)||(i==l1)||(j==1)||(j==m1) )
  t(ij)=(x[i]+y[j]+x[i]*y[j]);
 
  }
}

void give_matlab_a_double_matrix(Engine* ep char * matrix_name int matrix_x_dimension int matrix_y_dimension double * databuffer) 
{   mxArray *T;
T=mxCreateDoubleMatrix(matrix_x_dimensionmatrix_y_dimensionmxREAL);
mxSetName(T matrix_name);
memcpy((void*)mxGetPr(T)(void*)databuffermatrix_x_dimension*matrix_y_dimension*sizeof(double));
engPutArray(ep T);
    mxDestroyArray(T);
}

void give_matlab_a_interger(Engine* ep char * matrix_name int data)
{ char matlabsentence[255];
  sprintf(matlabsentence“%s=%d;“matrix_namedata);
  engEvalString(epmatlabsentence);
}

void user_plot() //MATLAB画图
{  
   
       int ijmatrixcountmaincv_ibegmaincv_iendmaincv_jbegmaincv_jend;
       double matrixX[MAXGRIDSIZE*MAXGRIDSIZE]matrixY[MAXGRIDSIZE*MAXGRIDSIZE]matrixT[MAXGRIDSIZE*MAXGRIDSIZE];
    static Engine *ep;
      
  maincv_ibeg=1;
      maincv_iend=l1-1;
      maincv_jbeg=1;
      maincv_jend=m1-1;   

   if (iter==0)
  {
  ep = engOpen(NULL);
      
  }
 
    
matrixcount=0;
for (j=maincv_jbeg;j<=maincv_jend;j++)
   for (i=maincv_ibeg;i<=maincv_iend;i++)
     {
   matrixX[matrixcount]=x[i];
           matrixY[matrixcount]=y[j];
   matrixT[matrixcount]=t(ij);
   matrixcount++;
            

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-08-06 08:48  SIMPLE_C语言\
     目录           0  2012-08-11 08:53  SIMPLE_C语言\exam1\
     目录           0  2012-08-06 08:48  SIMPLE_C语言\exam10\
     文件       10502  2002-12-03 22:02  SIMPLE_C语言\exam10\exam10.c
     文件        9637  2002-12-01 21:32  SIMPLE_C语言\exam10\global_var.h
     文件        6094  2000-01-11 12:21  SIMPLE_C语言\exam10\libeng.lib
     文件        7908  2000-01-11 12:22  SIMPLE_C语言\exam10\libmat.lib
     文件       37538  2000-01-11 12:21  SIMPLE_C语言\exam10\libmx.lib
     文件        1567  2002-11-09 13:49  SIMPLE_C语言\exam10\printdebuginfo.c
     文件        3400  2002-11-18 11:03  SIMPLE_C语言\exam10\printinfo.c
     文件        1251  2002-11-17 18:29  SIMPLE_C语言\exam10\setup0.c
     文件        2689  2002-11-19 10:29  SIMPLE_C语言\exam10\setup1.c
     文件       10903  2002-12-05 11:36  SIMPLE_C语言\exam10\setup2.c
     文件         612  2002-12-03 10:25  SIMPLE_C语言\exam10\simple.c
     文件        5293  2002-12-06 03:44  SIMPLE_C语言\exam10\simple_c.dsp
     文件         539  2002-11-04 15:32  SIMPLE_C语言\exam10\simple_c.dsw
     文件      134144  2002-12-05 11:36  SIMPLE_C语言\exam10\simple_c.ncb
     文件         916  2002-11-20 15:20  SIMPLE_C语言\exam10\simple_c.sln
     文件        8704  2002-12-05 11:36  SIMPLE_C语言\exam10\simple_c.suo
     文件        4244  2002-12-02 14:51  SIMPLE_C语言\exam10\simple_c.vcproj
     文件        4705  2002-12-01 15:42  SIMPLE_C语言\exam10\solve.c
     文件        5870  2002-11-10 01:10  SIMPLE_C语言\exam10\vs7libeng.lib
     文件        7684  2002-11-10 01:09  SIMPLE_C语言\exam10\vs7libmat.lib
     文件       37314  2002-11-10 01:09  SIMPLE_C语言\exam10\vs7libmx.lib
     目录           0  2012-08-11 08:54  SIMPLE_C语言\exam1\Debug\
     文件        7320  2012-08-11 08:54  SIMPLE_C语言\exam1\Debug\BuildLog.htm
     文件       15929  2012-08-01 22:03  SIMPLE_C语言\exam1\Debug\exam1.obj
     文件           0  2012-08-11 08:54  SIMPLE_C语言\exam1\Debug\exam1.sbr
     文件          65  2012-08-11 08:53  SIMPLE_C语言\exam1\Debug\mt.dep
     文件       14299  2012-08-01 22:03  SIMPLE_C语言\exam1\Debug\printdebuginfo.obj
     文件           0  2012-08-01 22:03  SIMPLE_C语言\exam1\Debug\printdebuginfo.sbr
............此处省略101个文件信息

评论

共有 条评论

相关资源