UDF编译出错,不知道是程序的问题还是环境变量的问题
-
程序如下所示,是照着用户手册抄过来的,编译的时候出错了,不明白什么原因
#include"udf.h" #define YMIN 0.0 //CONSTANTS// #define YMAX 0.4064 #define UMEAN 1.0 #define B 1.0/7.0 #define DELOVRH 0.5 #define VISC 1.7894e-05 #define CMU 0.09 #define VKC 0.41 //profile for x-velocity// DEFINE_PROFILE(x_velocity,t,i) { real y, del, h, x[ND_ND], ufree; //variable declarations// face_t f; h = YMAX - YMIN; del = DELOVRH * h; ufree = UMEAN * (B + 1.0); begin_f_loop(f,t) { F_CENTROID(x,f,t); y = x[1]; if (y <= del) F_PROFILE(f,t,i) = ufree*pow(y/del,B); else F_PROFILE(f,t,i) = ufree*pow((h-y)/del,B); } end_f_loop(f,t) } //profile for kinetic energy// DEFINE_PROFILE(k_profile,t,i) { real y, del, h, x[ND_ND], ufree; real ff, utau, knw, kinf; face_t,f; h = YMAX - YMIN; del = DELOVRH * h; ufree = UMEAN * (B + 1.0); ff = 0.045 / pow(ufree * del/VISC, 0.25); utau = sqrt(ff * pow(ufree, 2.0)); befin_f_loop(f,t) { F_CENTROID(x,f,t); y = x[1]; if (y <= del) F_PROFILE(f,t,i) = knw + y/del * (kinf - knw); else F_PROFILE(f,t,i) = knw + (h-y)/del * (kinf - knw); } end_f_loop(f,t) }
-
@noodles 解决方案:
具体过程可以参考这个文章-
从Microsoft 官网下载 软件开发补丁: NET Framework 2.0 Software Development Kit (SDK) (x64)
-
安装补丁
-
从开始快捷键中 以管理员身份运行 SDK 命令行,SDK Command Prompt
-
命令行中 切换至fluent 启动项位置,运行fluent
-
切换fluent工作目录至case 目录,运行。
-
udf 成功运行
因此推断 在编译过程中有点问题,可能还是VS与 fluent 之间配合不好。 在编译完成之后udf即可正常运行。
-