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,

Reply via email to