On Mon, 2016-10-31 at 08:44 -0600, Jed Brown wrote: > > After understanding Matt's point about the near nullspace (and reading > > some interesting comments from Jed on scicomp stackexchange) I did built > > my own vectors (I had to take a look at MatNullSpaceCreateRigidBody() > > because I found out by running the code the nullspace should be an > > orthonormal basis, it should say so in the docs). > > Where? > "vecs - the vectors that span the null space (excluding the constant > vector); these vectors must be orthonormal." > https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatNullSpaceCreate.html
ok, I might have passed on that but I started with http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetNearNullSpace.html that says “attaches a null space to a matrix, which is often the null space (rigid body modes) of the operator without boundary conditions This null space will be used to provide near null space vectors to a multigrid preconditioner built from this matrix.” It wouldn't hurt to remind dumb users like me that “...it is often the set of _orthonormalized_ rigid body modes...” > And if you run in debug mode (default), as you always should until you > are confident that your code is correct, MatNullSpaceCreate tests that > your vectors are orthonormal. That's how I realized I needed to normalize. Then I found MatNullSpaceCreateRigidBody() and copied the code to orthogonalize. Wouldn't it be better to orthonormalize inside MatSetNullSpace()? I bet an orthogonalization from PETSc's code would beat any user-side code. > > Now, there are some results I do not understand. I tried these six > > combinations: > > > > order near-nullspace iterations norm > > ----- -------------- ---------- ---- > > unknown explicit 10 1.6e-6 > > unknown PCSetCoordinates 15 1.7e-7 > > unknown none 15 2.4e-7 > > node explicit fails with error -11 > > node PCSetCoordinates fails with error -11 > > node none 13 3.8e-7 > > Did you set a block size for the "node-based" orderings? Are you sure > the above is labeled correctly? Anyway, PCSetCoordinates uses > "node-based" ordering. Implementation performance will generally be > better with node-based ordering -- it has better memory streaming and > cache behavior. Yes. Indeed, when I save the stiffnes matrix as a binary file I get a .info file that contains -matload_block_size 3 The labeling is right, I re-checked. That's the funny part, I can't get GAMG to work with PCSetCoordinates (which BTW, I think its documentation does not address the issue of DOF ordering). Any idea of what can be happening to me? > The AIJ matrix format will also automatically do an "inode" optimization > to reduce memory bandwidth and enable block smoothing (default > configuration uses SOR smoothing). You can use -mat_no_inode to try > turning that off. That option does not make any difference. > > > Error -11 is > > PETSc's linear solver did not converge with reason > > 'DIVERGED_PCSETUP_FAILED' (-11) > Isn't there an actual error message? Sorry, KSPGetConvergedReason() returns -11 and then my code prints that error string. Find attached the output with -info. Thanks -- jeremy
[0] PetscInitialize(): PETSc successfully started: number of processors = 1 [0] PetscGetHostName(): Rejecting domainname, likely is NIS tom.(none) [0] PetscInitialize(): Running on machine: tom [0] SlepcInitialize(): SLEPc successfully started 697 3611 [0] PetscCommDuplicate(): Duplicating a communicator 2 2 max tags = 100000000 [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 2091 X 2091; storage space: 835506 unneeded,74079 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 81 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 2091) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 697 nodes of 2091. Limit used: 5. Using Inode routines [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 2091 X 2091; storage space: 0 unneeded,74079 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 81 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 2091) < 0.6. Do not use CompressedRow routines. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 2091 X 2091; storage space: 0 unneeded,74079 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 81 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 2091) < 0.6. Do not use CompressedRow routines. [0] PCSetUp(): Setting up PC for first time [0] PCSetUp_GAMG(): level 0) N=2091, n data rows=3, n data cols=6, nnz/row (ave)=35, np=1 [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 697 X 697; storage space: 0 unneeded,8231 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 27 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 697) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 697 nodes out of 697 rows. Not using Inode routines [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 697 X 697; storage space: 915 unneeded,7316 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 27 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 697) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 697 nodes out of 697 rows. Not using Inode routines [0] PCGAMGFilterGraph(): 88.8835% nnz after filtering, with threshold 0., 11.8092 nnz ave. (N=697) [0] PCGAMGCoarsen_AGG(): Square Graph on level 1 of 1 to square [0] MatGetSymbolicTranspose_SeqAIJ(): Getting Symbolic Transpose. [0] PetscCommDuplicate(): Duplicating a communicator 1 3 max tags = 100000000 [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 697 X 697; storage space: 0 unneeded,7316 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 27 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 697) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 697 nodes out of 697 rows. Not using Inode routines [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 697 X 697; storage space: 0 unneeded,33067 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 116 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 697) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 697 nodes out of 697 rows. Not using Inode routines [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Reallocs 0; Fill ratio: given 2. needed 2.25992. [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Use MatMatMult(A,B,MatReuse,2.25992,&C) for best performance.; [0] MatRestoreSymbolicTranspose_SeqAIJ(): Restoring Symbolic Transpose. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 697 X 697; storage space: 0 unneeded,33067 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 116 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 697) < 0.6. Do not use CompressedRow routines. [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] maxIndSetAgg(): removed 0 of 697 vertices. 47 selected. [0] PCGAMGProlongator_AGG(): New grid 47 nodes [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 2091 X 282; storage space: 0 unneeded,12546 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 2091) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 678 nodes of 2091. Limit used: 5. Using Inode routines [0] PCSetUp(): Setting up PC for first time [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCGAMGOptProlongator_AGG(): Smooth P0: max eigen=4.239704e+00 min=1.138183e-01 PC=jacobi [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 2091 X 282; storage space: 0 unneeded,39168 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 54 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 2091) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 697 nodes of 2091. Limit used: 5. Using Inode routines [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Reallocs 0; Fill ratio: given 2. needed 1.. [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Use MatMatMult(A,B,MatReuse,1.,&C) for best performance.; [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 2091 X 282; storage space: 0 unneeded,39168 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 54 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 2091) < 0.6. Do not use CompressedRow routines. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 2091 X 282; storage space: 0 unneeded,39168 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 54 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 2091) < 0.6. Do not use CompressedRow routines. [0] Petsc_DelComm_Inner(): Removing reference to PETSc communicator embedded in a user MPI_Comm 3 [0] Petsc_DelComm_Outer(): User MPI_Comm 1 is being freed after removing reference from inner PETSc comm to this outer comm [0] PetscCommDestroy(): Deleting PETSc MPI_Comm 3 [0] Petsc_DelCounter(): Deleting counter data in an MPI_Comm 3 [0] MatGetSymbolicTranspose_SeqAIJ(): Getting Symbolic Transpose. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 282 X 282; storage space: 0 unneeded,33516 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 234 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 282) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 94 nodes of 282. Limit used: 5. Using Inode routines [0] MatRestoreSymbolicTranspose_SeqAIJ(): Restoring Symbolic Transpose. [0] MatPtAPSymbolic_SeqAIJ_SeqAIJ_SparseAxpy(): Reallocs 0; Fill ratio: given 2. needed 1.. [0] MatPtAPSymbolic_SeqAIJ_SeqAIJ_SparseAxpy(): Use MatPtAP(A,P,MatReuse,1.,&C) for best performance. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 282 X 282; storage space: 0 unneeded,33516 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 234 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 282) < 0.6. Do not use CompressedRow routines. [0] PCSetUp_GAMG(): 1) N=282, n data cols=6, nnz/row (ave)=118, 1 active pes [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 47 X 47; storage space: 0 unneeded,931 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 39 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 47) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 47 nodes out of 47 rows. Not using Inode routines [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 47 X 47; storage space: 14 unneeded,917 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 39 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 47) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 47 nodes out of 47 rows. Not using Inode routines [0] PCGAMGFilterGraph(): 98.4962% nnz after filtering, with threshold 0., 19.8085 nnz ave. (N=47) [0] PetscCommDuplicate(): Duplicating a communicator 1 3 max tags = 100000000 [0] maxIndSetAgg(): removed 0 of 47 vertices. 10 selected. [0] Petsc_DelComm_Inner(): Removing reference to PETSc communicator embedded in a user MPI_Comm 3 [0] Petsc_DelComm_Outer(): User MPI_Comm 1 is being freed after removing reference from inner PETSc comm to this outer comm [0] PetscCommDestroy(): Deleting PETSc MPI_Comm 3 [0] Petsc_DelCounter(): Deleting counter data in an MPI_Comm 3 [0] PCGAMGProlongator_AGG(): New grid 10 nodes [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 282 X 60; storage space: 0 unneeded,1692 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 282) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 84 nodes of 282. Limit used: 5. Using Inode routines [0] PCSetUp(): Setting up PC for first time [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp_Jacobi(): Zero detected in diagonal of matrix, using 1 at those locations [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCGAMGOptProlongator_AGG(): Smooth P0: max eigen=5.217159e+00 min=1.912394e-05 PC=jacobi [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 282 X 60; storage space: 0 unneeded,8892 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 54 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 282) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 91 nodes of 282. Limit used: 5. Using Inode routines [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Reallocs 0; Fill ratio: given 2. needed 1.. [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Use MatMatMult(A,B,MatReuse,1.,&C) for best performance.; [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 282 X 60; storage space: 0 unneeded,8892 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 54 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 282) < 0.6. Do not use CompressedRow routines. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 282 X 60; storage space: 0 unneeded,8892 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 54 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 282) < 0.6. Do not use CompressedRow routines. [0] MatGetSymbolicTranspose_SeqAIJ(): Getting Symbolic Transpose. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 60 X 60; storage space: 0 unneeded,3600 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 60 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 60) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 12 nodes of 60. Limit used: 5. Using Inode routines [0] MatRestoreSymbolicTranspose_SeqAIJ(): Restoring Symbolic Transpose. [0] MatPtAPSymbolic_SeqAIJ_SeqAIJ_SparseAxpy(): Reallocs 0; Fill ratio: given 2. needed 1.. [0] MatPtAPSymbolic_SeqAIJ_SeqAIJ_SparseAxpy(): Use MatPtAP(A,P,MatReuse,1.,&C) for best performance. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 60 X 60; storage space: 0 unneeded,3600 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 60 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 60) < 0.6. Do not use CompressedRow routines. [0] PCSetUp_GAMG(): 2) N=60, n data cols=6, nnz/row (ave)=60, 1 active pes [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 10 X 10; storage space: 0 unneeded,100 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 10 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 10) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 2 nodes of 10. Limit used: 5. Using Inode routines [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 10 X 10; storage space: 0 unneeded,100 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 10 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 10) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 2 nodes of 10. Limit used: 5. Using Inode routines [0] PCGAMGFilterGraph(): 100.% nnz after filtering, with threshold 0., 10. nnz ave. (N=10) [0] PetscCommDuplicate(): Duplicating a communicator 1 3 max tags = 100000000 [0] maxIndSetAgg(): removed 0 of 10 vertices. 1 selected. [0] Petsc_DelComm_Inner(): Removing reference to PETSc communicator embedded in a user MPI_Comm 3 [0] Petsc_DelComm_Outer(): User MPI_Comm 1 is being freed after removing reference from inner PETSc comm to this outer comm [0] PetscCommDestroy(): Deleting PETSc MPI_Comm 3 [0] Petsc_DelCounter(): Deleting counter data in an MPI_Comm 3 [0] PCGAMGProlongator_AGG(): New grid 1 nodes [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 60 X 6; storage space: 0 unneeded,360 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 60) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 12 nodes of 60. Limit used: 5. Using Inode routines [0] PCSetUp(): Setting up PC for first time [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp_Jacobi(): Zero detected in diagonal of matrix, using 1 at those locations [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCGAMGOptProlongator_AGG(): Smooth P0: max eigen=6.483096e+01 min=2.507448e-05 PC=jacobi [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 60 X 6; storage space: 0 unneeded,360 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 60) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 12 nodes of 60. Limit used: 5. Using Inode routines [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Reallocs 0; Fill ratio: given 2. needed 1.. [0] MatMatMultSymbolic_SeqAIJ_SeqAIJ(): Use MatMatMult(A,B,MatReuse,1.,&C) for best performance.; [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 60 X 6; storage space: 0 unneeded,360 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 60) < 0.6. Do not use CompressedRow routines. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 60 X 6; storage space: 0 unneeded,360 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 60) < 0.6. Do not use CompressedRow routines. [0] MatGetSymbolicTranspose_SeqAIJ(): Getting Symbolic Transpose. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 6 X 6; storage space: 0 unneeded,36 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 6) < 0.6. Do not use CompressedRow routines. [0] MatSeqAIJCheckInode(): Found 2 nodes of 6. Limit used: 5. Using Inode routines [0] MatRestoreSymbolicTranspose_SeqAIJ(): Restoring Symbolic Transpose. [0] MatPtAPSymbolic_SeqAIJ_SeqAIJ_SparseAxpy(): Reallocs 0; Fill ratio: given 2. needed 1.. [0] MatPtAPSymbolic_SeqAIJ_SeqAIJ_SparseAxpy(): Use MatPtAP(A,P,MatReuse,1.,&C) for best performance. [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 6 X 6; storage space: 0 unneeded,36 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 6 [0] MatCheckCompressedRow(): Found the ratio (num_zerorows 0)/(num_localrows 6) < 0.6. Do not use CompressedRow routines. [0] PCSetUp_GAMG(): 3) N=6, n data cols=6, nnz/row (ave)=6, 1 active pes [0] PCSetUp_GAMG(): HARD stop of coarsening on level 2. Grid too small: 1 block nodes [0] PCSetUp_GAMG(): 4 levels, grid complexity = 1.50152 [0] PCSetUp(): Setting up PC for first time [0] PetscCommDuplicate(): Duplicating a communicator 1 3 max tags = 100000000 [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] PCSetUp_MG(): Using outer operators to define finest grid operator because PCMGGetSmoother(pc,nlevels-1,&ksp);KSPSetOperators(ksp,...); was not called. [0] PCSetUp(): Setting up PC for first time [0] PCSetUp(): Setting up PC for first time [0] PCSetUp(): Setting up PC for first time [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] KSPSolve_Chebyshev(): Eigen estimator ran for prescribed number of iterations [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PetscKernel_A_gets_inverse_A_5(): Zero pivot, row 3 [0] MatSOR_SeqAIJ_Inode(): Zero pivot, row 17 [0] PetscKernel_A_gets_inverse_A_5(): Zero pivot, row 3 [0] MatSOR_SeqAIJ_Inode(): Zero pivot, row 23 [0] PetscKernel_A_gets_inverse_A_5(): Zero pivot, row 3 [0] MatSOR_SeqAIJ_Inode(): Zero pivot, row 29 [0] PetscKernel_A_gets_inverse_A_5(): Zero pivot, row 3 [0] MatSOR_SeqAIJ_Inode(): Zero pivot, row 41 [0] PetscKernel_A_gets_inverse_A_5(): Zero pivot, row 3 [0] MatSOR_SeqAIJ_Inode(): Zero pivot, row 101 [0] KSPSolve_Chebyshev(): Eigen estimator KSP_DIVERGED_PCSETUP_FAILED [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PetscKernel_A_gets_inverse_A_5(): Zero pivot, row 0 [0] KSPSolve_Chebyshev(): Eigen estimator KSP_DIVERGED_PCSETUP_FAILED [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Setting up PC for first time [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] PetscCommDuplicate(): Using internal PETSc communicator 1 3 [0] MatLUFactorSymbolic_SeqAIJ(): Reallocs 0 Fill ratio:given 5. needed 1. [0] MatLUFactorSymbolic_SeqAIJ(): Run with -pc_factor_fill 1. or use [0] MatLUFactorSymbolic_SeqAIJ(): PCFactorSetFill(pc,1.); [0] MatLUFactorSymbolic_SeqAIJ(): for best performance. [0] MatSeqAIJCheckInode_FactorLU(): Found 2 nodes of 6. Limit used: 5. Using Inode routines [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged [0] PCSetUp(): Leaving PC with identical preconditioner since operator is unchanged error: PETSc's linear solver did not converge with reason 'DIVERGED_PCSETUP_FAILED' (-11) [0] Petsc_DelComm_Inner(): Removing reference to PETSc communicator embedded in a user MPI_Comm 3 [0] Petsc_DelComm_Outer(): User MPI_Comm 1 is being freed after removing reference from inner PETSc comm to this outer comm [0] PetscCommDestroy(): Deleting PETSc MPI_Comm 3 [0] Petsc_DelCounter(): Deleting counter data in an MPI_Comm 3 [0] PetscFinalize(): PetscFinalize() called