24小时热门版块排行榜    

查看: 1776  |  回复: 8

bcsnow

铁杆木虫 (著名写手)

[求助] ADI交替隐式求解算法需要迭代吗 已有2人参与

看了许多文献没有明白。用adi算法解二维空间方程时,在一个时间步内,是两个方向各用一次tdma解方程组就可以解出,还是再重复迭代,当迭代步与上一步误差和小于一个数时,才算解出?
回复此楼

» 收录本帖的淘帖专辑推荐

数值模拟

» 猜你喜欢

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

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

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
bcsnow: 金币+10, ★★★很有帮助, 谢谢。我是用来求二维温度场,因为步长限制,无法用显式算法,所以想用ADI算法。刚开始整,上面所说多数不太懂,那我时间推进一步,到底是每个方向求解一次就行,还是重复多次直到达到收敛标准? 2014-11-04 11:13:34
ADI 是求解2维或三维空间方程的一种迭代算法。可以用于时间推进,也可以用于解纯空间问题。主要用于结构化网格。逐次在每个方向上求解一次三对角方程,忽略其他方向上的关联。反复迭代,直至收敛。收敛标准一般使用相对残差,而不是使用迭代误差。不过这种方法并不比一定比SOR优越很多,我的经验。对结构化网格的Poisson类方程,多重网格法会很有效。
2楼2014-11-03 20:16:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

二维问题,每次时间推进要在每个方向上交替求三对角,要重复多次直到达到收敛标准,才能开始下一步时间递推。如果收敛不好,可考虑降低时间步长。收敛标准定的不必太严格,但如太松会使时间推进失败
3楼2014-11-04 13:19:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

引用回帖:
3楼: Originally posted by pippi6 at 2014-11-04 13:19:21
二维问题,每次时间推进要在每个方向上交替求三对角,要重复多次直到达到收敛标准,才能开始下一步时间递推。如果收敛不好,可考虑降低时间步长。收敛标准定的不必太严格,但如太松会使时间推进失败

重复多次的时候t时刻温度要用新算的t+1温度替换吗?那结果不就是t+2时刻的了吗?如果不替换,结果不变,无法进一步收敛啊
4楼2014-11-04 17:05:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

引用回帖:
4楼: Originally posted by bcsnow at 2014-11-04 17:05:02
重复多次的时候t时刻温度要用新算的t+1温度替换吗?那结果不就是t+2时刻的了吗?如果不替换,结果不变,无法进一步收敛啊...

收敛之后,一般说来t时刻温度要用新算的t+1温度替换,否则你要存储所有时刻的温度,那将是很大的内存。所谓收敛,是在一个时间步内的迭代,不涉及时间更新
5楼2014-11-04 17:17:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

引用回帖:
5楼: Originally posted by pippi6 at 2014-11-04 17:17:58
收敛之后,一般说来t时刻温度要用新算的t+1温度替换,否则你要存储所有时刻的温度,那将是很大的内存。所谓收敛,是在一个时间步内的迭代,不涉及时间更新...

那一个时间步内迭代时,t时刻温度肯定不能用解的t+1温度更新,那需要更新哪些变量呢?
6楼2014-11-04 17:52:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

引用回帖:
6楼: Originally posted by bcsnow at 2014-11-04 17:52:47
那一个时间步内迭代时,t时刻温度肯定不能用解的t+1温度更新,那需要更新哪些变量呢?...

更新 t时刻的温度啊。初值使用t-1时刻的温度。所谓迭代就是在更新 t时刻的温度。
7楼2014-11-04 18:00:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yongcailiu

金虫 (小有名气)

【答案】应助回帖

求解时,每个时间步的x,y都要迭代求解,直至两个都收敛为止。具体的,以t时刻的更新为例。初值的设置,可以用t-1时刻计算出来的x,y结果作为t时刻x,y的初值,不妨记成x_0^t,y_0^t,然后迭代求解得到x_1^t,y_1^t,再由x_1^t,y_1^t作为初值迭代求出x_2^t,y_2^t,一直迭代下去直至x和y都收敛,至此完成时间t时刻的迭代。
8楼2014-11-10 09:37:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

最后用的不迭代。如果三个方向,先一个方向求dt/3的隐式结果,更新后求另一方向dt/3的结果,三个方向求完为最终结果
9楼2015-01-13 11:38:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bcsnow 的主题更新
信息提示
请填处理意见