El 01/08/2011, a las 19:27, John Chludzinski escribi?: > I create 2 matrices using: > > MatCreateSeqDense(PETSC_COMM_SELF, n, n, Ka, &A); > MatCreateSeqDense(PETSC_COMM_SELF, n, n, Kb, &B); > > These matrices are 99% zeros ( 16,016,004 entries and 18660 non-zeros). They > are symmetric and real. Their tri-diagonal elements are non-zero plus a few > other entries. > > I tried to use ex7 for the generalized eigenvalue problem: > > ./ex7.exe -f1 k.dat -f2 m.dat -eps_gen_hermitian -eps_smallest_real > x.out > 2>&1 > > without specifying an EPS and get: > > Generalized eigenproblem stored in file. > > Reading REAL matrices from binary files... > Number of iterations of the method: 500 > Number of linear iterations of the method: 4009 > Solution method: krylovschur > > Number of requested eigenvalues: 1 > Stopping condition: tol=1e-07, maxit=500 > Number of converged approximate eigenpairs: 0 > > Is krylovschur inappropriate for this problem or have I set up the problem > incorrectly by using MatCreateSeqDense(...) to create the matrix input > files in PETSc binary form? > > ---John
The solver has reached the maximum number of iterations. Do you want to compute the leftmost part of the spectrum? Are those eigenvalues (relatively) large in magnitude? I guess not. If you need the smallest eigenvalues, instead of computing the smallest eigenvalues of (K,M) try computing the largest eigenvalues of (M,K) and then compute the reciprocals. Also, have a look at the chapter on spectral transformations. And of course do not use dense matrices, as pointed out by Matt. Jose
