Hi, I asked Rob F. from the Hypre team and IJ does not support symmetric storage and will probably not in the near future. And he explained to me that the memory saving when using AMG with a symmetric storage is not much, so no big loss for me I guess.
Thanks for all the help Barry and Hong! With best regards, Shaman Mahmoudi ----- Original Message ----- From: "Barry Smith" <[email protected]> To: <petsc-users at mcs.anl.gov> Sent: Tuesday, May 16, 2006 2:30 PM Subject: Re: SBAIJ + hypre preconditioners does not work? > > I have not thought about hypre when only the upper-half of the > matrix is provided? Please tell me which of the 4 hypre preconditioners > support symmetric storage of the matrix and how I indicate that to > hypre that I am only providing half the matrix and I will add > support for you. > > Barry > > > On Tue, 16 May 2006, Sh.M wrote: > > > 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 > > > > >
