Matt and Hong, The eigenvalues are all nonzero, so I don't see how the matrix could be singular, all the real parts are positive so it is even a nice matrix. But a bunch of diagonal entries are identically zero, this screws up most LU factorization schemes that do not do pivoting. (Matlab does pivoting). 0.0109 + 0.0453i 0.0109 - 0.0453i 0.0071 + 0.0131i 0.0071 - 0.0131i 0.0072 + 0.0121i 0.0072 - 0.0121i 0.0049 + 0.0062i 0.0049 - 0.0062i 0.0059 + 0.0012i 0.0059 - 0.0012i 0.0034 + 0.0031i 0.0034 - 0.0031i 0.0068 + 0.0226i 0.0068 - 0.0226i 0.0061 + 0.0061i 0.0061 - 0.0061i 0.0033 + 0.0028i 0.0033 - 0.0028i 6.0000 8.0000 2.0000 8.0000 12.0000 4.0000 2.0000 4.0000 2.0000
On Aug 3, 2010, at 11:03 PM, Matthew Knepley wrote: > On Tue, Aug 3, 2010 at 10:54 PM, Filippo Spiga <filippo.spiga at > disco.unimib.it> wrote: > Dear Hong, > This confirms that your Jacobian is singular, thus none of linear > solvers would work. > > So do any preconditioner not help me to solve the problem? > > There can exist no solutions when the matrix is singular, thus you have a > problem > with either: > > a) the problem definition > > b) the creation of your matrix in PETSc > > I put some stuff here: http://tinyurl.com/fil-petsc > - "A_LS.m" is matrix (saved by PETSc) > - "b_LS-m" > - the file "eigenvalues_A" contains the eigenvalues of the matrix A, computed > by MATLAB. > > I used "-pc_type lu" and 1 only processor. The result is the same of my > previous email (*). > > This shows that your matrix is singular. > > Anyway if I solve the problem using MATLAB I get the right solution. The > formulation seems correct. To be > > What does this mean? What method in MATLAB? Some methods (like CG) can > iterate on rank deficient > matrices with a compatible rhs and get a solution, but other Krylov methods > will fail. Most preconditioners > will fail. > > honest, the eigenvalues don't say me nothing. But I'm a computer scientist, > not a mathematician. I'm not able to recognize which preconditioner I should > use or which modifications (scaling all/part of the rows? reformulate the > system in another way?...) do to solve the problem. From my side, it is not > possible to try all the preconditioners and also it is not the right way... > > Actually, I strongly disagree. Preconditioners are very problem specific, and > it is often impossible > to prove which one will work for a certain problem. There are many well-known > results along these > lines, such as the paper of Greenbaum, Strakos, and Ptak on GMRES. > Experimentation is essential. > > Matt > > Once again, thanks. > > (*) > [0|23:14:58]: unknown: MatLUFactorNumeric_SeqAIJ() line 668 in > src/mat/impls/aij/seq/aijfact.c: Zero pivot row 1 value 0 tolerance > 2.77778e-14 * rowsum 0.0277778 > > -- > > Filippo SPIGA > > ?Nobody will drive us out of Cantor's paradise.? > -- David Hilbert > > > > > -- > 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20100803/194c9855/attachment-0001.htm>
