<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    <p>Oh damn. Alright, I'll keep trying out the different options.<br>
    </p>
    <p>Thank you,<br>
      Nidish<br>
    </p>
    <div class="moz-cite-prefix">On 8/16/20 8:05 PM, Barry Smith wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:ED2EFA77-8F08-4213-B510-D3BC2991C64B@petsc.dev">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <div class=""><br class="">
      </div>
        SVD is enormously expensive, needs to be done on a full dense
      matrix so completely impractical. You need the best tuned
      iterative method, Jose is the by far the most knowledgeable about
      that.
      <div class=""><br class="">
      </div>
      <div class="">   Barry</div>
      <div class=""><br class="">
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">On Aug 16, 2020, at 7:46 PM, Nidish <<a
                href="mailto:nb25@rice.edu" class=""
                moz-do-not-send="true">nb25@rice.edu</a>> wrote:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <meta http-equiv="Content-Type" content="text/html;
                charset=windows-1252" class="">
              <div class="">
                <p class="">Thank you for the suggestions.</p>
                <p class="">I'm getting a zero pivot error for the LU in
                  slepc while calculating the rest of the modes. <br
                    class="">
                </p>
                <p class="">Would conducting an SVD for just the
                  stiffness matrix and then using the singular vectors
                  as bases for the nullspace work? I haven't tried this
                  out just yet, but I'm wondering if you could provide
                  me insights into whether this will.</p>
                <p class="">Thanks,<br class="">
                  Nidish<br class="">
                </p>
                <div class="moz-cite-prefix">On 8/16/20 2:50 PM, Barry
                  Smith wrote:<br class="">
                </div>
                <blockquote type="cite"
                  cite="mid:C383A12E-B879-4F37-B2C7-63F7B813D8FE@petsc.dev"
                  class="">
                  <meta http-equiv="Content-Type" content="text/html;
                    charset=windows-1252" class="">
                  <div class=""><br class="">
                  </div>
                    If you know part of your null space explicitly (for
                  example the rigid body modes) I would recommend you
                  always use that information explicitly since it is
                  extremely expensive numerically to obtain. Thus rather
                  than numerically computing the entire null space
                  compute the part orthogonal to the part you already
                  know. Presumably SLEPc has tools to help do this,
                  naively I would just orthogonalized against the know
                  subspace during the computational process but there
                  are probably better ways.
                  <div class=""><br class="">
                  </div>
                  <div class="">   Barry</div>
                  <div class=""><br class="">
                    <div class=""><br class="">
                    </div>
                    <div class=""><br class="">
                      <div class=""><br class="">
                        <blockquote type="cite" class="">
                          <div class="">On Aug 16, 2020, at 11:26 AM,
                            Nidish <<a href="mailto:nb25@rice.edu"
                              class="" moz-do-not-send="true">nb25@rice.edu</a>>
                            wrote:</div>
                          <br class="Apple-interchange-newline">
                          <div class="">
                            <div style="zoom: 0%;" class="">
                              <div dir="auto" class="">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 class="">
                                <br class="">
                              </div>
                              <div dir="auto" class="">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 class="">
                                <br class="">
                              </div>
                              <div dir="auto" class="">Nidish</div>
                              <div class="gmail_quote">On Aug 16, 2020,
                                at 00:17, Jed Brown <<a
                                  href="mailto:jed@jedbrown.org"
                                  target="_blank" class=""
                                  moz-do-not-send="true">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?

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 <<a href="mailto:nb25@rice.edu" class="" moz-do-not-send="true">nb25@rice.edu</a>> writes:

<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" class="" moz-do-not-send="true">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.

 Nidish

 On Aug 15, 2020, 21:42, at 21:42, Barry Smith <<a href="mailto:bsmith@petsc.dev" class="" moz-do-not-send="true">bsmith@petsc.dev</a>> wrote:
<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;">
Exactly what algorithm are you using in Matlab to get the 10 smallest
eigenvalues and their corresponding eigenvectors? 

  Barry


<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 <<a href="mailto:nb25@rice.edu" class="" moz-do-not-send="true">nb25@rice.edu</a>> wrote:
 
 The section on solving singular systems in the manual starts with
</blockquote>assuming that the singular eigenvectors are already known.
<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> 
 I have a large system where finding the singular eigenvectors is not
</blockquote>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
<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> 
 K.v = lam*M.v
 
 for cases where K is positive semi-definite (contains a few "rigid
</blockquote>body modes") and M is strictly positive definite.
<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"> 
 I'd appreciate any assistance you may provide with this.
 
 Thank you,
 Nidish
</blockquote></blockquote></blockquote></pre>
                                </blockquote>
                              </div>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br class="">
                    </div>
                  </div>
                </blockquote>
                <div class="moz-signature">-- <br class="">
                  Nidish</div>
              </div>
            </div>
          </blockquote>
        </div>
        <br class="">
      </div>
    </blockquote>
    <div class="moz-signature">-- <br>
      Nidish</div>
  </body>
</html>