[petsc-users] GAMG

Jeremy Theler jeremy at seamplex.com
Mon Oct 31 12:03:04 CDT 2016


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



-------------- next part --------------
[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


More information about the petsc-users mailing list