24小时热门版块排行榜    

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

歪歪_crazy

银虫 (初入文坛)

[求助] Fluent 中 UDF 计算结果输出到窗口问题 已有1人参与

求助!已经将输出显示在窗口的语句   printf("P_out: %g\n", p);   放在循环外了,为什么计算的时候还是每次都要输出计算结果?

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


Fluent 中 UDF 计算结果输出到窗口问题-1
22222.PNG
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

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

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

sfbook

银虫 (小有名气)

【答案】应助回帖

引用回帖:
8楼: Originally posted by 歪歪_crazy at 2016-11-28 14:28:55
几个点我都说一下吧:
1,是单核运算的。
2,输出值为0时因为这是计算的第一步,初始化的时候没有温度梯度的,多算两步的话就会有输出值了。
3,我在循环外放了一个 i++, 用来验证循环外是否还有循环。i值没有增 ...

d也就是domain,是thread的组合,它的数值可以在Boundary Conditions的ID栏里看到(Cell Zone Conditions里面的ID我基本没有用过,貌似是有些区别的?),如果你是在这里面直接设置的话完全可以避开所有的loop选项,因为你的定义中的c和t就已经给你的区域进行了限制,这样函数的调用次数就是(Σdomain内cell数),也就怪不得会有这么多次输出了,而且你根本得不到P_out的多cell内值之和,你得到的P_out只是单一的cell值,原文解释(Note that like property UDFs, source term UDFs (defined using DEFINE_SOURCE) are called by ANSYS Fluent from within a loop on cell threads. The solver passes to the DEFINE_SOURCE term UDF all the necessary variables it must define a custom source term, since source terms are solved on a cell basis. Consequently, your UDF will not need to loop over cells in the thread since ANSYS Fluent is already doing it.)。
这个函数是定义用函数,也就是初始化时使用的,但是你的返回值里面根本没有定义任何数,相当于一直在返回0,没有意义。如果你已经做好了电压和电阻的初始化,只是想输出一个总和的P_out,可以试试EXECUTE_AT_END这个函数,只在计算完成后执行。
如果你还没有做电压电阻的初始化,而且不知道怎么加入计算公式的话,我就帮不了你了,因为我是做传热的。。。。。。
9楼2016-11-29 15:35:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

jie_ge

新虫 (小有名气)

因为循环外还有一个循环,

发自小木虫Android客户端
走好自己的路,下一步就很精彩!
2楼2016-11-27 22:43:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

歪歪_crazy

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by jie_ge at 2016-11-27 22:43:14
因为循环外还有一个循环,

什么意思呢?不太明白…… 还有能否给出个解决方案?
3楼2016-11-27 23:10:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jie_ge

新虫 (小有名气)

引用回帖:
3楼: Originally posted by 歪歪_crazy at 2016-11-27 17:10:46
什么意思呢?不太明白…… 还有能否给出个解决方案?...

thread_loop_c没有结束语吧,在输出之前加结束语!

发自小木虫Android客户端
走好自己的路,下一步就很精彩!
4楼2016-11-27 23:30:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见