Hi All, In MatSolve(), there is a piece of code:
* if (mat->errortype) { ierr = PetscInfo1(mat,"MatFactorError %D\n",mat->errortype);CHKERRQ(ierr); ierr = VecSetInf(x);CHKERRQ(ierr); } else { ierr = (*mat->ops->solve)(mat,b,x);CHKERRQ(ierr); }* If a direct solver such as LU or superlu fails to create a factorization, why we do not stop here and throw out an error message here or earlier? Now we just let solver keep doing garbage computation, and finally we have a solution like this: *Vec Object: 1 MPI processes type: mpiProcess [0]inf.inf.inf.inf.inf.inf.inf.inf.inf.inf.inf.inf.inf.inf.inf.inf.* Any particular reason to handle the thing in this way? Fande,