> On Jul 31, 2016, at 4:58 PM, Matthew Knepley <[email protected]> wrote: > > On Sun, Jul 31, 2016 at 4:56 PM, Stefano Zampini <[email protected]> > wrote: > It’s the first time I’m trying to setup field split so maybe I’m missing > something > > I have a MatNest with NULL (1,1) block. I setup the field split using the row > ISs from the MatNest (a note aside: why they cannot be inferred by FieldSplit > if pc->pmat is of type MatNEST?) > Options used are -pc_fieldsplit_type additive and > -pc_fieldsplit_detect_saddle_point > > You don't need ISes is you use detect_saddle_point, so use one or the other. > > I then get this error, because MatGetSubMatrix_Nest returns a NULL pointer. > What is the solution? having MatGetSubMatrix_Nest return a zero-valued matrix > of correct size? any command line option I’m not using? Or instead having > Fieldsplit handle the case? > > I think have Nest return a real matrix is the right solution, since this is > what will happen with other types.
We could perhaps provide a MATNULL type which is an implementation of Mat that supports MatMult() etc for an empty matrix and get rid of the concept of a NULL being in the Nested structure. I don't like MatCreateNest(MPI_Comm comm,PetscInt nr,const IS is_row[],PetscInt nc,const IS is_col[],const Mat a[],Mat *B) taking in Mat arguments that you built; rather based on the ISs it should create properly sized empty matrices with a MATNULL type set and then I think you should call MatNestGetSubMat(s) to set the types you want and provide preallocation information etc. Barry > > Matt > > [0]PETSC ERROR: --------------------- Error Message > -------------------------------------------------------------- > [0]PETSC ERROR: Null argument, when expecting valid pointer > [0]PETSC ERROR: Null Object: Parameter # 1 > [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for > trouble shooting. > [0]PETSC ERROR: Petsc Development GIT revision: v3.7.2-744-gb54d608 GIT > Date: 2016-06-28 18:20:20 +0300 > [0]PETSC ERROR: Unknown Name on a debug named kl-13916.local by szampini Sun > Jul 31 14:47:53 2016 > [0]PETSC ERROR: Configure options --download-chaco --download-ctetgen > --download-exodusii --download-hdf5 --download-hypre --download-metis > --download-mpich --download-mumps --download-netcdf --download-p4est > --download-parmetis --download-ptscotch --download-scalapack > --download-suitesparse --download-triangle --with-valgrind-dir=/usr/local/ > CC=/usr/local/bin/gcc-5 CXX=/usr/local/bin/g++-5 FC=/usr/local/bin/gfortran-5 > PETSC_ARCH=debug > [0]PETSC ERROR: #1 MatSetOptionsPrefix() line 654 in > /Users/szampini/software/petsc/src/mat/interface/matrix.c > [0]PETSC ERROR: #2 PCSetUp_FieldSplit() line 558 in > /Users/szampini/software/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c > [0]PETSC ERROR: #3 PCSetUp() line 968 in > /Users/szampini/software/petsc/src/ksp/pc/interface/precon.c > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener
