[petsc-dev] PC defaults when matrix is not available at PCSetFromOptions

Barry Smith bsmith at mcs.anl.gov
Sun May 6 12:38:37 CDT 2012


PetscErrorCode  PCSetUp(PC pc)
{
  PetscErrorCode ierr;
  const char     *def;

  PetscFunctionBegin;
  PetscValidHeaderSpecific(pc,PC_CLASSID,1);
  if (!pc->mat) SETERRQ(((PetscObject)pc)->comm,PETSC_ERR_ARG_WRONGSTATE,"Matrix must be set first");

How can it be in there without a Mat? The Mat must be set before PCSetUp().

   Barry

On May 6, 2012, at 12:29 PM, Jed Brown wrote:

> With the now-recommended approach of SNESSetDM(), a matrix is no longer available for PCGetDefaultType_Private(), so stuff like this fails:
> 
> ~/petsc/src/snes/examples/tutorials$ ./ex5 -dm_mat_type sbaij
> [0]PETSC ERROR: --------------------- Error Message ------------------------------------
> [0]PETSC ERROR: No support for this operation for this object type!
> [0]PETSC ERROR: Factor type not supported!
> [0]PETSC ERROR: ------------------------------------------------------------------------
> [0]PETSC ERROR: Petsc Development HG revision: fb0b659c7d3475598a50a3736d056cce163b2de9  HG Date: Sun Apr 15 00:02:43 2012 +0000
> [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 mpich named batura by jed Sun May  6 11:25:55 2012
> [0]PETSC ERROR: Libraries linked from /home/jed/petsc/mpich/lib
> [0]PETSC ERROR: Configure run at Tue Apr 17 15:54:40 2012
> [0]PETSC ERROR: Configure options --download-ams --download-blacs --download-chaco --download-hypre --download-metis --download-ml --download-parmetis --download-spai --download-spooles --download-sundials --download-superlu --download-superlu_dist --download-triangle --with-blas-lapack=/usr --with-c2html --with-cholmod-dir=/usr --with-lgrind --with-mpi-dir=/opt/mpich2 --with-pcbddc --with-pthreadclasses --with-shared-libraries --with-single-library=0 --with-sowing --with-umfpack-dir=/usr --with-x -PETSC_ARCH=mpich
> [0]PETSC ERROR: ------------------------------------------------------------------------
> [0]PETSC ERROR: MatGetFactor_seqsbaij_petsc() line 1817 in /home/jed/petsc/src/mat/impls/sbaij/seq/sbaij.c
> [0]PETSC ERROR: MatGetFactor() line 3990 in /home/jed/petsc/src/mat/interface/matrix.c
> [0]PETSC ERROR: PCSetUp_ILU() line 214 in /home/jed/petsc/src/ksp/pc/impls/factor/ilu/ilu.c
> [0]PETSC ERROR: PCSetUp() line 832 in /home/jed/petsc/src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: KSPSetUp() line 278 in /home/jed/petsc/src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: KSPSolve() line 402 in /home/jed/petsc/src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: SNES_KSPSolve() line 4224 in /home/jed/petsc/src/snes/interface/snes.c
> [0]PETSC ERROR: SNESSolve_LS() line 200 in /home/jed/petsc/src/snes/impls/ls/ls.c
> [0]PETSC ERROR: SNESSolve() line 3442 in /home/jed/petsc/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
> 
> What are the alternatives to moving matrix creation (via DM) all the way up here?




More information about the petsc-dev mailing list