On Tue, 16 May 2006, Sh.M wrote:
> Ohh I forgot to use the flag -mat_getrow_uppertriangular? The flg '-mat_getrow_uppertriangular' or MatSetOption(mat,MAT_GETROW_UPPERTRIANGULAR) are used by Petsc function MatGetRow(). > It seems to be the case. And the Hypre preconditioner will understand that I > am only providing the upper triangular part of the matrix? '-mat_getrow_uppertriangular' is not written for Hypre interface. Hong > With best regards, Shaman Mahmoudi > > ----- Original Message ----- > From: "Sh.M" <shaman.mahmoudi.7099 at student.uu.se> > To: <petsc-users at mcs.anl.gov> > Sent: Tuesday, May 16, 2006 7:23 AM > Subject: SBAIJ + hypre preconditioners does not work? > > > > 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 > > > >
