Solution of the Blatter-Pattyn model
The final form of the equations we'd like to solve is:
Again, note that for the x equation we've moved all the terms containing gradients in v to the right-hand side (RHS).
We've set it up this way in order to solve the equations using an operator splitting approach; for the x equation, we treat v as known (where we take the values of v from the previous iteration) and solve for u, and vice versa when we solve they y equation for v. The "splitting" refers to the fact that we are breaking the multi-dimensional divergence operation into multiple steps. Rather than solving one big matrix equation for u and v simultaneously we solve two smaller matrix equations in sequence with one of the unknowns treated as a known "source" term.
As with the 0-order model, we need to change from Cartesian to sigma coordinates. The first normal-stress term first term on the left-hand side becomes
where hatted values refer to the coordinate directions in sigma coordinates. Similarly, the first cross-stress term on the RHS is given by
One term has become five terms and each one of those is pretty scary looking on its own. Luckily, there is also a lot of symmetry here. Notice that if we wanted to design subroutines to discretize the terms on the RHS, we could re-use a lot of them by either applying them to the correct velocity component (either to the u OR the v discretization) or by passing the appropriate arguments (pass either the grid spacing in the x direction OR the y direction, where appropriate). There is still a lot of work here ...