<div dir="ltr">Jed: get a thesaurus!  I am getting sick of '<span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14.44444465637207px;line-height:22.22222328186035px">elide' :)</span><br><div class="gmail_extra">
<br></div><div class="gmail_extra">The fix would be to eliminate the rotation mode(s) (or any of the modes for that matter) for that vertex of P.  It just happens on the first coarse grid where the number of equation per vertex goes up (2-->3 in 2D elasticity).  This would be problematic for a few reasons but the most obvious is that the coarse grid would have variable block size.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Note, because we have Galerkin coarse grids we can really just add anything to the diagonal.   I've had good luck with doing this but it is tedious to get you implementations to deal with these fake equations.  But I've found that getting fancy does not help convergence and is not perfect anyway.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 1, 2014 at 5:59 PM, Jed Brown <span dir="ltr"><<a href="mailto:pullrequests-reply@bitbucket.org" target="_blank">pullrequests-reply@bitbucket.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><u></u>

  
    
    
  
  <div style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;color:rgb(51,51,51)">
    <table style="width:100%;border-collapse:collapse">
      <tbody>
        <tr>
          <td style="background-color:rgb(245,245,245);padding:10px 10px 0px;font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif">
            <table style="width:100%;border-collapse:collapse">
              <tbody>
                
                
                
                
                  
                     <tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px;background-color:rgb(255,255,255);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px">

    <div style="border:none;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;padding:0px;background-color:rgb(245,245,245)">
      <table style="width:100%;border-collapse:collapse"><tbody><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px">
              <div style="border:1px solid rgb(204,204,204);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;background-color:rgb(255,255,255);padding:20px">
<div class="">
                
<span style="display:none!important">
  
    Jed Brown commented on pull request #161: GAMG: shift coarse grids to avoid zero diags from low rank coarse grid space
  
</span>
</div><table style="width:100%;border-collapse:collapse"><tbody><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px">
  <table style="width:100%;border-collapse:collapse"><tbody><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px;width:32px;vertical-align:top">

          
            
              
 [jedbrown] </td>
        <td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px 0px 0px 10px">
          <table style="width:100%;border-collapse:collapse"><tbody><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;font-family:Arial,sans-serif;padding:0px;line-height:1">
                    
                      
                        <strong>Jed Brown</strong> commented on pull request #161:
                      
                    
                  </td>
                </tr><tr><td style="font-style:normal;font-variant:normal;font-size:14px;font-family:Arial,sans-serif;padding:5px 0px 0px;font-weight:bold;line-height:1.2">
                      <a href="https://bitbucket.org/petsc/petsc/pull-request/161/gamg-shift-coarse-grids-to-avoid-zero#comment-1559358" style="color:rgb(59,115,175);text-decoration:none" target="_blank">GAMG: shift coarse grids to avoid zero diags from low rank coarse grid space</a>
                    </td>
                  </tr><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:10px 0px 15px">
                  <p style="margin:0px;padding:0px">Hmm, why can't singletons be elided completely?  Then you would have a zero row of P.</p>
                </td>
              </tr></tbody></table></td>
      </tr><tr><td colspan="2" style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;font-family:Arial,sans-serif;padding:20px 0px 0px;color:rgb(112,112,112);border-top-width:1px;border-top-style:solid;border-top-color:rgb(204,204,204);line-height:1">

            
            
              
                <a href="https://bitbucket.org/petsc/petsc/pull-request/161/gamg-shift-coarse-grids-to-avoid-zero#comment-1559358" style="color:rgb(59,115,175);text-decoration:none" target="_blank">View this pull request</a> or add a comment by replying to this email.
              
            
          </td>
        </tr></tbody></table></td>

          
        
      </tr></tbody></table></div>
            </td>
          </tr><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(204,204,204);color:rgb(112,112,112)">

        <table style="width:100%;border-collapse:collapse"><tbody><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;font-family:Arial,sans-serif;padding:20px 0px 0px;line-height:1">
                
                  In reply to <strong>Mark Adams</strong>
                
              </td>
            </tr><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px">
  <table style="width:100%;border-collapse:collapse"><tbody><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px;width:32px;vertical-align:top">

          
        </td>
        <td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:0px 0px 0px 10px">
          <table style="width:100%;border-collapse:collapse"><tbody><tr><td style="font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:1.4285714;font-family:Arial,sans-serif;padding:10px 0px 15px">

                  <p style="margin:0px;padding:0px">"avoid[ing] zero columns " columns is impossible.  And the fix is the same
thing that people do for BCs:  make an equation not in the math; it is just
going along for the ride.</p>
<p style="margin:10px 0px 0px;padding:0px">I had custom code to do this in Prometheus, it would try to add singletons
to other aggregates, in fact it would break up all small aggregates and try
to distribute them, but it is not guaranteed to succeed.</p>
<p style="margin:10px 0px 0px;padding:0px">I could add post processing step where I scan for singletons and then add
them to other aggregates but this will not always work: for instance, given
a high threshold a (good) input problem might have a singleton in the
graph.  What do you do?  lower the threshold, redo the graph and try again.
  Really?</p>
<p style="margin:10px 0px 0px;padding:0px">This is crufty MPI code: any singletons?;  send messages to you neighbors:
"can you take me?";  receive replies; pick one; send it.</p>
<p style="margin:10px 0px 0px;padding:0px">What happens if there are two singletons next to each other?  Now I say if
I can take you and I am a singleton,  and I have a higher processor ID I
will take you and you must give me your singleton so I will no longer be a
singleton.  Fine.  What if there are three singletons next each other ....
Just to avoid a BC like equation?  This there a polynomial time algorithm
to do this?</p>
                </td>
              </tr></tbody></table></td>
      </tr></tbody></table></td>

              
            </tr></tbody></table></td>
    </tr></tbody></table></div>
  </td>
</tr>
                  
                
                <tr>
                  

<td style="padding:20px 0px;color:rgb(112,112,112)">
  <table style="width:100%;border-collapse:collapse">
    <tbody>
      <tr>
        <td style="padding:0px">
          
            
            
              
              
                
                  <a style="color:rgb(59,115,175);text-decoration:none" href="https://bitbucket.org/petsc/petsc/pull-request/161/unwatch/madams/f80fc7b4784df2819a4a5e329f4f4fc1813e22a9/" target="_blank">Unwatch this pull request</a> to stop receiving email updates.
                
              
            
          
          
        </td>
        <td style="padding:0px">
          
            

  


          
        </td>
        <td style="text-align:right;width:100px;padding:0px">
          <a href="https://bitbucket.org" style="color:rgb(59,115,175);text-decoration:none" target="_blank">
            <img width="100" height="18" src="https://d3oaxc4q5k2d6q.cloudfront.net/m/1558700f08fc/img/email/logo.gif" alt="Bitbucket">
          </a>
        </td>
      </tr>
    </tbody>
  </table>
</td>

                </tr>
              </tbody>
            </table>
          </td>
        </tr>
      </tbody>
    </table>
  </div>

</blockquote></div><br></div></div>