Hi, So far I have been using AIJ to construct my matrices and this has been due to a legacy more than anything else. However now I do need the extra memory as my problems are getting bigger and bigger. So I have tried to use the SBAIJ matrix format with block size = 1. My matrices are read from a file and are symmetric but also "full" due to a legacy. However as I understand I can treat the full matrix as if it was just the upper triangle of it if I use command line -mat_ignore_lower_triangular.
It has worked just fine when I for example use solver = CG and preconditioner = Jacobi. However I am getting some errors when using hypre preconditioners, for exampel BoomerAMG. I do know or atleast think by my own past experience with Hypre that symmetric sparse matrix support has not been trivial in Hypre eventhough the support was there. Can there be a case of PETSc + Hypre in combinaton simple not supporting the SBAIJ matrix format? I am getting this error message and I have tried with different matrices ranging from 54x54 to 5Mx5M and 1-32 CPUs. It crashes when it calls the solve function: [0]PETSC ERROR: MatGetRow_SeqSBAIJ() line 207 in src/mat/impls/sbaij/seq/sbaij.c [0]PETSC ERROR: No support for this operation for this object type! [0]PETSC ERROR: MatGetRow is not supported for SBAIJ matrix format. Getting the upper trian\ gular part of row, run with -mat_getrow_uppertriangular, call MatSetOption(mat,MAT_GETROW_U\ PPERTRIANGULAR) or MatGetRowUpperTriangular()! [0]PETSC ERROR: MatGetRow_MPISBAIJ() line 1056 in src/mat/impls/sbaij/mpi/mpisbaij.c [0]PETSC ERROR: MatGetRow() line 168 in src/mat/interface/matrix.c [0]PETSC ERROR: MatCholeskyCheckShift_inline() line 45 in src/mat/impls/hypre/mhyp.c [0]PETSC ERROR: PCSetUp_HYPRE() line 95 in src/ksp/pc/impls/hypre/hyppilut.c [0]PETSC ERROR: PCSetUp() line 798 in src/ksp/pc/interface/precon.c [0]PETSC ERROR: KSPSetUp() line 234 in src/ksp/ksp/interface/itfunc.c [0]PETSC ERROR: KSPSolve() line 334 in src/ksp/ksp/interface/itfunc.c [0]PETSC ERROR: User provided function() line 683 in petscSolver.c [2509 MPI_COMM_WORLD 0] Process exited without calling MPI_Finalize. Fatal error, aborting. With best regards, Shaman Mahmoudi
