我试图用SUPERLU创建一个稀疏的分布式矩阵,但是我遇到了一些麻烦:
基于SuperLU文档,我正在使用以下功能,
void dCreate_CompRowLoc_Matrix_dist(SuperMatrix *A, int m, int n,
int nnz_loc, int m_loc, int fst_row,
double *nzval, int *colind, int *rowptr,
Stype_t stype, Dtype_t dtype, Mtype_t mtype);
但似乎无论我传递给谁,都会发生分段错误。
我尝试过一个非常简单的2x2矩阵,只有2个非零值,运行1个进程(意思是这样)
m = 2;
n = 2;
nnz_loc = 2;
m_loc = 2;
fst_row = 0;
nzval[0] = 1.0;
nzval[1] = 2.0;
colind[0] = 0;
colind[1] = 1;
rowptr[0] = 0;
rowptr[1] = 1;
rowptr[2] = 2;
...SLU_NC, SLU_D, SLU_GE
我继续遇到分段错误错误
我假设我没有完全理解函数的用法, 任何人都可以帮助我(或者,如果需要更多信息,请告诉我)
非常感谢 西蒙更新/ 1 就像进一步的信息一样,我注意到行局部矩阵是正确创建的(每个元素/行的位置正确)但它们似乎没有“折叠”成全局超级矩阵A -