24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1613  |  回复: 8

四滴火

铜虫 (正式写手)

[交流] 怎么把两个UDF合成一个?已有3人参与

一个fluent工程貌似只能有一个UDF文件吧?
我编了两个UDF,一个是入口速度变化udf,一个是入口温度变化udf,如下:
/*入口速度为 v=sint+1 ,t为时间*/
#include "udf.h"
DEFINE_PROFILE(unsteady_velocity,thread,position)
{        face_t f;
        begin_f_loop(f,thread)               
      {
                        real t=RP_Get_Real("flow-time";
                        F_PROFILE(f,thread,position)=1.+sin(t);
       }
        end_f_loop(f,thread)
}


/*入口温度为 出口的平均温度,t为时间*/
#include "udf.h"
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,4);
  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_PROFILE(inlet_T, t, i)   
{                                
    begin_f_loop(f,t)
      {
       F_PROFILE(f,t,i) = avg_temp;
       }
    end_f_loop(f,t)
}

以上两个udf怎么同时加载到fluent中使用啊?
或者怎么合成一个UDF文件呢?
回复此楼

» 猜你喜欢

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

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

四滴火

铜虫 (正式写手)

关键这个入口边界条件的速度和温度 都是随时间变化的
2楼2013-12-31 10:07:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
把所有代码放在一起。 然后把第二个的#include "udf.h"删除
3楼2013-12-31 10:26:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

四滴火

铜虫 (正式写手)

引用回帖:
3楼: Originally posted by kylafree at 2013-12-31 10:26:43
把所有代码放在一起。 然后把第二个的#include "udf.h"删除

那我不明白 F_PROFILE(f,thread,position)=1.+sin(t);这个系统怎么知道我是在给速度赋值?
怎么知道 F_PROFILE(f,t,i) = avg_temp;是给温度赋值?
求解,对udf了解不多
4楼2013-12-31 10:33:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
4楼: Originally posted by 四滴火 at 2013-12-31 10:33:53
那我不明白 F_PROFILE(f,thread,position)=1.+sin(t);这个系统怎么知道我是在给速度赋值?
怎么知道 F_PROFILE(f,t,i) = avg_temp;是给温度赋值?
求解,对udf了解不多...

UDF编译后,不是还要HOOK到对应的地方吗? 要不然如何起作用?
5楼2013-12-31 10:50:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

奔跑鱼

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
其实就是,你DEFINE_PROFILE宏中的第一个不是名称嘛。。UDF name,你定义好并且编译进去之后,应该在边界条件里选择UDF边界条件并且选择对应的UDF name才行。
合并成一个之后,name有两个unsteady_velocity,inlet_T,到时候选择就行了啊。
6楼2013-12-31 12:58:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

四滴火

铜虫 (正式写手)

引用回帖:
5楼: Originally posted by kylafree at 2013-12-31 10:50:20
UDF编译后,不是还要HOOK到对应的地方吗? 要不然如何起作用?...

明白了谢谢,原来编译好一个udf会把文件里所有宏生成,不同名字,可以分别给温度和速度
7楼2013-12-31 14:41:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

四滴火

铜虫 (正式写手)

引用回帖:
6楼: Originally posted by 奔跑鱼 at 2013-12-31 12:58:05
其实就是,你DEFINE_PROFILE宏中的第一个不是名称嘛。。UDF name,你定义好并且编译进去之后,应该在边界条件里选择UDF边界条件并且选择对应的UDF name才行。
合并成一个之后,name有两个unsteady_velocity,inlet ...

明白了谢谢,原来编译好一个udf会把文件里所有宏生成,不同名字,可以分别给温度和速度
8楼2013-12-31 14:41:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanfake

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
原来你在这里找到解决方法了,我也试试,不断进步...
9楼2014-01-01 16:52:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 四滴火 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见