资源简介
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个文件信息
- 上一篇:C++期末复习题
- 下一篇:C++ 大作业 超市收银系统
评论
共有 条评论