Hi,
I am trying to know the difference bewteen the following two functions:
MatCholeskyFactorNumeric_SeqSBAIJ_2(Mat A,MatFactorInfo *info,Mat *B);
MatCholeskyFactorNumeric_SeqSBAIJ_2_NaturalOrdering(Mat A,MatFactorInfo
*info,Mat *B);
Suppose I have a matrix "mat" stored in the SBAIJ format, the block size is
2. When i am running the following code, it seems it calling the second
NatrualOrdering function:
ierr = MatCreateSeqSBAIJ(PETSC_COMM_SELF,2,6,6,0,nnz,&mat);CHKERRQ(ierr);
IS perm,colp;
MatGetOrdering(mat,MATORDERING_NATURAL,&perm,&colp);
ierr = ISDestroy(colp);CHKERRQ(ierr);
MatFactorInfo info;
info.fill=1.0;
Mat result;
ierr = MatCholeskyFactorSymbolic(mat,perm,&info,&result); CHKERRQ(ierr);
ierr = MatCholeskyFactorNumeric(mat,&info,&result);CHKERRQ(ierr);
However, since the first function is not naturalordering, does that mean i
don't have to call the MatGetOrdering before I call MatCholeskyFactor....().
If so, does that mean, it will reduce the time cost since it doesn't have to do
the ordering part.
Is anyone can give any idea and give me a example for calling the first
function to do the factorization. Thank you very mcuh!
Jun