找回密码
 注册
查看: 2392|回复: 6

写出变量的UDF编译成功后,没有执行,求助啊

[复制链接]
发表于 2015-1-13 19:12:54 | 显示全部楼层 |阅读模式

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

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

x
#include"udf.h"
static real vn=0.0;
FILE * fp;
Thread *dt;
Domain *domain;
DEFINE_EXECUTE_AT_END (execute_at_end)
{
        int n;
dt=Lookup_Thread(domain,25);
fp=fopen("D:\\temp\\simulation","a_v");
fprintf(fp,"% E\n",vn);
fclose(fp);
}
DEFINE_CG_MOTION(dynamic_cylinder,dt,vel,omega,time,dtime)
{
vn=8*sin(5*time);
vel[1]=vn;
}
这是个输出速度文件的udf,成功编译,动网格也在动,但是DEFINE_EXECUTE_AT_END这个宏没有执行,没有写出文件。(成功load后,在Function Hook中没有显示该宏的存在)求高人指点,多谢啦!
发表于 2015-1-14 10:46:50 | 显示全部楼层
这个应该是在计算完之后才执行的,直接把这个功能放在cg宏里不就行了??

fluent培训

点评

多谢哈,你是说这样? #include"udf.h" static real vn=0.0; FILE * fp; Thread *dt; Domain *domain; real c_1,c_2; DEFINE_CG_MOTION(dynamic_cylinder,dt,vel,omega,time,dtime) { vn=5*sin(5*time);  详情 回复 发表于 2015-1-14 14:44
 楼主| 发表于 2015-1-14 14:44:51 | 显示全部楼层
cfd-soft 发表于 2015-1-14 10:46
这个应该是在计算完之后才执行的,直接把这个功能放在cg宏里不就行了??

fluent培训


多谢哈,你是说这样?
#include"udf.h"
static real vn=0.0;
FILE * fp;
Thread *dt;
Domain *domain;
DEFINE_CG_MOTION(dynamic_cylinder,dt,vel,omega,time,dtime)
{
        vn=5*sin(5*time);
        vel[1]=vn;
DEFINE_EXECUTE_AT_END(execute_at_end)
{
        int n;
        fp=fopen("D:\\temp\\shiyan","a_v");
        fprintf(fp,"% E\n",vn);
        fclose(fp);
}
}
但是出现错误了:error C2143:语法错误,缺少 “; " (在”类型“的前面)
不应该啊,请您指点下,多谢啦~~

发表于 2015-1-15 10:23:35 | 显示全部楼层
我的意思是不要DEFINE_EXECUTE_AT_END(execute_at_end)了


fluent培训

点评

#include"udf.h" static real vn=0.0; int n; FILE * fp; Thread *dt; Domain *domain; DEFINE_CG_MOTION(dynamic_cylinder,dt,vel,omega,time,dtime) { vn=5*sin(5*time); vel[1]=vn;  详情 回复 发表于 2015-1-15 11:12
#include"udf.h" static real vn=0.0; int n; FILE * fp; Thread *dt; Domain *domain; DEFINE_CG_MOTION(dynamic_cylinder,dt,vel,omega,time,dtime) { vn=5*sin(5*time); vel[1]=vn;  详情 回复 发表于 2015-1-15 11:11
 楼主| 发表于 2015-1-15 11:11:26 | 显示全部楼层
cfd-soft 发表于 2015-1-15 10:23
我的意思是不要DEFINE_EXECUTE_AT_END(execute_at_end)了

#include"udf.h"
static real vn=0.0;
int n;
FILE * fp;
Thread *dt;
Domain *domain;
DEFINE_CG_MOTION(dynamic_cylinder,dt,vel,omega,time,dtime)
{
        vn=5*sin(5*time);
        vel[1]=vn;
                fp=fopen("D:\\temp\\shiyan","a_v");
        fprintf(fp,"% E\n",vn);
        fclose(fp);
}
是这样吗?但是新问题又出现了,编译成功后,当我计算时,fluent 闪退了,在电脑屏幕上完全消失了,试了还几次,只要运行 写出数据 (如fp=fopen("D:\\temp\\shiyan","a_v");)的udf 就出现这个问题,能帮帮我吗?
 楼主| 发表于 2015-1-15 11:12:23 | 显示全部楼层
cfd-soft 发表于 2015-1-15 10:23
我的意思是不要DEFINE_EXECUTE_AT_END(execute_at_end)了

#include"udf.h"
static real vn=0.0;
int n;
FILE * fp;
Thread *dt;
Domain *domain;
DEFINE_CG_MOTION(dynamic_cylinder,dt,vel,omega,time,dtime)
{
        vn=5*sin(5*time);
        vel[1]=vn;
                fp=fopen("D:\\temp\\shiyan","a_v");
        fprintf(fp,"% E\n",vn);
        fclose(fp);
}
是这样吗?但是新问题又出现了,编译成功后,当我计算时,fluent 闪退了,在电脑屏幕上完全消失了,试了还几次,只要运行 写出数据 (如fp=fopen("D:\\temp\\shiyan","a_v");)的udf 就出现这个问题,能帮帮我吗?
发表于 2015-1-16 09:11:07 | 显示全部楼层
那你重点检查这一句,好像是单斜杠,不是双斜杠


fluent培训

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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