Houston, we have convergence! Thank you for the help Lawrence. I did see there were emails about the split passed around last week, which I clearly should have read more closely. Now that I have convergence on a course grid I will test a finder grid and let you know how robust this is. Cheers, Francis ------------------ Francis Poulin Associate Professor Department of Applied Mathematics University of Waterloo email: fpoulin@uwaterloo.ca Web: https://uwaterloo.ca/poulin-research-group/ Telephone: +1 519 888 4567 x32637 ________________________________________ From: firedrake-bounces@imperial.ac.uk [firedrake-bounces@imperial.ac.uk] on behalf of Lawrence Mitchell [lawrence.mitchell@imperial.ac.uk] Sent: Thursday, March 30, 2017 7:14 AM To: firedrake@imperial.ac.uk Subject: Re: [firedrake] close to fixing my nonlinear QG solver Hi Francis, sorry, I now saw your problem. You do: soln1.assign(soln0) psi1, u1, q1 = soln1.split() Gnon = F(psi1, u1, q1) You've been bitten by the "wrong split" bug!! ARGH. Only use function.split() for output. If you're going to use the split values in a form, you need to use "split(function)" If you replace your lines: psi1, u1, q1 = soln1.split() Gnon = ... with: psi1, u1, q1 = split(soln1) Gnon = ... psi1, u1, q1 = soln1.split() Everything works. Lawrence