|
2 | 2 |
|
3 | 3 | Don't use this unless I told you to |
4 | 4 |
|
5 | | -### What is this |
| 5 | + |
| 6 | +## What is this |
6 | 7 |
|
7 | 8 | I'm prototyping a potential new version of icepack. |
8 | | -We've relied heavily on first-order timestepping schemes with operator splitting to handle multiple kinds of physics. |
9 | | -This may be painting us into a sad corner for harder problems like paleo-ice sheet simulation. |
10 | | -What I want to change: |
| 9 | +Some of the choices of design and solution strategy have painted us into a corner when it comes to simulating evolving termini and for doing long time integration. |
| 10 | +This repo is for testing proposed changes that will fix those problems. |
| 11 | + |
| 12 | +**Current status**: We have achieved almost all of the goals that we set out originally (see below). |
| 13 | +The next step is to incorporate this code into the main icepack repository without breaking existing workflows. |
| 14 | + |
| 15 | + |
| 16 | +## What have we done |
| 17 | + |
| 18 | +### Higher-order timestepping |
| 19 | + |
| 20 | +So far, we've relied exclusively on implicit Euler for timestepping the mass balance equation. |
| 21 | +We then use an operator splitting scheme to separate out the solution of the momentum balance equation. |
| 22 | +We will want higher-order schemes if we want to do simulations on paleoclimate time scales. |
| 23 | +But even if we used a higher-order scheme for the mass balance equation, we would still be stuck with first-order convergence because of the operator splitting. |
| 24 | + |
| 25 | +This package uses the [irksome](https://firedrakeproject.github.io/Irksome/) library to solve the coupled mass and momentum balance equation. |
| 26 | +The solution is *fully coupled*: we simultaneously solve the mass and momentum balance equations. |
| 27 | +In addition to the implicit Euler scheme, we also tested using the L-stable Radau-IIA family. |
| 28 | +These methods are L-stable, which we want for dissipative problems like glacier dynamics. |
| 29 | + |
| 30 | +### Variational inequalities |
| 31 | + |
| 32 | +The ice thickness needs to be positive. |
| 33 | +Without special care, it can go negative in the ablation zone. |
| 34 | +So far, we have solved this by clamping the thickness from below at every timestep. |
| 35 | + |
| 36 | +Rather than clamp the ice thickness, we can instead formulate the problem as a variational inequality with explicit bounds constraints. |
| 37 | +Irksome has added the capacity to do bounds-constrained problems, which we now use. |
| 38 | +This guarantees positivity at each timestep. |
11 | 39 |
|
12 | | -**Higher-order timestepping.** |
13 | | -We've relied almost exclusively on implicit Euler. |
14 | | -If we want higher-order schemes, and we don't want to implement them ourselves, we could use the [irksome](https://firedrakeproject.github.io/Irksome/) library. |
15 | | -This package includes methods like Radau-IIA or Lobatto-IIIC, which are L-stable -- we want this for dissipative problems like glacier dynamics. |
| 40 | +And quite a bit more too. |
| 41 | +If we're using higher-order Runge-Kutta methods, we might also want positivity of the solution at each Runge-Kutta stage. |
| 42 | +Irksome does even better than that. |
| 43 | +The Radau-IIA scheme is a collocation method in time. |
| 44 | +It is equivalent to fitting a polynomial through the solution in $t$ and requiring the ODE to be exact at a set of collocation times within each interval. |
| 45 | +The relationship between positivity of a polynomial and its coefficients is not direct. |
| 46 | +But there's no reason that we need to use the monomial or the Lagrange basis. |
| 47 | +We can instead expand this polynomial in the Bernstein basis. |
| 48 | +If we require the coefficients of the polynomial in the Bernstein basis to be positive, then the polynomial is positive *everywhere in the interval*. |
| 49 | +(The converse is not true, i.e. there are positive polynomials with negative Bernstein coefficients. |
| 50 | +But this effect goes away under refinement, i.e. if we expand it on smaller sub-intervals, eventually all the coefficients will be positive.) |
| 51 | + |
| 52 | +We have tested this with both the backward Euler and Radau-IIA schemes. |
| 53 | + |
| 54 | +### Duality |
| 55 | + |
| 56 | +The conventional approach to ice flow modeling is to solve a nonlinear elliptic differential equation, called the shallow stream approximation or SSA, for the ice velocity $u$. |
| 57 | +This equation is ill-posed whenever the ice thickness can go to 0. |
| 58 | +The orthodox solution is to use implicit interface tracking schemes like the level set method. |
| 59 | + |
| 60 | +Here we instead use the dual or mixed form of SSA, which explicitly introduces the membrane and basal stresses as unknowns. |
| 61 | +The dual form remains solvable even when the ice thickness is 0. |
| 62 | +We have used this to simulate both iceberg calving from marine-terminating glaciers and the advance and retreat of land-terminating mountain glaciers. |
| 63 | + |
| 64 | + |
| 65 | +## What is to be done |
| 66 | + |
| 67 | +### Linearly-implicit schemes |
16 | 68 |
|
17 | | -**Linearly-implicit schemes.** |
18 | 69 | Rather than do a full nonlinear solve for all the Runge-Kutta stages in each timestep, you can do a single iteration of Newton's method. |
19 | 70 | Asymptotically in $\delta t$ this is just as good as the fully implicit scheme while keeping the same good stability properties. |
20 | 71 | It's also much easier to implement and less prone to undiagnosable convergence failures. |
21 | 72 | These are also called Rosenbrock methods. |
22 | 73 |
|
23 | | -**Approximate linearization.** |
| 74 | +I don't know how this should interact with variational inequalities. |
| 75 | +In principle you could solve a linear complementarity problem in each timestep instead of a nonlinear complementarity problem. |
| 76 | + |
| 77 | +### Approximate linearization |
| 78 | + |
24 | 79 | You don't have to use the exact linearization with a linearly-implicit scheme. |
25 | 80 | In principle we could just use the diagonal blocks for each variable, which will cost only a little more than doing operator splitting. |
26 | 81 | This may or may not have the same order in $\delta t$, I have to see. |
27 | 82 | We might be able to work around some of the degeneracies that occur at zero strain rate or thickness by perturbing the linearization. |
28 | 83 |
|
29 | | -**Variational inequalities.** |
30 | | -Rather than clamp the ice thickness from below at every timestep to make sure it stays positive, we can instead formulate the problem as a variational inequality with explicit bounds constraints. |
31 | | -Ed Bueler says that this means using only piecewise linear basis functions. |
32 | | -Rob Kirby would probably say to try Bernstein. |
| 84 | +### Nonlinear elimination preconditioning |
33 | 85 |
|
34 | | -**Mixed elements.** |
35 | | -I've tried using elements for the velocity and thickness that are stable for mixed Poisson and they seem to work better in the zero-thickness limit than using, say, CG(1) for both. |
36 | | -We might need to explicitly include the flux as an unknown (note to self, ask Colin about this). |
| 86 | +This basically uses the operator splitting scheme as a preconditioner for the monolithically-coupled problem. |
| 87 | +For thermal problems it's supposed to be a big improvement. |
37 | 88 |
|
38 | | -**Duality.** |
39 | | -The dual form of SSA includes the SIA as a special case. |
40 | | -This opens up the possibility of making a simple hybrid model that describes both flow regimes. |
| 89 | +### Hybrid models |
41 | 90 |
|
| 91 | +The dual form of SSA can behave like SIA in a certain limit. |
| 92 | +Is it really a hybrid model that can do all stress regimes? |
| 93 | +This proposition requires proof... |
42 | 94 |
|
43 | | -### Discretization |
| 95 | +### Frontal ablation |
44 | 96 |
|
45 | | -Using Irksome, try the implicit Euler and Radau-IIA methods. |
46 | | -If we try to use the PETSc variational inequality solver, then we need to use either the semi-smooth Newton (VINEWTONSSLS) or active set (VINEWTONRSLS) solvers. |
47 | | -But if we want to use a linearly implicit method then we want to specify a nonlinear solver type of KSPONLY, which effectively does Rosenbrock for us. |
48 | | -If we use the VI solvers then we have to do a fully implicit problem and it's not obvious how to solve only a linear complementarity problem instead. |
| 97 | +The ability to solve the momentum balance equation at zero thickness means we can simulate episodic calving events. |
| 98 | +Just make the ice thickness zero over some region. |
| 99 | +This approach handles position-based calving laws well. |
| 100 | +It will not do rate-based calving laws, where the terminus retreats continuously at some specificed rate. |
| 101 | +Rate-based calving laws or frontal ablation are (in principle?) are a sink term + a modification to the flux in the mass balance equation. |
0 commit comments