<html><head></head><body style="zoom: 0%;"><div dir="auto">Well some of the zero eigenvectors are rigid body modes, but there are some more which are introduced by lagrange-multiplier based constraint enforcement, which are non trivial.<br><br></div>
<div dir="auto">My final application is for a nonlinear simulation, so I don't mind the extra computational effort initially. Could you have me the suggested solver configurations to get this type of eigenvectors in slepc?<br><br></div>
<div dir="auto">Nidish</div>
<div class="gmail_quote" >On Aug 16, 2020, at 00:17, Jed Brown <<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="blue">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?<br><br>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.<br><br>Nidish <nb25@rice.edu> writes:<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> I just use the standard eigs function (<a href="https://www.mathworks.com/help/matlab/ref/eigs.html">https://www.mathworks.com/help/matlab/ref/eigs.html</a>) as a black box. I think it uses a lanczos type method under the hood.<br><br> Nidish<br><br> On Aug 15, 2020, 21:42, at 21:42, Barry Smith <bsmith@petsc.dev> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"><br>Exactly what algorithm are you using in Matlab to get the 10 smallest<br>eigenvalues and their corresponding eigenvectors? <br><br>  Barry<br><br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> On Aug 15, 2020, at 8:53 PM, Nidish <nb25@rice.edu> wrote:<br> <br> The section on solving singular systems in the manual starts with<br></blockquote>assuming that the singular eigenvectors are already known.<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> <br> I have a large system where finding the singular eigenvectors is not<br></blockquote>trivially written down. How would you recommend I proceed with making<br>initial estimates? In MATLAB (with MUCH smaller matrices), I conduct an<br>eigensolve for the first 10 smallest eigenvalues and take the<br>eigenvectors corresponding to the zero eigenvalues from this. This<br>approach doesn't work here since I'm unable to use SLEPc for solving<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> <br> K.v = lam*M.v<br> <br> for cases where K is positive semi-definite (contains a few "rigid<br></blockquote>body modes") and M is strictly positive definite.<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> <br> I'd appreciate any assistance you may provide with this.<br> <br> Thank you,<br> Nidish<br></blockquote></blockquote></blockquote></pre></blockquote></div></body></html>