找回密码
 注册
Simdroid-非首页
查看: 189|回复: 8

[H. 有限元编程] 解大型线性方程组用什么方法好?

[复制链接]
发表于 2010-8-7 03:56:36 | 显示全部楼层 |阅读模式 来自 美国
有限元最后求解要解大型的线性方程组(在我们的算例里有上百万个自由度)。
矩阵是对称正定稀疏矩阵。不知道目前流行用什么方法求解?
发表于 2010-8-7 04:09:39 | 显示全部楼层 来自 美国
Simdroid开发平台
refer to PETSc
回复 不支持

使用道具 举报

发表于 2010-8-7 06:24:14 | 显示全部楼层 来自 上海闵行区
有限元最后求解要解大型的线性方程组(在我们的算例里有上百万个自由度)。
矩阵是对称正定稀疏矩阵。不知道目前流行用什么方法求解?
xsxcn 发表于 2010-8-7 03:56

保存成稀疏矩阵格式,用最新版本的matlab计算,和商业软件相比运行时间相差1-2个数量级左右
或者安装intel fortran专业版,调用里面自带pardiso

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-8-7 15:10:05 | 显示全部楼层 来自 贵州贵阳
这个要看矩阵的性态了吧!
回复 不支持

使用道具 举报

发表于 2010-8-7 15:30:33 | 显示全部楼层 来自 贵州贵阳
这个大型方程组的解法根据不同的分析类型是不一样的,一般的稀疏矩阵都是高斯消元法,虽然有很多种方法比如QR分解奇异值分解等,但是不同的模型和网格划分甚至是节点的标号不同对方法的适应也不相同,而且现代计算机的求解运用对这些方法表现出的优势特别是在求解方程组中已经不存在了。在模态分析中提取矩阵的特征值的方法就多了,而且自己还可以选择。要根据自己的需要和问题的情况进行选择。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-7 22:19:08 | 显示全部楼层 来自 美国
5# 蓝血儿
我准备采用稀疏矩阵存储方式——即只储存非零元素(总刚矩阵带宽内的零元素也剔除)
具体存储方法可以用这个网址上的各种方法:
http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.essl43.guideref.doc/am501_smstor.html
回复 不支持

使用道具 举报

发表于 2010-8-14 20:24:24 | 显示全部楼层 来自 湖北襄阳
压缩存储不知道你用过没有,这个方法编程序很麻烦但是很节约内存的,尤其是解方程的时候编程

可以调用pardiso,这个函数intel fortran专业版里有

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-9-30 22:40:42 | 显示全部楼层 来自 大连理工大学北山B区
可以用优化算法里的某些方法 把矩阵转换一下 由于对阵变成一半 减少迭代次数
回复 不支持

使用道具 举报

发表于 2010-10-2 00:27:08 | 显示全部楼层 来自 四川绵阳
上百万个自由度的方程组应该不难求解了。
如果是单机PC,成熟的方法只能用迭代法,如PCG,可参考中科院张林波的PHG软件包。
如果内存充足,可考虑Superlu,大概需要四五个G,主要取决于非零元个数

如果是并行,那办法就多了,如hypre、petsc、superlu_dist、aztec、mumps等都能轻松搞定上千万乃至上亿自由度的,但如果涉及非线性迭代或者特征值迭代,由于要不断求解方程组,那就困难难重重了

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-25 19:24 , Processed in 0.042815 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表