The Ice Sheet Model is formulated in one dimension, a horizontal dimension and so we have snow that's accumulating all the way across this dimension. And as the ice gets thicker and thicker you get a slope at the ice surface which drives a pressure gradient which drives flow in both directions. The flow is always going sort of down hill. The flow is given by the surface slope, the change in elevation over the change in x of the slope of the surface there, times some constant, which will be given to you. So we're going to solve this problem numerically by breaking it up into pieces, and each of those pieces, we're going to call a grid cell. And so there will be some number of grid cells across the domain, and each grid cell has an elevation which is defined in the center of the cell and so the slope in the elevation would be the difference in x divided by the difference in x so the slope would be sort of between two adjacent points like that. And then there are flows defined in the domain as well going between one grid cell and another. So the flows are actually defined on the cell faces, whereas the elevations are in the cell centers. Another crucial part of this problem is the boundary condition. We have to keep it zero at the edges where the ice is flowing into the water. We're not going to let it build up higher than that. And that sort of controls the whole domain of the ice sheet. And the way that boundary condition manifests itself in a grid like this is to have some extra grid points, some sort of ghost grid cells on both sides, where you specify that the elevation has to be equal to zero at all times. So you have to treat those cells special. >> So this is what the Ice Sheet Model looks like in my spreadsheet version. I have, as usual, some parameters up at the top govern things, so I can change stuff on the fly and have it reflected everywhere, including units. So time step in years, 100 years. I have the time steps on rows going down here. So, this is the time in years, and this is going up to 23 thousand years and then we have to have elevations and we have to have flows. So I have elevations, I have ten of those, and then I have two grid cells at the edges, and then the flows go between those elevations. So, can see right here there's difference in elevation with x and that means that you get a flow there. In Python, this is what the code looks like. It's a short little code, very easy, and this is what it looks like when it runs. So now we're making the Python make a new plot every single time step and so you can see how the elevation is changing through time. We change the number of grid points. Say we make 20 grid points instead of ten. We get a smoother curve but we have to be careful about the time step. Because as you make the grid points closer together, you need to make the time step shorter, or else something like that happens where it just blows up. Decrease the time step. In general, a factor of two change in the size, factor of two change in the time step should work. More or less, we'll see. Taking longer for the action to happen here, because we're taking shorter time steps.