24小时热门版块排行榜    

查看: 3904  |  回复: 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: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的回帖
查看全部 9 个回答

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的回帖

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的回帖
信息提示
请填处理意见