On Feb 21, 2012, at 9:56 PM, Barry Smith wrote: > > Mark, > > In constructing your coarser levels it appears you are using the A > operator from KSPSetOperators() not the B operator. When one is using a > matrix free form to apply A I think it makes sense to use the B to construct > the coarser grid operators?
Yes, of course. I'm a PC, I should always look at B. Thanks, Mark > Or should you always use B or should there be an option for PCGAMG to use > either the A or the B for constructing the coarser and if A is matrix free > that options gets automatically flicked to use the B? > > Barry > > src/snes/examples/tutorials barrysmith$ ./ex5 -pc_type gamg -snes_mf_operator > -ksp_monitor > [0]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [0]PETSC ERROR: No support for this operation for this object type! > [0]PETSC ERROR: Matrix of type <mffd> does not support PtAP! > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: Petsc Development HG revision: > c132289977191163d4de2df6e7df77d9dd0b072f HG Date: Tue Feb 21 16:29:59 2012 > -0600 > [0]PETSC ERROR: See docs/changes/index.html for recent updates. > [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [0]PETSC ERROR: See docs/index.html for manual pages. > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: ./ex5 on a arch-gnu named barry-smiths-macbook-pro.local by > barrysmith Tue Feb 21 20:50:59 2012 > [0]PETSC ERROR: Libraries linked from > /Users/barrysmith/Src/petsc-dev/arch-gnu/lib > [0]PETSC ERROR: Configure run at Tue Feb 21 16:36:50 2012 > [0]PETSC ERROR: Configure options --download-blacs --download-fftw > --download-hypre --download-metis --download-mpich --download-mumps > --download-parmetis --download-ptscotch --download-scalapack > --download-superlu --download-superlu_dist --download-yaml > --with-shared-libraries PETSC_ARCH=arch-gnu > [0]PETSC ERROR: > ------------------------------------------------------------------------ > [0]PETSC ERROR: MatPtAP() line 8263 in > /Users/barrysmith/Src/petsc-dev/src/mat/interface/matrix.c > [0]PETSC ERROR: createLevel() line 88 in > /Users/barrysmith/Src/petsc-dev/src/ksp/pc/impls/gamg/gamg.c > [0]PETSC ERROR: PCSetUp_GAMG() line 562 in > /Users/barrysmith/Src/petsc-dev/src/ksp/pc/impls/gamg/gamg.c > [0]PETSC ERROR: PCSetUp() line 832 in > /Users/barrysmith/Src/petsc-dev/src/ksp/pc/interface/precon.c > [0]PETSC ERROR: KSPSetUp() line 261 in > /Users/barrysmith/Src/petsc-dev/src/ksp/ksp/interface/itfunc.c > [0]PETSC ERROR: KSPSolve() line 385 in > /Users/barrysmith/Src/petsc-dev/src/ksp/ksp/interface/itfunc.c > [0]PETSC ERROR: SNES_KSPSolve() line 3939 in > /Users/barrysmith/Src/petsc-dev/src/snes/interface/snes.c > [0]PETSC ERROR: SNESSolve_LS() line 641 in > /Users/barrysmith/Src/petsc-dev/src/snes/impls/ls/ls.c > [0]PETSC ERROR: SNESSolve() line 3163 in > /Users/barrysmith/Src/petsc-dev/src/snes/interface/snes.c > [0]PETSC ERROR: main() line 152 in src/snes/examples/tutorials/ex5.c > application called MPI_Abort(MPI_COMM_WORLD, 56) - process 0 > [unset]: aborting job: > application called MPI_Abort(MPI_COMM_WORLD, 56) - process 0 > >
