It's possible to use this or a similar algorithm in SLEPc, but keep in mind 
that it's more expensive to compute these eigenvectors than to solve a linear 
system.  Do you have a sequence of systems with the same null space?

You referred to the null space as "rigid body modes".  Why can't those be 
written down?  Note that PETSc has convenience routines for computing rigid 
body modes from coordinates.

Nidish <n...@rice.edu> writes:

> I just use the standard eigs function 
> (https://www.mathworks.com/help/matlab/ref/eigs.html) as a black box. I think 
> it uses a lanczos type method under the hood.
>
> Nidish
>
> On Aug 15, 2020, 21:42, at 21:42, Barry Smith <bsm...@petsc.dev> wrote:
>>
>>Exactly what algorithm are you using in Matlab to get the 10 smallest
>>eigenvalues and their corresponding eigenvectors? 
>>
>>  Barry
>>
>>
>>> On Aug 15, 2020, at 8:53 PM, Nidish <n...@rice.edu> wrote:
>>> 
>>> The section on solving singular systems in the manual starts with
>>assuming that the singular eigenvectors are already known.
>>> 
>>> I have a large system where finding the singular eigenvectors is not
>>trivially written down. How would you recommend I proceed with making
>>initial estimates? In MATLAB (with MUCH smaller matrices), I conduct an
>>eigensolve for the first 10 smallest eigenvalues and take the
>>eigenvectors corresponding to the zero eigenvalues from this. This
>>approach doesn't work here since I'm unable to use SLEPc for solving
>>> 
>>> K.v = lam*M.v
>>> 
>>> for cases where K is positive semi-definite (contains a few "rigid
>>body modes") and M is strictly positive definite.
>>> 
>>> I'd appreciate any assistance you may provide with this.
>>> 
>>> Thank you,
>>> Nidish

Reply via email to