24小时热门版块排行榜    

查看: 5966  |  回复: 13

sfbook

银虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
歪歪_crazy: 金币+100, ★★★★★最佳答案 2016-12-01 17:05:41
引用回帖:
10楼: Originally posted by 歪歪_crazy at 2016-12-01 10:27:57
首先,我试验了一下,确实如你所说的,DEFINE_SOURCE 是自带循环的,但是它的循环应该是针对每一个 cell ,也就是说没有一个 cell ,它会循环一次,而嵌在其中的 Loop 循环也会循环一次,并且每次循环得到的也是我先 ...

同学,我感觉你需要系统的学习一下C语言和UDF的编程了。。。。。
默认单相流domain只有1,多相流才需要用到更多的domain,如果你的Phases选项没开就不用考虑Get_Domain了,有问题可以仔细看看udf帮助里的Special Macros这节。我给你修改了一下程序,有问题再跟我说。
#include "udf.h"
// #define zone_ID 0 貌似没有编号为0的区域吧。。。
double P_out=0.;

DEFINE_ADJUST(TEG_adjust,domain) //定义里面有 domain,不用自己定义
{
        Thread *t;
        cell_t c;
      //  Domain *all; 没用,你的函数就是在定义的domain里用的
        int  Zone_ID=2; //两个ID有一个就够啦,不管你是全局变量还是局部变量,你又不会给他重新赋值,除非你要算多个区域的值,这里给个 2是随意定的,而且墙壁编号通常为2
      
        face_t f;
        real temp=0.,grad=0.,source=0.;
        real a=0.,b=0.;
        real u=0.,u_sum=0.,vol=0.,vol_sum=4.752*0.00001;
        real r=0.,r_sum=0.,s=1.76*0.001;
        real p=0.;
t=Lookup_Thread(domain,Zone_ID);  
                begin_c_loop (c,t)
                {
                  temp=C_T(c,t);
                  vol=C_VOLUME(c,t);
                  grad=-0.0003*C_T_G(c,t)[0];/*0 for x,1 for y, 2 for z*/
                  
                  a=-6.035*0.0001+6.270*0.000001*temp-1.571*0.00000001*temp*temp+1.260*0.00000000001*temp*temp*temp;
                  u=a*grad*vol/vol_sum;
                  u_sum+=u;

                  b=-7.188*0.0000001+6.926*0.000000001*temp-3.573*0.000000000001*temp*temp;
                  r=b*vol/s/s;
                  r_sum+=r;
                }
                end_c_loop (c,t) //开始和结束 至少一样啊。。。。

          p=u_sum*u_sum/(2*r_sum);
         
         P_out=p;//直接输出p不好么。。。。

Message("%g, %g %g\n", u_sum,r_sum,P_out);
}
11楼2016-12-01 15:33:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

歪歪_crazy

银虫 (初入文坛)

引用回帖:
11楼: Originally posted by sfbook at 2016-12-01 15:33:16
同学,我感觉你需要系统的学习一下C语言和UDF的编程了。。。。。
默认单相流domain只有1,多相流才需要用到更多的domain,如果你的Phases选项没开就不用考虑Get_Domain了,有问题可以仔细看看udf帮助里的Special  ...

让你见笑了……  上面给的程序比较乱是因为我一直在改,在不断地试,所以有些定义就没有删去。
12楼2016-12-01 17:08:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

歪歪_crazy

银虫 (初入文坛)

引用回帖:
11楼: Originally posted by sfbook at 2016-12-01 15:33:16
同学,我感觉你需要系统的学习一下C语言和UDF的编程了。。。。。
默认单相流domain只有1,多相流才需要用到更多的domain,如果你的Phases选项没开就不用考虑Get_Domain了,有问题可以仔细看看udf帮助里的Special  ...

首先,十分感谢你的回复,给了我很大帮助。因为是刚接触UDF,并且C语言也只是会点皮毛,所以错误百出,让您见笑了。
其次我想分享一下我这几天编这个udf的一些心得,算是班门弄斧,并且给以后看到这个帖子的人一些帮助吧。
1.关于C_T_G(c,t)  这个宏的运用,需要在fluent的控制台中打开一些设置  solve/set>expert Keep temporary solver memory from being free? [yes]
通过打开这个在设置来保证 Fluent 不会在计算结束就清除数据而导致的不能计算梯度。 同时根据我的试验,发现在使用到这个语句时,如果在最初读入,Fluent没有储存值的情况下,也会报错,不能计算。这时就需要先不加载含有这个语句的udf,运行几步之后,在加载udf就能计算了。
2.在使用 Lookup_Thread 语句之后,不能使用 thread_loop_c,thread_loop_f 因为这两者都是针对 domain 全局进行的循环,跟在 Lookup_Thread 这个指定区域语句后应该是因为产生矛盾而报错。
3.还是关于  Lookup_Thread(domain,Zone_ID) 的,如果在本语句之后进行的循环是关于 cell 的 thread_loop_c,那么查找的 ID 应为 Cell Zone Conditions 中你想要计算区域的 ID,不行选择 Boundary Conditions之中的,不然也会报错。
4.上传一张关于各个函数调用位置的彩图,感觉挺有用的,有兴趣的可以看看。

最后,再次感谢 @sfbook ,谢谢你的耐心指导!如果以上我说的有么不对,还请指出。以后如果有机会,希望还能向你请教!
Fluent 中 UDF 计算结果输出到窗口问题
3333.PNG


Fluent 中 UDF 计算结果输出到窗口问题-1
1111.PNG


Fluent 中 UDF 计算结果输出到窗口问题-2
222.PNG

13楼2016-12-01 18:52:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

欧式发酵乳

银虫 (小有名气)

送红花一朵
看到你这个让我想起来我起前两天遇到的问题,跟你一模一样,不够我是通过在循环外赋值给全局变量才避免被清零的。
14楼2020-10-15 10:48:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 学员fIJLZY 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 jRl3mE6ddZGq 2026-08-03 7/350 2026-08-04 04:50 by k7OM8YghWbkC
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 jRl3mE6ddZGq 2026-08-03 6/300 2026-08-04 04:47 by k7OM8YghWbkC
[找工作] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 cu9Nq1xK233Z 2026-08-03 8/400 2026-08-04 04:47 by k7OM8YghWbkC
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 cu9Nq1xK233Z 2026-08-03 7/350 2026-08-04 04:46 by k7OM8YghWbkC
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 cu9Nq1xK233Z 2026-08-03 8/400 2026-08-04 04:46 by k7OM8YghWbkC
[教师之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 cu9Nq1xK233Z 2026-08-03 8/400 2026-08-04 04:41 by k7OM8YghWbkC
[有机交流] 一个有机合成实验室都需要哪些设备? 50+3 kf2781974 2026-07-31 9/450 2026-08-04 03:56 by kf2781974
[教师之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 jRl3mE6ddZGq 2026-08-03 7/350 2026-08-04 03:35 by k7OM8YghWbkC
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 cu9Nq1xK233Z 2026-08-03 8/400 2026-08-04 03:21 by k7OM8YghWbkC
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 cu9Nq1xK233Z 2026-08-03 12/600 2026-08-04 03:17 by k7OM8YghWbkC
[高分子] UV压敏胶开发 +3 ichall 2026-07-30 5/250 2026-08-03 14:40 by Sunrisepay
[基金申请] 面上提前没消息,有中的吗 +14 archvillain 2026-08-02 16/800 2026-08-03 12:23 by fuweiguochen
[基金申请] 面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇! +19 低垂的野花 2026-07-31 25/1250 2026-08-03 09:25 by gy116024
[基金申请] 2026年国自然面上资助率 +16 布布和一二 2026-07-30 22/1100 2026-08-03 09:20 by gy116024
[教师之家] 基础研究怎么拉横向,学校到款任务越来越多,难以完成 拉横向,都有哪些途径啊 +8 锦衣卫寒战 2026-07-28 12/600 2026-08-03 08:22 by syl200707
[基金申请] 微信指数没变化,科研之友没阅读 +15 wangze12014 2026-07-28 19/950 2026-08-02 20:05 by 蔡棒棒菂
[考博] 2027年申博 50+3 射雕英雄胜 2026-07-30 3/150 2026-08-02 09:36 by lfy8008
[高分子] HXDI做水性聚氨酯乳液,是不是特别容易出渣 15+3 yuyusuv 2026-07-29 3/150 2026-07-31 09:21 by huizingga
[基金申请] 系统今天又提示维护了,估计离放榜不远了 +11 winnerche 2026-07-29 15/750 2026-07-30 23:08 by jnhyjjm
[基金申请] 你们的时间戳变了吗 +3 archvillain 2026-07-30 4/200 2026-07-30 18:53 by levinzhwen
信息提示
请填处理意见