24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 7337  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

曾经的学渣

新虫 (初入文坛)

[求助] fluent udf 和udm 的使用问题,这个问题有点绕。已有1人参与

fluent udf中的一些问题:
   
     本人需要用到源项   DEFINE_SOURCE(en_source, cell, t, dS, eqn)  这个函数,但是源项里面有数据需要通过龙格库塔方法来解微分方程组来计算,我就在udf中写了龙格库塔算法。用龙格库塔解微分方程组时候需要上一个时间步长计算出来的结果作为初值。 现在的问题是如何将上一个时间步长的udf中龙格库塔计算出的值带入到下一个时间步长的udf中去。 矛盾点是udf 只有一套,每次迭代都跑一遍,,,,,,,,,,,,,,,,,,,,,,,,,  我想过用udm   将上一个时间步长计算结果保存到udm中,然后在下一个时间步长的udf中再调用,可是我始终无法实现这个想法。

    我不知道我这个想法靠不靠谱,或者说udm能不能实现这个功能。如果能实现的话,请大神给予指导。





总共就这一点金币全给上了,多谢了。   不知道我描述的清不清楚,有问题请留言给我我再细说。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

曾经的学渣

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by keeep0394 at 2017-10-13 18:35:30
要实现调用上一时间步的计算结果,仅仅靠DEFINE_SOUCE宏不行,还得用到DEFINE_EXECUTE_AT_END宏,每个时间步计算结束后这个宏会运行一次。定义两个UDM,第一个UDM存储上个时间步的结果,第二个UDF存储当前时间步的计 ...

我的想法是  DEFINE_INIT  在开始时候执行一遍用来给udm初值,然后 define source   然后时间步结束,更新udm ,然后循环下去。这是我的代码,请帮我看下哪里有问题,我也在fluent 里打开了12个udm 。还是报错

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : execute_at_end_.c
  • 2017-10-15 14:39:30, 5.02 K
7楼2017-10-15 14:41:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

gyctju

金虫 (正式写手)

给你个思路,用uds加c_udsi_m1, 当然也有其他方法,自己慢慢试

发自小木虫Android客户端
2楼2017-10-11 22:51:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

曾经的学渣

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by gyctju at 2017-10-11 22:51:53
给你个思路,用uds加c_udsi_m1, 当然也有其他方法,自己慢慢试

能不能说的稍微详细点?
3楼2017-10-12 14:36:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keeep0394

新虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
曾经的学渣: 金币+5, ★★★很有帮助 2017-10-16 15:12:59
要实现调用上一时间步的计算结果,仅仅靠DEFINE_SOUCE宏不行,还得用到DEFINE_EXECUTE_AT_END宏,每个时间步计算结束后这个宏会运行一次。定义两个UDM,第一个UDM存储上个时间步的结果,第二个UDF存储当前时间步的计算结果,在DEFINE_EXECUTE_AT_END中进行计算,将值赋予UDM,再在DEFINE_SOUCE中将UDM作为源项。建议查查UDF MANUAL。
5楼2017-10-13 18:35:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见