[petsc-users] SLEPc: smallest eigenvalues
Varun Hiremath
varunhiremath at gmail.com
Thu Jul 1 07:01:58 CDT 2021
Thank you very much for these suggestions! We are currently using version
3.12, so I'll try to update to the latest version and try your suggestions.
Let me get back to you, thanks!
On Thu, Jul 1, 2021, 4:45 AM Jose E. Roman <jroman at dsic.upv.es> wrote:
> Then I would try Davidson methods https://doi.org/10.1145/2543696
> You can also try Krylov-Schur with "inexact" shift-and-invert, for
> instance, with preconditioned BiCGStab or GMRES, see section 3.4.1 of the
> users manual.
>
> In both cases, you have to pass matrix A in the call to EPSSetOperators()
> and the preconditioner matrix via STSetPreconditionerMat() - note this
> function was introduced in version 3.15.
>
> Jose
>
>
>
> > El 1 jul 2021, a las 13:36, Varun Hiremath <varunhiremath at gmail.com>
> escribió:
> >
> > Thanks. I actually do have a 1st order approximation of matrix A, that I
> can explicitly compute and also invert. Can I use that matrix as
> preconditioner to speed things up? Is there some example that explains how
> to setup and call SLEPc for this scenario?
> >
> > On Thu, Jul 1, 2021, 4:29 AM Jose E. Roman <jroman at dsic.upv.es> wrote:
> > For smallest real parts one could adapt ex34.c, but it is going to be
> costly
> https://slepc.upv.es/documentation/current/src/eps/tutorials/ex36.c.html
> > Also, if eigenvalues are clustered around the origin, convergence may
> still be very slow.
> >
> > It is a tough problem, unless you are able to compute a good
> preconditioner of A (no need to compute the exact inverse).
> >
> > Jose
> >
> >
> > > El 1 jul 2021, a las 13:23, Varun Hiremath <varunhiremath at gmail.com>
> escribió:
> > >
> > > I'm solving for the smallest eigenvalues in magnitude. Though is it
> cheaper to solve smallest in real part, as that might also work in my case?
> Thanks for your help.
> > >
> > > On Thu, Jul 1, 2021, 4:08 AM Jose E. Roman <jroman at dsic.upv.es> wrote:
> > > Smallest eigenvalue in magnitude or real part?
> > >
> > >
> > > > El 1 jul 2021, a las 11:58, Varun Hiremath <varunhiremath at gmail.com>
> escribió:
> > > >
> > > > Sorry, no both A and B are general sparse matrices (non-hermitian).
> So is there anything else I could try?
> > > >
> > > > On Thu, Jul 1, 2021 at 2:43 AM Jose E. Roman <jroman at dsic.upv.es>
> wrote:
> > > > Is the problem symmetric (GHEP)? In that case, you can try LOBPCG on
> the pair (A,B). But this will likely be slow as well, unless you can
> provide a good preconditioner.
> > > >
> > > > Jose
> > > >
> > > >
> > > > > El 1 jul 2021, a las 11:37, Varun Hiremath <
> varunhiremath at gmail.com> escribió:
> > > > >
> > > > > Hi All,
> > > > >
> > > > > I am trying to compute the smallest eigenvalues of a generalized
> system A*x= lambda*B*x. I don't explicitly know the matrix A (so I am using
> a shell matrix with a custom matmult function) however, the matrix B is
> explicitly known so I compute inv(B)*A within the shell matrix and solve
> inv(B)*A*x = lambda*x.
> > > > >
> > > > > To compute the smallest eigenvalues it is recommended to solve the
> inverted system, but since matrix A is not explicitly known I can't invert
> the system. Moreover, the size of the system can be really big, and with
> the default Krylov solver, it is extremely slow. So is there a better way
> for me to compute the smallest eigenvalues of this system?
> > > > >
> > > > > Thanks,
> > > > > Varun
> > > >
> > >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210701/044de508/attachment.html>
More information about the petsc-users
mailing list