tREADME.md - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
HTML git clone git://src.adamsgaard.dk/pism
DIR Log
DIR Files
DIR Refs
DIR LICENSE
---
tREADME.md (1842B)
---
1 ### Testing eigen-calving in a setup with "tongues"
2
3 `generate_input.py` creates an input file with several "outlet
4 glaciers" of various widths, starting from 1, 2, ... grid points.
5
6 Run `make default` to run without calving, `make eigen_calving` to
7 turn on eigen-calving (seems to be unstable on its own because some
8 tongues develop very thin "offshoots" that are only weakly connected
9 to grounded ice).
10
11 Run `make eigen_plus_thickness_calving` to run with both eigen-calving
12 and thickness-calving on. This setup shows that one- and two-cell-wide
13 tongues *do not calve* at all in this setup.
14
15 This justifies the removal of one-cell-wide tongues using an
16 additional geometric (and strain-rate-independent) calving rule.
17
18 I'm not sure what to do with tongues that are two cells wide. I think
19 they will require some changes in the eigen-calving code.
20
21 #### Side note:
22
23 Strictly speaking, the eigen-calving model should produce a **0**
24 (zero) calving rate in this setup.
25
26 Recall that principal strain rates are computed as follows:
27
28 const PetscScalar A = 0.5 * (u_x + v_y), // A = (1/2) trace(D)
29 B = 0.5 * (u_x - v_y),
30 Dxy = 0.5 * (v_x + u_y), // B^2 = A^2 - u_x v_y
31 q = sqrt(PetscSqr(B) + PetscSqr(Dxy));
32 eigen1 = A + q;
33 eigen2 = A - q; // q >= 0 so e1 >= e2
34
35 In this setup there is no variation in ice thickness in each "tongue",
36 so `taud_x = 0`, `u_x = v_x = 0` and `u = u_y = 0`, so the code above
37 should be equivalent to
38
39 eigen1 = v_y;
40 eigen2 = 0; // q >= 0 so e1 >= e2
41
42 Now, the calving rule is
43
44 if (eigen2 > eigenCalvOffset &&
45 eigen1 > 0.0) { // if spreading in all directions
46 calving_rate_horizontal = m_K * eigen1 * (eigen2 - eigenCalvOffset);
47 } else {
48 calving_rate_horizontal = 0.0;
49 }
50
51 and `eigenCalvOffset == 0`, so `calving_rate_horizontal` should be zero.