|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
大家好!
我在做一个模拟,模型如下,是一根很简单的圆柱。
长1000mm,底面半径为12.5mm。
在fluent中以左边的圆心为原点。
我现在要以某个点的温度来控制壁面的热流密度,当温度小于某值时,热流密度为1500,当温度大于这个值时,热流密度为0。
参考网上的一些内容,我写了一个UDF,如下:
#include "udf.h"
real tem;
DEFINE_ADJUST(get1_tem,d)
{
Thread *t;
cell_t c;
real xc[ND_ND];
thread_loop_c(t,d)
{
begin_c_loop(c,t)
{
C_CENTROID(xc,c,t);
if(sqrt(ND_SUM(pow(xc[0],2.), pow(xc[1]-0.0123,2.), pow(xc[2]-0.3,2.)))<0.0001)
/*求(0,0.0123,0.3)这个点的温度值*/
tem=C_T(c,t);
}
end_c_loop(c,t)
}
}
DEFINE_PROFILE(new_heat1,t,i)
{
face_t f;
begin_f_loop(f,t)
{
if(tem<=450.)
F_PROFILE(f,t,i) = 1500;
else
F_PROFILE(f,t,i) = 0;
}
end_f_loop(f,t)
}
我用的是解释型,fluent解释的时候没发生错误,具体使用的时候,发现边界的热流密度一直是1500。
我有几个问题
1,C_CENTROID这个函数求到的坐标是fluent scale mesh里的那个三维坐标吗。
2,我在scale mesh显示的是mm,在UDF里无论怎么样都是用m做单位的吗。
3,为满足要求这个udf合适吗,为什么我使用的时候热流密度一直是1500.
|
|