我目前正在编写一些代码,其中涉及在 Fortran 中构建一个稀疏矩阵并解决一个简单的 AX=b 线性系统。为此,我应项目主管的要求使用 Pardiso 稀疏矩阵库。
代码分为两部分。前半部分构建矩阵和右手边,后半部分调用 Pardiso 解决该系统。我知道前半部分有效,因为将这些数据导出到 Fortran 之外并用 Python 解决系统产生了预期的结果。但是,我无法让 Pardiso 正常工作,主要是因为我误解了它给出的错误消息。该手册解释得很少,互联网论坛上也很少(没有双关语)充斥着与 Pardiso 相关的问题。
我用于 Pardiso 的设置如下:
iparm(1)=0
iparm(2)=2
iparm(6)=0
iparm(10)=13
iparm(11)=1
iparm(13)=1
iparm(19)=0
iparm(21)=1
iparm(26)=1
iparm(52)=1
mtype = 11
iparm(3) = 1
solver=0
mtype=11
我得到的错误是:
error PARDISO (sequence_ido,parameters ) error_num= 4 输入检查:
matrix_number_new 22 ido 32675 不兼容
手册或互联网没有说明这意味着什么。pardiso_chkmatrix
并且pardiso_printstats
不要吐出任何错误,所以我不确定发生了什么。