24小时热门版块排行榜    

查看: 1113  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhyg1818

新虫 (初入文坛)

[求助] 小弟刚开始学习udf,可是用udf算出的和自己一步一步算的不一样,跪求大神指导 已有1人参与

模型是这样的,热流密度随时间是变化的。第一天上半天热流密度是60w/㎡,下半天没有热流密度。第二天上半天热流密度80,下半天没有热流密度。
一、我是自己一步一步算的,算了四次。第一次热流密度是60。步长是10800s(八分之一天),步数是4.第二次是热流密度为0。步长10800s,步数4。第三次热流密度80,步长10800s,步数4 。第四次热流密度0,步长10800s,步数4。这样两天的工况就算完了。
二、直接用udf算。步长10800s(1/8天),步数16。如下:
#include "udf.h"
#define Const 86400


DEFINE_PROFILE(heat_flux, thread, index)

{ real xc[ND_ND];
  face_t f;
  real t;
  real heat;
  
  t = RP_Get_Real("flow-time";
   begin_f_loop(f,thread)
  {
     F_CENTROID(xc,f,thread);
     if(t<0.5*Const)
       heat =60;
     if(t<1*Const && t<1.5*Const)
       heat =80;
     else
       heat = 0;
     F_PROFILE(f,thread,index) = heat;
  }
  end_f_loop(f,thread)
}

但是两种方法最后的结果不一样
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhyg1818

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by malasong9471 at 2016-10-11 12:14:22
1.步长设定是为了收敛,收敛了才能调大大步长2.设置监测点,监测热流

好的,再试试

发自小木虫IOS客户端
7楼2016-10-11 12:41:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

Tegrey

新虫 (初入文坛)

你设置个监视器 监视一下 热流随时间的变化 看你的udf和之前一样不一样呗
2楼2016-10-11 11:08:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

malasong9471

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
1.步长设置问题,10800s是合适步长吗?
2.udf问题  要理解清楚 real t = RP_Get_Real("flow-time");
if(t<3600*12)
       heat =60;
     if(t<3600*24 && t<3600*36)
       heat =80;
     else
       heat = 0;
这样udf计算的时间就只与flowtime相关,而不是步长
3楼2016-10-11 11:11:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

malasong9471

木虫 (正式写手)

【答案】应助回帖

地源热泵/地埋管间歇运行UDF程序 - 仿真模拟 - 小木虫论坛
http://muchong.com/bbs/viewthread.php?tid=10283915
4楼2016-10-11 11:12:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见