24小时热门版块排行榜    

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

sailote

铁虫 (初入文坛)

[求助] 用udf实现出口温度赋值给进口温度已有1人参与

最近在搞一个非稳态算例,前一时刻流体出口面的平均温度赋值给当前时刻的进口面。初始状态时,流体区域平均分成前后两个区域,前后的温度不一样。
我网上搞了一个udf(如下),计算中,用monitor监控进口和出口的平均温度,每10个时间步长输出一次。发现两者温度曲线相差很大,如图所示(纵坐标为平均温度K,横坐标为时间步长)。请问是这个udf的问题还是怎啦?
real NV_VEC(A);
real avg_temp;
real sum_T_A=0.0;
real sum_A=0.0;
Thread *thread_out;
face_t f;
Domain *domain;
DEFINE_ADJUST(adjust,d)
{domain=Get_Domain(1);
thread_out=Lookup_Thread(domain,14);/14是出口面的id/
begin_f_loop(f,thread_out)
{ F_AREA(A,f,thread_out);
sum_A+=NV_MAG(A);                 
sum_T_A+=NV_MAG(A)*F_T(f, thread_out);
}
end_f_loop(f,thread_out)
avg_temp=sum_T_A/sum_A;
}
DEFINE_PROFLIE(inlet_T,t,i)
{begin_f_loop(f,t)
{F_PROFILE(f,t,i) = avg_temp;
}
end_f_loop(f,t)
}

用udf实现出口温度赋值给进口温度
1212.JPG
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

sailote

铁虫 (初入文坛)

引用回帖:
4楼: Originally posted by woshihuolei at 2014-05-15 09:59:34
如果是前一时刻赋给当前时刻的话应该是用DEFINE_EXECUTE_AT_END的吧  DEFINE_ADJUST是每次迭代都计算一次

请问如何使用DEFINE_EXECUTE_AT_END,有没有使用的例子
5楼2014-05-15 13:11:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

sailote

铁虫 (初入文坛)

后来我怀疑是不是DEFINE_PROFLIE这个有问题,所以把udf改成如下,发现结果像之前一样(上图所示)
Thread *thread_in;
Thread *thread_out;
face_t f;
Domain *domain;
real avg_temp;
real sum_T_A=0.0;
real sum_A=0.0;
real NV_VEC(A);
DEFINE_ADJUST(adjust,d)
{
        domain=Get_Domain(1);
        thread_in=Lookup_Thread(domain,15); /*15是进口面的id*/
        thread_out=Lookup_Thread(domain,14); /*14是出口面的id*/
        begin_f_loop(f,thread_out)
        {
                F_AREA(A,f,thread_out);
                sum_A+=NV_MAG(A);
                sum_T_A+=NV_MAG(A)*F_T(f, thread_out);
        }
        end_f_loop(f,thread_out)
        avg_temp=sum_T_A/sum_A;
        begin_f_loop(f,thread_in)
        {
                F_T(f,thread_in) = avg_temp;
        }
        end_f_loop(f,thread_in)
}
2楼2014-05-14 15:04:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshihuolei

银虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
sailote: 金币+1, 有帮助 2014-05-15 14:07:56
如果是前一时刻赋给当前时刻的话应该是用DEFINE_EXECUTE_AT_END的吧  DEFINE_ADJUST是每次迭代都计算一次
4楼2014-05-15 09:59:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshihuolei

银虫 (小有名气)

引用回帖:
5楼: Originally posted by sailote at 2014-05-15 13:11:22
请问如何使用DEFINE_EXECUTE_AT_END,有没有使用的例子...

建议看fluenthelp找一下每个宏的用法
6楼2014-05-15 18:44:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见