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

从fluent 中导出数据的udf 怎么写呢

[复制链接]
发表于 2005-7-15 16:35:08 | 显示全部楼层 |阅读模式

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

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

x
热烈祝贺 udf 版成立, 实在是太好了,
发表于 2005-7-27 19:59:52 | 显示全部楼层

从fluent 中导出数据的udf 怎么写呢

这个例子讲fluent中温度读出,写成fepg的unod文件:
void write_unod_file(){
static int leng=0;
int act_len;
char* pc;
FILE *fp;
double* p;
int i,j;
if(leng==0){
int a[1024];
int len;
fp=fopen(".\\unod","rb");
if(fp==0)Message("\ncan NOT find the unod file");
do{
len=fread(a,1,1024,fp);
leng+=len;
}while(len==1024);
fclose(fp);
}                  //Message("\nleng:%d",leng);     //  Message("\nknode:%d",fepg_knode);
p=(double*)malloc(/*sizeof(double)*/leng);
for(i=0;i<fepg_knode;i++){
double tg[3];
p=C_T(cell_id,solid_thread);         //  Message("\nnode_tem:%f",p);
NV_V(tg,=,C_T_RG(cell_id,solid_thread));  //
p+=tg[0]*dr[0]+tg[1]*dr[1]+tg[2]*dr[2];
}
//format the p array for the fortran file format
pc=(char*)p;                                            // Message("\n1");
act_len=fepg_knode*sizeof(double);
for(i=0;i<act_len; ){
int n;
char ch=(char)0x81;
if(act_len-i<0x80) ch=(char)(act_len-i+1);
n=(int)ch-1;//length of data
if(n<0) n+=256;
for(j=act_len+1;j>i+n+1;j--) pc[j]=pc[j-2];
pc[i+n+1]=ch;
for(j=i+n;j>i;j--) pc[j]=pc[j-1];
pc=ch;
i+=n+2;
act_len+=2;
}
//add 4b                        
for( i=0;i<act_len;i++)pc[act_len-i]=pc[act_len-i-1];  // Message("\n2");
pc[0]=(char)0x4b;
act_len++;
//add 0x82
pc[act_len++]=(char)0x82;
//
{FILE *f;
char fn[100]=".\\unod.";  // Message("\n3");
//i_to_a(N_TIME,fn+7,10);
i_to_a(fn+7,N_TIME);
f=fopen(fn,"w");
if(f==0)Message("\n\ncan NOT open the unod file");
fwrite(pc,act_len,1,f);
fclose(f);
}
free(p);
}
发表于 2006-5-14 16:13:26 | 显示全部楼层

从fluent 中导出数据的udf 怎么写呢

看不懂啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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