找回密码
 注册
查看: 1122|回复: 2

UDF新手请教

[复制链接]
发表于 2005-10-21 16:07:37 | 显示全部楼层 |阅读模式

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

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

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);而如果把这个温度函数用在左右两个壁面的温度设定上,却可以正确的显示出两侧的边上的温度是期望的正弦变化,小弟忙活了一个下午也没搞明白,还请各位大虾不吝赐教,为小弟指点一二。
发表于 2005-10-22 11:53:22 | 显示全部楼层

UDF新手请教

按照你所说的,你的上边界应该是随着x坐标变化。你的xx=x[1]好像错了,应该是xx=x[0],x[0]表示x轴坐标,x[1]表示y坐标。
 楼主| 发表于 2005-10-24 12:25:08 | 显示全部楼层

UDF新手请教

  太感谢了,已经可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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