<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Mar 7, 2015 at 5:52 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Mar 7, 2015, at 5:27 PM, David Knezevic <<a href="mailto:david.knezevic@akselos.com">david.knezevic@akselos.com</a>> wrote:<br>
><br>
> OK, thanks for letting me know.<br>
><br>
> I've tried GAMG and ML with MatNullSpaceCreateRigidBody and those both work well for me. (I tried ML after Jed pointed out that ML also uses the near nullspace.)<br>
><br>
> I have also tried hypre but the convergence hasn't been as good for the elasticity models I've been using, though I may not have been setting the hypre options in an optimal way for elasticity.<br>
><br>
> Another situation I've been meaning to ask about: If the elasticity model includes some "near rigid" regions (very high Young's modulus) all iterative solvers I've tried fare poorly. I guess it's because the highly contrasting stiffnesses give a large condition number. Is there a standard way to get the preconditioner compensate for this?<br>
<br>
</span> Off the top of my head: a "domain decomposition" answer might be to use a sparse direct solver on that region; of course how to tie that into the rest of the regions and the iterative solver is a broad question.<br>
<br>
Maybe in the context of AMG all the nodes in that region could be retained in the coarser grids (assuming it is a relatively small part of the domain) and so all those points end up in the coarse grid which is solved with a sparse direct solver? We don't currently have an interface for you to indicate nodes you want to keep in the coarse grid; Mark would have know if this makes any sense at all.</blockquote><div><br></div><div>Isn't this just another near null vector? If the thing is very stiff, the Jacobian is approximately singular there since you really</div><div>only have the 3 rigid body modes as degrees of freedom. You are right that it should be a coarse basis function, but the way</div><div>to get it in there is to put it in as a near null mode, just as he is doing now.</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> Thanks,<br>
> David<br>
><br>
><br>
><br>
> On Sat, Mar 7, 2015 at 5:57 PM, Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>> wrote:<br>
> FYI, stüben used classical AMG for elasticity but he has articulated his code for elasticity more than Hypre as I understand it. Hypre can work OK for elasticity in my experience. Its worth a try.<br>
><br>
> Mark<br>
><br>
> On Thu, Mar 5, 2015 at 5:27 PM, David Knezevic <<a href="mailto:david.knezevic@akselos.com">david.knezevic@akselos.com</a>> wrote:<br>
> OK, got it, thanks!<br>
><br>
> David<br>
><br>
><br>
> On Thu, Mar 5, 2015 at 5:08 PM, Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br>
> David Knezevic <<a href="mailto:david.knezevic@akselos.com">david.knezevic@akselos.com</a>> writes:<br>
> > I was just wondering if its possible to achieve the same sort of thing with<br>
> > other AMG solvers (e.g. BoomerAMG)? I assume that MatSetNearNullSpace does<br>
> > nothing for external solvers like hypre, right?<br>
><br>
> It is used by ML (smoothed aggregation), but not BoomerAMG (classical<br>
> AMG) which uses an algorithm that doesn't have a natural place for such<br>
> information. To my knowledge, classical AMG is not widely used for<br>
> elasticity. It is very robust for M-matrices.<br>
><br>
><br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>