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 <[email protected]> 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 <[email protected]>
> 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 <[email protected]> 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 <[email protected]>
> 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 <[email protected]> wrote:
> > > Smallest eigenvalue in magnitude or real part?
> > >
> > >
> > > > El 1 jul 2021, a las 11:58, Varun Hiremath <[email protected]>
> 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 <[email protected]>
> 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 <
> [email protected]> 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
> > > >
> > >
> >
>
>

Reply via email to