|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我在求解一个二维正方形大平板温度场问题时,Y轴正方向朝上,X轴正方向朝右,正方形网格左下角(0,0),右上角(10,10)。采用结构化网格,最上面的边温度300+100sin(pi*x/10),其余各个边都是300K,我使用UDF来定义最上边的温度函数,程序如下:
#include "udf.h"
DEFINE_PROFILE(temp_profile, t, i)
{
real x[ND_ND];
real xx;
face_t f;
begin_f_loop(f, t)
{
F_CENTROID(x,f,t);
xx = x[1];
F_PROFILE(f, t, i) = 300 + 100 * sin(0.31415926 * xx);
}
end_f_loop(f, t)
}
然后在定义边界温度的地方,对于最上面的那个边,不选择const,选择udf_temp_profile,照理说最上面的那个边(还有最底下的那个边)的温度就应该是函数的正弦变化吧?可是我这么做却怎么都不好用,计算完成后结果始终显示这两个边上的温度是300K(当然,由于最上面的边温度也成了300K,导致整个场都是300K);而如果把这个温度函数用在左右两个壁面的温度设定上,却可以正确的显示出两侧的边上的温度是期望的正弦变化,小弟忙活了一个下午也没搞明白,还请各位大虾不吝赐教,为小弟指点一二。 |
|