<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Aug 16, 2020 at 12:26 PM Nidish <<a href="mailto:nb25@rice.edu">nb25@rice.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div 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></div></div></blockquote><div><br></div><div>If you want the null space for AMG solvers, they do not deal with the constraints anyway, so you need an outer solver like Uzawa that uses a solver for the PDE block of your system. And Uzawa requires that you regularize this to remove the null space.</div><div><br></div><div>So the Rigid body modes are what you want to give to the AMG solver. (it sounds like your system might be too complex for out of the box AMG anyway).</div><div><br></div><div>(If you don't know what your null space is I don't see how you would keep the initial state and the RHS orthogonal to them.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="zoom:0%"><div dir="auto"><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>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 <<a href="mailto:nb25@rice.edu" target="_blank">nb25@rice.edu</a>> writes:<br><br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid rgb(114,159,207);padding-left:1ex"> I just use the standard eigs function (<a href="https://www.mathworks.com/help/matlab/ref/eigs.html" target="_blank">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 <<a href="mailto:bsmith@petsc.dev" target="_blank">bsmith@petsc.dev</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid rgb(173,127,168);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 rgb(138,226,52);padding-left:1ex"> On Aug 15, 2020, at 8:53 PM, Nidish <<a href="mailto:nb25@rice.edu" target="_blank">nb25@rice.edu</a>> 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 rgb(138,226,52);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 rgb(138,226,52);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 rgb(138,226,52);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></div></blockquote></div></div>