找回密码
 注册
查看: 3114|回复: 2

请教fluent软件中对网格的编号是什么样的?

[复制链接]
发表于 2005-7-28 21:12:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
想知道网格中某个位置上的网格编号,怎么办???
请教哥哥姐姐们
发表于 2005-7-29 12:37:27 | 显示全部楼层

请教fluent软件中对网格的编号是什么样的?

这个程序简单,不过做起来还是很辛苦的
int is_node_in_cell(double x[3],cell_t c,Thread* t){
double* area_f;
double* dist;
int n,i;
double percent=0;
double vol=C_VOLUME(c,t);
area_f=(double*)malloc(sizeof(double)*n);
dist=(double*)malloc(sizeof(double)*n);
for(i=0;i<n;i++){
face_t f=C_FACE(c,t,i);
Thread* ft=C_FACE_THREAD(c,t,i);
double area[3],c1,c2,cen[3]; //Message("\nface:%d,ft:%d",f,ft);
F_AREA(area,f,ft);    // Message("\n1");
area_f=NV_MAG(area);  // Message("\n2");
F_CENTROID(cen,f,ft); //Message("\n3");
c1=NV_DOT(area,cen); //Message("\n4");
c2=NV_DOT(area,x);    // Message("\n5");
dist=fabs(c1-c2)/NV_MAG(area);//Message("\n6");
}
//Message("\nx %f %f %f",x[0],x[1],x[2]);
//Message("\n face number, vol %d %f ",n,vol);
for(i=0;i<n;i++)percent+=area_f*dist;percent/=3*vol;
free(area_f);
free(dist);
//Message("\n x0,x1,x2:%f,%f,%f, percent:%f",x[0],x[1],x[2],percent);
if(fabs(percent-1)<1e-5)return 1;
else return 0;
}
发表于 2005-7-29 12:39:03 | 显示全部楼层

请教fluent软件中对网格的编号是什么样的?

int is_node_in_cell(double x[3],cell_t c,Thread* t){
//face_t *f;
//Thread** tf;
double* area_f;
double* dist;
int n,i;
double percent=0;
double vol=C_VOLUME(c,t);
//x[0]=x[1]=x[2]=0;
n=C_NFACES(c,t);
//Message("\n vol:%f  n:%d",vol,n);
area_f=(double*)malloc(sizeof(double)*n);
dist=(double*)malloc(sizeof(double)*n);
for(i=0;i<n;i++){
face_t f=C_FACE(c,t,i);
Thread* ft=C_FACE_THREAD(c,t,i);
double area[3],c1,c2,cen[3]; //Message("\nface:%d,ft:%d",f,ft);
F_AREA(area,f,ft);    // Message("\n1");
area_f=NV_MAG(area);  // Message("\n2");
F_CENTROID(cen,f,ft); //Message("\n3");
c1=NV_DOT(area,cen); //Message("\n4");
c2=NV_DOT(area,x);    // Message("\n5");
dist=fabs(c1-c2)/NV_MAG(area);//Message("\n6");
}
//Message("\nx %f %f %f",x[0],x[1],x[2]);
//Message("\n face number, vol %d %f ",n,vol);
for(i=0;i<n;i++)percent+=area_f*dist;percent/=3*vol;
free(area_f);
free(dist);
//Message("\n x0,x1,x2:%f,%f,%f, percent:%f",x[0],x[1],x[2],percent);
if(fabs(percent-1)<1e-5)return 1;
else return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表