找回密码
 注册
查看: 5011|回复: 3

UDF简单问题求教!

[复制链接]
发表于 2010-1-29 00:51:56 | 显示全部楼层 |阅读模式

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

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

x
大虾们好,我编写了下面这段UDF,用来求本地应力和速度产生的摩擦热,可以编译通过,但是每当使用的时候fluent就会产生fatal signal无法运行 ,请问各位大侠有什么解决办法没有?
代码如下:
#include "udf.h"
#include "mem.h"

DEFINE_PROFILE(wall_heat_generation,t,i)

{
        real wall_shear_stress;
        real wall_shear_force, area;
        face_t f;
        real A[ND_ND];
          real delta_v = 0;
          real x[ND_ND];
          real theta = 0.2; /* the slipping coefficient */
          real r;
          real w = 1300; /*Rotational speed*/
        cell_t c0;
        Thread *t0;

        Domain *d;

        d=Get_Domain(1);

/* Calculate wall shear stress */

        begin_f_loop(f,t)

        {
                F_AREA(A,f,t);
                area = NV_MAG(A);
                wall_shear_force = NV_MAG(F_STORAGE_R_N3V(f,t,SV_WALL_SHEAR));
                c0 = F_C0(f,t);
                t0 = THREAD_T0(t);
                wall_shear_stress = wall_shear_force/area;
                F_CENTROID(x,f,t);
                r = sqrt(pow(x[0],2) + pow(x[1],2));
                delta_v = (1 - theta)*w*r; /*local velocity*/
                F_PROFILE(f, t, i) = wall_shear_stress*delta_v/0.0005;
        }

        end_f_loop(f,t)

}
 楼主| 发表于 2010-1-29 16:13:23 | 显示全部楼层
请问没人了解这方面的问题吗?
发表于 2010-1-30 11:35:24 | 显示全部楼层
我觉得你要先确定是不是程序本身的问题造成的。比如单机并行的话须要用并行格式的udf。
下面这些语句有用到吗?如果没用到尽量使程序简化,然后进行调试发现问题所在。
cell_t c0;
Thread *t0;
Domain *d;
d=Get_Domain(1);

c0 = F_C0(f,t);
t0 = THREAD_T0(t);
 楼主| 发表于 2010-1-30 18:17:34 | 显示全部楼层
原帖由 swimming02 于 2010-1-30 11:35 发表
我觉得你要先确定是不是程序本身的问题造成的。比如单机并行的话须要用并行格式的udf。
下面这些语句有用到吗?如果没用到尽量使程序简化,然后进行调试发现问题所在。
cell_t c0;
Thread *t0;
Domain *d;
d= ...


关键是我把wall_shear_force = NV_MAG(F_STORAGE_R_N3V(f,t,SV_WALL_SHEAR));的值变成常数就可以没问题的运行了
所以我就开始怀疑是不是NV_MAG(F_STORAGE_R_N3V(f,t,SV_WALL_SHEAR))有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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