<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Oct 28, 2016 at 8:38 AM, Jeremy Theler <span dir="ltr"><<a href="mailto:jeremy@seamplex.com" target="_blank">jeremy@seamplex.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
><br>
> If I do not call PCSetCoordinates() the error goes away but<br>
> convergence<br>
> is slow.<br>
> Is it possible that your coordinates lie on a 2D surface? All this<br>
> does is make the 6 basis vectors<br>
> for translations and rotations. You can just make these yourself and<br>
> call MatSetNearNullSpace()<br>
> and see what you get.<br>
><br>
No, they do not lie on a 2D surface :-/<br>
<br>
Sorry but I did not get the point about the 6 basis vectors and<br>
MatSetNearNullSpace().<br></blockquote><div><br></div><div>AMG (the agglomeration kind) needs to know the near null space of your operator in order</div><div>to work. You have an elasticity problem (I think), and if you take that operator without boundary</div><div>conditions, the energy is invariant to translations and rotations. The space of translations and</div><div>rotations is a 6D space (3 translations, 3 rotations). You need to express these in the basis for</div><div>your problem (I assume linear elements, P1). This is what PCSetCoordinates() tries to do. Something</div><div>is going wrong, but its hard for us to say what since I have no idea what your problem looks like.</div><div>So you can make these vectors yourself and provide them to GAMG using MatSetNearNullSpace().</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">
--<br>
jeremy<br></blockquote></div>-- <br><div class="gmail_signature" data-smartmail="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>