<div dir="ltr">Hey Jed,<div><br></div><div>I take your point that H.O. != tightly coupled, what I was trying to say was that I'm deliberately using slab dofs as the minor index as the stencil for the Helmholtz operator is wider in the slab that between slabs (apologies for the confusion).</div><div><br></div><div>I'll keep digging to see if I can find a bug in my matrix assembly. I agree that this is the most likely explanation. Concurrently I'll also see if using FieldSplit (with each slab as a field) helps.</div><div><br></div><div>Cheers, Dave.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 15, 2019 at 12:43 PM Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</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">Dave Lee <<a href="mailto:davelee2804@gmail.com" target="_blank">davelee2804@gmail.com</a>> writes:<br>
<br>
> Thanks Jed,<br>
><br>
> I will reconfigure my PETSc with MUMPS or SuperLU and see if that helps.<br>
> (my code is configured to only run in parallel on 6*n^2 processors (n^2<br>
> procs on each face of a cubed sphere, which is a little annoying for<br>
> situations like these where a serial LU solver would be handy for testing).<br>
><br>
> I've tried setting a tight tolerance on the slab-wise block solve, and<br>
> preconditioning based on the pressure, but these haven't helped.<br>
><br>
> Unlike other atmosphere codes I'm using slab (layer)-minor indexing, as my<br>
> horizontal discretisation is arbitrary order, while I'm only piecewise<br>
> constant/linear in the vertical, so I've already got the slab-wise dofs<br>
> close together in memory.<br>
<br>
Being high order does not necessarily mean more tightly coupled. A<br>
useful test is to compute a column of the Jacobian inverse (e.g., by<br>
solving with a right-hand side that is a column of the identity) and<br>
plot it to see how it extends in each spatial dimension.<br>
<br>
> I feel like maybe the construction of the Hessenberg during the Arnoldi<br>
> iteration and/or the least squares minimisation for the GMRES solve is<br>
> leading to additional coupling between the slabs, which is maybe degrading<br>
> the convergence, just a thought...<br>
<br>
GMRES does not care how you order degrees of freedom.<br>
<br>
My guess based on what I've seen in this thread is that there is a bug<br>
in your discretization.<br>
</blockquote></div>