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

UDF新手请教

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

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

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

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-12-30 01:57:26 | 显示全部楼层

UDF新手请教

xx = x[1];
这获得的是y值啊,老大
把1改成0试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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