#include #include static char help[] = "superlu_dist seg fault test.\n\n"; int main(int argc,char **args) { Mat A, B, X, F; KSP ksp; PC pc; PetscInt inode, nnodes; PetscViewer v_file; PetscScalar pp; PetscErrorCode ierr; ierr = PetscInitialize(&argc, &args, NULL, help); CHKERRQ(ierr); MPI_Comm_size(PETSC_COMM_WORLD, &nnodes); MPI_Comm_rank(PETSC_COMM_WORLD, &inode); MatCreate(PETSC_COMM_WORLD, &A); MatSetType(A, MATAIJ); PetscViewerBinaryOpen(PETSC_COMM_WORLD,"mat_a.dat",FILE_MODE_READ,&v_file); ierr = MatLoad(A, v_file); printf("MatLoad %i\n", ierr); CHKERRQ(ierr); PetscViewerDestroy(&v_file); PetscInt M,N,m,n,rstart,rend,cols[2],i,nrhs=4000; PetscScalar vals[2]; ierr = MatGetSize(A,&M,&N);CHKERRQ(ierr); ierr = MatGetLocalSize(A,&m,&n);CHKERRQ(ierr); printf("A: %d, %d, %d %d\n",m,n,M,N); ierr = MatCreateDense(PETSC_COMM_WORLD,m,PETSC_DECIDE,PETSC_DECIDE,nrhs,NULL,&B);CHKERRQ(ierr); ierr = MatCreateDense(PETSC_COMM_WORLD,m,PETSC_DECIDE,PETSC_DECIDE,nrhs,NULL,&X);CHKERRQ(ierr); //MatZeroEntries(B); //MatZeroEntries(X); ierr = MatGetOwnershipRange(A,&rstart,&rend);CHKERRQ(ierr); for (i=rstart; i