找回密码
 注册
查看: 2270|回复: 1

请教gallongallon

[复制链接]
发表于 2006-11-17 14:21:39 | 显示全部楼层 |阅读模式

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

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

x
您好!
我针对表面张力,编写了C程序如下:
DEFINE_PROFILE(x_surfacestress, t, i)
{
real x[ND_ND],A[ND_ND];
real K_seg, surface_tension_gradient, temp_gradient, surface_tension, temp;
face_t f;
Thread *t0=THREAD_T0(t);
/* Do nothing if areas aren';t computed yet or not next to fluid. */
    if (!Data_Valid_P()||!FLUID_THREAD_P(t0)) return;
    begin_f_loop(f, t)
{
cell_t c0=F_C0(f,t);
        temp=C_T(c0,t0);
K_seg=kl*exp(-H0/(R*temp));
        surface_tension_gradient=-A-R*S*log(1.0+K_seg*ai)-K_seg*ai/(1.0+K_seg*ai)*S*H0/temp;
temp_gradient=C_T_G(c0,t0)[0];
surface_tension=surface_tension_gradient*temp_gradient;
F_AREA(A,C_FACE(c0,t0,i),C_FACE_THREAD(c0,t0,i));
if(temp>Tl)
    F_PROFILE(f, t, i)=surface_tension/A[0];
    else
    F_PROFILE(f,t,i)=0.0;
}
end_f_loop(f, t);
}
解释一下:表面张力=dF/dT*dT/dx
由于F_T_G()不存在,所以利用C_T_G()来表示dT/dx,所以有temp_gradient=C_T_G(c0,t0)[0];
上面的udf链接到wall面板中的specific stress中,注意到链接的应该是压强(帕),所以还要将表面张力除以相应的面积,得到压强。故而有F_AREA(A,C_FACE(c0,t0,i),C_FACE_THREAD(c0,t0,i));
现在的问题是:编译通过,初始化也通过,但是迭代开始后仅仅几步Fluent求解器就求解不了了,这时在残差曲线中仅仅有温度的。
请问:该如何考虑这个问题呢?或者是我的udf编写的不合理?
谢谢!
发表于 2006-11-18 13:18:26 | 显示全部楼层

请教gallongallon

贴求解不了的出错信息
还有问题描述清楚,现在还不大懂你做这种什么目的,所以UDF有没有达到目的我不好说
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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