24小时热门版块排行榜    

查看: 3907  |  回复: 8

kylafree

至尊木虫 (知名作家)

[求助] FLUENT源项UDF非稳态迭代的一个疑问请教

DEFINE_SOURCE() 这个宏是每次迭代都被调用一次。这样在非稳态计算时,如果要计算1S的工况;

若取时间步长为e-5,可能要总共要迭代e5 * 20次,此时DEFINE_SOURCE() 宏被调用e5 * 20次;
若取时间步长为e-6,可能要总共要迭代e6 * 20次,此时DEFINE_SOURCE() 宏被调用e6 * 20次;

假设上面两种不同的时间步长取法都能使迭代稳定,但第二种时间步长取法中DEFINE_SOURCE() 宏被调用的次数多,从而进入计算域的“源”要多,导致两种时间步长取法的计算结果很不一样。

而且若这个DEFINE_SOURCE() 宏被用于稳态计算的话,相当于仅仅被调用了一次而已,从而进入计算域的“源”相比于非稳态来说的话非常非常少。

我作实际计算并作后处理的结果确实如上所述。

这是同一个工况,为什么会有这么大差别呢?它的问题出在哪里呢?怎样才能让它们得出一致的结果呢?我想不太明白。望各位高人指点指点。感激不尽!
回复此楼

» 猜你喜欢

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

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

mayo_0

铜虫 (小有名气)


臭水沟(金币+1): 谢谢交流~~ 2011-12-14 13:32:45
t=dt*step
既然你都知道每个时间步内的迭代步FLUENT都要调用一次,那你让他每个时间步只调用一次呗。

如果用于稳态计算,还能是现在这个控制方程么?所以你第二个测试无意义。
精通各种CFD项目(电磁、多相、燃烧等)。QQ85596847。
2楼2011-12-14 10:38:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)

引用回帖:
: Originally posted by mayo_0 at 2011-12-14 10:38:20:
t=dt*step
既然你都知道每个时间步内的迭代步FLUENT都要调用一次,那你让他每个时间步只调用一次呗。

如果用于稳态计算,还能是现在这个控制方程么?所以你第二个测试无意义。

好吧,我让它每个时间步内只调用一次;还是上面的例子,算1S的工况;

若取时间步长为e-5,总共要迭代e5 次,此时DEFINE_SOURCE() 宏被调用e5 次;
若取时间步长为e-6,总共要迭代e6 次,此时DEFINE_SOURCE() 宏被调用e6 次;

DEFINE_SOURCE() 宏被调用的次数还是不一样,完全取决于时间步长的大小,不同时间步长算得的结果完全不一样。
3楼2011-12-14 10:48:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mayo_0

铜虫 (小有名气)


臭水沟(金币+1): 谢谢交流~~ 2011-12-14 13:32:56
引用回帖:
3楼: Originally posted by kylafree at 2011-12-13 19:48:34:
好吧,我让它每个时间步内只调用一次;还是上面的例子,算1S的工况;

若取时间步长为e-5,总共要迭代e5 次,此时DEFINE_SOURCE() 宏被调用e5 次;
若取时间步长为e-6,总共要迭代e6 次,此时DEFINE_SOURCE() ...

假如你的变量是时间的函数, f(t),那么跟你时间步有什么关系么?
请检查你的方程、你的代码没问题。
精通各种CFD项目(电磁、多相、燃烧等)。QQ85596847。
4楼2011-12-14 11:14:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)

引用回帖:
: Originally posted by mayo_0 at 2011-12-14 11:14:51:
假如你的变量是时间的函数, f(t),那么跟你时间步有什么关系么?
请检查你的方程、你的代码没问题。

你说的确是。 检查方程具体怎么说啊
5楼2011-12-14 19:06:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ya634984094

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by mayo_0 at 2011-12-14 11:14:51
假如你的变量是时间的函数, f(t),那么跟你时间步有什么关系么?
请检查你的方程、你的代码没问题。...

跟时间步木有关系,但是跟迭代次数有关呀~
6楼2014-01-26 01:18:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

包子小妹

新虫 (小有名气)

引用回帖:
6楼: Originally posted by ya634984094 at 2014-01-26 01:18:56
跟时间步木有关系,但是跟迭代次数有关呀~...

楼主解决问题了吗?
7楼2014-05-13 17:21:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jchli2000

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by mayo_0 at 2011-12-14 10:38:20
t=dt*step
既然你都知道每个时间步内的迭代步FLUENT都要调用一次,那你让他每个时间步只调用一次呗。

如果用于稳态计算,还能是现在这个控制方程么?所以你第二个测试无意义。

怎么让每个时间步长内只调用一次源项?
8楼2014-10-10 12:46:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

longyiteng

新虫 (初入文坛)

楼主您好!我也有类似的疑惑:
1、稳态计算中define_source是只调用一次,还是每个迭代步都调用一次?我觉得应该是后者吧。
2、非稳态计算中,define_source函数在一个时间步内引入的“源项”是否和该时间步迭代次数有关?如您所说,迭代数越多,“源项”就越多。
非常感谢!
9楼2018-04-15 10:51:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kylafree 的主题更新
信息提示
请填处理意见