使用DEFINE_ON_DEMAND编译完成之后出现一些问题
-
我使用DEDINE_ON_DEMAND,目的是为了输出网格点坐标,在fluent完成了build,也完成了load。但是在excute on demand 里面发现 什么也没有,到目前不知道是为啥。
代码如下:#include "udf.h" struct Point { double x ; double y ; #if RP_3D double z ; #endif } ; DEFINE_ON_DEMAND(Read_point) { FILE * fp ; Thread * t ; Domain * domain ; cell_t c ; Node * node ; int n ; struct Point point ; domain = Get_Domain(1) ; fp = fopen ("data.txt" , "a+") ; fprintf(fp, "x y"); #if RP_3D fprintf(fp , " z") ; #endif fprintf(fp , "\n"); Thread_loop_c(t , domain) { begin_c_loop(c , t) { c_node_loop(c , t , n) { node = C_NODE(c, t, n); point.x = NODE_X(node); point.y = NODE_Y(node); #if RP_3D point.z = NODE_Z(node); #endif fprintf(fp , "%g %g" , point.x , point.y) ; #if RP_3D fprintf(fp , " %g" , point.z) ; #endif } } end_c_loop(c ,t) } fclose (fp) ; }
-
@csfine thread_loop_c的首字母要小写,下面这个可以跑
#include "udf.h" #include <stdio.h> DEFINE_ON_DEMAND(Read_point) { FILE *fp; Thread *t; Domain *domain; cell_t c; Node *node; int n; domain = Get_Domain(1) ; fp = fopen("data.txt", "a+"); fprintf(fp, "x y"); #if RP_3D fprintf(fp , " z") ; #endif fprintf(fp, "\n"); thread_loop_c(t, domain) { begin_c_loop(c, t) { c_node_loop(c, t, n) { node = C_NODE(c, t, n); double x = NODE_X(node); double y = NODE_Y(node); #if RP_3D double z = NODE_Z(node); fprintf(fp, "%g %g %g\n", x, y, z); #else fprintf(fp, "%g %g\n", x, y); #endif } } end_c_loop(c, t); } fclose(fp); }