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 <[email protected]>
Sent: Tuesday, May 31, 2022 2:08 PM
To: Lucas Banting <[email protected]>
Cc: PETSc <[email protected]>
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 <[email protected]> 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 <[email protected]>
> Sent: Tuesday, May 31, 2022 1:11 PM
> To: Lucas Banting <[email protected]>
> Cc: [email protected] <[email protected]>
> 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 <[email protected]> 
> > 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

Reply via email to