Re: [petsc-dev] PCFIELDSPLIT MATNEST and NULL blocks
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
participants (1)
-
Barry Smith