主题:推荐一款比较好的大型稀疏方程组直接法求解器
jason388
[专家分:6150] 发布于 2008-03-10 09:54:00
本人在有限元计算中采用过几款开源的稀疏线性方程组直接法求解器如superlu,mumps等,但比较下来,认为mumps较好,特向大家推荐。感兴趣的可以到其主页下载。
http://graal.ens-lyon.fr/MUMPS/index.html
回复列表 (共17个回复)
沙发
lishhit [专家分:2400] 发布于 2008-03-10 10:09:00
赞楼主的经验共享
我也在做有限元方面的研究 不过问题计算量小 所以一直没用到稀疏矩阵 不过这方面也很关心
板凳
sjohn [专家分:5600] 发布于 2008-03-10 10:51:00
Thanks for recommendation, buddy.
3 楼
xinyi826 [专家分:10] 发布于 2008-03-12 22:08:00
哦,谢谢啊。。。呵呵
4 楼
maxperson [专家分:70] 发布于 2008-03-16 12:54:00
Parallel factorization and solve phases
(uniprocessor version also available);
超赞! 我的毕业设计阿,当时怎么没有找到!
…………………………
5 楼
nwpugxb [专家分:10] 发布于 2008-03-20 17:46:00
楼主是怎么用的啊?我现在也急需这个程序,楼主可不可以给我个完整的可运行的例子啊?
我的QQ是251745281
6 楼
jason388 [专家分:6150] 发布于 2008-03-20 18:39:00
以下是我在程序中调用mumps的子程序,供参考。mumps的文档中也有例子。
subroutine cmumps_solver(s,x,nd,nc,nnd,nnc,logfile,errinfo)
implicit none
include 'mpif.h'
include 'cmumps_struc.h'
integer :: nnd,nnc,i,j,num,logfile,errinfo
integer, allocatable :: nd(:),nc(:)
complex(8),allocatable :: s(:),x(:)
character(len=30) :: str
type(cmumps_struc) :: id
str=' successfully.'
write(logfile,'(a30)')'....the direct solver started.'
write(logfile,*)
id%sym=2
id%par=1
id%job=-1
call cmumps(id)
id%icntl(1)=logfile; id%icntl(2)=logfile; id%icntl(3)=logfile
id%icntl(7)=4
id%icntl(22)=10
id%cntl(1)=0.0
id%n=nnd
id%nz=nnc
allocate(id%irn(nnc),id%jcn(nnc))
id%irn(1)=1
id%jcn(1)=1
num=1
do i=2,nnd
do j=nd(i-1)+1,nd(i)
num=num+1
id%irn(num)=i
id%jcn(num)=nc(j)
end do
end do
deallocate(nd,nc)
allocate(id%a(nnc))
id%a=s
deallocate(s)
allocate(id%rhs(nnd))
id%rhs=x
id%job=6
call cmumps(id)
x=id%rhs
deallocate(id%irn,id%jcn,id%a,id%rhs)
if(id%infog(1)<0)then
errinfo=1
str=' with error occured.'
end if
id%job=-2
call cmumps(id)
write(logfile,*)
write(logfile,'(1x,a50)')'....the direct solver finished'//trim(str)
end subroutine cmumps_solver
7 楼
jason388 [专家分:6150] 发布于 2008-03-20 18:42:00
我用的是串行版本,否则在程序中还要有相关的mpi调用的语句。其文档中有详细介绍。
8 楼
chenfeng23 [专家分:10] 发布于 2010-01-15 20:02:00
楼主有源程序吗
9 楼
jason388 [专家分:6150] 发布于 2010-01-15 20:55:00
在其网站上有,可以自己去下载。
10 楼
chjw2008 [专家分:30] 发布于 2011-12-07 19:33:00
楼主,请问一下在网上下载的mumps不是需要安装吗,而且即使是串行的,上面的说明还要调用blas库。能不能讲一下具体怎么弄,或者是给一个能够直接运行的例子?谢谢
我来回复