[petsc-users] Accelerating eigenvalue computation / removing portion of spectrum

Lucas Banting bantingl at myumanitoba.ca
Tue May 31 15:13:25 CDT 2022


Thanks for the sharing the article.
For my application, I think using an interval region to exclude the unneeded eigenvalues will still be faster than forming a larger constrained system. Specifying an interval appears to run in a similar amount of time.

Lucas
________________________________
From: Jose E. Roman <jroman at dsic.upv.es>
Sent: Tuesday, May 31, 2022 2:08 PM
To: Lucas Banting <bantingl at myumanitoba.ca>
Cc: PETSc <petsc-users at mcs.anl.gov>
Subject: Re: [petsc-users] Accelerating eigenvalue computation / removing portion of spectrum

Caution: This message was sent from outside the University of Manitoba.


Please respond to the list also.

The problem with EPSSetDeflationSpace() is that it internally orthogonalizes the vectors that you pass in, so it is not viable for thousands of vectors.

You can try implementing any of the alternative schemes described in https://doi.org/10.1002/nla.307

Another thing you can try is to use a region for filtering, as explained in section 2.6.4 of the users manual. Use a region that excludes -1.0 and you will have more chances to get the wanted eigenvalues faster. But still convergence may be slow.

Jose


> El 31 may 2022, a las 20:52, Lucas Banting <bantingl at myumanitoba.ca> escribió:
>
> Thanks for the response Jose,
>
> There is an analytical solution for these modes actually, however there are thousands of them and they are all sparse.
> I assume it is a non-trivial thing for EPSSetDeflationSpace() to take something like a MATAIJ as input?
>
> Lucas
> From: Jose E. Roman <jroman at dsic.upv.es>
> Sent: Tuesday, May 31, 2022 1:11 PM
> To: Lucas Banting <bantingl at myumanitoba.ca>
> Cc: petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
> Subject: Re: [petsc-users] Accelerating eigenvalue computation / removing portion of spectrum
>
> Caution: This message was sent from outside the University of Manitoba.
>
>
> If you know how to cheaply compute a basis of the nullspace of S, then you can try passing it to the solver via EPSSetDeflationSpace()https://slepc.upv.es/documentation/current/docs/manualpages/EPS/EPSSetDeflationSpace.html
>
> Jose
>
>
> > El 31 may 2022, a las 19:28, Lucas Banting <bantingl at myumanitoba.ca> escribió:
> >
> > Hello,
> >
> > I have a general non hermitian eigenvalue problem arising from the 3D helmholtz equation.
> > The form of the helmholtz equaton is:
> >
> > (S - k^2M)v = lambda k^2 M v
> >
> > Where S is the stiffness/curl-curl matrix and M is the mass matrix associated with edge elements used to discretize the problem.
> > The helmholtz equation creates eigenvalues of -1.0, which I believe are eigenvectors that are part of the null space of the curl-curl operator S.
> >
> > For my application, I would like to compute eigenvalues > -1.0, and avoid computation of eigenvalues of -1.0.
> > I am currently using shift invert ST with mumps LU direct solver. By increasing the shift away from lambda=-1.0. I get faster computation of eigenvectors, and the lambda=-1.0 eigenvectors appear to slow down the computation by about a factor of two.
> > Is there a way to avoid these lambda = -1.0 eigenpairs with a GNHEP problem type?
> >
> > Regards,
> > Lucas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220531/cbe4fe41/attachment.html>


More information about the petsc-users mailing list