Most preconditioners don't care if the matrix has non-symmetric non-zero structure. GAMG requires it have a symmetric nonzero structure. It lists some options you can try to make it symmetric.
> [2]PETSC ERROR: Have un-symmetric graph (apparently). Use > '-(null)pc_gamg_sym_graph true' to symetrize the graph or > '-(null)pc_gamg_threshold -1' if the matrix is structurally symmetric. > On Jul 9, 2019, at 8:30 AM, 我 via petsc-users <petsc-users@mcs.anl.gov> wrote: > > Hello all, > I set PCGAMG and KSPGRMES to solve the matrix which is formed by a particle > method such as SPH. But when there is always a PETSC ERROR: > [2]PETSC ERROR: --------------------- Error Message > -------------------------------------------------------------- > [2]PETSC ERROR: Petsc has generated inconsistent data > [2]PETSC ERROR: Have un-symmetric graph (apparently). Use > '-(null)pc_gamg_sym_graph true' to symetrize the graph or > '-(null)pc_gamg_threshold -1' if the matrix is structurally symmetric. > [2]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for > trouble shooting. > [2]PETSC ERROR: Petsc Release Version 3.9.1, Apr, 29, 2018 > [2]PETSC ERROR: ./MPS on a arch-linux2-cxx-debug named > daye-Precision-7920-Tower by daye Tue Jul 9 20:59:39 2019 > [2]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++ > --with-fc=gfortran --download-mpich --download-fblaslapack --download-hypre > --with-clanguage=cxx > [2]PETSC ERROR: #1 smoothAggs() line 418 in > /home/daye/PETSC/petsc-3.9.1/src/ksp/pc/impls/gamg/agg.c > [2]PETSC ERROR: #2 PCGAMGCoarsen_AGG() line 970 in > /home/daye/PETSC/petsc-3.9.1/src/ksp/pc/impls/gamg/agg.c > [2]PETSC ERROR: #3 PCSetUp_GAMG() line 518 in > /home/daye/PETSC/petsc-3.9.1/src/ksp/pc/impls/gamg/gamg.c > [2]PETSC ERROR: #4 PCSetUp() line 923 in > /home/daye/PETSC/petsc-3.9.1/src/ksp/pc/interface/precon.c > [2]PETSC ERROR: #5 KSPSetUp() line 381 in > /home/daye/PETSC/petsc-3.9.1/src/ksp/ksp/interface/itfunc.c > [2]PETSC ERROR: #6 KSPSolve() line 612 in > /home/daye/PETSC/petsc-3.9.1/src/ksp/ksp/interface/itfunc.c > ^C[mpiexec@daye-Precision-7920-Tower] Sending Ctrl-C to processes as requested > [mpiexec@daye-Precision-7920-Tower] Press Ctrl-C again to force abort > > This matrix can be solved when I use PCHYPRE and KSPGRMES. But when I change > the pre-condition to PCGAMG, this error always occurs. Any suggestions about > that? > Thank you at first! > > Daye > > >