From b0d7aa3e5076ecf64655fd07c40087f8642ef333 Mon Sep 17 00:00:00 2001 From: mcflugen Date: Mon, 6 Mar 2023 22:15:01 -0500 Subject: [PATCH] add landlab solution notebooks --- .../landlab/intro-to-grids-solution.ipynb | 1310 +++++++++ ...ndlab-fault-scarp-for-espin-solution.ipynb | 2345 +++++++++++++++++ .../landlab-fault-scarp-for-espin.ipynb | 2039 ++++++++++++++ .../practice-your-skills-solution.ipynb | 606 +++++ 4 files changed, 6300 insertions(+) create mode 100644 lessons/landlab/landlab/intro-to-grids-solution.ipynb create mode 100644 lessons/landlab/landlab/landlab-fault-scarp-for-espin-solution.ipynb create mode 100644 lessons/landlab/landlab/landlab-fault-scarp-for-espin.ipynb create mode 100644 lessons/landlab/landlab/practice-your-skills-solution.ipynb diff --git a/lessons/landlab/landlab/intro-to-grids-solution.ipynb b/lessons/landlab/landlab/intro-to-grids-solution.ipynb new file mode 100644 index 0000000..ab5c497 --- /dev/null +++ b/lessons/landlab/landlab/intro-to-grids-solution.ipynb @@ -0,0 +1,1310 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "toc" + ] + }, + "source": [ + "# Table of Contents\n", + "* [Introduction to Landlab: Grids and simple 2D models](#Introduction-to-Landlab:-Grids-and-simple-2D-models)\n", + " * [What types of problems can Landlab solve?](#What-types-of-problems-can-Landlab-solve?)\n", + " * [What you need to know about Landlab grids](#What-you-need-to-know-about-Landlab-grids)\n", + " * [Explore the Landlab grids](#Explore-the-Landlab-grids)\n", + " * [Add fields and manipulate boundaries](#Add-fields-and-manipulate-boundaries)\n", + " * [Gradients](#Gradients)\n", + " * [Sediment diffusion](#Sediment-diffusion)\n", + " * [Sediment diffusion with a Landlab component](#Sediment-diffusion-with-a-Landlab-component)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to Landlab: Grids and simple 2D models\n", + "\n", + "This tutorial will introduce you to the basics of Landlab grids. By the end, you will have a basic understanding of the following:\n", + "\n", + "- The elements that comprise a landlab grid\n", + "- The numbering of grid elements \n", + "- How to instantiate different types and sizes of landlab grids\n", + "- How to attach fields to grids and set boundary conditions\n", + "- How to perform basic calculations across the grid\n", + "\n", + "The tutorial concludes with an (optional / time-permitting) example of how we can rapidly construct a simple, two-dimensional diffusion model on a Landlab raster grid. \n", + "\n", + "Time-permitting, we may also learn how to instantiate a component that will replicate the diffusion model for us." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## What types of problems can Landlab solve?\n", + "\n", + "Landlab is great for a variety of earth science problems that have one thing in common: routing a flow across a grid. In today's clinic, we'll see how Landlab handles the gradient calculations that are central to driving many earth (or planetary!) surface processes.\n", + "\n", + "\n", + " \n", + " \n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## What you need to know about Landlab grids\n", + "\n", + "Landlab model grids are 2D data structures that represent the model domain. A few things to know about grid management:\n", + "\n", + "- Grids are Python objects\n", + "- Grids use flat arrays\n", + "- Grids are comprised of elements such as nodes and links (see Figure)\n", + "- Grids are generated from the user-specified geometry of nodes\n", + "- Data fields can be attached to grid elements\n", + "- Methods are functions to perform operations on the data fields\n", + "- There are regular (raster, radial, and hexgonal) and irregular (Voronoi-Delauney) grid types\n", + "- Grids have some built-in numerical functions, such as gradient and divergence\n", + "\n", + "\n", + "\n", + "\n", + "**Figure** Geometry and topology of grid elements on various Landlab grids ([Hobley et al. 2017](https://esurf.copernicus.org/articles/5/21/2017/))\n", + "\n", + "-- [Interactive sketchbook](https://landlab.github.io/grid-sketchbook/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Explore the Landlab grids\n", + "\n", + "First let's visualize the types of grids that Landlab supports. The most common is the `RasterModelGrid`, but different grid types are useful for different applications. We'll start by importing a couple different grid libraries, plus some tools that will help us visualize the grids." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from landlab import HexModelGrid, RasterModelGrid, imshow_grid\n", + "from landlab.plot.graph import plot_graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`RasterModelGrid` and `HexModelGrid` are both Python classes, and the instances we create of those classes will be our grid objects. For starters, we'll get some basic information on `RasterModelGrid`. Then we'll create an instance of the class `RasterModelGrid` with 3 rows, 4 columns, and 10-unit grid spacing. We'll call our grid object `rmg`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# get info on RasterModelGrid\n", + "RasterModelGrid?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create a grid instance\n", + "rmg = RasterModelGrid((3, 4), 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's start to visualize how the nodes, links, and cells of our grid are numbered. Because grid information is stored in flat arrays, understanding the numbering order is critical to indexing the grid. For this visualization we'll use the `plot_graph` library. `plot_graph` takes two arguments: the first is the grid that we want to look at (`rmg`), and the second is the grid element that we want to inspect. In this first example, we'll inspect the nodes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# visualize nodes\n", + "plot_graph(rmg, at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Your turn: Use `plot_graph` to visualize the `link`s and `cell`s of our grid, `rmg`. How many links does `rmg` have? How many cells?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# visualize links" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "plot_graph(rmg, at=\"link\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# visualize cells" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "plot_graph(rmg, at=\"cell\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Neat! We'll return to our raster grid momentarily, but let's quickly look at the `HexModelGrid`, just for fun. Notice that when using `HexModelGrid`, the \"column\" argument specifies the number of nodes along the bottom of the grid." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create hexagonal grid\n", + "hmg = HexModelGrid((3, 4), 10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot nodes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "plot_graph(hmg, at=\"node\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot links" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "plot_graph(hmg, at=\"link\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot cells" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "plot_graph(hmg, at=\"cell,face\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great. We'll now return to `rmg` for the remaining exercises. First, let's get some basic information on the gird. For example, you can imagine that if you had a grid with many nodes (thousands! millions!), the `plot_graph` tool would cease to be very helpful. Instead, we can use some of Landlab's built-in grid fucntions to call information on the grid. We'll start by using a method to find the total number of nodes in `rmg`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# find number of nodes\n", + "rmg.number_of_nodes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`number_of_nodes` tells us that `rmg` has 12 nodes, and we can easily verify this visually. In the cell below, type a line of code to find the `number_of_core_nodes`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# find number of core nodes here\n", + "rmg.number_of_core_nodes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should find that there are two core nodes. Again, when working with such a small grid, we can visually verify this. We can also easily use `plot_graph` to find the index values of those core nodes. But what if we had a very large grid? Then we would want a way to get the indices of core nodes as an array. We can do this with the following line of code. It tells us that the core nodes of the grid have index values 5 and 6." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# get index values of core nodes\n", + "rmg.core_nodes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add fields and manipulate boundaries\n", + "\n", + "**(but first, a quick interlude about boundary and core nodes)**\n", + "\n", + "At this point, we've alluded to there being more than one type of grid node. Indeed, there are two types: \"boundary\" and \"core\" nodes. What's up with these? Very simply, boundary nodes form the perimeter of the grid. They can be given boundary conditions, such as constant sediment flux, or constant base-level lowering. They can also be set to be \"open\" or \"closed.\" This will make more sense as we move through this next section, in which we start to attach values to grid elements. \n", + "\n", + "Finally, we're ready to start adding data to our grid. The first thing we'll do is create a field that holds values of topographic elevation (in a geological framework, this would be like bedrock elevation). We'll start by making elevation 0 everywhere, and later we can add other values. We want the information about elevation to be held on the grid nodes (as opposed to on links or cells.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create elevation field filled with zeros\n", + "z = rmg.add_zeros(\"topographic__elevation\", at=\"node\", clobber=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have a field! Wahooooo! Recall that all grid information is held as flat arrays. That means `z` is a 1D array. And because a `z` was added at every node on `rmg`, the `z` array should have the same length and numbering as `rmg` nodes. Let's verify both below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# print the data type of \"z\"\n", + "type(z)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# print the length of \"z\"\n", + "len(z)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use standard Python indexing to set values just on the core nodes. Let's give the first core node a value of 5. Then you set a value of 3.6 for the next core node. Print out the array to see how it looks." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# set elevation of first core node\n", + "\n", + "# set elevation for next core node\n", + "\n", + "# print array" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "z[rmg.core_nodes[0]] = 5.0\n", + "z[rmg.core_nodes[1]] = 3.6\n", + "print(z)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition to printing the array, we can also use the `grid.imshow` method to visulize these grid values. `imshow` takes one arguments: the name of the grid that we're working with." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# visualize topographic elevation field\n", + "rmg.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, we now have elevation values associated with each node. Each node can hold as many field values as you like - for example, try adding another field of zeros, called `soil__depth`, to the grid nodes. Assign these values to an array called `soil`. You can get a list of all the fields associated with a grid by using the method `at_node.keys`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# add soil depth field here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "rmg.add_zeros(\"soil__depth\", at=\"node\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# see all fields associated with grid\n", + "rmg.at_node.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that our landscape has a topographic gradient, sediment can start to move across it. This means we need to decide what's going to happen at the edges of our grid. Will sediment be able to cross those boundaries, or not? Landlab makes this easy. Below, we set the top and bottom boundaries to be open and the left and right boundaries to be closed using the grid function `set_closed_boundaries_at_grid_edges`. The order of arguments to this function is east, north, west, south." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# close boundaries\n", + "rmg.set_closed_boundaries_at_grid_edges(True, False, True, False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Gradients\n", + "\n", + "Many earth science problems depend on spatial gradients on the landscape. Let's say we want to find the topographic gradient between each pair of adjacent nodes on `rmg`. This is information that is associated not with the grid nodes, but instead with grid links that connect nodes. Let's take a closer look at links." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**What are links?**\n", + "\n", + "For each pair of adjacent nodes in a Landlab grid, there is a corresponding **link**. Links are directed line segments whose endpoints are the coordinates of the nodes. A link can be illustrated like this:\n", + "\n", + " o---->o\n", + "\n", + "Here, each o represents a node, and the arrow is the link. A \"vertical\" link looks like this:\n", + "\n", + " o\n", + " ^\n", + " |\n", + " |\n", + " o\n", + "\n", + "The tip of the arrow is known as the **link head**; the base of the arrow is known as the **link tail**. By default, links always \"point\" within the upper-right half-plane.\n", + "\n", + "With this definition of links in mind, we can sketch our grid, `rmg`, like so, with the ID numbers of the nodes shown by the numbers:\n", + "\n", + "\n", + " 8 ----> 9 ----> 10----> 11\n", + " ^ ^ ^ ^\n", + " | | | |\n", + " | | | |\n", + " 4 ----> 5 ----> 6 ----> 7\n", + " ^ ^ ^ ^\n", + " | | | |\n", + " | | | |\n", + " 0 ----> 1 ----> 2 ----> 3\n", + "\n", + "\n", + "If we label each node with its elevation (`z`) value, it looks like this:\n", + "\n", + "\n", + " 0 ----> 0 ----> 0 ----> 0\n", + " ^ ^ ^ ^\n", + " | | | |\n", + " | | | |\n", + " 0 ---->5.0---->3.6----> 0\n", + " ^ ^ ^ ^\n", + " | | | |\n", + " | | | |\n", + " 0 ----> 0 ----> 0 ----> 0\n", + " \n", + "\n", + "Let's plot the layout of the nodes and links of our grid object again:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check out the nodes and links\n", + "plot_graph(rmg, at=\"node, link\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To calculate the flux of particles, we need to know the gradient between two adjacent nodes. We can do this easily using Landlab's built-in grid function, `calc_grad_at_link`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create a gradient array\n", + "dzdx = rmg.calc_grad_at_link(z)\n", + "\n", + "# print it out\n", + "print(dzdx)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a crude graphical representation of gradient array:\n", + "\n", + "\n", + " o ---0--> o ---0--> o ---0--> o\n", + " ^ ^ ^ ^\n", + " 0 -0.5 -0.36 0\n", + " | | | |\n", + " o +0.5 > o -0.14 > o -0.36 > o\n", + " ^ ^ ^ ^\n", + " 0 +0.5 +0.36 0\n", + " | | | |\n", + " o ---0--> o ---0--> 0 ---0--> 0\n", + "\n", + "Links are listed in order by the $(x, y)$ coordinates of their midpoints. The ID numbering scheme for our links looks like this:\n", + "\n", + "\n", + " o --14--> o --15--> o --16--> o\n", + " ^ ^ ^ ^\n", + " 10 11 12 13\n", + " | | | |\n", + " o ---7--> o ---8--> o ---9--> o\n", + " ^ ^ ^ ^\n", + " 3 4 5 6\n", + " | | | |\n", + " o ---0--> o ---1--> 0 ---2--> 0\n", + "\n", + "Let's explore how the geometry and the values in the ID array of gradients correspond. Here are the gradients associated with the first three horizontal links along the bottom edge of the grid:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check out values associated with first three horizontal links\n", + "dzdx[0:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next come four vertical links that connect the bottom to the middle rows of nodes. Two of these values are positive. Which way is sediment moving, relative to the directionality of the links?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# now check out values associated with first four vertical links\n", + "dzdx[3:7]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, you can recover the values associated with links through basic Python index. However, this can become tedious. An alternative way to inspect link-based values in a raster grid is to use the `horizontal_links` and `vertical_links` grid attributes:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# get all of the values of horizontal links\n", + "dzdx[rmg.horizontal_links]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# get all of the values of vertical links" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "dzdx[rmg.vertical_links]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sediment diffusion\n", + "\n", + "Finally, we can put together the basics of Landlab with some geomorphic soil transport laws to write a quick-n-easy diffusion model! First, we'll need to tackle a tiny bit of math.\n", + "\n", + "\n", + "\n", + "This example will use a finite-volume numerical solution to the 2D diffusion equation. The 2D diffusion equation in this case is derived as follows. Continuity of mass states that:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla \\cdot \\mathbf{q}_s$,\n", + "\n", + "where $z$ is elevation, $t$ is time, the vector $\\mathbf{q}_s$ is the volumetric soil transport rate per unit width, and $\\nabla$ is the divergence operator (here in two dimensions). (Note that we have omitted a porosity factor here; its effect will be subsumed in the transport coefficient). The sediment flux vector depends on the slope gradient:\n", + "\n", + "$\\mathbf{q}_s = -D \\nabla z$,\n", + "\n", + "where $D$ is a transport-rate coefficient---sometimes called *hillslope diffusivity*---with dimensions of length squared per time. Combining the two, we have a classical 2D diffusion equation:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = D \\nabla^2 z$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's create a new `RasterModelGrid`, somewhat larger than the one used in previous examples. This will allow us to see the movement of sediment more clearly. Try making a grid, called `mg`, with dimensions 25 x 25 and spacing of 10." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create your grid here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "mg = RasterModelGrid((25, 25), 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to define our hillslope diffusivity, `D`, and choose a timestep. For the timestep we use a [Courant–Friedrichs–Lewy condition](https://en.wikipedia.org/wiki/Courant–Friedrichs–Lewy_condition) of $C_{cfl}=0.2$. This will keep our solution numerically stable. \n", + "\n", + "$C_{cfl} = \\frac{\\Delta t D}{\\Delta x^2} = 0.2$\n", + "\n", + "We can call the x spacing of our grid using `mg.dx`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# transport coefficient, aka hillslope diffusivity\n", + "D = 0.01\n", + "\n", + "# calculate timestep\n", + "dt = 0.2 * mg.dx**2 / D\n", + "\n", + "# print timestep\n", + "print(dt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we need to add an elevation field. Create a field of zeros called `topographic__elevation` and attach it to the grid nodes. Save it to an array called `elev`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create elevation field here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "elev = mg.add_zeros(\"topographic__elevation\", at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we need to introduce some topographic variability onto our landscape. We can do this by elevating the upper half of our grid. We can do this by indexing our elevation array (`elev`) to raise all of the nodes whose y-value (`y_of_node`) exceeds a given value, like so:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# elevate upper half of grid\n", + "elev[mg.y_of_node > 120] += 10" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check out what the landscape looks like using `imshow_grid`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# display landscape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "mg.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we need to create a field that can track our sediment flux between nodes. Since this is a value that exists between nodes, it will be stored on links. Create a field called `sediment__flux` that is associated with grid `link`s, and save it to an array called `qs`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create sediment flux field here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "qs = mg.add_zeros(\"sediment__flux\", at=\"link\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's close the left and right boundaries, similar to what we did in part (b) above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# close left and right boundaries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "mg.set_closed_boundaries_at_grid_edges(True, False, True, False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we want to evolve our landscape for 50000 years. Since our timestep is 2000 years, this means we'll run a for loop for 25 iterations. The steps are as follows:\n", + "\n", + "- calculate a topographic gradient\n", + "- multiply that gradient by the hillslope diffusivity\n", + "- calculate sediment flux divergence (check calc_flux_div_at_node function of raster model grid)\n", + "- update the landscape\n", + "- repeat" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# write for loop to evolve landscape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "for _ in range(25):\n", + " g = mg.calc_grad_at_link(elev)\n", + " qs[mg.active_links] = -D * g[mg.active_links]\n", + " dzdt = -mg.calc_flux_div_at_node(qs)\n", + " elev[mg.core_nodes] += dzdt[mg.core_nodes] * dt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check out your final landscape once more using `imshow_grid`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# display your final landscape\n", + "mg.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Well done!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sediment diffusion with a Landlab component\n", + "\n", + "Finally, we'll take a look at how Landlab components can simplify model creation even further.\n", + "\n", + "Recall that in the `for` loop above, you managed to create a working sediment diffusion model with just five lines of code. However, before running the `for` loop you had to independently create the fields and parameters involved in the diffusion problem. This is where Landlab's component library comes in handy!\n", + "\n", + "The Landlab component library is composed of individual, interoperable code packages (\"components\") that each represent a single Earth surface process. Examples of components include flow routing algorithms, a variety of fluvial processes, and yes, soil processes! \n", + "\n", + "In this final part of our clinic, we'll make use of Landlab's `LinearDiffuser` component to replicate our diffused fault scarp landscape. This time, we'll let the component do more of the work of field and parameter creation for us." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Start by importing the component `LinearDiffuser` from `landlab.components`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from landlab.components import LinearDiffuser" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, we've imported a component which is going to help us build a diffusion model. Before we really start to use this component, though, we want to get some basic information on how it works. This information is stored in component \"properties.\" One such property is `input_var_names`. Call any property using the syntax `ComponentName.property_name`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check out input variable names\n", + "LinearDiffuser.input_var_names" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tells us that the only input variable required by this component is an elevation field, so we'll need to create that ourselves. \n", + "\n", + "Other standard properties are `output_var_names` and `optional_var_names`; pass an input or output name to `var_loc`, `var_type`, `var_units`, and `var_definition` to get the centering ('node', 'link', etc), array dtype (float, int), units (meters, etc) and a descriptive string, respectively. `var_help` will give you a lot of this information at once:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# ask for info related to the input variable 'topographic__elevation'\n", + "LinearDiffuser.var_help(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to see the complete documentation, we can also access this information using `?`, similar to how we accessed information from `RasterModelGrid` in part [Explore the Landlab grids](#Explore-the-Landlab-grids)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# recall the question mark notation used to access documentation in Landlab\n", + "LinearDiffuser?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note we haven't needed to instantiate the component in order to access any of this information. Instantiation occurs when we create a unique instance of the component with specific variables and parameter values (just like how we created instances of `RasterModelGrid` above with unique names, dimensions, and grid spacing.) Don't worry if this is confusing right now - it will make sense momentarily. \n", + "\n", + "Since we know `LinearDiffuser` requires a topographic elevation field in order to be instantiated, we need to create that field. Recall that `topographic__elevation` is tied to grid nodes, so we actually need to create a grid instance, and add the `topographic__elevation` field onto the grid. This is just like the steps we took in part [Sediment diffusion](#Sediment-diffusion) of this tutorial." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a new grid instance for the `LinearDiffuser` component to run on. Give your new grid a new name (perhaps `new_grid`?), but give it the same dimensions as `mg` (25 x 25, with 10m spacing)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create a new grid here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "new_grid = RasterModelGrid((25, 25), 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, we now have a grid on which we can implement our diffusion component. Recall, however, our diffusion equation from above:\n", + "\n", + "$$\\frac{\\partial z}{\\partial t} = D \\nabla^2 z$$\n", + "\n", + "As before, we need some topographic variation in order to drive diffusion. We'll still need to add our `topographic__elevation` field manually, and we'll need to create a \"fault\" on the grid by elevating half of the nodes. Let's do this now, following the format we used in [Sediment diffusion](#Sediment-diffusion).\n", + "\n", + "Hint: in [Sediment diffusion](#Sediment-diffusion), we saved our elevation data to an array named `elev`. Be sure to give your elevation array a different name here - perhaps `new_elev`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# add a field of zeros called \"topographic__elevation\" and attach it to the grid nodes\n", + "# save the field to an array with a new name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "new_elev = new_grid.add_zeros(\"topographic__elevation\", at=\"node\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# now elevate the upper half of the landscape, following the `node_of_y` method used in part (d)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "new_elev[new_grid.y_of_node > 120] += 10" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# now display the landscape\n", + "new_grid.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As in part [Sediment diffusion](#Sediment-diffusion), let's close the left and right grid boundaries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# close left and right boundaries\n", + "new_grid.set_closed_boundaries_at_grid_edges(True, False, True, False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, we're back where we started with a recently faulted, un-diffused landscape. But now, rather than building our own diffusion model from scratch, we'll let Landlab's `LinearDiffuser` component do the work for us. Create an instance of this component named `diffusion_model` and pass your grid to the component." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# instantiate the linear diffuser component here\n", + "diffusion_model = LinearDiffuser(new_grid)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, we now have an instance of our model. Next, use the `run_one_step` method with a timestep `dt` on `diffusion_model` in a `for` loop in order to evolve our faulted landscape. As in part [Sediment diffusion](#Sediment-diffusion), run the loop for 25 steps. Use the same timestep, `dt`, as defined above. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create your for loop here\n", + "# hint: you only need two lines of code in this cell to run the model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "for _ in range(25):\n", + " diffusion_model.run_one_step(dt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, now visualize your landscape to see if it looks similar to the 5-line model you created in part [Sediment diffusion](#Sediment-diffusion)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# visualize landscape\n", + "new_grid.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fantastic! Your final output should look very simialr to the diffusion model you created in part [Sediment diffusion](#Sediment-diffusion), but here you can see that using a Landlab component to simulate the diffusion process has simplified your `for` loop even further. You can appreciate how valuable this simplicity is, especially if you wanted to couple several components together (for example, flow routing, fluvial erosion, and hillslope diffusion) in order to evolve a more complex landscape.\n", + "\n", + "As a final, fun exercise, check out the `LinearDiffuser` documentation using `?` once again. See if you can find the list of input parameters. These are listed in the order of the arguments taken by the component; the first one will always be `grid`. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# check out the optional variables\n", + "LinearDiffuser?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- What is the name of this first optional argument? It is listed right after `grid`. Optional arguments have default values, which means the user does not need to specify its value. The user can, however, change the value if desired.\n", + "- What is its default value?\n", + "- Modify your existing instance of `LinearDiffuser` to include a different value for the first optional argument. \n", + "> Hint: go back to the cell with the comment \"instantiate the linear diffuser component here,\" and work from there\n", + "- Re-run the `for` loop to evolve the landscape, visualize the output, and note how changing the value of this optional argument impacts the form of the evolved landscape." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Congratulations on making it to the end of this tutorial!\n", + "\n", + "**Click here for more** Landlab tutorials" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/lessons/landlab/landlab/landlab-fault-scarp-for-espin-solution.ipynb b/lessons/landlab/landlab/landlab-fault-scarp-for-espin-solution.ipynb new file mode 100644 index 0000000..2d36a62 --- /dev/null +++ b/lessons/landlab/landlab/landlab-fault-scarp-for-espin-solution.ipynb @@ -0,0 +1,2345 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "toc" + ] + }, + "source": [ + "# Table of Contents\n", + "* [Introduction to Landlab: Creating a simple 2D scarp diffusion model](#Introduction-to-Landlab:-Creating-a-simple-2D-scarp-diffusion-model)\n", + " * [Part 1: 1D version using numpy](#Part-1:-1D-version-using-numpy)\n", + " * [Part 2: 2D version using Landlab's Model Grids](#Part-2:-2D-version-using-Landlab's-Model-Grids)\n", + " * [(a) Explore the RasterModelGrid](#(a)-Explore-the-RasterModelGrid)\n", + " * [Exercises for section 2a](#Exercises-for-section-2a)\n", + " * [(b) Use the RasterModelGrid for 2D diffusion](#(b)-Use-the-RasterModelGrid-for-2D-diffusion)\n", + " * [Exercises for section 2b](#Exercises-for-section-2b)\n", + " * [(c) What's going on under the hood?](#(c)-What's-going-on-under-the-hood?)\n", + " * [Exercises for section 2c](#Exercises-for-section-2c)\n", + " * [Part 3: Hexagonal grid](#Part-3:-Hexagonal-grid)\n", + " * [Exercises for section 3](#Exercises-for-section-3)\n", + " * [Part 4: Landlab Components](#Part-4:-Landlab-Components)\n", + " * [Exercises for section 4](#Exercises-for-section-4)\n", + " * [SOLUTION (derivation)](#SOLUTION-(derivation))\n", + " * [Derivation of the original governing equation](#Derivation-of-the-original-governing-equation)\n", + " * [Steady state](#Steady-state)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to Landlab: Creating a simple 2D scarp diffusion model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tutorial illustrates how you can use Landlab to construct a simple two-dimensional numerical model on a regular (raster) grid, using a simple forward-time, centered-space numerical scheme. The example is the erosional degradation of an earthquake fault scarp, and which evolves over time in response to the gradual downhill motion of soil. Here we use a simple \"geomorphic diffusion\" model for landform evolution, in which the downhill flow of soil is assumed to be proportional to the (downhill) gradient of the land surface multiplied by a transport coefficient.\n", + "\n", + "We start by importing the [numpy](https://numpy.org) and [matplotlib](https://matplotlib.org) libraries:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 1: 1D version using numpy\n", + "\n", + "This example uses a finite-volume numerical solution to the 2D diffusion equation. The 2D diffusion equation in this case is derived as follows. Continuity of mass states that:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla \\cdot \\mathbf{q}_s$,\n", + "\n", + "where $z$ is elevation, $t$ is time, the vector $\\mathbf{q}_s$ is the volumetric soil transport rate per unit width, and $\\nabla$ is the divergence operator (here in two dimensions). (Note that we have omitted a porosity factor here; its effect will be subsumed in the transport coefficient). The sediment flux vector depends on the slope gradient:\n", + "\n", + "$\\mathbf{q}_s = -D \\nabla z$,\n", + "\n", + "where $D$ is a transport-rate coefficient---sometimes called *hillslope diffusivity*---with dimensions of length squared per time. Combining the two, and assuming $D$ is uniform, we have a classical 2D diffusion equation:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla^2 z$.\n", + "\n", + "In this first example, we will create a our 1D domain in $x$ and $z$, and set a value for $D$.\n", + "\n", + "This means that the equation we solve will be in 1D. \n", + "\n", + "$\\frac{d z}{d t} = \\frac{d q_s}{dx}$,\n", + "\n", + "where \n", + "\n", + "$q_s = -D \\frac{d z}{dx}$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "dx = 1\n", + "x = np.arange(0, 100, dx, dtype=float)\n", + "z = np.zeros(x.shape, dtype=float)\n", + "D = 0.01" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we must create our fault by uplifting some of the domain. We will increment all elements of `z` in which `x>50`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "z[x > 50] += 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will diffuse our fault for 1,000 years.\n", + "\n", + "We will use a timestep with a [Courant–Friedrichs–Lewy condition](https://en.wikipedia.org/wiki/Courant–Friedrichs–Lewy_condition) of $C_{cfl}=0.2$. This will keep our solution numerically stable. \n", + "\n", + "$C_{cfl} = \\frac{\\Delta t D}{\\Delta x^2} = 0.2$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABC+UlEQVR4nO3deXxU9b3/8ddkkkz2AEEyiQQIEoQalM0NbMEF0IrW61rFhVZ7cUGJKCjFJVBJBG+RVn6iUiv0KuJtRatWgbhhFa0YQBGQzbBpYgRCEgkkZOb8/hjmkBCWLDOZMznv5+ORx0zOnJzzzXlkknc+3+U4DMMwEBEREbGQiFA3QERERORICigiIiJiOQooIiIiYjkKKCIiImI5CigiIiJiOQooIiIiYjkKKCIiImI5CigiIiJiOZGhbkBzeL1evv/+exITE3E4HKFujoiIiDSCYRhUVlaSnp5ORMTxayRhGVC+//57MjIyQt0MERERaYYdO3bQuXPn4+4TlgElMTER8H2DSUlJIW6NiIiINEZFRQUZGRnm3/HjCcuA4u/WSUpKUkAREREJM40ZnqFBsiIiImI5CigiIiJiOQooIiIiYjlhOQalMQzDoLa2Fo/HE+qmSBvldDqJjIzUVHcRkSBokwGlpqaG4uJiqqqqQt0UaePi4uJIS0sjOjo61E0REWlT2lxA8Xq9FBUV4XQ6SU9PJzo6Wv/hSsAZhkFNTQ0//vgjRUVFZGVlnXDRIRERabw2F1Bqamrwer1kZGQQFxcX6uZIGxYbG0tUVBTbtm2jpqaGmJiYUDdJRKTNaLP/8um/WWkN+jkTEQkO/XYVERERy2lyQPnoo4+47LLLSE9Px+Fw8Prrr9d73TAMcnNzSU9PJzY2lqFDh7J27dp6+1RXV3P33XfTsWNH4uPjufzyy9m5c2eLvhGBrVu34nA4WL16daO/Zt68ebRr1y7k7Qik3NxcUlNTzZ/P0aNHc8UVV5ivDx06lJycnJC0TUREGqfJAWXfvn2cccYZzJ49+6ivz5gxg5kzZzJ79mxWrFiB2+1m2LBhVFZWmvvk5OTw2muvsXDhQj7++GN++uknRo4cqSnB+O4vdOutt5oDfLt27cq4cePYvXv3Cb82IyOD4uJisrOzG32+6667jo0bN7akyc0ydOhQHA4HDocDl8tFz549ycvLa/HPwPr165kyZQrPPvssxcXFXHLJJfzpT39i3rx5gWm4iIi0iiYPkr3kkku45JJLjvqaYRjMmjWLyZMnc+WVVwIwf/58UlNTWbBgAWPGjKG8vJznn3+e//3f/+Wiiy4C4MUXXyQjI4N3332XESNGtODbCW/ffvst5557Lj179uTll18mMzOTtWvXMmHCBN555x0+++wzOnTocNSvrampITo6Grfb3aRzxsbGEhsbG4jmN9nvfvc7pk6dyoEDB3jrrbe45557cDqdPPDAAw329X9/J7JlyxYAfvWrX5mzt1wuV2AbLiIiQRfQWTxFRUWUlJQwfPhwc5vL5WLIkCEsX76cMWPGUFhYyMGDB+vtk56eTnZ2NsuXLz9qQKmurqa6utr8vKKiIpDNtoy77rqL6Oholi5daoaGLl260K9fP0455RQmT57MnDlzAOjWrRu33XYbmzdv5rXXXuOKK65gypQpZGZmsmrVKvr27QvAG2+8wX333cfOnTs555xzGD16NKNHj6asrIx27doxb948cnJy2Lt3L+DrHnn99de57777ePjhhykrK+OSSy5h7ty55t0nFy9ezGOPPcbXX3+N0+nk3HPP5U9/+hOnnHJKk77fuLg4M1CNHTuWf/7zn7z++us88MADjB49mr1793L22Wfz1FNPER0dzdatW1mzZg3jxo3j008/JS4ujquuuoqZM2eSkJBAbm4uU6ZMAQ4PXjUMwzzWkd2RfjU1NTz00EO89NJL7N27l+zsbKZPn87QoUOb9P1I8BVu28O/virBwAh1U4LL8BJXW05c7V5c3iqiPfuJ9lYR7aki0qjB6T2I06jFaRzEaRwkwvDiwEuE4cGBgcPw4sAADByG7xGg/oILbfwaSsvFncQ5o/NCdvqABpSSkhIAUlNT621PTU1l27Zt5j7R0dG0b9++wT7+rz9Sfn6++YenOQzDYP/B0HQfxUY5G7UOy549e1iyZAnTpk1rUNFwu92MGjWKV155haeffto83hNPPMHDDz/MQw89dNRjbt26lauvvppx48Zx2223sWrVKu6///4TtmXLli28/vrrvPXWW5SVlXHttdfy+OOPM23aNMDXzTd+/Hj69OnDvn37eOSRR/iv//ovVq9e3aJZLbGxsZSVlZmfv/feeyQlJVFQUIBhGFRVVXHxxRdzzjnnsGLFCkpLS7ntttsYO3Ys8+bN4/7776dbt278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YdTfoZ2qbyItpYDSxm3atInHHnuMPXv20KVLF+677z4mTZoU6maJNIvlung2LIaFN4DhgcwhcN3/QkyYTH8WsTgFlDbuySef5Mknnwx1M0RazDAMDuUTawySLdsGr/23L5ycfh1cPhsiT3y/KBFpnOavSy4i0or81ROwQAWltgb+8VvfrJ2TByqciASBAoqIhIXaOgEl5BWU96bAd1/4unOueUHhRCQIFFBEJCx4DYtUUL75F3x6aGr7Fc9obRORIFFAEZGwULeLJ6KZCw22WNk2eP0O3/Nzx0KvX4amHSI2oIAiImEh5GNQvF549TbfuJPOZ8JFua3fBhEbUUARkbBQN6CEZB2U9W/Azs8hOhGu/is4o078NSLSbAooYcrhcPD666+bn3/zzTecc845xMTE0Ldv32NuC4WhQ4eSk5MTknN/8skn9OnTh6ioKK644go+/PBDHA4He/fuBWDevHm0a9cuJG2TpjHvw+No/r2kms3rgQ/yfM/PvUvjTkRagQKKhYwePRqHw4HD4SAqKorU1FSGDRvGX//6V7yH7uLqV1xczCWXXGJ+/uijjxIfH8+GDRt47733jrnNiubNm2d+3w6Hg7S0NK699lqKiopafOzx48fTt29fioqKmDdvHoMGDaK4uJjkZC2mFW48RghXkV3zD9i1AWLb+276JyJBp4BiMRdffDHFxcVs3bqVd955h/PPP59x48YxcuRIamtrzf3cbne9G/5t2bKF8847j65du5KSknLMbVaVlJREcXEx33//PQsWLGD16tVcfvnleDyeBvsahlHvWhzPli1buOCCC+jcuTPt2rUjOjoat9vd+v+BS4vVekIUUDwH4cN83/PB47RSrEgrUUCxGJfLhdvt5uSTT6Z///78/ve/55///CfvvPOOecdoqN/F43A4KCwsZOrUqebdpI+27cjuDYDVq1fjcDjYunUrANu2beOyyy6jffv2xMfHc9ppp/H222+b+69bt45f/vKXJCQkkJqayk033cSuXbvM1/ft28fNN99MQkICaWlp/PGPf2zU9+1wOHC73aSlpXH++efz6KOP8vXXX7N582az3UuWLGHgwIG4XC7+/e9/U11dzT333EOnTp2IiYnhvPPOY8WKFQBs3boVh8PB7t27+e1vf4vD4WDevHlHvQZHevPNNxkwYAAxMTF0796dKVOmNDoQSfD4pxk7Wztcrn4Jyoog/iQ4679b99wiNmaPgGIYULMvNB8BuFn0BRdcwBlnnMGiRYuO+npxcTGnnXYa9913H8XFxdx///1H3dYYd911F9XV1Xz00UesWbOG6dOnk5CQYJ5nyJAh9O3bly+++ILFixfzww8/cO2115pfP2HCBD744ANee+01li5dyocffkhhYWGTv+fY2FgADh48aG6bOHEi+fn5rF+/ntNPP52JEyfy6quvMn/+fFauXEmPHj0YMWIEe/bsISMjg+LiYpKSkpg1axbFxcVcd911JzzvkiVLuPHGG7nnnntYt24dzz77LPPmzWPatGlN/h4ksGpDcaPAgwdg2Qzf85/fB9HxrXduEZuzx714DlZBXnpozv377wPyS61Xr1589dVXR33N7XYTGRlJQkICbrcbgISEhAbbGmP79u1cddVV9OnTB4Du3bubr82ZM4f+/fuTl5dnbvvrX/9KRkYGGzduJD09neeff56//e1vDBs2DID58+fTuXPnJn2vO3fu5IknnqBz58707NnTrNBMnTrVPO6+ffuYM2cO8+bNM8fizJ07l4KCAp5//nkmTJhgduUkJyc3+hpMmzaNBx98kFtuucX8/v/whz8wceJEHn300SZ9HxJY3lAElJXzoeI7SEyHAb9pvfOKiE0CShtgGEarjJu45557uOOOO1i6dCkXXXQRV111FaeffjoAhYWFfPDBB2ZFpa4tW7awf/9+ampqOPfcc83tHTp04NRTTz3hecvLy0lISMAwDKqqqujfvz+LFi0iOvrwEuIDBw6sd76DBw8yePBgc1tUVBRnnXUW69evb9b3Dr7vccWKFfUqJh6PhwMHDlBVVUVcXFyzjy0t0+oVlJoq+Oh/fM+HTIComNY5r4gAdgkoUXG+Skaozh0A69evJzMzs0XHiIjw9egZdbqd6nahANx2222MGDGCf/3rXyxdupT8/Hz++Mc/cvfdd+P1ernsssuYPn16g2OnpaWxadOmZrctMTGRlStXEhERQWpqKvHxDatOdbf5v4cjQ1tLg5zX62XKlClceeWVDV6LidEfqFDytHZAKZwH+0qhXVfoe2PrnFNETPYIKA5HWPcdv//++6xZs4Z77723Rcc56aSTAN9Ykvbt2wO+QbJHysjI4Pbbb+f2229n0qRJzJ07l7vvvpv+/fvz6quv0q1bNyIjG/7o9OjRg6ioKD777DO6dPGtE1FWVsbGjRsZMmTIcdsWERFBjx49Gv299OjRg+joaD7++GNuuOEGwBe2vvjiixatudK/f382bNjQpLZI6zADSmsMkjUMWPk33/PB43QzQJEQsEdACSPV1dWUlJTg8Xj44YcfWLx4Mfn5+YwcOZKbb765Rcfu0aMHGRkZ5Obm8thjj7Fp06YGs2xycnK45JJL6NmzJ2VlZbz//vv07t0b8A2gnTt3Ltdffz0TJkygY8eObN68mYULFzJ37lwSEhK49dZbmTBhAikpKaSmpjJ58mSzchNI8fHx3HHHHUyYMIEOHTrQpUsXZsyYQVVVFbfeemuzj/vII48wcuRIMjIyuOaaa4iIiOCrr75izZo1PPbYYwH8DqSpzHVQnK0QUL5fBT+uh8gY6HN18M8nIg0ooFjM4sWLSUtLIzIykvbt23PGGWfw5z//mVtuuaXFf+ijoqJ4+eWXueOOOzjjjDM488wzeeyxx7jmmmvMfTweD3fddRc7d+4kKSmJiy++mCeffBKA9PR0PvnkEx544AFGjBhBdXU1Xbt25eKLLzbb9sQTT/DTTz9x+eWXk5iYyH333Ud5eXmL2n0sjz/+OF6vl5tuuonKykoGDhzIkiVLzOpQc4wYMYK33nqLqVOnMmPGDKKioujVqxe33XZbAFsuzdGqFZQvX/Y99hqpdU9EQsRhGAGYB9vKKioqSE5Opry8nKSkpHqvHThwgKKiIjIzMzVmQIJOP2+t57Nvd/Pr5z7jlJPiee++ocE7UW01/PFU2F8GN74KPS4K3rlEbOZ4f7+PZI91UEQk7LXaNOONS3zhJDENup8f3HOJyDEpoIhIWDg8zTjIv7ZWL/A9nn4dRDiDey4ROSYFFBEJC4dvFhjEk/xUCpuW+p73vSGIJxKRE1FAEZGw4PG0QgVlzd/B8MDJA+CkEy8wKCLBo4AiImHBrKAEcwjK6kOzd1Q9EQm5NhtQwnBykoQh/Zy1Hv8048hgVVCKv4If1oAzGk5ruJKwiLSuNhdQoqKiAKiqqgpxS8QO/D9n/p87CR5/QAlaD49/cOypv4S4DkE6iYg0VptbqM3pdNKuXTtKS0sBiIuLa5Wb7Im9+G9qWFpaSrt27XA6Ndsj2IJaQfEc9I0/AXXviFhEmwsoAG63G8AMKSLB0q5dO/PnTYLrcAUlCP9w7PgcqnZBXAqccmHgjy8iTdYmA4rD4SAtLY1OnTo1uFuvSKBERUWpctKKDldQghBQNhf4Hk+5EJxt8teiSNhp0+9Ep9OpPyAibYR/Fk9EMLpsN73re8waFvhji0iztLlBsiLSNh1eSTbAB64o9s3ewQGnXBDgg4tIcymgiEhY8AZrkOyW93yP6f0gvmNgjy0izaaAIiJhoTZYg2Q3H+re0V2LRSxFAUVEwoI3GINkPbWw5X3fc40/EbEUBRQRCQtmBSWQg2S/K4QD5RDTznf/HRGxDAUUEQkLXiMIFRRzevEFEKEZfyJWooAiImEhKAu1bToUUNS9I2I5CigiEhZqAz0G5acfoXi177lWjxWxHAUUEQkLXnMdlAAFFP/0YvfpkJgamGOKSMAooIhIWKgNdEDR9GIRS1NAEZGw4B8kG5CA4vXA5kMVFI0/EbEkBRQRCQu1ngAGlO9Xwf494EqGzme1/HgiEnAKKCISFswKSiDWQfF373QforsXi1iUAoqIhIVarxcIUAVl68e+R90cUMSyFFBEJCx4fPmk5QHFc9C3gixAl3NbdiwRCRoFFBEJC55AVVB++BoOVkFMMnTsGYCWiUgwKKCISFgIWAVlx+e+x85nQYR+BYpYld6dIhIWzApKSwfJ7viP7zHj7Ba2SESCSQFFRMLCoVnGgaugZGh6sYiVKaCISFgIyBiU8u+gfAc4IuDkAQFqmYgEgwKKiIQFTyCWut95qHqSmg2uhAC0SkSCRQFFRMJCQAbJmt07Gn8iYnUKKCISFgLSxaMBsiJhQwFFRMKCOUi2ubN4Du6H4i99zzVAVsTyAh5Qamtreeihh8jMzCQ2Npbu3bszdepUvIf++wEwDIPc3FzS09OJjY1l6NChrF27NtBNEZE2xF9BiXQ2M6B8vwq8tZDghnZdAtgyEQmGgAeU6dOn88wzzzB79mzWr1/PjBkzeOKJJ3jqqafMfWbMmMHMmTOZPXs2K1aswO12M2zYMCorKwPdHBFpI/yDZCOaW0Exu3fOgkDccFBEgirgAeXTTz/lV7/6FZdeeindunXj6quvZvjw4XzxxReAr3oya9YsJk+ezJVXXkl2djbz58+nqqqKBQsWBLo5ItJG+ANKZHPHoGiArEhYCXhAOe+883jvvffYuHEjAF9++SUff/wxv/zlLwEoKiqipKSE4cOHm1/jcrkYMmQIy5cvP+oxq6urqaioqPchIvZiVlCaE1AMQwNkRcJMZKAP+MADD1BeXk6vXr1wOp14PB6mTZvG9ddfD0BJSQkAqamp9b4uNTWVbdu2HfWY+fn5TJkyJdBNFZEw0qIKyp5voWo3OF2QdnqAWyYiwRDwCsorr7zCiy++yIIFC1i5ciXz58/nf/7nf5g/f369/RxH9AEbhtFgm9+kSZMoLy83P3bs2BHoZouIxXmMFlRQ/NWT9H4Q6Qpgq0QkWAJeQZkwYQIPPvggv/71rwHo06cP27ZtIz8/n1tuuQW32w34KilpaWnm15WWljaoqvi5XC5cLv1SEbGzWk8LKih1B8iKSFgIeAWlqqqKiCNuYe50Os1pxpmZmbjdbgoKCszXa2pqWLZsGYMGDQp0c0SkjfAeqqA0ax0UDZAVCTsBr6BcdtllTJs2jS5dunDaaaexatUqZs6cyW9/+1vA17WTk5NDXl4eWVlZZGVlkZeXR1xcHDfccEOgmyMibURtcwfJ7t8Lpet9z1VBEQkbAQ8oTz31FA8//DB33nknpaWlpKenM2bMGB555BFzn4kTJ7J//37uvPNOysrKOPvss1m6dCmJiYmBbo6ItBHe5g6SLV4NGNCuKyR0Cni7RCQ4Ah5QEhMTmTVrFrNmzTrmPg6Hg9zcXHJzcwN9ehFpo5pdQSn+yveYdkaAWyQiwaR78YhIWGh2BaXEH1A0vVgknCigiEhYqG3uUvcla3yPblVQRMKJAoqIhAX/LJ4m3Sywpgp2+Va1xt0nCK0SkWBRQBGRsOBfSbZJ04xL14HhhfiTINEdpJaJSDAooIhIWPB38TibMgal+Evfo/t03cFYJMwooIhIWPA2J6D4x59ogKxI2FFAEZGw0KwKin8Gj8afiIQdBRQRCQvmUveNDSieWvhhre+5ZvCIhB0FFBEJC02uoOzeBLUHIDoBOnQPYstEJBgUUETE8rxeg0MFlMbP4vGPP0nNhgj9qhMJN3rXiojlefzpBIhsbNgwZ/Bo/IlIOFJAERHL86+BAk0ohmiJe5GwpoAiIpZXN6A0agyKYRy+SaBbAUUkHCmgiIjl1e3iaVRAKd8JB/ZCRCR06h28holI0CigiIjleTx1AkpjBsn6u3dO6gWRriC1SkSCSQFFRCyvyRUUde+IhD0FFBGxPP8YlAgHOJpSQdEAWZGwpYAiIpbnDyiNnmLsXwNFFRSRsKWAIiKWZ1ZQGvMbq2oPlO/wPXdnB69RIhJUCigiYnlNqqD4u3fad4OY5OA1SkSCSgFFRCzPP0i2Ubfh0QBZkTZBAUVELM+soDgbU0E5NP5EA2RFwpoCiohY3uFZPI0oofyw1veYqnvwiIQzBRQRsbzDY1BOEFA8tbB7k++5VpAVCWsKKCJief6AcsJF2vZ8C54aiIqH5IxWaJmIBIsCiohYXm1jA8qP632PJ53ahNsei4gV6R0sIpbnNRoZUEq/8T2qe0ck7CmgiIjl1XqaWkHpFeQWiUiwKaCIiOWZFZQTzeJRBUWkzVBAERHLqzWXuj9OQPEchN2bfc9VQREJewooImJ53sZMM969BbwHIToRkju3UstEJFgUUETE8hpVQak7g6cxC7qJiKUpoIiI5TVqoTZz/Im6d0TaAgUUEbE8c6G241VGzAqKBsiKtAUKKCJieZ7GrIOiCopIm6KAIiKW5z3RSrK1NbBni++5KigibYICiohY3gmXut+9Gby14EqCpPRWbJmIBIsCiohY3gkrKHVXkNUMHpE2QQFFRCzvhBUUjT8RaXMUUETE8jwnWupeM3hE2hwFFBGxPI/HC4DTqQqKiF0ooIiI5R26mfHRKyi11bDnW99zVVBE2gwFFBGxPI/XV0E56kqyuzaB4YGYZEh0t3LLRCRYFFBExPIO9fAc/V48Px7q3jmpt2bwiLQhCigiYnnHraCUHhogq/EnIm2KAoqIWF6jKygi0mYooIiI5fkrKEcdJKsKikibpIAiIpZ3zJsFHjwAZUW+56qgiLQpCigiYnnHXEl210YwvBDbHhI6haBlIhIsCigiYnn+e/E0GCT74wbfo+7BI9LmKKCIiOX5KygNBsnu2uh77NizlVskIsGmgCIilnfMCooCikibpYAiIpbnHyQbcWQ3zq5NvkcFFJE2RwFFRCzPc7QKitcDuzf7nnfMCkGrRCSYFFBExPI8RxuDsnc7eKrB6YJ2XULUMhEJFgUUEbG82qNVUPzdOyk9IMIZglaJSDAFJaB899133HjjjaSkpBAXF0ffvn0pLCw0XzcMg9zcXNLT04mNjWXo0KGsXbs2GE0RkTbAe7R1UMwBsureEWmLAh5QysrKGDx4MFFRUbzzzjusW7eOP/7xj7Rr187cZ8aMGcycOZPZs2ezYsUK3G43w4YNo7KyMtDNEZE24KgLte3WAFmRtiwy0AecPn06GRkZvPDCC+a2bt26mc8Nw2DWrFlMnjyZK6+8EoD58+eTmprKggULGDNmTKCbJCJhznu0pe41g0ekTQt4BeWNN95g4MCBXHPNNXTq1Il+/foxd+5c8/WioiJKSkoYPny4uc3lcjFkyBCWL19+1GNWV1dTUVFR70NE7KPWoy4eEbsJeED59ttvmTNnDllZWSxZsoTbb7+de+65h7/97W8AlJSUAJCamlrv61JTU83XjpSfn09ycrL5kZGREehmi4iFmRUU/zooVXtg34++5yk9QtQqEQmmgAcUr9dL//79ycvLo1+/fowZM4bf/e53zJkzp95+jiMWXDIMo8E2v0mTJlFeXm5+7NixI9DNFhELa7DUvX/9k6TO4EoIUatEJJgCHlDS0tL42c9+Vm9b79692b59OwButxugQbWktLS0QVXFz+VykZSUVO9DROyjwUJt6t4RafMCHlAGDx7Mhg0b6m3buHEjXbt2BSAzMxO3201BQYH5ek1NDcuWLWPQoEGBbo6ItAGeI2fx6B48Im1ewGfx3HvvvQwaNIi8vDyuvfZaPv/8c5577jmee+45wNe1k5OTQ15eHllZWWRlZZGXl0dcXBw33HBDoJsjIm1Aw4Din8GjCopIWxXwgHLmmWfy2muvMWnSJKZOnUpmZiazZs1i1KhR5j4TJ05k//793HnnnZSVlXH22WezdOlSEhMTA90cEWkDzIDiUBePiF0EPKAAjBw5kpEjRx7zdYfDQW5uLrm5ucE4vYi0MZ6666DU1sCeIt8L6uIRabN0Lx4Rsbx6S92XFYHhgegESEwLcctEJFgUUETE8uotdV+3e+cYSxOISPhTQBERy/McNaCoe0ekLVNAERHLqx9QNINHxA4UUETE8jx1l7pXBUXEFhRQRMTyDq8ki+5iLGITCigiYnn+gBJ9YBdUV4AjAjp0D3GrRCSYFFBExPL8ASW+4lvfhvbdINIVugaJSNApoIiI5fkDSkzFFt8Gde+ItHkKKCJief6AErvXH1A0g0ekrVNAERHL88/icZWrgiJiFwooImJ5Ho8voET5KygpqqCItHUKKCJieR7DIIZqoip3+jaoi0ekzVNAERHLq/UaZDpKfJ/EtIO4lJC2R0SCTwFFRCzP6zXo7ij2faKbBIrYggKKiFherdegu+N73ycafyJiCwooImJp3kNTjDMjDnXxdOwRwtaISGtRQBERS/NPMVYFRcReFFBExNJ8i7QdMQZFRNo8BRQRsTSP1+Akykly7MfQTQJFbEMBRUQsrbbuDJ7kLrpJoIhNKKCIiKV5vQbdIw6NP1H3johtKKCIiKXVq6CkaAaPiF0ooIiIpXmNwwHFoQqKiG0ooIiIpdVbpE0BRcQ2FFBExNK8B6vJcPzo+0RroIjYhgKKiFiao2wrkQ4v+4wYSHSHujki0koUUETE0px7NgOw1ZGumwSK2IgCiohYWmSZL6Bsc6SHuCUi0poUUETE0iLLtgCww3FyiFsiIq1JAUVELC16rwKKiB0poIiIpbnKvwVgp1MBRcROFFBExLqq9hBZXQbA9wooIraigCIi1rVrEwDfGx2odcaGuDEi0poUUETEunb7Asq33jQiIjTFWMROFFBExLoOVVC+NdKJVEARsRUFFBGxrt2+NVC+NdKI0CJtIraigCIi1lUnoEQ6FVBE7EQBRUSsyeuBPb4pxt8a6aqgiNiMAoqIWNPebeCpwRPh4jsjRWNQRGxGAUVErGmXr3tnX0JXDCI0i0fEZhRQRMSaDk0xrkzoBqAKiojNKKCIiDXt2ghAZUImAE4FFBFbUUAREWs6tAZKeZwvoGiQrIi9KKCIiDUdqqCUq4tHxJYUUETEeqr2wL4fASiL7QagQbIiNqOAIiLWc2iBNpJOpibCd5NAVVBE7EUBRUSs59D4EzpmUes1AFVQROxGAUVErOfQ+BM69sRzKKCogiJiLwooImI9ZgWlJ17DF1CcmsUjYisKKCJiPWYF5XAXj9ZBEbEXBRQRsRbPQSgr8j1PycKrgCJiSwooImIte4rAWwtR8ZCUrgqKiE0poIiItdTp3sHhUAVFxKYUUETEWurM4AFUQRGxKQUUEbGWOjN4ADyaxSNiS0EPKPn5+TgcDnJycsxthmGQm5tLeno6sbGxDB06lLVr1wa7KSISDup28QAez6GA4lRAEbGToAaUFStW8Nxzz3H66afX2z5jxgxmzpzJ7NmzWbFiBW63m2HDhlFZWRnM5oiI1RmGKigiAgQxoPz000+MGjWKuXPn0r59e3O7YRjMmjWLyZMnc+WVV5Kdnc38+fOpqqpiwYIFwWqOiISDfT9CdTk4IqBDdwBzJVmNQRGxl6AFlLvuuotLL72Uiy66qN72oqIiSkpKGD58uLnN5XIxZMgQli9fftRjVVdXU1FRUe9DRNogf/dOu64QFQMooIjYVWQwDrpw4UJWrlzJihUrGrxWUlICQGpqar3tqampbNu27ajHy8/PZ8qUKYFvqIhYyxEzeKBOQFEXj4itBLyCsmPHDsaNG8eLL75ITEzMMfdzHPHLxjCMBtv8Jk2aRHl5ufmxY8eOgLZZRCyizl2M/cyAokGyIrYS8ApKYWEhpaWlDBgwwNzm8Xj46KOPmD17Nhs2bAB8lZS0tDRzn9LS0gZVFT+Xy4XL5Qp0U0XEalRBEZFDAl5BufDCC1mzZg2rV682PwYOHMioUaNYvXo13bt3x+12U1BQYH5NTU0Ny5YtY9CgQYFujoiEk6MFFENjUETsKOAVlMTERLKzs+tti4+PJyUlxdyek5NDXl4eWVlZZGVlkZeXR1xcHDfccEOgmyMi4aKmCvYe6r49WhePAoqIrQRlkOyJTJw4kf3793PnnXdSVlbG2WefzdKlS0lMTAxFc0TECvZsAQyIbQ9xKeZmf0CJVEARsZVWCSgffvhhvc8dDge5ubnk5ua2xulFJBzU7d6pM97EH1AiFFBEbEX34hERazjKDB5QBUXErhRQRMQajjJAFg4Pko3QLB4RW1FAERFrOOIePH5mBUXroIjYigKKiISe1wu7N/uepxy9i0cVFBF7UUARkdDbuw0OVoHTBR0y671Ua45B0a8rETvRO15EQu/Hb3yPHXtChLPeS15zHZTWbpSIhJLe8iISeqXrfY+dejV4qdYMKPp1JWIneseLSOj5KygnNQwoXkMVFBE70lteRELPrKD0bvBSrUeDZEXsSAFFRELL6zm8BspxKigaJCtiL3rHi0holW2F2gMQGQPtuzV4udZc6r51myUioaW3vIiE1nFm8MDhWTyqoIjYi97xIhJaxxl/AnVn8bRWg0TECvSWF5HQOs4MHji8kqymGYvYi97xIhJapYcCyjEqKOY0Y83iEbEVBRQRCR1P7XFn8EDdLh4FFBE7UUARkdApKwJPNUTFQbuuR93Fq4AiYksKKCISOv4Bsh17HnMesSooIvakgCIiofPj8cefgCooInalgCIioeOvoBxj/AkcrqBEKqCI2IoCioiETiMqKB7Dv5KsAoqInSigiEhoeA7Crk2+58epoHhUQRGxJQUUEQmNPd+C9yBExUNyxlF3MQzDDCi6m7GIvSigiEhomONPTj3mDJ5D2QTQIFkRu1FAEZHQaMz4kzoJRQFFxF4UUEQkNBoxg0cBRcS+FFBEJDSaMIMHNEhWxG4UUESk9dXWwO7NvufHq6B4DgcUDZIVsRcFFBFpfXu2gLcWohMhufMxd1MFRcS+FFBEpPXVncFznMpI3TEoWqhNxF4UUESk9fkDSqdjd++AFmkTsTMFFBFpfSVrfI+pfY67m5a5F7EvBRQRaX3+gJJ2+nF38w+SVQVFxH4UUESkdVXtgYqdvuep2cfd1V9BcWoGj4jtKKCISOsq/tL32D4TYpKOu6vH6wXA6VRAEbEbBRQRaV2N7N4B8PjyiSooIjakgCIiravkK9+j+/gDZAFq/RUUjUERsR0FFBFpXcX+gHLGCXf1+isoCigitqOAIiKtp6YKdm/yPW9EF48qKCL2pYAiIq2ndB0YXojvBInuE+7u9c/iUUARsR0FFBFpPf4ZPI0YfwJQ69E0YxG7UkARkdbThBk8UGcdFFVQRGxHAUVEWo85g6eRAcWrgCJiVwooItI6PLXww1rfcwUUETkBBRQRaR27N0HtAYhOgA7dG/UlCigi9qWAIiKtw7yDcTZENO5XjwKKiH0poIhI62jiDB6oM81Ys3hEbEcBRURah3+AbCNn8ADUqoIiYlsKKCISfIZxuIunkQNkQV08InamgCIiwVe+E/aXQUQkdOrd6C9TQBGxLwUUEQk+f/fOSb0g0tXoL1NAEbEvBRQRCb5mdO/A4YASqYAiYjsKKCISfMVNHyALh5e6j9AsHhHbUUARkeAzl7hv/BRjqFNBcSqgiNiNAoqIBFfVHijf4XvezICiCoqI/SigiEhw7fjc99ixJ8QkN+lLNUhWxL4CHlDy8/M588wzSUxMpFOnTlxxxRVs2LCh3j6GYZCbm0t6ejqxsbEMHTqUtWvXBropImIFO/7je8w4q8lfqoAiYl8BDyjLli3jrrvu4rPPPqOgoIDa2lqGDx/Ovn37zH1mzJjBzJkzmT17NitWrMDtdjNs2DAqKysD3RwRCTV/BSXj7CZ/qbmSrLp4RGwnMtAHXLx4cb3PX3jhBTp16kRhYSG/+MUvMAyDWbNmMXnyZK688koA5s+fT2pqKgsWLGDMmDGBbpKIhIrnIHxX6HvejIDi1SBZEdsK+hiU8vJyADp06ABAUVERJSUlDB8+3NzH5XIxZMgQli9fftRjVFdXU1FRUe9DRMJAyRqo3Q8x7SAlq8lfXqtBsiK2FdSAYhgG48eP57zzziM7OxuAkpISAFJTU+vtm5qaar52pPz8fJKTk82PjIyMYDZbRALF7N45CyKa/uvGfzdjLdQmYj9BDShjx47lq6++4uWXX27wmuOI/4gMw2iwzW/SpEmUl5ebHzt27AhKe0UkwFowQBbqVFAUUERsJ+BjUPzuvvtu3njjDT766CM6d+5sbne73YCvkpKWlmZuLy0tbVBV8XO5XLhcjb9/h4hYRAsGyEKdMSgKKCK2E/AKimEYjB07lkWLFvH++++TmZlZ7/XMzEzcbjcFBQXmtpqaGpYtW8agQYMC3RwRCZXynVCxExxOSO/frEN4VEERsa2AV1DuuusuFixYwD//+U8SExPNcSXJycnExsbicDjIyckhLy+PrKwssrKyyMvLIy4ujhtuuCHQzRGRUPFXT9zZ4Epo1iFqVUERsa2AB5Q5c+YAMHTo0HrbX3jhBUaPHg3AxIkT2b9/P3feeSdlZWWcffbZLF26lMTExEA3R0RCpYXdO3B4kKzWQRGxn4AHFOPQL5TjcTgc5ObmkpubG+jTi4hVmANkmx9QzIXamjEDSETCm971IhJ4NVWH72DczBk8cHiQrFO/qURsR297EQm871eBtxYS0yC5+esWqYIiYl9614tI4NVd/6QF40dUQRGxL73tRSTwAjBAFlRBEbEzvetFJLAMIyADZAE85iyeljZKRMKNAoqIBNbuLbB/Dzhd4D69RYfyePwVFCUUEbtRQBGRwPJXT07uD5HRLTqUWUFRF4+I7ehdLyKBtf1T32MLphf7eTRIVsS29LYXkcAxDNjyvu95t5+3+HAeDZIVsS2960UkcErXQ8V3EBkD3c5r8eFUQRGxL73tRSRwNr/re+x2HkTFtvhwqqCI2Jfe9SISOJsLfI89hgXkcB7dLFDEthRQRCQwqn+CbYcGyPa4KCCHPFxBUUARsRsFFBEJjKKPwHsQ2neDlFMCckgFFBH7UkARkcDwjz/pcVGL7r9Tlz+gRCqgiNiOAoqItJxhBHz8CRwOKBEKKCK2o4AiIi23axPs3Q7OaMhs+fonfqqgiNiXAoqItJy/e6frIIiOD9hh/bN4IjSLR8R2FFBEpOXM7p3AzN7xMysoup2xiO0ooIhIy9RUwdZPfM8DOP4E6oxBUQVFxHYUUESkZbZ+DJ5qSOoMJ50a0ENrDIqIfSmgiEjL+MefZAVuerGf1kERsS8FFBFpmSBML/arVRePiG0poIhI8+3aDHu+hYhIyPxFwA/vNTRIVsSuFFBEpPm+Wuh7zBwCMUkBP3ytxwuogiJiRwooItI8Xi98eSig9L0hOKfwFVA0SFbEhhRQRKR5tv4byneAKxl6XRqUU9R6fRUUDZIVsR8FFBFpni9f9j1m/xdExQblFIfyiQKKiA0poIhI01VXwrp/+p6fEZzuHTi81L0Cioj9KKCISNOtewMOVkGHUyDjrKCcwjAMrYMiYmMKKCLSdKsX+B77Xh/wxdn8/ANkAZyaxSNiOwooItI0ZVth28eAA07/ddBO4x8gC+DUOigitqOAIiJN8+UrvsfMX0C7jKCdpk4+UQVFxIYUUESk8QwDvvR374wK6qnqVVA0BkXEdhRQRKTxtn/q6+KJToDeI4N6qnoVFAUUEdtRQBGRxlv1ou/xtCsgOj6op6pXQVEXj4jtKKCISOPsKYKvDo0/6X9L0E/nXwPF4YAIVVBEbEcBRUQaZ9kM8NbCKRcGbe2Tusw1UFQ9EbElBRQRObEfNx6+c/EFk1vllFqkTcTeFFBE5MQ+zAPDC6deCicPaJVTKqCI2JsCiogcX8kaWPsa4IDzf99qp1VAEbE3BRQROb4P8nyP2VeCO7vVTquAImJvCigicmw7C2HD2+CIgKGTWvXU/lk8kQooIrakgCIix/bBY77HM66Hjlmtemp/BSVCs3hEbEkBRUSObuMS2PI+RETCkImtfnp/QFEFRcSeFFBEpKHynfDa7b7nZ42B9t1avQlmBUUBRcSWFFBEpD7PQfjHb2H/HkjrCxc9GppmqIIiYmsKKCJS3/t/gB3/AVcSXDMPIl0haYYqKCL2poAiIodtXAKf/Mn3/FezoUNmyJqiCoqIvSmgiIhP+U54bYzv+Vlj4Ge/Cmlz/NOMNYtHxJ4UUEQEKktgwa9hfxmk94Phfwh1i6j1V1CcCigidhQZ6gaISIiVroeXroHyHRDXEa5+IWTjTury6m7GIramgCJiZ98ug1dugupySOkBo/4e0nEnddVqqXsRW1NAEbGr1QvgjbvBWwtdzoVfL4C4DqFulcmrgCJiawooInazazO8NwXWv+H7/LQr4Yo5EBUT2nYdoVZL3YvYmgKKiF1U/gDLHofC+WB4fDcAHJwDFzwMEdYbL+81NEhWxM5C+lvp6aefJjMzk5iYGAYMGMC///3vUDZHpO3xemHH57D49/DnvvDFX33hpOfFcPsnvlViLRhOAGo9qqCI2FnIKiivvPIKOTk5PP300wwePJhnn32WSy65hHXr1tGlS5dQNUsk/B0oh51fwDf/8n38VHL4tZMHwrCp0G1w6NrXSP51ULRQm4g9hSygzJw5k1tvvZXbbrsNgFmzZrFkyRLmzJlDfn5+qJolYn1er+8+OT/94Puo/AF2b4Yf1vo+yrfX39+VBD1HQPbVvscwqUh4NEhWxNZCElBqamooLCzkwQcfrLd9+PDhLF++vMH+1dXVVFdXm59XVFQEpV27f9jJplenBOXYEp4cGI3b0ai/3+E/qUadbQZg4DDAgffQcwMHXhyGlwg8OAwvTqMWp3HQ9+GtJcp7gGjvflyeKqK9Vbg8VUTgOW5zyqNS2Zx8NuvbDaUocQDeiCjYCGxc18jvPPQ2lFQCCigidhWSgLJr1y48Hg+pqan1tqemplJSUtJg//z8fKZMCX5wqKrYzTml/xf084gEwm4jkVKjHT8a7dhpnMR6owvfeLuwwehMxYEEqAR2AnwX4pa2TFJMVKibICIhENJZPI4jSs2GYTTYBjBp0iTGjx9vfl5RUUFGRkbA25PQrhOfnjw64McVuzji5/ko2w1HBODAcDgwcGAQgeGI8D13OPE6IvA6ovA4ovBEROJ1RHIwIpYaZyw1zngOOmOpiYijKqoD3oj6b98k4KxDH21FtNPJ1QM7h7oZIhICIQkoHTt2xOl0NqiWlJaWNqiqALhcLlyu4C+93f6kNM793Z+Cfh4RERE5vpDML4yOjmbAgAEUFBTU215QUMCgQYNC0SQRERGxkJB18YwfP56bbrqJgQMHcu655/Lcc8+xfft2br/99lA1SURERCwiZAHluuuuY/fu3UydOpXi4mKys7N5++236dq1a6iaJCIiIhbhMAyjkfMoraOiooLk5GTKy8tJSkoKdXNERESkEZry99uaa1yLiIiIrSmgiIiIiOUooIiIiIjlKKCIiIiI5SigiIiIiOUooIiIiIjlKKCIiIiI5SigiIiIiOUooIiIiIjlhGyp+5bwL35bUVER4paIiIhIY/n/bjdmEfuwDCiVlZUAZGRkhLglIiIi0lSVlZUkJycfd5+wvBeP1+vl+++/JzExEYfDEdBjV1RUkJGRwY4dO3SfnyDTtW49utatR9e69ehat55AXWvDMKisrCQ9PZ2IiOOPMgnLCkpERASdO3cO6jmSkpL0A99KdK1bj65169G1bj261q0nENf6RJUTPw2SFREREctRQBERERHLUUA5gsvl4tFHH8XlcoW6KW2ernXr0bVuPbrWrUfXuvWE4lqH5SBZERERadtUQRERERHLUUARERERy1FAEREREctRQBERERHLUUCp4+mnnyYzM5OYmBgGDBjAv//971A3Kezl5+dz5plnkpiYSKdOnbjiiivYsGFDvX0MwyA3N5f09HRiY2MZOnQoa9euDVGL2478/HwcDgc5OTnmNl3rwPnuu++48cYbSUlJIS4ujr59+1JYWGi+rmsdGLW1tTz00ENkZmYSGxtL9+7dmTp1Kl6v19xH17r5PvroIy677DLS09NxOBy8/vrr9V5vzLWtrq7m7rvvpmPHjsTHx3P55Zezc+fOljfOEMMwDGPhwoVGVFSUMXfuXGPdunXGuHHjjPj4eGPbtm2hblpYGzFihPHCCy8YX3/9tbF69Wrj0ksvNbp06WL89NNP5j6PP/64kZiYaLz66qvGmjVrjOuuu85IS0szKioqQtjy8Pb5558b3bp1M04//XRj3Lhx5nZd68DYs2eP0bVrV2P06NHGf/7zH6OoqMh49913jc2bN5v76FoHxmOPPWakpKQYb731llFUVGT8/e9/NxISEoxZs2aZ++haN9/bb79tTJ482Xj11VcNwHjttdfqvd6Ya3v77bcbJ598slFQUGCsXLnSOP/8840zzjjDqK2tbVHbFFAOOeuss4zbb7+93rZevXoZDz74YIha1DaVlpYagLFs2TLDMAzD6/UabrfbePzxx819Dhw4YCQnJxvPPPNMqJoZ1iorK42srCyjoKDAGDJkiBlQdK0D54EHHjDOO++8Y76uax04l156qfHb3/623rYrr7zSuPHGGw3D0LUOpCMDSmOu7d69e42oqChj4cKF5j7fffedERERYSxevLhF7VEXD1BTU0NhYSHDhw+vt3348OEsX748RK1qm8rLywHo0KEDAEVFRZSUlNS79i6XiyFDhujaN9Ndd93FpZdeykUXXVRvu6514LzxxhsMHDiQa665hk6dOtGvXz/mzp1rvq5rHTjnnXce7733Hhs3bgTgyy+/5OOPP+aXv/wloGsdTI25toWFhRw8eLDePunp6WRnZ7f4+oflzQIDbdeuXXg8HlJTU+ttT01NpaSkJEStansMw2D8+PGcd955ZGdnA5jX92jXftu2ba3exnC3cOFCVq5cyYoVKxq8pmsdON9++y1z5sxh/Pjx/P73v+fzzz/nnnvuweVycfPNN+taB9ADDzxAeXk5vXr1wul04vF4mDZtGtdffz2gn+tgasy1LSkpITo6mvbt2zfYp6V/PxVQ6nA4HPU+NwyjwTZpvrFjx/LVV1/x8ccfN3hN177lduzYwbhx41i6dCkxMTHH3E/XuuW8Xi8DBw4kLy8PgH79+rF27VrmzJnDzTffbO6na91yr7zyCi+++CILFizgtNNOY/Xq1eTk5JCens4tt9xi7qdrHTzNubaBuP7q4gE6duyI0+lskPZKS0sbJEdpnrvvvps33niDDz74gM6dO5vb3W43gK59ABQWFlJaWsqAAQOIjIwkMjKSZcuW8ec//5nIyEjzeupat1xaWho/+9nP6m3r3bs327dvB/RzHUgTJkzgwQcf5Ne//jV9+vThpptu4t577yU/Px/QtQ6mxlxbt9tNTU0NZWVlx9ynuRRQgOjoaAYMGEBBQUG97QUFBQwaNChErWobDMNg7NixLFq0iPfff5/MzMx6r2dmZuJ2u+td+5qaGpYtW6Zr30QXXngha9asYfXq1ebHwIEDGTVqFKtXr6Z79+661gEyePDgBtPlN27cSNeuXQH9XAdSVVUVERH1/1Q5nU5zmrGudfA05toOGDCAqKioevsUFxfz9ddft/z6t2iIbRvin2b8/PPPG+vWrTNycnKM+Ph4Y+vWraFuWli74447jOTkZOPDDz80iouLzY+qqipzn8cff9xITk42Fi1aZKxZs8a4/vrrNUUwQOrO4jEMXetA+fzzz43IyEhj2rRpxqZNm4yXXnrJiIuLM1588UVzH13rwLjllluMk08+2ZxmvGjRIqNjx47GxIkTzX10rZuvsrLSWLVqlbFq1SoDMGbOnGmsWrXKXGKjMdf29ttvNzp37my8++67xsqVK40LLrhA04wD7f/9v/9ndO3a1YiOjjb69+9vToWV5gOO+vHCCy+Y+3i9XuPRRx813G634XK5jF/84hfGmjVrQtfoNuTIgKJrHThvvvmmkZ2dbbhcLqNXr17Gc889V+91XevAqKioMMaNG2d06dLFiImJMbp3725MnjzZqK6uNvfRtW6+Dz744Ki/o2+55RbDMBp3bffv32+MHTvW6NChgxEbG2uMHDnS2L59e4vb5jAMw2hZDUZEREQksDQGRURERCxHAUVEREQsRwFFRERELEcBRURERCxHAUVEREQsRwFFRERELEcBRURERCxHAUVEREQsRwFFRERELEcBRURERCxHAUVEREQsRwFFRERELOf/A6KY1/puwJOMAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "dt = 0.2 * dx * dx / D\n", + "total_time = 1e3\n", + "n_steps = int(total_time / dt)\n", + "z_orig = z.copy()\n", + "for _ in range(n_steps):\n", + " qs = -D * np.diff(z) / dx\n", + " dzdt = -np.diff(qs) / dx\n", + " z[1:-1] += dzdt * dt\n", + "\n", + "plt.plot(x, z_orig, label=\"Original Profile\")\n", + "plt.plot(x, z, label=\"Diffused Profile\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The prior example is pretty simple. If this was all you needed to do, you wouldn't need Landlab. \n", + "\n", + "But what if you wanted...\n", + "\n", + "... to use the same diffusion model in 2D instead of 1D.\n", + "\n", + "... to use an irregular grid (in 1 or 2D). \n", + "\n", + "... wanted to combine the diffusion model with a more complex model. \n", + "\n", + "... have a more complex model you want to use over and over again with different boundary conditions.\n", + "\n", + "These are the sorts of problems that Landlab was designed to solve. \n", + "\n", + "In the next two sections we will introduce some of the core capabilities of Landlab. \n", + "\n", + "In Part 2 we will use the RasterModelGrid, fields, and a numerical utility for calculating flux divergence. \n", + "\n", + "In Part 3 we will use the HexagonalModelGrid. \n", + "\n", + "In Part 4 we will use the LinearDiffuser component. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 2: 2D version using Landlab's Model Grids\n", + "\n", + "The Landlab model grids are data structures that represent the model domain (the variable `x` in our prior example). Here we will use `RasterModelGrid` which creates a grid with regularly spaced square grid elements. The RasterModelGrid knows how the elements are connected and how far apart they are.\n", + "\n", + "Lets start by creating a RasterModelGrid class. First we need to import it. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from landlab import RasterModelGrid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### (a) Explore the RasterModelGrid\n", + "\n", + "Before we make a RasterModelGrid for our fault example, lets explore the Landlab model grid. \n", + "\n", + "Landlab considers the grid as a \"dual\" graph. Two sets of points, lines and polygons that represent 2D space. \n", + "\n", + "The first graph considers points called \"nodes\" that are connected by lines called \"links\". The area that surrounds each node is called a \"cell\".\n", + "\n", + "First, the nodes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAAG0CAYAAAChYyeZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3pUlEQVR4nO3de1xUZf4H8M8IMoACiiaIoGKheEMNtU1NLctNTTNTf5qmrnaxrLy81lXXCvMCq+667i9/2mJtlmWZiWZmJZaXTFMUMdfMS6KQSqjZgArI5fn98TTAwIAMnOHMmefzfr3O6wznnJn5zsPM+cw55zlnTEIIASIiIkXV0bsAIiIiPTEIiYhIaQxCIiJSGoOQiIiUxiAkIiKlMQiJiEhpDEIiIlIag5CIiJTGICQiIqUxCImISGkMwqpKTQVWrwaefhro1Anw9ARMJmDhworvM2+eXKay4ccfa+0luJzqtGlpH30EPPwwEBQEmM1As2by7//8x7l1u7LqtOnt3qPW4Z13au91uJrqvlezs4H584EuXYD69QEvL6B5c2DMGCA5uXZqd1XVbVOLBXj1VaBDB8DXF2jQAOjdG/jgg2qX4lntexpEUVERLl68CD8/P5hMpmo/jnnpUphXrSo3PTcvD7eysuzfJy8PZgBFoaEoCg21u0xOYSFEBfd3d9VpUwBAXh58JkxA3W3bAABFLVtChIbClJkJU2Iiin75BTeGD3dW2S6tOm3q+4c/VPh4pt9+g8fvX9aud+iAIr5XbVTWrqbLl+H78MPwOHMGok4diBYtIOrXR53UVJjWrYNYvx458fEo4HvVhr02FUIgOzsbIUKgTr9+wOnTgIeHDMP8fGDvXuCbb4A9ewA7j3lbws2lp6cLADUe5gJiCyBeBsQfAbEBEOL36RXdJ+b3ZWI0eH53HKrTpgDE+78vtwsQrcvMawyIh1zgtRmtTSsaFvx+/+9c4LUZrV1X/77MCUC0KTXdFxBv/D7vN0D4ucDrM0qb5vToIQQgRPv2QqSmlqzoU1KECAmR89591+GcMAnh3r8+YbFY0KBBA6Snp8Pf31+zx/V+7jl4rVuH3Jdfxq2ZM+0uY46Lg/lvf0Pe7NnImzNHs+d2V1VpU48dO1Dv8cdR2Lo1buzZA/j41HKVxlKVNq2QEKgfFYU6aWnIWboU+c8845wiDagq7Vq/dWvU+eUX3PzwQxQMGGA7s6BAzr96FTc//hgFDz1UC1W7tsraNCsrC4PCwnDUOmH/fqDsnoz164FRo4BWrYCffnLoud1+16h1d6i/v7+mQYi6dQEA3mYzvCt6XLP595EZZi2f211VpU3j4wEAHq++Cv+goNqqzLiq0qYV2bMHSEsD6taFz4QJ8OF7uERV2jU3FwDg26EDYG+Zli2Bq1fh6+Vlf75qbtOmPa03QkPLhyAAPPYYUKcOcPYscPgwEB1d5ad2+yB0CTt3AsePA1evAoGBQPfuwLhxQHCw3pUZS04O8NVX8oD6oEHArl3A2rXAuXPygPl99wGTJgF+fjoX6ibee0+OH34YaNxY31qMKCpKHrfatw9o39523q+/yo5ynp5A5866lGc0Da03mjWzv4CXl3yfZmYC333HIHQ5e/bY/r1xo+xRunIlMGGCHhUZ09GjQEGB/CAsXgz87W+28xMSgKVLgc8+48qlpvLygA0b5O0nn9S3FqOaN09+iZg5UwbewIGy52hKipx24wbw8stAWJjelRqCxXrjwgX7C9y6BVy5Im+fPOnQY/P0CWdq2hT461+BpCS5NXjzJvDtt8CAAXLrZuJE4NNP9a7SOC5dkuPMTBmCgwfLb9V5ecDBg8DddwMXLwKPPgpcv65vrUb36afAb78BAQGynclxDzwAJCbKLcOJE+UeoPr1gV695Hv5vfeABQv0rtIwkqw3fv5Zft7L2rwZKCqSt69dc+ixGYTO9OyzwKJFQNeucpeojw/Qo4fcYnnsMdlHavp0Oabbu3FDjvPz5QHxjRuBNm3kLpFu3WS7+vrK41pvv61vrUZn3S06YgTg7a1vLUaWmiq/uJlMQIsWQMeOcj1w7hzw5ptyTFVyEEChdU/PhAnAqVMlMw8ckOtSq5wchx6bQagHk6lkt95PPwHff69vPUZReoX8/PPFB9eLBQfLXmMA8MUXtVeXu7l6Ffj9HE2MG6dvLUYWFwf86U/y856SIkPv++9lME6aJI9x9+wpTxCnKsl58035OT9xAmjbVn4RDg+XnWdu3izZe1G/vkOPyyDUS+vWcisRAM6c0bcWo2jYsOR2ZKT9Zdq2lWN+066+9evlVnfLlnI3HjkuM1NeUQYA1qyRu0et6tcH3ngDaNdO7spfuVKXEo2oKCICOHIEmDpVvj/PnZN7iqxX6rH2NnWwIyI7y+jJukVTUKBvHUbRpk3J7d9PTSnHOr2w0Pn1uCvrbtGxY+XWDDnu0CF5+kT9+rKXeFmenkDfvsAPP8hlqeqCg4Hly+VQlrUtHegxCnCLUD9XrshvjYA8L4ZuLzS0pIfd2bP2l7FOr6iLNVXup5/kycqADEKqnuzs2y9j7Rvw+/mGVEPHj8veot7ewIMPOnRXXYNwz549GDx4MEJCQmAymbB58+biefn5+Zg1axY6duyIevXqISQkBOPGjcPFixedX1hCgrwIrI+PHCckaP8cy5bJD0JAgOzooQIt2nXECDl+993y83Jz5W49QPbYU4HW79W1a+W4e3fbLXCVaNGmERFyfP26/R6OBQXA7t3yduvW1a/VKJy9ThUCsF69a8wY28MoVaBrEN64cQOdOnXCihUrys27efMmkpOT8corryA5ORkJCQk4deoUhgwZ4tyiEhKAxx8Hjh2TK9Zjx+Tfjv7jjh+XHTqOH7ednpsLxMbK8+AAYNYs2evR3WnVrjNnyt1N334re+Rau0vn5ACTJ8tu6Q0bAipcDkyrNi3t/fflWNVzB7Vq0y5d5DFAQPZwLN0hLjtbvld/+EH+7e5b3hq+Tz3275cX1Sjd0/7qVdkp6dNP5S/RlD2/uCq0urh1TQEQmzZtqnSZgwcPCgDi/PnzFS6Tm5srLBZL8WC96LbFYqlaIVFRQphM8uKt1sFkEuKuu4Ro1KhkMJvlPF9f2+lpafJxjhwpuf8ddwgRHS0HX9+S6ZMmCVFUVLW6jM5euwJCeHhUvU2ttmwRwstLLhsUJES3bkIEBJTc98svdXmJtU7LNhVCiH375LJ16wpx+XLtvx5XoNXnXwghDh8WomHDksdo2VI+vo9PyWMvXKjfa60tGrSpxWKRF92Oi5PL+PnJx+3YUQhPTzmtWTMhjh2rVomGCsLExERhMpkqDbWYmBi7Vy2vchB6e5dfsVhXDvamlx2sV0S/dk2IBQuEGDBAiPBwIerXlyvv0FAhhg8X4osvqlaPu6ioXR1p09K+/16IUaOECA6W/5uQECHGjRPixIlaf2m60bpNn3tOzhs8uNZfisvQ6vNvdeGCEDNmCNGunQxA63v18ceF+PprXV5irdOgTa1BmP3NN/JzHhEhRL16cr0aFSXEvHlCVHUdb4fL/PqEyWTCpk2bMHToULvzc3Nz0atXL0RGRuI9a682O/Ly8pCXl1f8d1ZWFsLCwmCxWKp20e1OneSme+lmMZlk9+eUlCq+GiqH7ao9tqn22Kba06BNs7KyEBAQUPX1uIMM0Ws0Pz8fo0aNQlFREVbe5pwbs9lc/EsT1frFiZgY+Q+zdhs3meTfMTHVrJ4AsF2dgW2qPbap9gzQpi4fhPn5+Rg5ciRSU1ORmJjolG8DNoYNk5fuioqS3XCjouRB3ccec+7zuju2q/bYptpjm2rPAG3q0rtGrSF4+vRp7Ny5E3fccYfDj+vsTWoiInIuZ6/Hdb2yzPXr13Gm1OXFUlNTkZKSgsDAQISEhGD48OFITk7G1q1bUVhYiIyMDABAYGAgvFQ45YCIiJxO1y3CXbt24f777y83ffz48Zg3bx7Cw8Pt3m/nzp3o27dvlZ6DW4RERMbm1luEffv2RWU57CJ7bYmIyI25fGcZIiIiZ2IQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhERErTNQj37NmDwYMHIyQkBCaTCZs3b7aZL4TAvHnzEBISAh8fH/Tt2xfHjx/Xp1giInJLugbhjRs30KlTJ6xYscLu/CVLlmDZsmVYsWIFkpKSEBwcjIceegjZ2dm1XCkREbkrTz2ffMCAARgwYIDdeUIILF++HHPnzsWwYcMAAO+88w6CgoKwbt06PPvss7VZKhERuSmXPUaYmpqKjIwM9O/fv3ia2WxGnz59sG/fvgrvl5eXh6ysLJuBiIioIi4bhBkZGQCAoKAgm+lBQUHF8+yJi4tDQEBA8RAWFubUOomIyNhcNgitTCaTzd9CiHLTSpszZw4sFkvxkJ6e7uwSiYjIwHQ9RliZ4OBgAHLLsGnTpsXTMzMzy20llmY2m2E2m51eHxERuQeX3SIMDw9HcHAwEhMTi6fdunULu3fvRo8ePXSsjIiI3ImuW4TXr1/HmTNniv9OTU1FSkoKAgMD0bx5c0ybNg2xsbGIiIhAREQEYmNj4evriyeeeELHqomIyJ3oGoSHDh3C/fffX/z3jBkzAADjx4/HmjVr8Je//AU5OTl4/vnnce3aNdxzzz3Yvn07/Pz89CqZiIjcjEkIIfQuwpmysrIQEBAAi8UCf39/vcshIiIHOXs97rLHCImIiGoDg5CIiJTGICQiIqUxCImISGkMQiIiUhqDkIiIlMYgJCIipTEIiYhIaQxCIiJSGoOQiIiUxiAkIiKlMQiJiEhpDEIiIlIag5CIiJTGICQiIqUxCImISGkMQiIiUhqDkIiIlMYgJCIipTEIiYhIaQxCIiJSGoOQiIiUxiAkIiKlMQiJiEhpDEIiIlIag5CIiJTGICQiIqUxCImISGkMQiIiUhqDkIiIlMYgJCIipTEIiYhIaQxCIiJSGoOQiIiUxiCsqtRUYPVq4OmngU6dAE9PwGQCFi68/X337wcefRS44w7Axwdo1w5YsADIzXV+3a6sOm2akQG8+y7wwgtA9+6A2Szv89RTtVe3K6tOmx45Arz6KtCnD9C4MVC3LtCkCTBgALBpU+3V7sqq0647dwIvvQTcey/QrJl8r/r5AdHR8vOfnV179buimqxTS3vzTXm/GqwHPKt1LxX9619ycNT77wPjxwOFhfLDEBYG/Pe/csXz6afArl2Ar6/m5RpCddr0ww+B6dOdU487cLRNf/oJuPvukr/Dw4GWLYGzZ4EvvpDD+PHAf/4D1FH4e3N13qtvvSU//56eQEgIEBUFXL4sv3gkJwNvvy0//82bO6Vkl1fddWpply8Ds2bVuBSF39kOatwYeOQRYP584PPPgccfv/19zp0DJk2SIbhkCZCeLj8Ap08DbdoASUnAX/7i9NJdVnXa1N8feOghYO5c4JNPgBdfdH6dRuJomwoBNG0KLF4MXLwoA/DQIeDKFeD11+W37HfeAVaurJ36XVV13quPPSaXzcoCzp+Xn/dz5+QX4agouUX03HNOL91lVadNy5o+HfjtN2DQoJrVItycxWIRAITFYtH2gcePFwIQYsGCipd5/nm5TP/+5ed9+62cV7euEBkZ2tZmVFVp07JiYuR9Jk1yVlXGdrs2zckR4saNiu8/ebK8f1SUU8ozrOq8V0s7eFDe38ND/g+o0ja1ux5PTJTLP/dcjdcD3CJ0FiFKjq9MmlR+fo8eQGQkkJ8vt2yI9ODtXfmu+f795fjUqdqpRxWRkXJcWAjk5elbixHl5sqt6SZNgNjYGj8cg9BZ0tKAS5fk7Z497S9jnX7gQO3UROQoa4cuHx9963A3+/fLcatWQECAvrUY0cKFwJkzwNKlQIMGNX44dpZxltOn5dhslgfK7WnVynZZIlfz0UdyXNGXOao6IYBffgG++gqYOVN2olm2TO+qjOfECRmA990HjBunyUMyCJ3l2jU5btBAdjiwp2FD22WJXMn27cDmzfL2zJm6lmJomzfLjjOl9ekDbNjALxiOEgJ49lmgqEjTDlzcNeos1l1KXl4VL2M2y3FOjvPrIXJEWhowZoy8/fzzQO/e+tZjZI0aycD7wx/kKVQmE3DwoDwflp99h9R9913gm2+AadOADh00e1xuETqLt7cc37pV8TLWg+Q8/kKu5Ndf5cn0V64Affty911N3XcfsHdvyd8nTgBTpgDx8fILx+ef61ebgTQGYI6JAUJDgZgYTR+bW4TOYt3t+dtvcnPeHusuUeuyRHq7fh0YOBD44Qd5BZQtW0r2XJA22raVF9MICpIXLCgdklShJQDqXLsG/POfQP36mj42g9BZIiLkOC9Pnqhsz9mztssS6SkvT14K8MABeRnAL76QlwQj7dWrJ7e2AXmRDbqtLtYbL7wABAfbDn//u5y3bl3JNAe4dBAWFBTg5ZdfRnh4OHx8fNCqVSvMnz8fRUVFepd2e82bl/wzvv3W/jLW6ffcUzs1EVWkoAAYORL4+mvZmzkxUV75g5ynoMB2TFXzyy/lhxs35LycnJJpDnDpIFy8eDHeeOMNrFixAidOnMCSJUuwdOlSvP7668594oQEeRFYHx85Tkhw/DFMppKeYm+9VX7+vn3Ajz/KCxwPGVKzeo1Ci3YlW1q0qRDAhAlyN2hICLBjR8Wn/KigNt6nFou8KDcAdO6s/eO7Gg3atAuALItFvl/LDtZjhpMmlUxzgEsH4f79+/Hoo49i0KBBaNmyJYYPH47+/fvj0KFDznvShAR5zbtjx2TPz2PH5N/V+TDMnCl7jW7fLs97sf5zzp8HJk6Ut596yuHNeEPSsl1J0qpNp06VF4du3FiGYHi4c+o1Aq3a9OJF2bPx+PHy8777Dnj4YdkpqWNHeSqFOzPCZ796F4WrHXFxcaJFixbi5MmTQgghUlJSRJMmTcS6desqvE9ubq6wWCzFQ3p6umPXGo2KEsJksv2+YTIJcdddQjRqVDKYzXKer6/t9LQ028d75x0h6tSRyzZrJkSXLvL6ooAQ0dFCXL9e3eYxFnvtar3WoiNtmpZmO8/HR97HbLadvnevfq+1tmjRpvv2ldwvLEyInj0rHlSg1ec/NbXk/oGBQtx9t/zsN25cMv3OO4U4c0bXl1srNGjT214zuobXGnXp0ydmzZoFi8WCyMhIeHh4oLCwEIsWLcLo0aMrvE9cXBxee+216j/pqVPlN6uFkFtx+fnll795Uw5WhYW288eNA+66C4iLk7tDf/hBHoMZPVr+fIj1NAt3Z69dAdleV6/aTqusTe0tD8iOHqWv2Wjvf+VutGjT0m2Wni4HlWn1+Q8OBv79b3kVmZQU+XNXN27IHuIPPAAMHSr3Bqlw6pTW61RnqH7MO98HH3wgQkNDxQcffCC+//578e6774rAwECxZs2aCu/jtC3CTp20eVGqYrtqj22qPbap9jRoU6f9itDvXDoIQ0NDxYoVK2ymLViwQLRp06bKj+FwA27cWPKPKj1OSHCkdCqL7ao9tqn22Kba06BNnR2ELt1Z5ubNm6hT5lexPTw8nHv6xLBhwMaN8oczvb3lOCGh/LUCyTFsV+2xTbXHNtWeAdrUJISD/Uxr0YQJE7Bjxw78+9//Rvv27XHkyBE888wzmDhxIhYvXlylx8jKykJAQAAsFgv8/f2dXDEREWnN2etxlw7C7OxsvPLKK9i0aRMyMzMREhKC0aNH49VXX4VXZRezLoVBSERkbEoHoRYYhERExubs9bhLHyMkIiJyNgYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKc3lg/DChQsYO3YsGjVqBF9fX3Tu3BmHDx/WuywiInITnnoXUJlr166hZ8+euP/++/H555+jSZMm+Omnn9CgQQO9SyMiIjfhcBBOmDABEydORO/evZ1Rj43FixcjLCwMb7/9dvG0li1bOv15iYhIHQ7vGs3Ozkb//v0RERGB2NhYXLhwwRl1AQC2bNmCrl27YsSIEWjSpAm6dOmC1atXV3qfvLw8ZGVl2QxEREQVcTgIN27ciAsXLuCFF17Ahg0b0LJlSwwYMAAff/wx8vPzNS3u7NmzWLVqFSIiIvDll19i8uTJeOmll/Duu+9WeJ+4uDgEBAQUD2FhYZrWRERE7sUkhBA1eYAjR47gP//5D958803Ur18fY8eOxfPPP4+IiIgaF+fl5YWuXbti3759xdNeeuklJCUlYf/+/Xbvk5eXh7y8vOK/s7KyEBYWBovFAn9//xrXREREtSsrKwsBAQFOW4/XqNfopUuXsH37dmzfvh0eHh4YOHAgjh8/jnbt2uGf//xnjYtr2rQp2rVrZzOtbdu2SEtLq/A+ZrMZ/v7+NgMREVFFHA7C/Px8bNy4EY888ghatGiBDRs2YPr06bh06RLeeecdbN++HWvXrsX8+fNrXFzPnj1x8uRJm2mnTp1CixYtavzYREREQDV6jTZt2hRFRUUYPXo0Dh48iM6dO5db5o9//KMmpzhMnz4dPXr0QGxsLEaOHImDBw8iPj4e8fHxNX5sIiIioBrHCNeuXYsRI0bA29vbWTXZ2Lp1K+bMmYPTp08jPDwcM2bMwNNPP13l+zt73zIRETmXs9fjNe4s4+oYhERExubSnWWIiIiMjkFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BWFUTJgAmU+VDbq7eVRpTYSGwejXQpw/QuDHg7Q20aAEMHQp88one1RnLuXO3f59ah9279a7WWDIzgT//GWjfHvD1le/TO+8EnnkGOHNG7+qMKSMDmD4diIiQ7dm4MfDww8CXX9ZqGZ61+mzuICICaNLE/rw6/F7hsGvXgIEDge++kyvn1q2Bli2BixdlCHp6Ao8+qneVxuHtDfTsWfH8S5eAs2flcp0711pZhnfyJNC7twzDunWBVq3k+MwZ+SXu/feBbdvklzmqmmPHgIceAn75BTCbgQ4dAItFhuCXXwJxccDs2bVTi3BzFotFABAWi6VmDzR+vBCAEG+/rUVZJIQQhYVC9Ool23XYMCHS023np6cLsXu3PrW5qzFjZHuPHKl3JcbSr59st549bd+nV64IMWSInBceLkRRkX41Gkl+vhCtW8t269tXiMzMknlffSWEn58QJlPx51+z9XgFuAlD+omPB/buBe6/H9iwAQgNtZ0fGiq/hZM2rl8HNm+Wt598UtdSDOXmTWDnTnl71Srb92mjRsCaNXJvRmoq8OOPupRoOJ99Bpw6JbcE16wB7rijZN4DDwBz5wJCAK+9VivlMAhJP//6lxwvWMDdyrUhIQG4cUOudB5+WO9qjOPWLaCoSN5u1ar8/IYNgcBAebugoPbqMrJvv5Xjbt1kf4CyHn9cjnftkrujnYxrH0d9/LHsxPHAA8CoUcDrr8v92uSY06flt+fAQKBHD3k8cOxYoF8/2a5vvgnk5eldpXt57z05HjVKHnulqmnQAAgLk7f37Ss//+RJ4OpVuVxERG1WZlzXrslxs2b251unFxUBSUlOL4dB6KjPPpMr7Z07gfXrgZdeAsLDgS++0LsyYzl8WI4jI+VuuqFDZYeDr7+W7fr007Izx/nzelbpPi5dAr76St7mblHHLVwoxxMnAhs3yuCzduwYOlTuGl2yRHZCotsLCJDjCxfszy89/eRJp5fDIKyqO+8EYmOBo0eBrCwgOxvYvh245x757WboUODQIb2rNI5Ll+Q4KUkG4FNPya7/ubnAjh1yF9SPP8pdJNbdUlR9778v27FNG7k7ihwzbpwMwMaNgeHD5bhBA7mL2ctL9hh9+mm9qzQO63vw0CEgPb38/ISEktvWrUcnYhBW1SuvAHPmAFFRgJ8fUL++7Pq7Zw/QvbvcjTdrlt5VGseNG3Kcnw/cd5/sgt6ihTx43q+f/CCYTHLL8bPP9K3VHVh3i3JrsHqEkKedXL0KeHgAd90FtGsnQ/C//5Udv379Ve8qjePRR4GQEPnF94knSr4YA/LzvmhRyd85OU4vh0FYU15esrMHIA/s1sK3F7dQehfS1Knl53fqJHuTAtztXFPHjsk9GSaTPA5Ljps8GZg5Ux4rPHNGHuM+flxuzQwcCGzaJN+vhYV6V2oM3t7yEIifn+w53ry5PI+wWTPgkUfk1ra1x3j9+k4vh0GohXvvleOiIvmtkW6vYcOS25GR9pdp21aOz51zejlube1aOe7d234PParc0aNyj0XdusCHH8oLPlg1aSJ3OzduDHz/PfDRR7qVaTi9egHJyfK4a3CwPJ0CkF86Dh0q+VIRHOz0Uth1TAt165bcZvfpqmnTpuS22Wx/Get0fsuuvqIi4IMP5G3uFq2eb7+Vu0Zbty7pPVqav788PLJtm1yBjx5d+zUa1V13AW+9VX56QYH8AgIA0dFOL4NbhFo4frzkdtmTwsm+Ll1Kdo9WtBVtnV5RF2u6vZ07gZ9/lm09fLje1RhTdvbtlxFCjnm9YW18+aW8AERICHD33U5/OkMFYVxcHEwmE6ZNm6Z3Kbb+8Q85jozkSruq6tWTx1YA4J13ys/PyCi58O4DD9ReXe7Gult0yJCSLuvkGOu5gadO2e/hmJVVcq5b69a1V5e7unULePVVefu552TnJCczTBAmJSUhPj4eUVFRzn+yhATZWcPHR45jYmSP0dRU2+UsFnkeoXXXk/WfR/aVbdeePeWb/MMPbcPwt9/kr33k5MjTKEaM0Kti11e2TUt3O8/JKfmbu0Wrrmyb5uTIY4D5+fJiBKWPWWdmAmPGAFeucKu7Mvbep9u2AQcO2C6Xni5PRUtOlr1yZ86snfqccgVTjWVnZ4uIiAiRmJgo+vTpI6ZOnVrl+zp8sdaNG+WFYE0m27F1aNZMiG7dhOjcWQgvr5JlYmKq9dqUUVG7PvNMye3mzYXo2lUIX1/5d+PGQhw5onflrquiNt24Uc5ft07+fccd8iLHdHsVtencuUJ4e8vbHh5CREQI0a5dyTrA01OINWv0rt41VdSmgwbJccOGQnTpIkTbtiXz2rUT4uefix+CF90GMGXKFAwaNAgPPvjgbZfNy8tDVlaWzeCQ116T3cyt+/yt4yZN5C46Dw953tCPP8rdoOPGAfv3A/PmOfY8qrHXriaT/Ea4ezcweLC8uPH338u2njIFSEnhTwVVpqI2nT9f/m3dLcpLqlVdRW26davsvPHMM/JKUmlp8jSKpk3l1vaBA8D48frW7qoqatMffwRGjpS77E+ckD+91q2bPNSUnFyrh5lMQlirc00ffvghFi1ahKSkJHh7e6Nv377o3Lkzli9fbnf5efPm4TU7Vyy3WCzw9/e//RP6+Ng/4O3tXSsndrottqv22KbaY5tqT4M2zcrKQkBAQNXX4w5y6S3C9PR0TJ06Fe+99x68q3gNvzlz5sBisRQP6fYOblemdWv5baU0k8m2uz85ju2qPbap9tim2jNAm7p0EB4+fBiZmZmIjo6Gp6cnPD09sXv3bvzv//4vPD09UWjn/DKz2Qx/f3+bwSExMSWb7kDJJn1MjAavSGFsV+2xTbXHNtWeAdrUpYOwX79+OHbsGFJSUoqHrl27YsyYMUhJSYGHM7rVDhsmL64bFSU33aOiZA+nxx7T/rlUwnbVHttUe2xT7RmgTV3+GGFZtztGWJaz9y0TEZFzKX2MkIiIyNkM16d6165depdARERuhFuERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKc2lgzAuLg7dunWDn58fmjRpgqFDh+LkyZN6l0VERG7EpYNw9+7dmDJlCr777jskJiaioKAA/fv3x40bN/QujYiI3IRJCCH0LqKqLl++jCZNmmD37t3o3bt3le6TlZWFgIAAWCwW+Pv7O7lCIiLSmrPX456aP6ITWSwWAEBgYGCFy+Tl5SEvL6/476ysLKfXRURExuXSu0ZLE0JgxowZ6NWrFzp06FDhcnFxcQgICCgewsLCarFKIiIyGsPsGp0yZQo+++wz7N27F6GhoRUuZ2+LMCwsjLtGiYgMirtGAbz44ovYsmUL9uzZU2kIAoDZbIbZbK6lyoiIyOhcOgiFEHjxxRexadMm7Nq1C+Hh4XqXREREbsalg3DKlClYt24dPvnkE/j5+SEjIwMAEBAQAB8fH52rIyIid+DSxwhNJpPd6W+//TYmTJhQpcfg6RNERMam9DFCF85oIiJyE4Y5fYKIiMgZGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiEjtq2DXjwQSAwEKhXD7j7buD114GiIr0rM57UVGD1auDpp4FOnQBPT8BkAhYu1LsyYxIC2LsXmDkT+MMfgAYNAC8vICQEePxxYOdOvSs0rs2bgWefBaKjgaZNZbs2aAD06AH861/ArVt6V2h8L78sP/96rAOEm7NYLAKAsFgsNX+wuDgh5OpGiFathIiKEqJOHfn3kCFCFBbW/DlUMnVqSXuWHhYs0LsyY9qxo6QN69QRonVrIbp0EaJ+/ZLpL7+sd5XG1LOnbD+zWYjwcCG6dhWiWbOSdo2OFuLaNb2rNK4ffhDCy6vCdYCm63E7uEVYVfv3A3/9K1CnDrBuHfDTT8DRo0ByMhAUBGzZAixbpneVxtK4MfDII8D8+cDnn8utFqo+IYC77gJWrgSuXAFOnpTvz6tXgTlz5DILFwJbt+pbpxE99ZTcos7OBs6eBZKSgJ9/luuF0FDg8GFg7ly9qzQmIeTWdt26wAMP6FWDe9Psm8TAgfKbyjPPlJ/3/vtyXqNGQty6VbPnUdn48dwirAmLRYj8/IrnDxhQsveCtPPRR7JdQ0L0rsSYVq+W7bd4cYXrAG4RuoKsLGDHDnl70qTy80eMAPz95TdvHochvfj7y+OsFXnoITk+dap26lFFZKQc37ypbx1GdPkyMGsW0K4dMH26bmUwCKviyBF5MNzbW3aOKatuXaBbN3n7wIHarY2oqnJz5djHR9863M3+/XJsb91AlZs+Hfj1V7k7v25d3cpgEFbF6dNy3Lx5xd+4W7WyXZbIlQgBbNggb/fsqW8t7qCwUB4jXLkS+POfZQ/yuDi9qzKWr74C3n8fGDsW6NNH11IYhFVx7ZocN2xY8TLWedZliVzJ6tVyz4aXFzBtmt7VGNfy5bJ7v6cnEBYGTJkC9OsHfPcd0L273tUZR24uMHkyEBAA/P3velfDIKwS6y4lL6+KlzGb5Tgnx/n1EDkiORmYOlXeXrgQuPNOfesxsmbN5BZ19+6ytzgg+wV88IHcSqSqWbgQOHMGWLSopB11xCCsCm9vOa7spNm8PDnm8RdyJamp8hSV3FzgiSfkbjyqvhEj5EULDhwAMjLklmDLlkBsLPDCC3pXZwwnTgBLl8pjqs89p3c1ABiEVVOV3Z5V2X1KVJsyMmRP0UuXgEGDgDVr5G490s4998irTZnNQHw8cP683hW5vuefBwoKgFWr5HnZLsA1qnB1ERFynJYm/4H2nD1ruyyRnn79VYbgTz/JjggbNujaK8+thYQAnTvLyywePap3Na7vyBH5hWzIECA42HZYv14us3ix/NvaG9/JKjnpiIp16SJXIrm58nhL2YPi+fnyShOA/IZIpKfr14GBA4H//leuSD79lLvsnc36BbmiL8pkq7AQ+OWXiudfvy4H62EpJzPEFuHKlSsRHh4Ob29vREdH45tvvqndAvz95YW2AeCtt8rP37BBnnTfqBHQt2+tlkZkIy8PePRReQyrfXvgiy8APz+9q3Jv586VbAl26qRrKYbw22/2rjAsh/Hj5TILFsi/z52rlZJcPgjXr1+PadOmYe7cuThy5Ajuu+8+DBgwAGlpac570oQE+Yb28ZHjhAR5HUGTCXjzTdlDzOroUWDGDHn7L3+pvGep6uy1K9VM6TaNigJ69wa+/lr2DE1MlL+SQo4p+z5duhSIiSk5/FHaF18AAwbILcGBA9kjtyKu/tl3yoXbNNS9e3cxefJkm2mRkZFi9uzZVbq/w9eo27hRfjcxmWzHGzcKsXBhxb8+MWiQEAUFjr48dVTUrn5+8hqtjRrJK/sDQvj6lkxr1EiItDS9q3dNZdu09BARIX8xwd4wfLjelbuuit6n1iE4WP7yRFSUEA0alEzv1k2Iy5f1rt41VbZOLUuna4269DHCW7du4fDhw5g9e7bN9P79+2Pfvn1275OXl4c866kMALKyshx70tdek1t+Qsi/hZB/z58PpKTIbzP//Ke82nxGBtCxI/CnP8mu0x4ejj2XSuy1KyCv5l/WzZu2123k+Vn2lW3T0k6frvgqRy1aOLcuI6vofRoSAnTtChw/Dvz4ozyVqlEj4N57gZEj5dVRKrvOq8oqW6cOG6Zvbb9z6f/clStXUFhYiKAyJ1wGBQUhIyPD7n3i4uLw2muvVf9JT50qv2IRQv6kDSDPyXrkkeo/vqrstSsgD4bzIgTVwzbVXkVt+uuvwCef1H497uB269TS1qyRQy1z+WOEAGAqc+6TEKLcNKs5c+bAYrEUD+np6Y49WevW5c+1MpmANm0cexyyxXbVHttUe2xT7RmgTV06CBs3bgwPD49yW3+ZmZnlthKtzGYz/P39bQaHxMSUbLoDJZv0MTHVeQlkxXbVHttUe2xT7RmgTV06CL28vBAdHY3ExESb6YmJiejRo4dznnTYMGDjRtkDz9tbjhMSgMcec87zqYLtqj22qfbYptozQJuahLC3Q9x1rF+/Hk8++STeeOMN3HvvvYiPj8fq1atx/PhxtKjCQf+srCwEBATAYrE4vnVIRES6c/Z63KU7ywDA//zP/+Dq1auYP38+Ll26hA4dOmDbtm1VCkEiIqLbcfktwpriFiERkbE5ez3u0scIiYiInI1BSERESmMQEhGR0hiERESkNAYhEREpjUFIRERKc/nzCGvKenaIw79CQURELsG6/nbW2X5uH4TZv//MT1hYmM6VEBFRTWRnZyMgIEDzx3X7E+qLiopw8eJF+Pn5VfiLFfZkZWUhLCwM6enpbnsiPl+je+BrdA/u/hpr8vqEEMjOzkZISAjq1NH+iJ7bbxHWqVMHoaGh1b5/tX7BwmD4Gt0DX6N7cPfXWN3X54wtQSt2liEiIqUxCImISGkMwgqYzWbExMTAbDbrXYrT8DW6B75G9+Dur9GVX5/bd5YhIiKqDLcIiYhIaQxCIiJSGoOQiIiUxiAkIiKlMQgrsHLlSoSHh8Pb2xvR0dH45ptv9C5JM3FxcejWrRv8/PzQpEkTDB06FCdPntS7LKeJi4uDyWTCtGnT9C5FUxcuXMDYsWPRqFEj+Pr6onPnzjh8+LDeZWmmoKAAL7/8MsLDw+Hj44NWrVph/vz5KCoq0ru0atuzZw8GDx6MkJAQmEwmbN682Wa+EALz5s1DSEgIfHx80LdvXxw/flyfYqupsteYn5+PWbNmoWPHjqhXrx5CQkIwbtw4XLx4Ub+CwSC0a/369Zg2bRrmzp2LI0eO4L777sOAAQOQlpamd2ma2L17N6ZMmYLvvvsOiYmJKCgoQP/+/XHjxg29S9NcUlIS4uPjERUVpXcpmrp27Rp69uyJunXr4vPPP8cPP/yAf/zjH2jQoIHepWlm8eLFeOONN7BixQqcOHECS5YswdKlS/H666/rXVq13bhxA506dcKKFSvszl+yZAmWLVuGFStWICkpCcHBwXjooYeKr5lsBJW9xps3byI5ORmvvPIKkpOTkZCQgFOnTmHIkCE6VFqKoHK6d+8uJk+ebDMtMjJSzJ49W6eKnCszM1MAELt379a7FE1lZ2eLiIgIkZiYKPr06SOmTp2qd0mamTVrlujVq5feZTjVoEGDxMSJE22mDRs2TIwdO1anirQFQGzatKn476KiIhEcHCz+9re/FU/Lzc0VAQEB4o033tChwpor+xrtOXjwoAAgzp8/XztF2cEtwjJu3bqFw4cPo3///jbT+/fvj3379ulUlXNZLBYAQGBgoM6VaGvKlCkYNGgQHnzwQb1L0dyWLVvQtWtXjBgxAk2aNEGXLl2wevVqvcvSVK9evfDVV1/h1KlTAICjR49i7969GDhwoM6VOUdqaioyMjJs1j1msxl9+vRx23UPINc/JpNJ170Zbn/RbUdduXIFhYWFCAoKspkeFBSEjIwMnapyHiEEZsyYgV69eqFDhw56l6OZDz/8EMnJyUhKStK7FKc4e/YsVq1ahRkzZuCvf/0rDh48iJdeeglmsxnjxo3TuzxNzJo1CxaLBZGRkfDw8EBhYSEWLVqE0aNH612aU1jXL/bWPefPn9ejJKfLzc3F7Nmz8cQTT+h6oXEGYQXK/mSTEMKhn3EyihdeeAHff/899u7dq3cpmklPT8fUqVOxfft2eHt7612OUxQVFaFr166IjY0FAHTp0gXHjx/HqlWr3CYI169fj/feew/r1q1D+/btkZKSgmnTpiEkJATjx4/XuzynUWXdk5+fj1GjRqGoqAgrV67UtRYGYRmNGzeGh4dHua2/zMzMct/UjO7FF1/Eli1bsGfPnhr9VJWrOXz4MDIzMxEdHV08rbCwEHv27MGKFSuQl5cHDw8PHSusuaZNm6Jdu3Y209q2bYuNGzfqVJH2Zs6cidmzZ2PUqFEAgI4dO+L8+fOIi4tzyyAMDg4GILcMmzZtWjzdHdc9+fn5GDlyJFJTU/H111/r/rNTPEZYhpeXF6Kjo5GYmGgzPTExET169NCpKm0JIfDCCy8gISEBX3/9NcLDw/UuSVP9+vXDsWPHkJKSUjx07doVY8aMQUpKiuFDEAB69uxZ7pSXU6dOoUWLFjpVpL2bN2+W+xFWDw8PQ58+UZnw8HAEBwfbrHtu3bqF3bt3u826BygJwdOnT2PHjh1o1KiR3iVxi9CeGTNm4Mknn0TXrl1x7733Ij4+HmlpaZg8ebLepWliypQpWLduHT755BP4+fkVb/0GBATAx8dH5+pqzs/Pr9zxznr16qFRo0Zucxx0+vTp6NGjB2JjYzFy5EgcPHgQ8fHxiI+P17s0zQwePBiLFi1C8+bN0b59exw5cgTLli3DxIkT9S6t2q5fv44zZ84U/52amoqUlBQEBgaiefPmmDZtGmJjYxEREYGIiAjExsbC19cXTzzxhI5VO6ay1xgSEoLhw4cjOTkZW7duRWFhYfH6JzAwEF5eXvoUrVt/VRf3f//3f6JFixbCy8tL3H333W51agEAu8Pbb7+td2lO426nTwghxKeffio6dOggzGaziIyMFPHx8XqXpKmsrCwxdepU0bx5c+Ht7S1atWol5s6dK/Ly8vQurdp27txp97M3fvx4IYQ8hSImJkYEBwcLs9ksevfuLY4dO6Zv0Q6q7DWmpqZWuP7ZuXOnbjXzZ5iIiEhpPEZIRERKYxASEZHSGIRERKQ0BiERESmNQUhEREpjEBIRkdIYhEREpDQGIRERKY1BSERESmMQEhGR0hiERESkNAYhkQFdvnwZwcHBxT/MCwAHDhyAl5cXtm/frmNlRMbDi24TGdS2bdswdOhQ7Nu3D5GRkejSpQsGDRqE5cuX610akaEwCIkMbMqUKdixYwe6deuGo0ePIikpCd7e3nqXRWQoDEIiA8vJyUGHDh2Qnp6OQ4cOISoqSu+SiAyHxwiJDOzs2bO4ePEiioqKcP78eb3LITIkbhESGdStW7fQvXt3dO7cGZGRkVi2bBmOHTuGoKAgvUsjMhQGIZFBzZw5Ex9//DGOHj2K+vXr4/7774efnx+2bt2qd2lEhsJdo0QGtGvXLixfvhxr166Fv78/6tSpg7Vr12Lv3r1YtWqV3uURGQq3CImISGncIiQiIqUxCImISGkMQiIiUhqDkIiIlMYgJCIipTEIiYhIaQxCIiJSGoOQiIiUxiAkIiKlMQiJiEhpDEIiIlLa/wOXwhNlmfpQMQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from landlab.plot.graph import plot_graph\n", + "\n", + "grid = RasterModelGrid((4, 5), xy_spacing=(3, 4))\n", + "plot_graph(grid, at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that the nodes are points and they are numbered with unique IDs from lower left to upper right. \n", + "\n", + "Next the links" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xEZaBUsCOHcDEicBddwFhYYCfHxAdDTz6KLBli+XtDh4EXn8d6NwZqFIF8PUFqlUDuncH1q516ldwObaW6ZYtwJgxwN13A9WrA/7+QHAw0KoV8OabQEaGU7+GS7G1TC358EPAYJBhxAiHhewWbC3XadPMZVjScOyYM7+J67DHvrpyJfDgg0BEhBwHqleXn//3P5sC8mxGo1EBUEaj0artIiOVMpXO5s0yDSjl5aVUgwZKtWihVMWK5vlTphTe/tQp8zJAqbp1lWrVSqlKlczzhgxRKi/PPt/THaxZI997zhzbylQppQYOlGU+PkrVqqVU69ZK1a6tlMFgLudz55z+1TRlKi9by7SotDSlwsPN2wwf7vjv4GpM310p28t16lRZVrOmUh06WB70tK+OGSPlsXu39WVa8DielaXUQw+Z16tXT6k2baScvbzkOGstJsISFEyEcXFK3XabUgsWKHX5snmd7GylJk82/0E2bDAvO3lSqagopWbPViolxTw/L0+pDz4wH7g/+KAcX87NFEyEtpSpUkp99ZVS33+v1LVrhecfOaJU06ayTY8ejv8ursRUVraWaVEDB8oBpWdPJkKlbC9XUyKcOtVZUbu2gonQ2jIteBx/4glZ1qmTUseOFf4daWlK/fCD9bExEZagYCI0GpXKySl53e7dZd2HHjLPu35dqczMkrcZOVK2adrUqrDcWsFEaEuZlmbvXtnG21vKXy9MBw17lGlcnKzz3HPmA7neE6Gt5cpEWFjBRGhtmZqO46tXX1WAUg0bFj8ZLg/eIyyDkBDAx6fk5V27yvjECfO8gAAgKKjkbbp1K76NnthSpqVp2FDGeXlAdrbtsbmr8pZpVhbw3HNyH3vWLPvH564csa/qna1lumCBPwBgyhQgMNB+8dwiFCqrrCwZW/OHsWUbPbGlfHbtknG9ekBoqP1jcnellemMGcCpU8Cnn0rjBSqb0sp1yxbgyBHg0iUgPBxo2xYYPBiIjHRejO7GcpkGYNs2bxgMQM+e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SpL1ExPN1yvh4Uq1bKlUixZKValinl+/vlKnTllZKG5szRr53nPmyM/WlumtTJ0q2w4f7tCv4JJM+5NS1pfpwYPm7atWVapVKxmCgszzhw9XKj9fs6+niYJlqpTt++r69Ur5+cm6ERFKtWmjVGioedsffnDq19LUmDHyvXfvlp+tKVOj0VjoOL5zp6zr66vUX3+VPzarrwhXr16NP/74A6NHj8aqVatQp04ddO/eHV999RVycnLskJrNzpw5g4ULFyImJgY//PADRo4ciTFjxuAzS3UN/4iNjUVoaOjNoaapor6ccnKkqa5pMPUPeu1a4fmmG9+RkcB//yuvYKlSReqzDx+WG7r33Qf85z/ysxtc3DqMtWVKpbO2TOvUkXdjdu8uVy/Hj8t+GR4O9OsnrZpN73vUM1v31d69gf375VEJg0Gq9ytUkKb+Bw7ou9Pt8vz/m6pFbe1SrSiDUuW7m3Lw4EH873//w4cffoiKFSti0KBBeP755xETE1Pu4Pz8/NC6dWvs3Lnz5rwxY8Zg37592GW6S1pEdnY2sgv0Yp2eno6aNWvCaDSW+PoOS6Ki5J1hvNdkP2vXynOTc+ZItRHZhylJcV+1H5ap/Y0dKxcAu3cD7dpZt216ejpCQ0OtPo6XVbkay1y4cAGbNm3Cpk2b4O3tjR49euDIkSNo3Lgx3nvvvXIHFxUVhcaNGxea16hRIyQlJZW4jb+/P0JCQgoNREREJbE6Eebk5GD16tXo1asXateujVWrVmH8+PG4cOECPv30U2zatAlLly7F9OnTyx1chw4dcPz48ULzTpw4gdq1a5f7s4mIiAAb3j4RFRWF/Px8PPHEE9i7dy+aW2j7/69//csujziMHz8e7du3x6xZs9C/f3/s3bsXixcvxuLFi8v92URERIANifC9997DY489hoBb9G5aqVIlJCYmliswAGjTpg3Wrl2LyZMnY/r06ahbty7mzZuHgQMHlvuziYiIABsS4ZN2eWij7Hr16oVevXo59XcSEZF+uHTPMkRERI7GREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGROiBUlOB8eOBmBggIACoUgV48EHghx+0jsx9JSYCS5YATz8NNGsG+PgABgMwY0bp2+7aBfTpA1StCgQGAo0bA2++CWRlOT5uV2ZLmaamAp99BoweDbRtC/j7yzYjRjgvbldmS5kePAi8/jrQubMcK3x9gWrVgO7dgbVrnRe7lny0DoDs6/BhoGtX4M8/5SDRpAlgNEoS/OEHIDYWePllraN0P++/L4O1vvgCGDIEyMsDqlcHatYEfvtNDjwbNgBbtwJBQXYP1y3YUqbLl8tJHllmbZmePg20bGn+uW5doE4d4MwZYONGGYYMAf73P8DLgy+bPPir6U9uLtCvnyTBLl2A5GRg/37g5Engxx+B4GDglVeA7du1jtT9VKkC9OoFTJ8OfP898OijpW9z9iwwfLgkwTlz5O8RHy9/j9tvB/btA156yeGhuyxbyjQkRE70Xn0V+Ppr4IUXHB+nO7G2TJUCoqKA2bOBlBRJgPv3AxcvAh98IFeTn34KLFjgnPi1witCD/Ltt8CJE3Il+MknUhVnct99cvB4+WXgjTckMVLZTZlS+Ofly0vf5u23gexsoFs3YOJE8/zateUMu0MHYPFi4LXXgIgI+8brDmwp02HDZDCJj7dvTO7O2jKtUQM4dap4rYSXl1Q/HzkCLFok1a2jR9s3VlfCK0IP8ssvMm7TRg62RZnODrduBdLSnBaWLillvr8yfHjx5e3bAw0bAjk5cmVDpIWAgFtXzXfrJuMTJ5wTj1aYCD3IlSsyrl7d8nLT/Px8qZYjx0lKAi5ckOkOHSyvY5q/Z49zYiKylqlBV2CgtnE4GhOhBwkNlfEff1heXnD+8eOOj0fPTp6Usb8/EB1teZ169QqvS+RqVq6UcUknc56CidCDtGkj4/37pWFGUWvWmKdNV4/kGKbyDQuTBgeWVKpUeF0iV7JpE7BunUwXvMftiZgIPUifPnL1kZUFDBhgrpoDpCHNzJnmn69fd358emKqUvLzK3kdf38Z829BriYpCRg4UKaffx7o1EnbeByNidCDBAQAK1bIYxI7dgC1aslzhNWrS5PqsDDzDl2xoqaheryAABnfuFHyOtnZMvb0+y/kXi5flofpL16Ux7DmztU6IsdjIvQwHTtKk/Jhw4DISHNrr5Ejpco0L09+jozULkY9MFV7/v23tCC1xFQlalqXSGtXrwI9egBHjwKtWgHr15trLjwZnyP0QLfdBnz0UfH5ubnAoUMy3aqVc2PSm5gYGWdny4PKllrynjlTeF0iLWVny+2VPXukG8CNG6V2SQ94RagjP/wgZ3zR0YW7VSL7q1XLfNVter6zKNP8du2cExNRSXJzgf79gZ9+ktbMcXHSS41euFUijI2NhcFgwLhx47QOxe3cuCH9WwLAc88B3t7axuPpDAbg4Ydl2tLV+c6dwLFj0sHxQw85NzaigpQChg6VatDoaGDz5pIf+fFUbpMI9+3bh8WLF6Np06Zah+LSvvuu+APayclA375y77BxY+c2hf7tN3OjEL2ZOFFajW7aJN2tme4Vnjtn7iZsxAjr79eeOycNGch+MjPlxESPxo6VzuGrVJEkWLeufT5XKbkVY2qX4NKUG8jIyFAxMTEqLi5Ode7cWY0dO7bM2xqNRgVAGY1Gq35nZKRS7lE6hY0dK3FXqqRUixZKNWqklMEg8xo3Vur8eefFsmKF/N6KFZV68kmlXnlFfp4zx3kx2MuOHUpVrmwe/P3luwQFFZ6flFR4u08/VcrLS9atXl3+Jr6+8nOrVkpdvWpdHBcuKBUQIJ95331KLV4sn+WO+6otZZqUVHhZYKBs4+9feP6OHdbFcvfd8jkNGyr1xhv6KdOdO83ftWZNpTp0KHmw1pw58rnh4Uo9+6xSjzwiP+/ebf1n2XocLyuDUiW1aXMdQ4YMQXh4ON577z106dIFzZs3x7x58yyum52djewClyDp6emoWbMmjEYjQkJCyvw7W7aU93QRuSqDoeQWqUSu6pdfpK9da6SnpyM0NNTq43hZuXyr0eXLlyM+Ph77ytg5ZmxsLN54441y/94KFWQcEODZ7+FypGvXZOztLdUjlSrJIwM+Prd+0JxKZipTLy/pMzYoSOZ5eZmfXSTrmcrVYJDBx0fuqwcGltwzEN1a0f//sDB5nOjYMesToaO5dCJMTk7G2LFjsWnTJgSU8b988uTJmDBhws2fTVeE1rh4URozAMCoUcA771i1Of3j+HHg2WeBu++WFmnPPCPPMtapI8838gBjvevXpWFDQADw739L5+nTpklSPHzY3H8pWWfuXHl/3+OPA/XrA/feK/PnzPHs1w850q5dcp/8wQflzTemMl2+vPCrtFyBS1eNrlu3Dg8//DC8CzRxzMvLg8FggJeXF7Kzswsts8SWS+olS+SgDUjrqfPnedAur+RkeaTA5NdfgTvv1C4eT9GkibwzzssLmDULmDRJ64jc36uvyotq8/OBu+4ynxST7XbuNHfc7e0tr4ELDy/79o6uGnXpSr/7778fhw8fRkJCws2hdevWGDhwIBISEkpNgrZatco8nZLCl3/aQ9F37pne1Ue2O3NGkiAgB+2C+y3ZbsUKqcpTCti9m+/utIeCHf7n5QHffKNdLJa4dCIMDg5GkyZNCg0VKlRA5cqV0aRJE4f93oIvUn3kETnrpvLp1avwGaDpJcFku1q1zB0jA9KNHpVfwarQYcOAqlW1i8VT9O9vno6JMb/w11W4dCLUyr//bX62a/VqffS152h16gAffijTc+YAd9yhaTgewccH+Pxz888jRmgXiycp2F/Hhx/ytog9tG0LjBkj00uXul5fxy7dWMaSrVu3ah0CERF5EF4REhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjEREhGRrjER2mjKFMBgkGHGDK2jcU9Dh5rLsKQhK0vrKN1TXh6wZAnQuTNQpQoQEADUrg307Qt8/bXW0bmXs2dL309Nw7ZtWkfrXtLSgBdfBO64AwgKkv20fn3gmWeAU6ecF4eP836V5/j9d+Dtt7WOwnPExADVqlle5sVTNatduQL06AHs3i0H5wYNgDp1gJQUSYI+PkCfPlpH6T4CAoAOHUpefuECcOaMrNe8udPCcnvHjwOdOkky9PUF6tWT8alTchL3xRfAd9/JyZyjMRFaSSng2WflD9axI/DTT1pH5P5eeUWuDqn88vOBhx6SJPjII8D77wM1apiXnz8vB20qu8hIYMeOkpcPGiRl+tBDQGio8+Jyd6NGSRLs0AFYvty8n166BAwbBqxfDzz1FHD6tONjYSK00kcfAT//DMyeDRw9qnU0RIUtXiwH7XvvBVatKn5FXaNG4cRI5XP1KrBunUw/+aSmobiVa9eALVtkeuHCwvtk5crAJ5/IODEROHYMqF7dsfGw4skKf/0FTJoENG4MjB+vdTRExb3/vozffJPVys6wZg2QmQlUrQo8+KDW0biPGzek9gKQKtGiKlUCwsNlOjfX8fHwitAK48cDly/Lzu/rq3U0nuOrr+SsOj1d7hV26AAMHsxqJmudPClnz+HhQPv2cj9w1Sq5h1W1KvDAA3LV4u+vdaSe4/PPZfz443LvlcomLAyoWRNITgZ27gS6di28/PhxqSINC5M2BDduODYenjOW0Y8/ys3bQYOcc/NWT779Vg7aW7YAK1YAY8YAdesCGzdqHZl7OXBAxg0bSsLr21f22Z9+knJ9+mlpzHHunJZReo4LF+S4ALBa1Bam1vbDhgGrV0viMxqBH36QfddgAObMkUZIjsZEWAZZWcDIkXKF8s47WkfjOerXB2bNAg4dkqvBjAxg0yagXTtp+di3L7B/v9ZRuo8LF2S8b58kwBEjpOl/VhawebNUQR07Bjz6qLlaimz3xRdSjrffDrRpo3U07mfwYEmAVaoA/frJOCxMqpj9/KTF6NNPOycWJsIymDFDmvTOnAlERGgdjed47TVg8mSgaVMgOBioWFGqSLZvB9q2BbKz5Z4slU1mpoxzcoB77pEm6LVrS1Xo/fdLlb7BIFeO336rbayewFQtyqtB2yglrW0vXQK8vYHbbpP2F35+wG+/ScOvy5edEwsTYSlMzwy2bAk895zW0eiDn5809gCArVvl6pBKV7AKaezY4subNZPWpACrncvr8GGpyTAY5HYJWW/kSGDiRLlXeOqU3OM+ckTuG/boAaxdK/trXp7jY2EiLMXzz0urpYUL2QrPme6+W8b5+XzurawqVTJPN2xoeZ1GjWR89qzDw/FoS5fKuFMnueom6xw6JDUWvr7yDGGdOuZl1apJtXOVKsCvvwIrVzo+Hh7aS3HwoJz1PfSQPFhbcFixQtaZPVt+5n0C+ynYKtcZzac9we23m6dLahlqmu+Ms2xPlZ8PfPmlTLNa1Da//CJVow0ayBVhUSEhcnsEcE47ATb4LYO8PODPP0tefvWqDM5o3aQXR46Yp/kAeNm0aCH7YFaWXEXfdlvxdUxX145+QNmTbdkiPfQEBEgjD7JeRkbp6yglY2f0N+zSV4SxsbFo06YNgoODUa1aNfTt2xfHjx93agx//y1/EEvDkCGyzptvys+sbrKfd9+VccOGPGiXVYUKcm8FAD79tPjy1FRpmg4A993nvLg8jalalF2q2S4mRsYnTsg9waLS06X1MyBXjY7m0olw27ZtGDVqFHbv3o24uDjk5uaiW7duyDQ1jyO3FRcnLUYTEwvPNxrlOUJT1dPrrzs/Nnf2+uvSAm/58sLJ8O+/pT/X69flMYrHHtMqQvd2/bq0vgVYLVoe3brJPcCcHOmMoOBFRFoaMHAgcPGi8666XbpqdGORpm0ff/wxqlWrhgMHDqBTp04aRUX2kJkJvPWWDNWrA9HR8k9x9Kj0ImEwyEH9iSe0jtS9NGsGzJ8vjbyGDpUyrFZNyvXaNTn4rF4tLXPJeuvWSbUeu1Qrn4oVgc8+k47hd+6UavyCb5+4cUN66lm0SI4P6emOjcelE2FRRqMRABBu6oTOguzsbGRnZ9/8Od3RJUg2adUKePVVYNcu2fF/+02ql6tXl2fgnn9eHqwn640cKe93e/ttKd9ff5UTjZ495SqcVc22M1WLsku18uveXVqPvvuu9H6UlCTHgKgoaY07bpw8tuYMbvOnVEphwoQJ6NixI5o0aVLierGxsXjjjTecEtMnn8hA1qtZky80dqR77pGB7Ou777SOwLM0aAD8979aR+Hi9wgLGj16NH799Vd8abp5VILJkyfDaDTeHJIt3YklIiL6h1tcEb7wwgtYv349tm/fjhqltKX39/eHP7vXJyKiMnLpRKiUwgsvvIC1a9di69atqFu3rtYhERGRh3HpRDhq1CgsW7YMX3/9NYKDg5GamgoACA0NRWBgoMbRERGRJ3Dpe4QLFy6E0WhEly5dEBUVdXNYYerbjIiIqJxc+opQmfrYISIichCXviIkIiJyNCZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCIiLSNSZCD/Xdd8ADDwDh4UCFCkDLlsAHHwD5+VpH5p4SE4ElS4CnnwaaNQN8fACDAZgxQ+vI3JNSwI4dwMSJwF13AWFhgJ8fEB0NPPoosGWL1hG6r3XrgGefBVq1AqKipFzDwoD27YH33wdu3NA6Qtfjo3UAZH9vvQVMnizT9eoBFSsChw4BY8YAmzcDa9cCXjwFssr778tA9vHTT3KiBsi+eNttcsJ28iSwZo0MU6YAb76pbZzu6J13gF9+Afz95cSiWTPgwgVg1y4Zli6V40BYmNaRug4eDj3Mrl3AK6/IwWXZMuD0aUmC8fFARASwfj0wd67WUbqfKlWAXr2A6dOB77+XqxaynVKS/BYsAC5eBI4fl3300iXzSdyMGcA332gbpzsaMUKuqDMygDNngH37gPPn5dhQowZw4ADw6qtaR+lamAg9zIwZcpAZMQJ44gnz/GbNzAnwrbeAnBxt4nNXU6YAGzYAr70GPPigXGWT7dq2BX7/HXjuOaBSJfN8Pz9g1iyge3f5eckSbeJzZ0OHAl26AL6+heffdZf5GLBunZODcnFMhB4kPV2qPABg+PDiyx97DAgJkbNu3oMhLYWEyH3WknTtKuMTJ5wTj140bCjja9e0jcPVMBF6kIMH5UZ4QIA0jinK1xdo00am9+xxbmxE1sjKknFgoLZxeJpdu2Rs6figZ0yEHuTkSRnXqlXy2Xa9eoXXJXI1SgGrVsl0hw7axuIJ8vLkHuGCBcCLL0qjpNhYraNyLUyEHuTKFRkXvOdSlGmZaV0iV7NkidRu+PkB48ZpHY37mjdPHvHx8QFq1gRGjQLuvx/YvVvu0ZIZE6EHMVUn+fmVvI6/v4yvX3d8PETWio8Hxo6V6RkzgPr1tY3HnVWvLlfUbdtKi3FA2gZ8+aVcJZIZE6EHCQiQ8a0emM3OljHvvZCrSUyUR1SysoABA6Qaj2z32GPSacGePUBqqlwJ1qkjrXJHj9Y6OtfCROhBylLtWZbqUyJnS02VlqIXLgA9ewKffCLVemQ/7dpJj1P+/sDixcC5c1pH5DqYCD1ITIyMk5KA3FzL65w5U3hdIq1dvixJ8PRpoHNnaShT9Bk4so/oaKB5c+lq8dAhraNxHUyEHqRFCzmAZGXJvZaicnKklwlAzg6JtHb1KtCjB/Dbb/Joz4YNrLZ3NNNJckkny3rkFolwwYIFqFu3LgICAtCqVSv8/PPPWofkkkJCzP03fvRR8eWrVslD95UrS88TRFrKzgb69JF7WHfcAWzcCAQHax2VZzt71nwl2KyZpqG4FJdPhCtWrMC4cePw6quv4uDBg7jnnnvQvXt3JCUlaR2aS3r1Vbm38uGH0jrM5NAhYMIEmX7ppVu3LLWX69elS6ft29lKzV6Ukr/rypVAZqbW0dguLw94/HHpfLt+fSAuTt6UopWDB4H//Eeet3NnBw4AU6eab4EUtHGjdF2XmytX4Y5ukXv5MjBnjsSklGN/V3kZlHLtENu1a4eWLVti4cKFN+c1atQIffv2RWwZngpNT09HaGgojEYjQkJCyvx7o6LkBv7HH9sUtqY2bJDe+wGgalVpTXr+vOyMzZrJWyic8faJVavk5rwpjtatpcPq/v3NfUm6i5Mn5UBpkpUlBxQ/v8InFdOmyRW3o6SkmDtM9veXhiWmv7U77au7dwP//a9MR0RIbYYloaHy/JujPfWUebptW2DvXpl2pzIFgGPHgNmzZTo0VBrF5eVJt4qmbtXq1gXGj3f81ff77wMJCTJdq5YcAw4ckL+9tbdmbD2Ol5VLJ8IbN24gKCgIq1atwsMPP3xz/tixY5GQkIBt27YV2yY7OxvZpmcEIAVYs2ZNqwvwueeARYvKFz8RERWWlCQP+FvD0YnQpd9HePHiReTl5SHC9DToPyIiIpCammpxm9jYWLzxxhvl/t0LFwKdOsk9NbLNV1+ZOwGvXFmuBJs2ZbP48khJkVdBAXIl2r07cO+90kjK21vb2NzZyJHm6dat5Rk8f3/zs7lkvf/8Bzh6VKarV5e34Tz2mPVJ0BlcOhGaGIocOZVSxeaZTJ48GRNMN8NgviK0RcHXGJH1nnwS+L//k9aA99zDA7U9KCWPvnh7y8PnbFxiH61by73sRx+Vajwqv3795HnFBx6Q8nXlE2CXToRVqlSBt7d3sau/tLS0YleJJv7+/vA39SNGmgoKAiZO1DoKz2IwAIMGaR2F52nVSgayn8qVzS9ZdnUu3WrUz88PrVq1QlxcXKH5cXFxaN++vUZRERGRJ3HpK0IAmDBhAp588km0bt0ad999NxYvXoykpCSMLFipT0REZCOXT4T//ve/cenSJUyfPh0XLlxAkyZN8N1336F27dpah0ZERB7ApR+fsAdHN7slIiLHcvRx3KXvERIRETkaEyEREekaEyEREekaEyEREekaEyEREekaEyEREemayz9HWF6mp0PS2Xs2EZFbMh2/HfW0n8cnwoyMDACwueNtIiJyDRkZGQgNDbX753r8A/X5+flISUlBcHBwiW+ssMT01ork5GSPfRCf39Ez8Dt6Bk//juX5fkopZGRkIDo6Gl4OeKu4x18Renl5oUaNGjZvHxIS4pE7ZUH8jp6B39EzePp3tPX7OeJK0ISNZYiISNeYCImISNeYCEvg7++PqVOnevRLfvkdPQO/o2fw9O/oyt/P4xvLEBER3QqvCImISNeYCImISNeYCImISNeYCImISNeYCEuwYMEC1K1bFwEBAWjVqhV+/vlnrUOym9jYWLRp0wbBwcGoVq0a+vbti+PHj2sdlsPExsbCYDBg3LhxWodiV3/88QcGDRqEypUrIygoCM2bN8eBAwe0DstucnNzMWXKFNStWxeBgYGoV68epk+fjvz8fK1Ds9n27dvRu3dvREdHw2AwYN26dYWWK6Uwbdo0REdHIzAwEF26dMGRI0e0CdZGt/qOOTk5mDRpEu68805UqFAB0dHRGDx4MFJSUrQLGEyEFq1YsQLjxo3Dq6++ioMHD+Kee+5B9+7dkZSUpHVodrFt2zaMGjUKu3fvRlxcHHJzc9GtWzdkZmZqHZrd7du3D4sXL0bTpk21DsWurly5gg4dOsDX1xfff/89jh49infffRdhYWFah2Y3s2fPxqJFizB//nz8/vvvmDNnDt5++2188MEHWodms8zMTDRr1gzz58+3uHzOnDmYO3cu5s+fj3379iEyMhJdu3a92WeyO7jVd7x27Rri4+Px2muvIT4+HmvWrMGJEyfw0EMPaRBpAYqKadu2rRo5cmSheQ0bNlQvv/yyRhE5VlpamgKgtm3bpnUodpWRkaFiYmJUXFyc6ty5sxo7dqzWIdnNpEmTVMeOHbUOw6F69uyphg0bVmjeI488ogYNGqRRRPYFQK1du/bmz/n5+SoyMlK99dZbN+dlZWWp0NBQtWjRIg0iLL+i39GSvXv3KgDq3LlzzgnKAl4RFnHjxg0cOHAA3bp1KzS/W7du2Llzp0ZROZbRaAQAhIeHaxyJfY0aNQo9e/bEAw88oHUodrd+/Xq0bt0ajz32GKpVq4YWLVpgyZIlWodlVx07dsSPP/6IEydOAAAOHTqEHTt2oEePHhpH5hiJiYlITU0tdOzx9/dH586dPfbYA8jxx2AwaFqb4fGdblvr4sWLyMvLQ0RERKH5ERERSE1N1Sgqx1FKYcKECejYsSOaNGmidTh2s3z5csTHx2Pfvn1ah+IQZ86cwcKFCzFhwgS88sor2Lt3L8aMGQN/f38MHjxY6/DsYtKkSTAajWjYsCG8vb2Rl5eHmTNn4oknntA6NIcwHV8sHXvOnTunRUgOl5WVhZdffhkDBgzQtKNxJsISFH1lk1LKqtc4uYvRo0fj119/xY4dO7QOxW6Sk5MxduxYbNq0CQEBAVqH4xD5+flo3bo1Zs2aBQBo0aIFjhw5goULF3pMIlyxYgU+//xzLFu2DHfccQcSEhIwbtw4REdHY8iQIVqH5zB6Ofbk5OTg8ccfR35+PhYsWKBpLEyERVSpUgXe3t7Frv7S0tKKnam5uxdeeAHr16/H9u3by/WqKldz4MABpKWloVWrVjfn5eXlYfv27Zg/fz6ys7Ph7e2tYYTlFxUVhcaNGxea16hRI6xevVqjiOxv4sSJePnll/H4448DAO68806cO3cOsbGxHpkIIyMjAciVYVRU1M35nnjsycnJQf/+/ZGYmIiffvpJ89dO8R5hEX5+fmjVqhXi4uIKzY+Li0P79u01isq+lFIYPXo01qxZg59++gl169bVOiS7uv/++3H48GEkJCTcHFq3bo2BAwciISHB7ZMgAHTo0KHYIy8nTpxA7dq1NYrI/q5du1bsJaze3t5u/fjErdStWxeRkZGFjj03btzAtm3bPObYA5iT4MmTJ7F582ZUrlxZ65B4RWjJhAkT8OSTT6J169a4++67sXjxYiQlJWHkyJFah2YXo0aNwrJly/D1118jODj45tVvaGgoAgMDNY6u/IKDg4vd76xQoQIqV67sMfdBx48fj/bt22PWrFno378/9u7di8WLF2Px4sVah2Y3vXv3xsyZM1GrVi3ccccdOHjwIObOnYthw4ZpHZrNrl69ilOnTt38OTExEQkJCQgPD0etWrUwbtw4zJo1CzExMYiJicGsWbMQFBSEAQMGaBi1dW71HaOjo9GvXz/Ex8fjm2++QV5e3s3jT3h4OPz8/LQJWrP2qi7u//7v/1Tt2rWVn5+fatmypUc9WgDA4vDxxx9rHZrDeNrjE0optWHDBtWkSRPl7++vGjZsqBYvXqx1SHaVnp6uxo4dq2rVqqUCAgJUvXr11Kuvvqqys7O1Ds1mW7Zssfi/N2TIEKWUPEIxdepUFRkZqfz9/VWnTp3U4cOHtQ3aSrf6jomJiSUef7Zs2aJZzHwNExER6RrvERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERK5ob/++guRkZE3X8wLAHv27IGfnx82bdqkYWRE7oedbhO5qe+++w59+/bFzp070bBhQ7Ro0QI9e/bEvHnztA6NyK0wERK5sVGjRmHz5s1o06YNDh06hH379iEgIEDrsIjcChMhkRu7fv06mjRpguTkZOzfvx9NmzbVOiQit8N7hERu7MyZM0hJSUF+fj7OnTundThEbolXhERu6saNG2jbti2aN2+Ohg0bYu7cuTh8+DAiIiK0Do3IrTARErmpiRMn4quvvsKhQ4dQsWJF3HvvvQgODsY333yjdWhEboVVo0RuaOvWrZg3bx6WLl2KkJAQeHl5YenSpdixYwcWLlyodXhEboVXhEREpGu8IiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl37/whVnX2etF+xAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(grid, at=\"link\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which are lines that connect the nodes and each have a unique ID number. \n", + "\n", + "And finally, the cells" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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tlaSlJmZ2eltgsGggsFg6+VAINDjczlFQm3M7hGMkVDX8lwmBCzFTkdtnsYMPKc9o+XfvcvuMRwhboJmWZYWLFig8ePHa9iwYZ3erqSkRM8888xlnMx+nlSP/L4kDTsckmTZPY4RrKBbYW+i+hx1y13Bc9odeE57ikt+X5I8qR67B7Gdy7KsuPjNmjdvnn7zm99o165d6tevX6e362gLraCgQLW1tcrIyLgco9oiUhtRtJFXvd3JCltyJfLKtzvxnPYMT6pHCf642T65YIFAQH6//2vX43HxDDz66KPavHmzdu7ced6YSZLX65XX671MkzlHgj/B6F9oAPg6jl4DWpalRx99VJs2bdL27dtVWFho90gAAIdydNDmzZunDRs26Ne//rV8Pp+qq6slSX6/XykpKTZPBwBwEke/h+Zydbyvfd26dbr//vu79D26uu8VAOBMRryH5uDWAgAcxtFnCgEAoKsIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIwQF0Fbs2aNCgsLlZycrNGjR+u9996zeyQAgMM4PmgbN25UcXGxnnjiCR04cEDf+c53NGnSJJ04ccLu0QAADuKyLMuye4jzueGGG3Tddddp7dq1rcuuueYaTZ06VSUlJV97/0AgIL/fr9raWmVkZPTkqACAHtDV9bijt9BCoZD27dunoqKiNsuLioq0e/fuDu8TDAYVCATafAEAzOfooH3xxReKRqPKyclpszwnJ0fV1dUd3qekpER+v7/1q6Cg4HKMCgCwmaODdo7L5Wpz2bKsdsvOWbJkiWpra1u/KisrL8eIAACbJdg9wPn06dNHHo+n3dZYTU1Nu622c7xer7xe7+UYDwDgII7eQktKStLo0aO1devWNsu3bt2qcePG2TQVAMCJHL2FJkkLFizQfffdpzFjxujb3/62SktLdeLECT300EN2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(grid, at=\"cell\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which are polygons centered around the nodes. \n", + "\n", + "Landlab is a \"dual\" graph because it also keeps track of a second set of points, lines, and polygons (\"corners\", \"faces\", and \"patches\"). We will not focus on them further." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 2a\n", + "\n", + "(2a.1) Create an instance of a `RasterModelGrid` with 5 rows and 7 columns, with a spacing between nodes of 10 units. Plot the node layout, and identify the ID number of the center-most node." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2a.1 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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OfQP5tF3rnI4caK+cZWhe7FUnojAarUiOTkZcXFxWLNmTem6wsJCrFu3Dt1tnYM9MWiQugN2SopqHk1JUZ3K7rzTj9FXcUOHMof+wDz6jjn0HXPoH8yj71zl0Nub3lYCXfssTZo0CQMGDEBiYiIuXLiAhQsXYvr06Vi5ciX69u2LGTNmIC0tDfPmzUOLFi0wbdo0pKen4+DBg4hyc6yF0qvhDHDOk4iIiNxjpO9vXUfw/v333/HQQw8hOzsbMTExSElJKS2UAODZZ59Ffn4+xo0bh3PnzqFLly5YvXq124USERERka90vxqushmpMiUiIiL3GOn723B9loiIiIiMhMUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFEREREpIHFEhEREZEGFktEREREGlgsEREREWlgsURERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFEREREpIHFEhEREZEGFktEREREGlgsEREREWlgsURERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKRB12IpLS0NnTp1QlRUFOrXr48hQ4bg4MGDDtuMHDkSJpPJYeratatOERMREVGo0bVYWrduHcaPH49NmzZhzZo1KCoqQr9+/XDp0iWH7fr374/s7OzS6dtvv9UpYiIiIgo1YXr+4ytXrnT4e968eahfvz62bduGW265pXS52WxGXFxcoMMjIiIiMlafJYvFAgCoV6+ew/L09HTUr18fLVu2xOjRo5Gbm+vyOaxWK/Ly8hwmIiIiIm+ZRET0DgIARASDBw/GuXPn8OOPP5YuX7RoEWrXro2kpCQcO3YMf/vb31BUVIRt27bBbDZXeJ4pU6bgpZdeqrDcYrEgOjq6Ul8DERER+UdeXh5iYmIM8f1tmGJp/Pjx+Oabb7BhwwY0atTI5XbZ2dlISkrCwoULMXTo0ArrrVYrrFZr6d95eXlITEw0RLKJiIjIPUYqlnTts2Tz+OOPY9myZVi/fr1moQQA8fHxSEpKwqFDh5yuN5vNTluciIiIiLyha7EkInj88cexdOlSpKenIzk5+ar7nDlzBllZWYiPjw9AhERERBTqdO3gPX78eHzyySf47LPPEBUVhZycHOTk5CA/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5fbbb5fw8HDp0KGDzJ49W/Ly8kq3+fzzz6VOnTpXfa6SkhIZP368JCQkOG2NsnXwnjFjRukyq9XqXQdvi0V1IktNVU1+qakiS5a49RxUBnPoH8yj75hD3zGH/sE8+s5JDh2+v3VmEhHxpLiKjY1FSUkJ7rvvPowePRo3OLmj+blz53DjjTfi2LFjms81btw4fPbZZ/j666/RqsylujExMajxxzgKM2bMQFpaGubNm4cWLVpg2rRpSE9Px8GDBxGldQnhH/Ly8hATEwOLxWJvZSIiIiJDM9L3t8fF0oIFCzBs2DBE+uEGkyYXI+TOmzcPI0eOBACICF566SW8//77OHfuHLp06YJ//etfaOfmDWyNlGwiIiJyj5G+vz0uloKNkZJNRERE7jHS9zdvpEtERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFEREREpIHFEhEREZEGFktEREREGlgsEREREWlgsURERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFEREREpIHFEhEREZEGFktEREREGlgsEREREWlgsURERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBl2LpfXr12PgwIFISEiAyWTCV1995bB+5MiRMJlMDlPXrl31CZaIiIhCkq7F0qVLl5Camop33nnH5Tb9+/dHdnZ26fTtt98GMEIiIiIKdWF6/uMDBgzAgAEDNLcxm82Ii4sLUEREREREjgzfZyk9PR3169dHy5YtMXr0aOTm5mpub7VakZeX5zARERERecvQxdKAAQPw6aef4ocffsAbb7yBLVu2oE+fPrBarS73SUtLQ0xMTOmUmJgYwIiJiIioqjGJiOgdBACYTCYsXboUQ4YMcblNdnY2kpKSsHDhQgwdOtTpNlar1aGYysvLQ2JiIiwWC6Kjo/0dNhEREVWCvLw8xMTEGOL7W9c+S56Kj49HUlISDh065HIbs9kMs9kcwKiIiIioKjP0abjyzpw5g6ysLMTHx+sdChEREYUIXVuWLl68iMOHD5f+fezYMezcuRP16tVDvXr1MGXKFNx1112Ij49HZmYmJk2ahNjYWNx55506Rk1EREShRNdiaevW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h+UNGjTA8ePHXe6XlpaGl156qeKKw4crHswi9hGRbafgeHsT13791XkOs7NVB+Q33lDn2k+csN9F+5ZbgAkT2NemLGd5BIBq1dTp3/371ZdMp07An/8MjB/PK2HKc5XD4mL7qWGby5fVVHabsoYPV53r09LUqbd9+1TBf999wHPPVd2R5129n48fV4VieVp5dJZ3QH25lb0Pl7PnDXb+OBbL5igry3mXhqrMRQ6rFRcjFnAcp89VDuPigPffV3ff2LkTOHJE3d+1bl2gTx91N4lHHvF6GBDDtixt3LgRPXr0wKlTpxAfH1+63ejRo5GVlYWVK1c6fR6vW5bo6lz9EmUOPcM8+o459B1z6B/Mo+9c5DCvbVvE7NkDi8WC6Oho/eKDgYcOiPvjKhVbC5NNbm5uhdamssxmM6Kjox0mAMDEieo/wnZbA5NJ/T15cqXEXyVNnswc+gPz6Dvm0HfMoX8wj75zlcOJE/WNqwzDFkvJycmIi4vDmjVrSpcVFhZi3bp16G47t+uJQYPUTV5TUlSzekqK6m1f/v4x5NrQocyhPzCPvmMOfccc+gfz6DtXORw4UO/ISul6Gu7ixYs4fPgwAKB9+/aYOXMmevfujXr16qFx48aYMWMG0tLSMG/ePLRo0QLTpk1Deno6Dh48iCg3B+nKy8tDTEyMIZrxiIiIyD1G+v7WtSfz1q1b0bt379K/n3rqKQDAiBEj8NFHH+HZZ59Ffn4+xo0bh3PnzqFLly5YvXq124USERERka8M08G7shipMiUiIiL3GOn727B9loiIiIiMgMUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFEREREpIHFEhEREZEGFktEREREGlgsEREREWlgsURERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFEREREpIHFEhEREZEGFktEREREGlgsEREREWlgsURERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBkMXS1OmTIHJZHKY4uLi9A6LiIiIQkiY3gFcTdu2bfHdd9+V/l29enUdoyEiIqJQY/hiKSwsjK1JREREpBtDn4YDgEOHDiEhIQHJycm49957cfToUc3trVYr8vLyHCYiIiIibxm6WOrSpQvmz5+PVatWYc6cOcjJyUH37t1x5swZl/ukpaUhJiamdEpMTAxgxERERFTVmERE9A7CXZcuXUKzZs3w7LPP4qmnnnK6jdVqhdVqLf07Ly8PiYmJsFgsiI6ODlSoRERE5IO8vDzExMQY4vvb8H2WyqpVqxauv/56HDp0yOU2ZrMZZrM5gFERERFRVWbo03DlWa1W7N+/H/Hx8XqHQkRERCHC0MXS008/jXXr1uHYsWPYvHkz7r77buTl5WHEiBF6h0ZEREQhwtCn4X777Tfcd999OH36NK699lp07doVmzZtQlJSkt6hERERUYgwdLG0cOFCvUMgIiKiEGfo03BEREREemOxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFEREREpIHFEhEREZEGFktEREREGlgsEREREWlgsURERESkgcUSERERkQYWS0REREQaWCwRERERaWCxRERERKSBxRIRERGRBhZLRERERBpYLBERERFpYLFk8+23wJ/+BNSrB9SqBdx4I/D220BJid6RGd+xY8CcOcDo0UBqKhAWBphMwNSpekcWHESADRuAZ54BunYF6tQBIiKAhATgrruAtWv1jjB4fPUV8Je/AB06APHxKo916gDduwNvvQUUFuodYfB58UX1fuZ72n0jR9pz5moqKNA7yqBQDUD4Rx8BPXsCsbFAZCSQlAQMGQJ8/XXA4ggL2L9kZNOnA88/rx43bQrUrg3s2gU88QTw3XfA0qVANdaVLr31lprIOz/8oAp1QB1nzZurgv3QIWDJEjW9+CLwyiv6xhkM/vEP4KefALNZFZupqUB2NpCRoaYFC9R7uk4dvSMNDvv3A6+/rncUwatFC6B+fefr+J1ydefOYQOAGk8+qQrMli2BJk2AU6dUoRQWBgweHJBQ+L+VkQFMmqQO3M8+A44cUYXS9u1AgwbAsmXAzJl6R2lssbHAHXcAL78MrFihWkPIfSKqQHr3XeD0aeDgQXX8nTljL+KnTgX+8x994wwGjzyiWuIuXACOHgW2bAF++029zxs1ArZtA154Qe8og4OIaqULDwf69NE7muA0aZJqNXY2RUToHZ2xlZSg5n33oRuAKwMHAidOAAcOAFu3qmIpK0s1aAQIi6WpU9WHwiOPAPfdZ1+emmovkqZPB65c0Se+YPDii8Dy5cDf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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rmg = RasterModelGrid((5, 7), 10.0)\n", + "plot_graph(rmg, at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2a.2) Find the ID of the cell that contains this node." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2a.2 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(rmg, at=\"node,cell\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2a.3) Find the ID of the horizontal link that connects to the last node on the right in the middle column." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2a.3 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(rmg, at=\"node,link\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Use the RasterModelGrid for 2D diffusion \n", + "\n", + "Lets continue by making a new grid that is bigger. We will use this for our next fault diffusion example.\n", + "\n", + "The syntax in the next line says: create a new *RasterModelGrid* object called **mg**, with 25 rows, 40 columns, and a grid spacing of 10 m." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "mg = RasterModelGrid((25, 40), 10.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note the use of object-oriented programming here. `RasterModelGrid` is a class; `mg` is a particular instance of that class, and it contains all the data necessary to fully describe the topology and geometry of this particular grid.\n", + "\n", + "Next we'll add a *data field* to the grid, to represent the elevation values at grid nodes. The \"dot\" syntax below indicates that we are calling a function (or *method*) that belongs to the *RasterModelGrid* class, and will act on data contained in **mg**. The arguments indicate that we want the data elements attached to grid nodes (rather than links, for example), and that we want to name this data field `topographic__elevation`. The `add_zeros` method returns the newly created NumPy array." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "z = mg.add_zeros(\"topographic__elevation\", at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above line of code creates space in memory to store 1,000 floating-point values, which will represent the elevation of the land surface at each of our 1,000 grid nodes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the positions of all the grid nodes. The nodes' *(x,y)* positions are stored in the arrays `mg.x_of_node` and `mg.y_of_node`, respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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360PP/xQkrRv3z41Nzfnnbm4uFgTJ06M+syFnKuhoUEnTpzIuyabzaq2tja6s2/btk0jR47Utddeq+9+97tqaWnJvRbjOVtbWyVJ5eXlktJ7P7ue84y03M+TJ09q3bp1+uSTTzRhwoTU3seu5zwjLfdRku6//37dcccduvXWW/Oe78t7GuVSwt526NAhnTx5UhUVFXnPV1RUqLm5uZ9aXbrx48frueee07XXXqvf/va3+v73v6+bbrpJu3fvzp3rfGf+9a9/3R91e0Uh52pubtbgwYM1bNiwc66J6X5PmzZN3/72t1VTU6N9+/bp0Ucf1S233KKGhgYVFxdHd84QgpYsWaKbb75ZtbW1ktJ5P893Tikd97OxsVETJkzQ7373O/3e7/2eNmzYoOuuuy73TSkt97G7c0rpuI9nrFu3Tm+99ZZ27dp1zmt9+X+bDCpnyWQyeX8OIZzzXEymTZuW++8xY8ZowoQJ+spXvqIf/ehHuR/uStuZz7iYc8V29rlz5+b+u7a2Vtdff71qamq0ceNGzZ49u9uvcz3nwoUL9e6772rHjh3nvJam+9ndOdNwP7/61a/qnXfe0dGjR/Xiiy9q3rx52r59e+71tNzH7s553XXXpeI+SlJTU5MeeOABbd68WVdccUW31/XFPeWffiQNHz5cAwcOPGfCa2lpOWdajFlJSYnGjBmjvXv35n77J21nLuRclZWVOn78uI4cOdLtNTGqqqpSTU2N9u7dKymucy5atEivvPKKtm7dqlGjRuWeT9v97O6c5xPj/Rw8eLD+8A//UNdff73q6+s1duxY/cu//Evq7mN35zyfGO+j9Pk/27S0tGjcuHEaNGiQBg0apO3bt+tf//VfNWjQoFzXvrinDCr6/H9048aN05YtW/Ke37Jli2666aZ+atX7Ojs79ctf/lJVVVUaPXq0Kisr8858/Phxbd++PeozF3KucePGqaioKO+agwcP6r333ov67IcPH1ZTU5OqqqokxXHOEIIWLlyol156Sa+//rpGjx6d93pa7ueFznk+Md7PrkII6uzsTM197M6Zc55PrPdxypQpamxs1DvvvJN7XH/99frzP/9zvfPOO/qDP/iDvrunF/FDwKl05teTf/jDH4b3338/LF68OJSUlISPPvqov6tdtAcffDBs27YtfPjhh+HNN98M06dPD6WlpbkzPfHEE6GsrCy89NJLobGxMXznO9+J4teT29vbw9tvvx3efvvtICmsXLkyvP3227lfJS/kXPfee28YNWpU+NnPfhbeeuutcMstt9j9euAXnbO9vT08+OCDYefOnWHfvn1h69atYcKECeHKK6+M6pwLFiwIZWVlYdu2bXm/zvnpp5/mrknD/bzQOdNwP5ctWxbeeOONsG/fvvDuu++Ghx9+OAwYMCBs3rw5hJCO+xjCF58zDffxi5z9Wz8h9N09ZVA5y7/927+FmpqaMHjw4PDNb34z71cHY3Tmd9qLiopCNpsNs2fPDrt37869furUqfDYY4+FysrKUFxcHL71rW+FxsbGfmxcmK1btwZJ5zzmzZsXQijsXB0dHWHhwoWhvLw8DBkyJEyfPj18/PHH/XCa7n3ROT/99NNQV1cXRowYEYqKisJVV10V5s2bd84Z3M95vvNJCmvWrMldk4b7eaFzpuF+/tVf/VXu/3+OGDEiTJkyJTekhJCO+xjCF58zDffxi3QdVPrqnmZCCKHH7wkBAAD0AX5GBQAA2GJQAQAAthhUAACALQYVAABgi0EFAADYYlABAAC2GFQAAIAtBhUAAGCLQQUAANhiUAEAALYYVAAAgC0GFQAAYOv/A84aVLraqg7FAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(mg.x_of_node, mg.y_of_node, \".\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we bothered to count, we'd see that there are indeed 1,000 grid nodes, and a corresponding number of `z` values:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1000" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(z)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now for some tectonics. Let's say there's a fault trace that angles roughly east-northeast. We can describe the trace with the equation for a line. One trick here: by using `mg.x_of_node`, in the line of code below, we are calculating a *y* (i.e., north-south) position of the fault trace for each grid node---meaning that this is the *y* coordinate of the trace at the *x* coordinate of a given node." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "fault_trace_y = 50.0 + 0.25 * mg.x_of_node" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here comes the earthquake. For all the nodes north of the fault (i.e., those with a *y* coordinate greater than the corresponding *y* coordinate of the fault trace), we'll add elevation equal to 10 meters plus a centimeter for every meter east along the grid (just to make it interesting):" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "z[mg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(A little bit of Python under the hood: the statement `mg.y_of_node > fault_trace_y` creates a 1000-element long boolean array; placing this within the index brackets will select only those array entries that correspond to `True` in the boolean array)\n", + "\n", + "Let's look at our newly created initial topography using Landlab's *imshow_node_grid* plotting function (which we first need to import)." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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4AMAAEO1trbKFcEr0pnzAQAAIDIfAAAYK9LMhamZD4IPAAAM1draKlF2AQAAiAyZDwAADNXS1KS2fj3PE5D5AAAA3dLS0qKW5uaet5aWHt133bp1SktL08CBA5WVlaW33347quMi+AAAAEFbt25Vfn6+Vq5cqffee08333yzcnJydPz48ajdw2VZEcxkAQAAURcIBOTxeJQ2YID6RfKGU8tSdUuLGhoalJiYGNY548eP17e+9S2tX78+uG306NG68847VVxc3OO+fBlzPgAAMFRLS0tEJYruzvhobm5WVVWVVqxYEbI9Oztbe/bsiaAnoQg+AAAwVKTTRdvPDwQCIdvdbrfcbneH4z/99FO1trYqOTk5ZHtycrLq6uoi7M0/EXwAAGCY+Ph4eb1efRKFX/hXXXWV/H5/yLZVq1apsLCwy3NcF5V6LMvqsC0SBB8AABhm4MCBqq6uVnNzc8TX6ixw6CzrIUnDhw9XXFxchyxHfX19h2xIJAg+AAAw0MCBAzVw4EBb7xkfH6+srCxVVFTorrvuCm6vqKjQrFmzonYfgg8AABBUUFCg++67T+PGjdOECRO0YcMGHT9+XIsWLYraPQg+AABA0Lx583Ty5Ek98cQTqq2tVUZGht544w2lpqZG7R685wMAANiKN5wCAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABb/T8x3aAImGPObAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from landlab.plot.imshow import imshow_grid\n", + "\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To finish getting set up, we will define two parameters: the transport (\"diffusivity\") coefficient, `D`, and the time-step size, `dt`. (The latter is set using the Courant condition for a forward-time, centered-space finite-difference solution; you can find the explanation in most textbooks on numerical methods)." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2000.0" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "D = 0.01 # m2/yr transport coefficient\n", + "dt = 0.2 * mg.dx * mg.dx / D\n", + "dt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Boundary conditions: for this example, we'll assume that the east and west sides are closed to flow of sediment, but that the north and south sides are open. (The order of the function arguments is east, north, west, south)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "mg.set_closed_boundaries_at_grid_edges(True, False, True, False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*A note on boundaries:* with a Landlab raster grid, all the perimeter nodes are boundary nodes. In this example, there are 24 + 24 + 39 + 39 = 126 boundary nodes. The previous line of code set those on the east and west edges to be **closed boundaries**, while those on the north and south are **open boundaries** (the default). All the remaining nodes are known as **core** nodes. In this example, there are 1000 - 126 = 874 core nodes:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "874" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(mg.core_nodes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One more thing before we run the time loop: we'll create an array to contain soil flux. In the function call below, the first argument tells Landlab that we want one value for each grid link, while the second argument provides a name for this data *field*:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "qs = mg.add_zeros(\"sediment_flux\", at=\"link\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now for some landform evolution. We will loop through 25 iterations, representing 50,000 years. On each pass through the loop, we do the following:\n", + "\n", + "1. Calculate, and store in the array `g`, the gradient between each neighboring pair of nodes. These calculations are done on **links**. The gradient value is a positive number when the gradient is \"uphill\" in the direction of the link, and negative when the gradient is \"downhill\" in the direction of the link. On a raster grid, link directions are always in the direction of increasing $x$ (\"horizontal\" links) or increasing $y$ (\"vertical\" links).\n", + "\n", + "2. Calculate, and store in the array `qs`, the sediment flux between each adjacent pair of nodes by multiplying their gradient by the transport coefficient. We will only do this for the **active links** (those not connected to a closed boundary, and not connecting two boundary nodes of any type); others will remain as zero.\n", + "\n", + "3. Calculate the resulting net flux at each node (positive=net outflux, negative=net influx). The negative of this array is the rate of change of elevation at each (core) node, so store it in a node array called `dzdt'.\n", + "\n", + "4. Update the elevations for the new time step." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(25):\n", + " g = mg.calc_grad_at_link(z)\n", + " qs[mg.active_links] = -D * g[mg.active_links]\n", + " dzdt = -mg.calc_flux_div_at_node(qs)\n", + " z[mg.core_nodes] += dzdt[mg.core_nodes] * dt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at how our fault scarp has evolved." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1re0du3a+CKugdYnqW9ttq1f1157bfzfCwoKNHXqVI0fP15/+MMfNG/evG6vS1U/TravfyA9j+76MRCexz/+4z9q165d+uKLL/TCCy+opKREmzdvjr8+UJ5Dd/0466yzBsRzsIXjOHJisaSutxHTLl8zevRopaWldYqsGxsbO33asNmIESNUWFiovXv3xne9DKQ+mbQ5HA6rra1Nhw4d6raMjXJycjR+/Hjt3btXkl396NjX/9ZbbyXs6x9oz6O7fnTFxueRnp6uf/iHf9DUqVNVUVGhyZMn69/+7d8G3HPorh9dsfE52MKv0y4EH1+Tnp6uKVOmqLq6OuF8dXW1ZsyYkaJW9V5ra6v++te/KicnR/n5+QqHwwl9amtr0+bNm63tk0mbp0yZoiFDhiSUqa+v1wcffGBtvyTp4MGDqqurU05OjiQ7+uE4ju644w69+OKLevPNNzvt6x8oz6OnfnTFxudxIsdx1NraOmCeQ3c6+tGVgfAc4C6mXU6wZMkS3XjjjZo6daqmT5+u1atXa//+/br99ttT3bRuLV26VHPnztW4cePU2Niohx9+WJFIRCUlJQoEAiotLVV5ebkmTJigCRMmqLy8XMOHD9cNN9yQsjY3Nzdr37598Z9ra2u1a9cuZWVlady4cT22ORQKacGCBbrrrrs0atQoZWVlaenSpSosLNSsWbOs6EdWVpbKyso0f/585eTk6OOPP9Z9992n0aNH66qrrrKmH4sWLdL69ev18ssvx/f1d7Rt2LBhRr9DA6Efzc3N1j+P++67T8XFxcrLy9Phw4e1YcMGbdq0Sa+99tqAeQ499WMgPAebOEmOXtg67cJW2y488cQTzvjx45309HTnu9/9bsJWPRtde+21Tk5OjjNkyBAnNzfXmTdvnrNnz57467FYzHnwwQedcDjsBINB54ILLnB2796dwhY7zltvveVI6nSUlJQYt7mlpcW54447nKysLGfYsGHOnDlznP3791vTj6NHjzpFRUXO6aef7gwZMsQZN26cU1JS0qmNqe5HV+2X5DzzzDPxMgPhefTUj4HwPH7605/G/99z+umnO5dcconz+uuvx18fCM+hp34MhOdgg46ttrfOnOksmjWrz8etM2daudU24Di2hkUAAJyaIpGIQqGQbp05U+mD+z5J0Xb8uJ7atElNTU29+m6X/sa0CwAAlorFYoolsdslmWv7E8EHAACWcvrw/SwnXm8jgg8AACzl9bfaeoWttgAAwFOMfAAAYCnWfAAAAE8x7QIAAOACRj4AALAUIx8AfC8ajWrGjBmaP39+wvmmpibl5eXp5z//eYpaBpyaOtZ8JHPYiOADQFxaWprWrl2r1157Tb///e/j5xcvXqysrCw98MADKWwdAL9g2gVAggkTJqiiokKLFy/WRRddpO3bt2vDhg165513lJ6enurmAaeUmOMo6sNpF4IPAJ0sXrxYVVVVuummm7R792498MAD+s53vpPqZgGnHLbaAjhlBAIBrVq1ShMnTlRhYaGWLVuW6iYB8BHWfADo0n/8x39o+PDhqq2t1YEDB1LdHOCUFNP/7Xjp05HqDnSD4ANAJ3/5y1/0+OOP6+WXX9b06dO1YMECa7+gCvAzv+52YdoFQIKWlhaVlJTotttu06xZs3TGGWeooKBAv/vd73T77benunnAKSUai2lQIJDU9TZi5ANAgmXLlikWi+mRRx6RJI0bN06PPfaYfvazn+njjz9ObeMA+ALBB4C4zZs364knntCaNWs0YsSI+Plbb71VM2bMYPoF8FhS6z2SzI7an5h2ARB34YUX6vjx412+9qc//cnj1gBg2gUAAMAFjHwAAGCpWCymWBIjH+x2AQAAvRKLxRT1YfDBtAsAAPAUIx8AAFgqGosp4MMFpwQfAABYyq/BB9MuAADAU4x8AABgKXa7AAAATx1PMnhI9vr+QvABAIClotGoAkmkSGfNBwAAgBj5AADAWsmOXNg68kHwAQCApaLRqMS0CwAAQHIY+QAAwFLtra2KDer7OAEjHwAAoFfa29vV3tbW96O9vU/3ffLJJ5Wfn6+hQ4dqypQp+vOf/+xqvwg+AABA3MaNG1VaWqrly5fr3Xff1fnnn6/i4mLt37/ftXsEHCeJlSwAAMB1kUhEoVBI+UOGaFAyGU4dR7Xt7WpqalJmZqbRNdOmTdN3v/tdrVq1Kn5u4sSJuvLKK1VRUdHntnwdaz4AALBUe3t7UlMUvV3x0dbWppqaGi1btizhfFFRkbZt25ZESxIRfAAAYKlkl4t2XB+JRBLOB4NBBYPBTuU///xzRaNRZWdnJ5zPzs5WQ0NDkq35PwQfAABYJj09XeFwWJ+58Af/tNNOU15eXsK5Bx98UGVlZd1eEzhhqsdxnE7nkkHwAQCAZYYOHara2lq1tbUlXVdXgUNXox6SNHr0aKWlpXUa5WhsbOw0GpIMgg8AACw0dOhQDR061NN7pqena8qUKaqurtZVV10VP19dXa0rrrjCtfsQfAAAgLglS5boxhtv1NSpUzV9+nStXr1a+/fv1+233+7aPQg+AABA3LXXXquDBw/qoYceUn19vQoKCvTqq69q/Pjxrt2DPB8AAMBTZDgFAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACe+v8eazuh57Sm6QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that we have just created and run a 2D model of fault-scarp creation and diffusion with fewer than two dozen lines of code. How long would this have taken to write in C or Fortran?\n", + "\n", + "While it was very very easy to write in 1D, writing this in 2D would mean we would have needed to keep track of the adjacency of the different parts of the grid. This is the primary problem that the Landlab grids are meant to solve. \n", + "\n", + "Think about how difficult this would be to hand code if the grid were irregular or hexagonal. In order to conserve mass and implement the differential equation you would need to know how nodes were conected, how long the links were, and how big each cell was.\n", + "\n", + "We do such an example after the next section. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 2b\n", + "\n", + "(2b .1) Create an instance of a `RasterModelGrid` called `mygrid`, with 16 rows and 25 columns, with a spacing between nodes of 5 meters. Use the `plot` function in the `matplotlib` library to make a plot that shows the position of each node marked with a dot (hint: see the plt.plot() example above)." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.1 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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nHV4AACAyndO7nyUgzsfAAC89czq3/MBAADwZhgfAAAgUowPAAAQKcYHAACIFOMDAABEivEBAAAixfgAAACRYnwAAIBIMT4AAECkzslfr16Ok3/hai6Xm+UmAABguk6+b0/nL043Nz7GxsYkSS0tLbPcBAAAlGpsbEzxePxNrzH3b7tMTk7qtddeU0NDg4IgCDU7l8uppaVFw8PD/LsxZ8FZTR9nNX2cVWk4r+njrKbvXJ2Vc05jY2NKJpOqqnrzT3WYu/NRVVWlefPmndOvEYvF+B/nNHFW08dZTR9nVRrOa/o4q+k7F2d1tjseJ/GBUwAAECnGBwAAiJRX46O2tlaf+9znVFtbO9tVzOOspo+zmj7OqjSc1/RxVtNn4azMfeAUAABUNq/ufAAAgNnH+AAAAJFifAAAgEgxPgAAQKS8GR8PPvig2tradMEFF2jRokX67ne/O9uVZl0qldLixYvV0NCguXPn6uabb9bBgweLrnHOacOGDUomk6qrq9OyZct04MCBWWpsRyqVUhAEWr16deE5zqrYT37yE33yk5/URRddpPr6el155ZXau3dv4XXO64Rf/vKX+rM/+zO1tbWprq5Ol1xyiT7/+c9rcnKycI2vZ/Wd73xHN910k5LJpIIg0BNPPFH0+nTOZWJiQvfcc48aGxs1Z84cfehDH9KPf/zjCP8U0Xizs3r99de1du1atbe3a86cOUomk7r11lv12muvFWVEelbOA9u3b3fnnXeee/jhh92LL77o7r33Xjdnzhz36quvzna1WfW7v/u7btu2bW7//v1u37597sYbb3Tz5893P//5zwvXbNy40TU0NLivfe1rbnBw0K1YscI1Nze7XC43i81n17PPPutaW1vd5Zdf7u69997C85zV//vf//1fd/HFF7vbb7/dff/733dDQ0Puqaeecj/60Y8K13BeJ3zhC19wF110kfv617/uhoaG3D/+4z+6t73tbe6BBx4oXOPrWX3jG99w69evd1/72tecJPf4448XvT6dc7nzzjvdO97xDrdr1y73/PPPu+uuu85dccUV7pe//GXEf5pz683O6mc/+5m7/vrr3Y4dO9x//dd/uf/4j/9wS5YscYsWLSrKiPKsvBgfv/Vbv+XuvPPOoucuvfRSd//9989SI5tGR0edJLdnzx7nnHOTk5OuqanJbdy4sXDNL37xCxePx92Xv/zl2ao5q8bGxtyCBQvcrl273NKlSwvjg7MqtnbtWnfttde+4euc1/+78cYb3R133FH0XGdnp/vkJz/pnOOsTjr9DXU65/Kzn/3MnXfeeW779u2Fa37yk5+4qqoq961vfSuy7lE701A73bPPPuskFf5PeNRnVfHfdjl27Jj27t2rjo6Oouc7OjrU398/S61symazkqQLL7xQkjQ0NKSRkZGis6utrdXSpUu9Pbu77rpLN954o66//vqi5zmrYk8++aSuueYafeQjH9HcuXN11VVX6eGHHy68znn9v2uvvVb/+q//qh/+8IeSpP/8z//U9773Pf3e7/2eJM7qjUznXPbu3avXX3+96JpkMqmFCxd6fXbSif/eB0Ggt7/97ZKiPytz/7Bc2DKZjI4fP65EIlH0fCKR0MjIyCy1ssc5p/vuu0/XXnutFi5cKEmF8znT2b366quRd5xt27dv1/PPP6+BgYEpr3FWxV555RVt3bpV9913n9atW6dnn31Wn/3sZ1VbW6tbb72V8zrF2rVrlc1mdemll6q6ulrHjx/XF7/4Rd1yyy2S+N/WG5nOuYyMjOj888/Xr/3ar025xuf//v/iF7/Q/fffr49//OOFf1gu6rOq+PFxUhAERb92zk15zmd33323fvCDH+h73/velNc4O2l4eFj33nuvdu7cqQsuuOANr+OsTpicnNQ111yjnp4eSdJVV12lAwcOaOvWrbr11lsL13Fe0o4dO/Too4/qscce07vf/W7t27dPq1evVjKZ1G233Va4jrM6s5mci89n9/rrr+tjH/uYJicn9eCDD571+nN1VhX/bZfGxkZVV1dPWW6jo6NTFrOv7rnnHj355JN6+umnNW/evMLzTU1NksTZ6cQtydHRUS1atEg1NTWqqanRnj179KUvfUk1NTWF8+CsTmhubtZll11W9Ny73vUuHT58WBL/2zrVn/7pn+r+++/Xxz72MbW3t+tTn/qU1qxZo1QqJYmzeiPTOZempiYdO3ZMR44cecNrfPL666/rox/9qIaGhrRr167CXQ8p+rOq+PFx/vnna9GiRdq1a1fR87t27dJ73/veWWplg3NOd999t/r6+vRv//ZvamtrK3q9ra1NTU1NRWd37Ngx7dmzx7uz++AHP6jBwUHt27ev8Ljmmmv0iU98Qvv27dMll1zCWZ3ife9735Qf2/7hD3+oiy++WBL/2zrV+Pi4qqqK/1NcXV1d+FFbzurMpnMuixYt0nnnnVd0TTqd1v79+707u5PD46WXXtJTTz2liy66qOj1yM8q9I+wGnTyR22/8pWvuBdffNGtXr3azZkzxx06dGi2q82qz3zmMy4ej7vdu3e7dDpdeIyPjxeu2bhxo4vH466vr88NDg66W265xYsf8ZuOU3/axTnO6lTPPvusq6mpcV/84hfdSy+95P7+7//e1dfXu0cffbRwDed1wm233ebe8Y53FH7Utq+vzzU2Nrqurq7CNb6e1djYmHvhhRfcCy+84CS5zZs3uxdeeKHwExrTOZc777zTzZs3zz311FPu+eefdx/4wAcq8kdt3+ysXn/9dfehD33IzZs3z+3bt6/ov/cTExOFjCjPyovx4Zxzf/M3f+Muvvhid/7557urr7668OOkPpN0xse2bdsK10xOTrrPfe5zrqmpydXW1rr3v//9bnBwcPZKG3L6+OCsiv3zP/+zW7hwoautrXWXXnqpe+ihh4pe57xOyOVy7t5773Xz5893F1xwgbvkkkvc+vXri94UfD2rp59++oz/jbrtttucc9M7l3w+7+6++2534YUXurq6Ovf7v//77vDhw7Pwpzm33uyshoaG3vC/908//XQhI8qzCpxzLvz7KQAAAGdW8Z/5AAAAtjA+AABApBgfAAAgUowPAAAQKcYHAACIFOMDAABEivEBAAAixfgAAACRYnwAAIBIMT4AAECkGB8AACBSjA8AABCp/wOrQ3xFEFwwQwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mygrid = RasterModelGrid((16, 25), xy_spacing=5.0)\n", + "plt.plot(mygrid.x_of_node, mygrid.y_of_node, \".\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.2) Query the grid variables `number_of_nodes` and `number_of_core_nodes` to find out how many nodes are in your grid, and how many of them are core nodes." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.2 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "400\n", + "322\n" + ] + } + ], + "source": [ + "print(mygrid.number_of_nodes)\n", + "print(mygrid.number_of_core_nodes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.3) Add a new field to your grid, called `temperature` and attached to nodes. Have the initial values be all zero." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.3 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "temp = mygrid.add_zeros(\"temperature\", at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.4) Change the temperature of nodes in the top (north) half of the grid to be 10 degrees C. Use the `imshow_grid` function to display a shaded image of the elevation field." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.4 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "temp[mygrid.y_of_node >= 40.0] = 10.0\n", + "mygrid.imshow(\"temperature\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.5) Use the grid function `set_closed_boundaries_at_grid_edges` to assign closed boundaries to the right and left sides of the grid." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.5 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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f7+6urr0/PPPX/D8/h67FWXVwYrRikVcToVcc801GjRoUI9MtLGxsUdG7yTLli3T9u3b9fbbb0e8St7r9UqSI3+P2tpaNTY2atKkSRo8eLAGDx6sqqoq/du//ZsGDx4cHp8Txy5JaWlpuuGGGyL6xo0bF16k7OR/9k888YRWr16t+++/XxMmTNCCBQv02GOPqaioSJKzx362ixmr1+tVR0eHmpqaznnO5ezUqVO67777VF9fr8rKyogtsE2N3alTIXGZWAwdOlSTJk1SZWVlRH9lZaWys7MNRdV/LMvS0qVL9corr+itt95SRkZGxPGMjAx5vd6I36Ojo0NVVVWX/e8xffp0HTp0SAcPHgy3rKwszZ8/XwcPHtT111/v2LFL0tSpU3s8WnzkyBGNGTNGkrP/2X/11Ve64orIP+IGDRoUftzUyWM/28WMddKkSRoyZEjEOcePH9fvf//7y/736E4qPvzwQ7355psaMWJExHEnj92EuJ0KWbFihRYsWKCsrCxNmTJF5eXlOnbsmJYsWWI6NNsVFBSooqJCr732mpKSksL/1pKSkqKEhITwvg7BYFB+v19+v1/BYFCJiYmaN2+e4eijk5SUFF5L0m348OEaMWJEuN+pY5ekxx57TNnZ2QoGg7rvvvu0b98+lZeXq7y8XJIc/c9+zpw5evrppzV69GiNHz9e7777roqLi/Xwww9Lct7YT5w4oY8++ij8ub6+XgcPHlRqaqpGjx59wbGmpKTokUce0U9+8hONGDFCqampevzxxzVhwoQei55jzfnG7vP59MMf/lAHDhzQ//zP/6izszP8Z2BqaqqGDh1qbOxdXV0R+6r05fqYZOZhlNjw7//+79aYMWOsoUOHWrfcckv48UunkdRr27RpU/icrq4ua926dZbX67Xcbrd1++23W4cOHTIXdD8683FTy3L+2P/7v//byszMtNxutzV27FirvLw84rhTx9/S0mItX77cGj16tDVs2DDr+uuvt9auXWu1t7eHz3HS2N9+++1e/3++aNEiy7IubqxtbW3W0qVLrdTUVCshIcGaPXu2dezYMQOjuTTnG3t9ff05/wx8++23w/cYyLF3P2768G23WUvuuKPP7eHbbovJx015bToAAAOo+7XpD02bpqGD+z5x0HH6tH61Z0/MvTY9LtdYAACA/hG3aywAADDJqWssSCwAADCAt5sCAABcABULAAAMcGrFgsQCAAADnLrGgqkQAABgGyoWAAAY0GVZ6mQqBAAA2IGpEACXtc7OTmVnZ+sHP/hBRH9zc7PS09P15JNPGooMgJOQWABxYtCgQdq8ebN27Nih//qv/wr3L1u2TKmpqfrZz35mMDog/nQpylenmx7AOTAVAsQRv9+voqIiLVu2THfccYdqamq0ZcsW7du3T0OHDjUdHhBXurq61OVyRXV9LCKxAOLMsmXLtG3bNi1cuFCHDh3Sz372M918882mwwLiTmdXl66IIrHoJLEAEAtcLpfKyso0btw4TZgwQatXrzYdEgAHYY0FEIf+8z//U4mJiaqvr9cnn3xiOhwgLkW1viLKXTv7E4kFEGd+97vf6V/+5V/02muvacqUKXrkkUdkxegfUICTdXZ1Rd1iEYkFEEfa2tq0aNEiLV68WDNmzNB//Md/qKamRr/4xS9MhwbAIUgsgDiyevVqdXV1af369ZKk0aNH69lnn9UTTzyhP/7xj2aDA+JM9wZZ0bRY5LKogQJxoaqqStOnT9euXbs0bdq0iGPf/e53dfr0ab355ptyRbFKHcCFtbS0KCUlRTPGjtXgQYP6fJ/TnZ168//9PzU3Nys5OdnGCKPDUyFAnMjJydHp06d7PfbGG28McDQAnIrEAgAAAzq7uqKqEMbq4k0SCwAADHBqYsHiTQAAYBsqFgAAGMC7QgAAgG1OR5kYRHt9fyGxAADAgM7OTrmi2PGBNRYAAMDxqFgAAGBAtBWHWK1YkFgAAGBAZ2enxFQIAADAuVGxAADAgFPt7eq6ou//fh+rFQsSCwAADDh16lRU+1h0xug7RJkKAQAgjjz//PPKyMjQsGHDNGnSJL3zzju23p+KBQAABpxub49u580+VCy2bt2qwsJCPf/885o6dap+8YtfaNasWfrggw80evToPsdyJpdlxWgtBQAAB2ppaVFKSopGKbppgy5Jn0hqbm5WcnLyRV0zefJk3XLLLSorKwv3jRs3Tvfcc4+KioqiiObPmAoBAMCALhua9E2icmZrb2/v9fs6OjpUW1urvLy8iP68vDxVV1fbNi6mQgAAGEBDhw6V1+vVZ6FQ1Pe68sorlZ6eHtG3bt06BQKBHud+/vnn6uzslMfjiej3eDwK2RBLNxILAAAG0LBhw1RfX6+Ojo6o72VZllxnrdNwu93nvebs83u7RzRILAAAGGDDhg3TsGHDBvQ7r7nmGg0aNKhHdaKxsbFHFSMarLEAACAODB06VJMmTVJlZWVEf2VlpbKzs237HioWAADEiRUrVmjBggXKysrSlClTVF5ermPHjmnJkiW2fQeJBQAAceJHP/qRvvjiCz311FM6fvy4MjMz9Zvf/EZjxoyx7TvYxwIAANiGNRYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2JBYAAMA2/x95K270yOJERwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mygrid.set_closed_boundaries_at_grid_edges(True, False, True, False)\n", + "mygrid.imshow(\"temperature\", color_for_closed=\"c\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.6) Create a new field of zeros called `heat_flux` and attached to links. Using the `number_of_links` grid variable, verify that your new field array has the correct number of items. " + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.6 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "759\n", + "759\n" + ] + } + ], + "source": [ + "Q = mygrid.add_zeros(\"heat_flux\", at=\"link\")\n", + "print(mygrid.number_of_links)\n", + "print(len(Q))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.7) Use the `calc_grad_at_link` grid function to calculate the temperature gradients at all the links in the grid. Given the node spacing and the temperatures you assigned to the top versus bottom grid nodes, what do you expect the maximum temperature gradient to be? Print the values in the gradient array to verify that this is indeed the maximum temperature gradient." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.7 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Expected max gradient is 2 C/m\n", + "[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.\n", + " 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0.]\n" + ] + } + ], + "source": [ + "print(\"Expected max gradient is 2 C/m\")\n", + "temp_grad = mygrid.calc_grad_at_link(temp)\n", + "print(temp_grad)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.8) Back to hillslopes: Reset the values in the elevation field of the grid `mg` to zero. Then copy and paste the time loop above (i.e., the block in Section 2b that starts with `for i in range(25):`) below. Modify the last line to add uplift of the hillslope material at a rate `uplift_rate` = 0.0001 m/yr (hint: the amount of uplift in each iteration should be the uplift rate times the time-step duration). Then run the block and plot the resulting topography. Try experimenting with different uplift rates and different values of `D`." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.8 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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rX+ORTwt0Zi8+SWffPKJent7lZmZGbU9MzNToVAoSb26skWLFunFF1/U1VdfrT//+c96/PHHVVhYqOPHj9v9HmpMH330UTK6e0Wx9DkUCiklJUUzZswYdIxJ96qkpER/+7d/q3nz5qm1tVX/+q//qttvv13Nzc3yer3GjcOyLFVUVOjmm29Wbm6uJHfej6HGIbnjfrS0tKigoEDnz5/XVVddpfr6el133XX2D6pb7sOlxiG54z5g5AgshtD/6vR+lmUN2maSkpIS+895eXkqKCjQV77yFe3atcueEOW2MUkj67Np41qzZo3959zcXC1cuFDz5s3TL37xC61ateqS5yVrHBs3btS7776rgwcPDtrnpvtxqXG44X5cc801Onr0qD799FP97Gc/U2lpqRobG+39brkPlxrHdddd54r7YArLsmT19cV1fqJRCvmSjIwMTZw4cVBE3NHRMehfCSabPn268vLydOLECXt1iJvGFEuf/X6/enp6dObMmUseY6KsrCzNmzdPJ06ckGTWOMrKyvT666/rrbfe0pw5c+ztbrsflxrHUEy8HykpKfrqV7+qhQsXqrq6WgsWLNCPfvQj192HS41jKCbeB1O4sRRCYPElKSkpys/PV0NDQ9T2hoYGFRYWJqlXw9fd3a333ntPWVlZys7Olt/vjxpTT0+PGhsbjR1TLH3Oz8/X5MmTo45pb2/XsWPHjB2XJJ0+fVptbW3KysqSZMY4LMvSxo0b9fOf/1xvvvmmsrOzo/a75X5caRxDMfF+DGRZlrq7u11zHy6lfxxDccN9QOwohQxQUVGh+++/XwsXLlRBQYGeffZZnTx5UuvWrUt21y5p8+bNWrFihebOnauOjg49/vjjikQiKi0tlcfjUXl5uaqqqpSTk6OcnBxVVVVp2rRpuu+++5LW587OTn3wwQf259bWVh09elTp6emaO3fuFfvs8/m0du1abdq0STNnzlR6ero2b96svLw8LV261IhxpKenq7KyUqtXr1ZWVpY+/PBDbd26VRkZGbrnnnuMGceGDRu0e/duvfbaa0pNTbX/Rezz+TR16tSY/htywzg6OzuNvx9bt25VSUmJgsGgzp49q7q6Ou3fv1/79u1zzX240jjccB9MYsWZdUhGKYTlpkP48Y9/bM2bN89KSUmxvv71r0ctVzPRmjVrrKysLGvy5MlWIBCwVq1aZR0/ftze39fXZz322GOW3++3vF6vdeutt1otLS1J7LFlvfXWW5akQa20tDTmPp87d87auHGjlZ6ebk2dOtVavny5dfLkSWPG8dlnn1nFxcXWrFmzrMmTJ1tz5861SktLB/Ux2eMYqv+SrBdeeME+xg3340rjcMP9+Pu//3v7/3tmzZplLVmyxHrjjTfs/W64D1cahxvugwn6l5s+WFRkbVi6dMTtwaKihC835bXpAAAYpv+16Q8WFSll0siLCz0XL+q5/ft5bToAAJD6+vrUF8eqkHjOHSkCCwAADGXF+b6PZBQlCCwAADAUbzcFAADjGhkLAAAMxRwLAADgGEohAABgXCNjAQCAochYAHC13t5eFRYWavXq1VHbw+GwgsGg/uVf/iVJPQPGp/45FvG0RCOwAGCbOHGidu3apX379umnP/2pvb2srEzp6el69NFHk9g7AG5AKQRAlJycHFVXV6usrEy33XabmpqaVFdXp9/+9rdKSUlJdveAcaXPstTrslIIgQWAQcrKylRfX6/vfOc7amlp0aOPPqq/+qu/Sna3gHGH5aYAxgSPx6Pa2lpde+21ysvL0yOPPJLsLgFwCeZYABjSf/7nf2ratGlqbW3VqVOnkt0dYFzq019WhoyoJaHPBBYABvnNb36jHTt26LXXXlNBQYHWrl2blJcZAeOdG1eFUAoBEOXcuXMqLS3VQw89pKVLl+rqq69Wbm6ufvKTn2jdunXJ7h4wrvT29WmCxxPX+YlGxgJAlEceeUR9fX36wQ9+IEmaO3eunnrqKX33u9/Vhx9+mNzOATAegQUAW2Njo3784x9r586dmj59ur39wQcfVGFhISURIMHiml8R51M7R4pSCADb4sWLdfHixSH3/epXv0pwbwBQCgEAAOMaGQsAAAzV19envjgyFqwKAQAAtr6+PvW6LLCgFAIAABxDxgIAAEP19vXJ47LJmwQWAAAYyo2BBaUQAADgGDIWAAAYilUhAADAMRfjDAziPX8kCCwAADBUb2+vPHE8lps5FgAAwNXIWAAAYKh4Mw4sNwUAALbe3l6JUggAABivyFgAAGCoC93d6psw8hwAGQsAAGC7cOGCLvT0jLxduDCi733mmWeUnZ2tKVOmKD8/X2+//XbM5xJYAAAA2549e1ReXq5t27bpnXfe0S233KKSkhKdPHkypvM9lhXHrBAAAOC4SCQin8+n7MmTNSGeJ29allovXFA4HFZaWlpM5yxatEhf//rXVVtba2+79tprdffdd6u6uvqK5zPHAgAAQ124cCGu0sJwZ1j09PSoublZjzzySNT24uJiHTp0KKZrEFgAAGCoeKde9p8fiUSitnu9Xnm93kHHf/LJJ+rt7VVmZmbU9szMTIVCoZi+k8ACAADDpKSkyO/36+MYf8wv56qrrlIwGIza9thjj6mysvKS5wx8VbtlWTG/vp3AAgAAw0yZMkWtra3q6emJ+1pDBQVDZSskKSMjQxMnThyUnejo6BiUxbgUAgsAAAw0ZcoUTZkyJaHfmZKSovz8fDU0NOiee+6xtzc0NGjlypUxXYPAAgAA2CoqKnT//fdr4cKFKigo0LPPPquTJ09q3bp1MZ1PYAEAAGxr1qzR6dOn9f3vf1/t7e3Kzc3V3r17NW/evJjO5zkWAADAMTx5EwAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOIbAAgAAOOb/B240Is8z0yQ+AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "z[:] = 0.0\n", + "uplift_rate = 0.0001\n", + "for i in range(25):\n", + " g = mg.calc_grad_at_link(z)\n", + " qs[mg.active_links] = -D * g[mg.active_links]\n", + " dzdt = -mg.calc_flux_div_at_node(qs)\n", + " z[mg.core_nodes] += (dzdt[mg.core_nodes] + uplift_rate) * dt\n", + "mg.imshow(z)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (c) What's going on under the hood?\n", + "\n", + "This example uses a finite-volume numerical solution to the 2D diffusion equation. The 2D diffusion equation in this case is derived as follows. Continuity of mass states that:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla \\cdot \\mathbf{q}_s$,\n", + "\n", + "where $z$ is elevation, $t$ is time, the vector $\\mathbf{q}_s$ is the volumetric soil transport rate per unit width, and $\\nabla$ is the divergence operator (here in two dimensions). (Note that we have omitted a porosity factor here; its effect will be subsumed in the transport coefficient). The sediment flux vector depends on the slope gradient:\n", + "\n", + "$\\mathbf{q}_s = -D \\nabla z$,\n", + "\n", + "where $D$ is a transport-rate coefficient---sometimes called *hillslope diffusivity*---with dimensions of length squared per time. Combining the two, and assuming $D$ is uniform, we have a classical 2D diffusion equation:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla^2 z$.\n", + "\n", + "For the numerical solution, we discretize $z$ at a series of *nodes* on a grid. The example in this notebook uses a Landlab *RasterModelGrid*, in which every interior node sits inside a cell of width $\\Delta x$, but we could alternatively have used any grid type that provides nodes, links, and cells.\n", + "\n", + "The gradient and sediment flux vectors will be calculated at the *links* that connect each pair of adjacent nodes. These links correspond to the mid-points of the cell faces, and the values that we assign to links represent the gradients and fluxes, respectively, along the faces of the cells.\n", + "\n", + "The flux divergence, $\\nabla \\mathbf{q}_s$, will be calculated by summing, for every cell, the total volume inflows and outflows at each cell face, and dividing the resulting sum by the cell area. Note that for a regular, rectilinear grid, as we use in this example, this finite-volume method is equivalent to a finite-difference method.\n", + "\n", + "To advance the solution in time, we will use a simple explicit, forward-difference method. This solution scheme for a given node $i$ can be written:\n", + "\n", + "$\\frac{z_i^{t+1} - z_i^t}{\\Delta t} = -\\frac{1}{A_i} \\sum\\limits_{j=1}^{N_i} \\delta (l_{ij}) q_s (l_{ij}) \\lambda(l_{ij})$.\n", + "\n", + "Here the superscripts refer to time steps, $\\Delta t$ is time-step size, $q_s(l_{ij})$ is the sediment flux per width associated with the link that crosses the $j$-th face of the cell at node $i$, $\\lambda(l_{ij})$ is the width of the cell face associated with that link ($=\\Delta x$ for a regular uniform grid), and $N_i$ is the number of active links that connect to node $i$. The variable $\\delta(l_{ij})$ contains either +1 or -1: it is +1 if link $l_{ij}$ is oriented away from the node (in which case positive flux would represent material leaving its cell), or -1 if instead the link \"points\" into the cell (in which case positive flux means material is entering).\n", + "\n", + "To get the fluxes, we first calculate the *gradient*, $G$, at each link, $k$:\n", + "\n", + "$G(k) = \\frac{z(H_k) - z(T_k)}{L_k}$.\n", + "\n", + "Here $H_k$ refers the *head node* associated with link $k$, $T_k$ is the *tail node* associated with link $k$. Each link has a direction: from the tail node to the head node. The length of link $k$ is $L_k$ (equal to $\\Delta x$ is a regular uniform grid). What the above equation says is that the gradient in $z$ associated with each link is simply the difference in $z$ value between its two endpoint nodes, divided by the distance between them. The gradient is positive when the value at the head node (the \"tip\" of the link) is greater than the value at the tail node, and vice versa.\n", + "\n", + "The calculation of gradients in $z$ at the links is accomplished with the `calc_grad_at_link` function. The sediment fluxes are then calculated by multiplying the link gradients by $-D$. Once the fluxes at links have been established, the `calc_flux_div_at_node` function performs the summation of fluxes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 2c\n", + "\n", + "(2c.1) Make a 3x3 `RasterModelGrid` called `tinygrid`, with a cell spacing of 2 m. Use the `plot_graph` function to display the nodes and their ID numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.1 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tinygrid = RasterModelGrid((3, 3), 2.0)\n", + "plot_graph(tinygrid, at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.2) Give your `tinygrid` a node field called `height` and set the height of the center-most node to 0.5. Use `imshow_grid` to display the height field." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.2 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgIAAAG2CAYAAAAN9u4yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAm0UlEQVR4nO3df3DU9Z3H8dcamg0N7Fp+BTmSmNZTkABK0sOgnD/A9KLDQMv0aO1A2tMpkcCZ5ryTiFN+jDa203raweRI/XXoKUzrUblptK5T+WEj0xASpYoO7VE30GAOeiaQkY3sfu8PJOd+N0A2++PLdz/PR+c70/3y3e/3vUq7r31/Pt/P12NZliUAAGCkS5wuAAAAOIcgAACAwQgCAAAYjCAAAIDBCAIAABiMIAAAgMEIAgAAGIwgAACAwQgCAAAYjCAAAIDBXBME1q1bJ4/HE7VNnDjR6bIAAEiahoYGFRUVKScnRyUlJdq9e/c5j92xY0fM96LH49F7770X1zVHJFp0Ok2bNk2vvfbawOusrCwHqwEAIHm2bt2qmpoaNTQ06Prrr9emTZtUUVGhd999VwUFBed83/vvvy+fzzfwevz48XFd11VBYMSIEXQBAAAZ6ZFHHtGdd96pu+66S5L06KOP6te//rUaGxtVX19/zvdNmDBBl1566bCv66ogcPDgQU2aNEler1ezZ8/WD37wA33xi1885/GhUEihUGjgdSQS0V/+8heNHTtWHo8nHSUDAJLEsiydOHFCkyZN0iWXpG5k+9SpU+rv70/KuSzLivm+8Xq98nq9Ufv6+/vV1tam1atXR+0vLy9XS0vLea9x7bXX6tSpU7r66qv1wAMP6Oabb467SFdobm62fvGLX1hvv/22FQgErBtvvNHKy8uzjh07ds73rF271pLExsbGxpZBW2dnZ8q+az7++GNr4sSJSat11KhRMfvWrl0bc90jR45Ykqzf/va3Ufsfeugh68orrxy01vfee89qamqy2trarJaWFuvuu++2PB6PtXPnzrg+s8eyLEsu1NfXpy996Uv6l3/5F9XW1g56jL0j0NPTo4KCAk2Si2ZJAgAkSRFJf5b00Ucfye/3p+Qavb298vv96uzsjBp3H+658vPzY841WEfgz3/+s/7qr/5KLS0tKisrG9j/0EMP6dlnnx3yBMAFCxbI4/Fo+/btQ67TVUMDn5Wbm6vp06fr4MGD5zxmsH/Y0pkQQBAAAHdKx9CuzzdaPt/oBM9ifXou3wVDxbhx45SVlaWjR49G7e/u7lZeXt6Qr3jdddfpueeei6tK134fhkIhHThwQJdddpnTpQAAMoxlWUnZhio7O1slJSUKBAJR+wOBgObMmTPk87S3t8f9veiajsC9996rBQsWqKCgQN3d3XrwwQfV29uryspKp0sDAGScs0P6iZ5j6Gpra7V06VKVlpaqrKxMTU1NCgaDqqqqkiTV1dXpyJEj2rx5s6QzdxVcfvnlmjZtmvr7+/Xcc8/pxRdf1IsvvhjXdV0TBA4fPqxvfvObOnbsmMaPH6/rrrtOe/bsUWFhodOlAQCQsCVLluj48ePasGGDurq6VFxcrObm5oHvua6uLgWDwYHj+/v7de+99+rIkSMaOXKkpk2bpl/96le67bbb4rquaycLDsfZSSCT5eIxEQAwVETSYZ2Z+J3oRL5zOfs98dFHx5MyWfDSS8emtN5kcE1HAACAdIl3jP9c53ADfhgDAGAwOgIAAMRI/2RBpxAEAACIYU4QYGgAAACD0REAAMDGpMmCBAEAAGIwNAAAAAxARwAAgBjmdAQIAgAA2DBHAAAAo5nTEWCOAAAABqMjAABADHM6AgQBAABsTJojwNAAAAAGoyMAAEAMhgYAADCYOUGAoQEAAAxGRwAAABuTJgsSBAAAiMHQAAAAMAAdAQAAYliSIkk4x8WPIAAAgA1zBAAAMBpzBAAAgAHoCAAAEMOcjgBBAAAAG5PmCDA0AACAwegIAAAQg6EBAAAMZk4QYGgAAACD0REAAMDGpMmCBAEAAGIwNAAAAAxARwAAABuGBgAAMFpEiT99MNH3pwdBAACAGMwRAAAABqAjAACADXMEAAAwGkMDAADAAHQEAACIYU5HgCAAAICNSXMEGBoAAMBgdAQAABiUO37RJ4ogAABADHNWFmRoAAAAg9ERAADAxqTJggQBAABicPsgAAAGMycIMEcAAACDuTYI1NfXy+PxqKamxulSAAAZ5uwcgUQ3N3Dl0EBra6uampo0Y8YMp0sBAGQkhgYuWidPntS3vvUt/exnP9MXvvAFp8sBAMDVXBcEqqurdfvtt2v+/PkXPDYUCqm3tzdqAwDgwiJJ2i5+rhoa2LJli/bt26fW1tYhHV9fX6/169enuCoAQKYxaR0B13QEOjs7dc899+i5555TTk7OkN5TV1ennp6ega2zszPFVQIA4C6u6Qi0tbWpu7tbJSUlA/vC4bB27dqljRs3KhQKKSsrK+o9Xq9XXq833aUCAFzPnMmCrgkC8+bN0/79+6P2fec739GUKVN03333xYQAAACGjyBw0Rk9erSKi4uj9uXm5mrs2LEx+wEAwNC4JggAAJAulhWRZSU26z/R96eLq4PAjh07nC4BAJCRGBoAAMBY3D4IAADSrqGhQUVFRcrJyVFJSYl27949pPf99re/1YgRI3TNNdfEfU2CAAAAMawkbUO3detW1dTUaM2aNWpvb9fcuXNVUVGhYDB43vf19PRo2bJlmjdvXlzXO4sgAABADEuJLy8cXxB45JFHdOedd+quu+7S1KlT9eijjyo/P1+NjY3nfd/y5ct1xx13qKysLK7rnUUQAAAghezPvAmFQjHH9Pf3q62tTeXl5VH7y8vL1dLScs5zP/300/rjH/+otWvXDrs+ggAAADZnJwsmuklSfn6+/H7/wFZfXx9zvWPHjikcDisvLy9qf15eno4ePTpojQcPHtTq1av1H//xHxoxYvhz/7lrAACAGMm7fbCzs1M+n29g7/mWvvd4PNFnsKyYfdKZJfbvuOMOrV+/XldeeWVCVRIEAABIIZ/PFxUEBjNu3DhlZWXF/Prv7u6O6RJI0okTJ7R37161t7dr5cqVkqRIJCLLsjRixAi9+uqruuWWW4ZUH0EAAIAY6V1QKDs7WyUlJQoEAvrqV786sD8QCGjhwoUxx/t8vpjn7zQ0NOg3v/mNfvGLX6ioqGjI1yYIAAAQI/Elhs/cOTB0tbW1Wrp0qUpLS1VWVqampiYFg0FVVVVJkurq6nTkyBFt3rxZl1xyScxzdiZMmKCcnJy4n79DEAAA4CKwZMkSHT9+XBs2bFBXV5eKi4vV3NyswsJCSVJXV9cF1xQYDo/lljUQk6C3t1d+v1+Txe0SAOA2EUmHdWYBnQuNuQ/X2e+JQ4eaNXp0bkLnOnGiT0VFt6W03mSgIwAAQAweOgQAgLFMegwxHXIAAAxGRwAAgBgMDQAAYDBzggBDAwAAGIyOAAAANiZNFiQIAAAQg6EBAABgADoCAADYWJalRBfedcvCvQQBAABiWIr3oUGDn+Pix9AAAAAGoyMAAEAMcyYLEgQAALBhjgAAACazrDNboudwAeYIAABgMIIAAAAGY2gAAAAbk+YI0BEAAMBgdAQAALAz5+5BggAAAHYMDQAAACPQEQAAwI6hAQAADMaCQgAAwAR0BAAAsDGoIUAQAAAghkFJgKEBAAAMRhAAAMBgDA0AAGBj0oJCBAEAAOwMWkeAoQEAAAxGRwAAADuD7hogCAAAYGNQDmBoAAAAk9ERAADAzqCWAEEAAAAbS0nIAUmpJPUYGgAAwGCuCQKNjY2aMWOGfD6ffD6fysrK9PLLLztdFgAgE50dGkh0cwHXBIHJkyfr4Ycf1t69e7V3717dcsstWrhwod555x2nSwMAZBorSZsLuGaOwIIFC6JeP/TQQ2psbNSePXs0bdo0h6oCAGQi69P/JHoON3BNEPiscDisn//85+rr61NZWdk5jwuFQgqFQgOve3t701EeAACu4aogsH//fpWVlenUqVMaNWqUtm3bpquvvvqcx9fX12v9+vVprBAXkw9cMj6HxBV6PE6XgEzDswYuTldddZU6Ojq0Z88e3X333aqsrNS77757zuPr6urU09MzsHV2dqaxWgCAaxk0WdBVHYHs7GxdccUVkqTS0lK1trbqscce06ZNmwY93uv1yuv1prNEAABcxVVBwM6yrKg5AAAAJINBCwu6Jwjcf//9qqioUH5+vk6cOKEtW7Zox44deuWVV5wuDQCQaQxKAq4JAh9++KGWLl2qrq4u+f1+zZgxQ6+88opuvfVWp0sDAMC1XBMEnnzySadLAAAYwqCGgHuCAAAAaWNQEnDV7YMAACC56AgAAGBn0IJCBAEAAGwsy5KVYGs/0fenC0EAAAA7gzoCzBEAAMBgdAQAALBhaAAAAJMxNAAAAExARwAAADuDFhQiCAAAYGNQDmBoAAAAk9ERAADAzlISWgJJqSTlCAIAANhx1wAAAOayZA2sJTDsbRhJoKGhQUVFRcrJyVFJSYl27959zmPfeOMNXX/99Ro7dqxGjhypKVOm6F//9V/jviYdAQAALgJbt25VTU2NGhoadP3112vTpk2qqKjQu+++q4KCgpjjc3NztXLlSs2YMUO5ubl64403tHz5cuXm5uq73/3ukK/rsdyy9FES9Pb2yu/3a7JohZjgA3P+ahuv0ONxugSkQUTSYUk9PT3y+XwpucbZ74l9r23S6NyRCZ3rRN/HmjV/+ZDrnT17tmbNmqXGxsaBfVOnTtWiRYtUX18/pGt+7WtfU25urp599tkh18n3IQAAdokOC3zm/sPe3t6oLRQKxVyuv79fbW1tKi8vj9pfXl6ulpaWIZXc3t6ulpYW3XjjjXF9VIIAAAAplJ+fL7/fP7AN9uv+2LFjCofDysvLi9qfl5eno0ePnvf8kydPltfrVWlpqaqrq3XXXXfFVR9zBAAAsEviXQOdnZ1RQwNer/ecb/HYhrksy4rZZ7d7926dPHlSe/bs0erVq3XFFVfom9/85pDLJAgAAGCXxKUFfT7fBecIjBs3TllZWTG//ru7u2O6BHZFRUWSpOnTp+vDDz/UunXr4goCDA0AAOCw7OxslZSUKBAIRO0PBAKaM2fOkM9jWdagcxDOh44AAAA2TjxroLa2VkuXLlVpaanKysrU1NSkYDCoqqoqSVJdXZ2OHDmizZs3S5Ief/xxFRQUaMqUKZLOrCvw4x//WKtWrYrrugQBAADsHEgCS5Ys0fHjx7VhwwZ1dXWpuLhYzc3NKiwslCR1dXUpGAwOHB+JRFRXV6dDhw5pxIgR+tKXvqSHH35Yy5cvj+u6rCOAjMU6AuZgHQEzpHMdgbaXGzQqwXUETvZ9rJKKFSmtNxnoCAAAYGPSY4gJAgAA2BmUBAgCAADY8fRBAABgAjoCAADYDDwvIMFzuAFBAAAAO4PmCDA0AACAwegIAABgY1BDgCAAAEAMg5IAQwMAABiMjgAAAHYGrSNAEAAAwMak2wcZGgAAwGB0BAAAsGNoAAAAc5k0NEAQAABgMO74Hk8YcwQAADAYHQEAAOwMWlCIIAAAgI1JcwQYGgAAwGB0BAAAsOP2QQAAzMXQAAAAMAIdAQAA7CKfbomewwUIAgAA2Bl0++CQhwYOHz6cyjoAAIADhhwEiouL9eyzz6aylvOqr6/Xl7/8ZY0ePVoTJkzQokWL9P777ztWDwAgc51tCCS6ucGQg8APfvADVVdXa/HixTp+/HgqaxrUzp07VV1drT179igQCOj06dMqLy9XX19f2msBAGQ4g5LAkIPAihUr9NZbb+l///d/NW3aNG3fvj2VdcV45ZVX9O1vf1vTpk3TzJkz9fTTTysYDKqtrS2tdQAAMp9BOSC+yYJFRUX6zW9+o40bN2rx4sWaOnWqRoyIPsW+ffuSWuC59PT0SJLGjBlzzmNCoZBCodDA697e3pTXBQCAm8R918AHH3ygF198UWPGjNHChQtjgkA6WJal2tpa3XDDDSouLj7ncfX19Vq/fn0aKwMAZASD7hqI61v8Zz/7mf7pn/5J8+fP1+9//3uNHz8+VXWd18qVK/X222/rjTfeOO9xdXV1qq2tHXjd29ur/Pz8VJcHAHA7gkCsv/u7v9Pvfvc7bdy4UcuWLUtlTee1atUqbd++Xbt27dLkyZPPe6zX65XX601TZQAAuM+Qg0A4HNbbb799wS/fVLEsS6tWrdK2bdu0Y8cOFRUVOVIHACDzWZEzW6LncIMhB4FAIJDKOi6ourpazz//vF566SWNHj1aR48elST5/X6NHDnS0doAABnGUhKGBpJSScq55qFDjY2N6unp0U033aTLLrtsYNu6davTpQEA4FquedaAWx7nCABwP4PmCronCAAAkDYGJQHXDA0AAIDkoyMAAICdQR0BggAAADaWlYTbB92RAwgCAADEMKgjwBwBAAAMRkcAAAAbgxoCBAEAAGIYlAQYGgAAwGB0BAAAsLEsK+EVbd2yIi5BAAAAu8inW6LncAGGBgAAMBgdAQAA7AyaLEgQAADAxqAcwNAAAAAmoyMAAIBdxDqzJXoOFyAIAABgw+2DAACYzPp0S/QcLsAcAQAADEZHAAAAO4NuGyAIAABgF7FkGTJZkKEBAAAMRkcAAAA7gyYLEgQAALCxlITbB12SBBgaAADAYHQEAACw4zHEAACY6+zKgolu8WpoaFBRUZFycnJUUlKi3bt3n/PY//zP/9Stt96q8ePHy+fzqaysTL/+9a/jviZBAACAi8DWrVtVU1OjNWvWqL29XXPnzlVFRYWCweCgx+/atUu33nqrmpub1dbWpptvvlkLFixQe3t7XNf1WG5ZDDkJent75ff7NVkkIBN8YM5fbeMVejxOl4A0iEg6LKmnp0c+ny8l1zj7PRF48AHl5uQkdK6+U6d06wMPDrne2bNna9asWWpsbBzYN3XqVC1atEj19fVDuua0adO0ZMkSff/73x9ynXwfAgBgZyVp05lw8dktFArFXK6/v19tbW0qLy+P2l9eXq6WlpYhlRyJRHTixAmNGTMmro9KEAAAwCaZcwTy8/Pl9/sHtsF+3R87dkzhcFh5eXlR+/Py8nT06NEh1fyTn/xEfX19+vu///u4Pit3DQAAkEKdnZ1RQwNer/ecx3psw1yWZcXsG8wLL7ygdevW6aWXXtKECRPiqo8gAACAXcRK/FkBn77f5/NdcI7AuHHjlJWVFfPrv7u7O6ZLYLd161bdeeed+vnPf6758+fHXSZDAwAA2Jx9+GCi21BlZ2erpKREgUAgan8gENCcOXPO+b4XXnhB3/72t/X888/r9ttvH9ZnpSMAAMBFoLa2VkuXLlVpaanKysrU1NSkYDCoqqoqSVJdXZ2OHDmizZs3SzoTApYtW6bHHntM11133UA3YeTIkfL7/UO+LkEAAAC7JA4NDNWSJUt0/PhxbdiwQV1dXSouLlZzc7MKCwslSV1dXVFrCmzatEmnT59WdXW1qqurB/ZXVlbqmWeeGfJ1CQIAANgMd2VA+znitWLFCq1YsWLQP7N/ue/YsWMYVcVijgAAAAajIwAAgJ1BDx0iCAAAYHNm1n+iQwNJKibFGBoAAMBgdAQAALCzknDXgEtaAgQBAADsPvPQoITO4QIEAQAAbJy6fdAJzBEAAMBgdAQAALAxqSNAEAAAwMagZQQYGgAAwGR0BAAAsGFoAAAAg5kUBFw1NLBr1y4tWLBAkyZNksfj0S9/+UunSwIAwNVcFQT6+vo0c+ZMbdy40elSAAAZzErS5gauGhqoqKhQRUWF02UAADIcQwMAAMAIruoIxCsUCikUCg287u3tdbAaAIBbmNQRyOggUF9fr/Xr1ztdBhxS6PE4XQIAlzIpCGT00EBdXZ16enoGts7OTqdLAgC4AJMFM4TX65XX63W6DAAALlquCgInT57UH/7wh4HXhw4dUkdHh8aMGaOCggIHKwMAZJQkDA3IJUMDrgoCe/fu1c033zzwura2VpJUWVmpZ555xqGqAACZxqQ5Aq4KAjfddJNr/sECAOAGrgoCAACkQzIm+7nlZytBAAAAG5OGBjL69kEAAHB+dAQAALAxqSNAEAAAwMakIMDQAAAABqMjAACATeTTLdFzuAFBAAAAG5OGBggCAADYmBQEmCMAAIDB6AgAAGBjUkeAIAAAgI1JSwwzNAAAgMHoCAAAYMPQAAAABrOU+Be5O2IAQwMAABiNjgAAADYRy1IkwY5Aou9PF4IAAAA23DUAAACMQEcAAAAb7hoAAMBgBAEAAEyWhCAglwQB5ggAAGAwOgIAANhw+yAAAAYzaY4AQwMAABiMjgAAADYmLShEEAAAwIahAQAAYAQ6AgAA2HDXAAAABmNoAAAAGIGOAAAANiZ1BAgCAADYEAQAADBY5NMt0XO4AXMEAAAwGB0BAABsGBoAAMBgJgUBhgYAADAYQQAAAJuzKwsmusWroaFBRUVFysnJUUlJiXbv3n3OY7u6unTHHXfoqquu0iWXXKKampphfVaCAAAANmeHBhLd4rF161bV1NRozZo1am9v19y5c1VRUaFgMDjo8aFQSOPHj9eaNWs0c+bMYX9WggAAABeBRx55RHfeeafuuusuTZ06VY8++qjy8/PV2Ng46PGXX365HnvsMS1btkx+v3/Y1yUIAABgl4xuwKcdgd7e3qgtFArFXK6/v19tbW0qLy+P2l9eXq6WlpaUflSCAAAANsmcI5Cfny+/3z+w1dfXx1zv2LFjCofDysvLi9qfl5eno0ePpvSzcvsgAAAp1NnZKZ/PN/Da6/We81iPxxP12rKsmH3JRhAAAMDGUuLrAJx9t8/niwoCgxk3bpyysrJifv13d3fHdAmSjaEBAABs0n3XQHZ2tkpKShQIBKL2BwIBzZkzJ9kfLwodAQAAbIa7DoD9HPGora3V0qVLVVpaqrKyMjU1NSkYDKqqqkqSVFdXpyNHjmjz5s0D7+no6JAknTx5Uv/zP/+jjo4OZWdn6+qrrx7ydQkCAABcBJYsWaLjx49rw4YN6urqUnFxsZqbm1VYWCjpzAJC9jUFrr322oH/3tbWpueff16FhYX605/+NOTrEgQAALBx6lkDK1as0IoVKwb9s2eeeSYp17AjCAAAYOPE0IBTXDdZMJ51mAEAwPm5KgjEuw4zAADD4cSzBpziqiAQ7zrMAAAMh1NPH3SCa4LAcNZhDoVCMWs8AwCA/+eaIDCcdZjr6+uj1nfOz89PR6kAAJdjaOAiFs86zHV1derp6RnYOjs701EiAMDlTBoacM3tg8NZh9nr9Z734Q4AAJjONR0BJ9dhBgCYxaShAdd0BKQLr8MMAEAyWElo7RMEUuBC6zADAJAMTi0x7ARXBQHp/OswAwCA+LguCAAAkGomPWuAIAAAgI1JQwOuuWsAAAAkHx0BAABsGBoAAMBgJgUBhgYAADAYHQEAAGxMmixIEAAAwIahAQAAYAQ6AgAA2JjUESAIAABgY1mWrEgk4XO4AUEAAAAbkzoCzBEAAMBgdAQAALCxktARYGgAAACXYmgAAAAYgY4AAAA2kUhEkQTvGkj0/elCEAAAwMakJYYZGgAAwGB0BAAAsDFpsiBBAAAAG5PmCDA0AACAwegIAABgw9AAAAAGIwgAAGAw5ggAAAAj0BEAAMAmYlkKMzQAAICZGBoAAABGoCMAAIBNRIm39t3RDyAIAAAQIxKJKOLxJHwON2BoAAAAg9ERAADAJhyJ6JIEOwJhl3QECAIAANiYtLIgQwMAABiMjgAAADYMDQAAYDCT7hogCAAAYBOJRBQ2JAgwRwAAAIPREQAAwCYcicjDHAEAAMxkUhBgaAAAAIPREQAAwIa7BgAAMNjpJHyJJ+Mc6cDQAAAABqMjAACATTgclifBZwW4ZbIgQQAAAJtkfIm7JQgwNAAAgMHoCAAAYBMOhyWGBgAAMNMnoZAilyTWNCcIAADgUp988knC6wiEE+wopItr5gg89NBDmjNnjj7/+c/r0ksvdbocAACSrqGhQUVFRcrJyVFJSYl279593uN37typkpIS5eTk6Itf/KL+7d/+Le5ruiYI9Pf36+tf/7ruvvtup0sBAGS406GQPklwOx0KxXXNrVu3qqamRmvWrFF7e7vmzp2riooKBYPBQY8/dOiQbrvtNs2dO1ft7e26//779Y//+I968cUX47qux7Jc0rv41DPPPKOamhp99NFHcb+3t7dXfr9fk+WiBAQAkCRFJB2W1NPTI5/Pl5JrJPN7It56Z8+erVmzZqmxsXFg39SpU7Vo0SLV19fHHH/fffdp+/btOnDgwMC+qqoqvfXWW3rzzTeHXGdGzxEIhUIKfSaR9fT0SDrzLwcA4C5n/787Hb9fk/E9cfYcvb29Ufu9Xq+8Xm/Uvv7+frW1tWn16tVR+8vLy9XS0jLo+d98802Vl5dH7fvKV76iJ598Up988ok+97nPDanOjA4C9fX1Wr9+fcz+PztQCwAgOY4fPy6/35+Sc2dnZ2vixIn689GjSTnfqFGjlJ+fH7Vv7dq1WrduXdS+Y8eOKRwOKy8vL2p/Xl6ejp6jlqNHjw56/OnTp3Xs2DFddtllQ6rR0SCwbt26Qb+oP6u1tVWlpaXDOn9dXZ1qa2sHXn/00UcqLCxUMBhM2V+ii01vb6/y8/PV2dmZslbaxYjPbc7nNvEzS2Z+7p6eHhUUFGjMmDEpu0ZOTo4OHTqk/v7+pJzPsix5bHcf2LsBn2U/drD3X+j4wfafj6NBYOXKlfrGN75x3mMuv/zyYZ9/sPaLJPn9fmP+h3OWz+cz7jNLfG6TmPiZJTM/9yUJ3t9/ITk5OcrJyUnpNezGjRunrKysmF//3d3dMb/6z5o4ceKgx48YMUJjx44d8rUdDQLjxo3TuHHjnCwBAADHZWdnq6SkRIFAQF/96lcH9gcCAS1cuHDQ95SVlem//uu/ova9+uqrKi0tHfL8AMlFk+eDwaA6OjoUDAYVDofV0dGhjo4OnTx50unSAABIWG1trZ544gk99dRTOnDggL73ve8pGAyqqqpK0pnh7mXLlg0cX1VVpQ8++EC1tbU6cOCAnnrqKT355JO6995747quayYLfv/739e///u/D7y+9tprJUmvv/66brrppiGdw+v1au3atecdn8k0Jn5mic9t0uc28TNLZn7uTP/MS5Ys0fHjx7VhwwZ1dXWpuLhYzc3NKiwslCR1dXVFrSlQVFSk5uZmfe9739Pjjz+uSZMm6ac//akWL14c13Vdt44AAABIHtcMDQAAgOQjCAAAYDCCAAAABiMIAABgMGODgCmPNY73kZZut2vXLi1YsECTJk2Sx+PRL3/5S6dLSrn6+np9+ctf1ujRozVhwgQtWrRI77//vtNlpVxjY6NmzJgxsKBOWVmZXn75ZafLSqv6+np5PB7V1NQ4XUpKrVu3Th6PJ2qbOHGi02VlDGODgAmPNY73kZaZoK+vTzNnztTGjRudLiVtdu7cqerqau3Zs0eBQECnT59WeXm5+vr6nC4tpSZPnqyHH35Ye/fu1d69e3XLLbdo4cKFeuedd5wuLS1aW1vV1NSkGTNmOF1KWkybNk1dXV0D2/79+50uKXNYhnv66actv9/vdBkp8Td/8zdWVVVV1L4pU6ZYq1evdqii9JJkbdu2zeky0q67u9uSZO3cudPpUtLuC1/4gvXEE084XUbKnThxwvrrv/5rKxAIWDfeeKN1zz33OF1SSq1du9aaOXOm02VkLGM7Apnu7CMt7Y+oPN8jLZEZzj5uO5UPZrnYhMNhbdmyRX19fSorK3O6nJSrrq7W7bffrvnz5ztdStocPHhQkyZNUlFRkb7xjW/ov//7v50uKWO4ZmVBxGc4j7SE+1mWpdraWt1www0qLi52upyU279/v8rKynTq1CmNGjVK27Zt09VXX+10WSm1ZcsW7du3T62trU6XkjazZ8/W5s2bdeWVV+rDDz/Ugw8+qDlz5uidd96J6+E6GFxGdQQGm1Bi3/bu3et0mWkV7yMt4W4rV67U22+/rRdeeMHpUtLiqquuUkdHh/bs2aO7775blZWVevfdd50uK2U6Ozt1zz336Lnnnkv70/GcVFFRocWLF2v69OmaP3++fvWrX0lS1LLzGL6M6gik+rHGbjKcR1rC3VatWqXt27dr165dmjx5stPlpEV2drauuOIKSVJpaalaW1v12GOPadOmTQ5XlhptbW3q7u5WSUnJwL5wOKxdu3Zp48aNCoVCysrKcrDC9MjNzdX06dN18OBBp0vJCBkVBHis8f8bziMt4U6WZWnVqlXatm2bduzYoaKiIqdLcoxlWQqFQk6XkTLz5s2LmS3/ne98R1OmTNF9991nRAiQpFAopAMHDmju3LlOl5IRMioIxCMYDOovf/lL1GONJemKK67QqFGjnC0uSWpra7V06VKVlpaqrKxMTU1NUY+0zEQnT57UH/7wh4HXhw4dUkdHh8aMGaOCggIHK0ud6upqPf/883rppZc0evTogS6Q3+/XyJEjHa4ude6//35VVFQoPz9fJ06c0JYtW7Rjxw698sorTpeWMqNHj46Z+5Gbm6uxY8dm9JyQe++9VwsWLFBBQYG6u7v14IMPqre3V5WVlU6XlhmcvWnBOZWVlZakmO311193urSkevzxx63CwkIrOzvbmjVrVsbfUvb6668P+u+1srLS6dJSZrDPK8l6+umnnS4tpf7hH/5h4O/2+PHjrXnz5lmvvvqq02WlnQm3Dy5ZssS67LLLrM997nPWpEmTrK997WvWO++843RZGYPHEAMAYLCMumsAAADEhyAAAIDBCAIAABiMIAAAgMEIAgAAGIwgAACAwQgCAAAYjCAAAIDBCAKAi4XDYc2ZM0eLFy+O2t/T06P8/Hw98MADDlUGwC1YWRBwuYMHD+qaa65RU1OTvvWtb0mSli1bprfeekutra3Kzs52uEIAFzOCAJABfvrTn2rdunX6/e9/r9bWVn3961/X7373O11zzTVOlwbgIkcQADKAZVm65ZZblJWVpf3792vVqlUMCwAYEoIAkCHee+89TZ06VdOnT9e+ffs0YoSxTxkHEAcmCwIZ4qmnntLnP/95HTp0SIcPH3a6HAAuQUcAyABvvvmm/vZv/1Yvv/yyfvSjHykcDuu1116Tx+NxujQAFzk6AoDLffzxx6qsrNTy5cs1f/58PfHEE2ptbdWmTZucLg2ACxAEAJdbvXq1IpGIfvjDH0qSCgoK9JOf/ET//M//rD/96U/OFgfgosfQAOBiO3fu1Lx587Rjxw7dcMMNUX/2la98RadPn2aIAMB5EQQAADAYQwMAABiMIAAAgMEIAgAAGIwgAACAwQgCAAAYjCAAAIDBCAIAABiMIAAAgMEIAgAAGIwgAACAwQgCAAAYjCAAAIDB/g/X3XnOmPXKfgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ht = tinygrid.add_zeros(\"height\", at=\"node\")\n", + "ht[4] = 0.5\n", + "imshow_grid(tinygrid, ht)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.3) The grid should have 12 links (extra credit: verify this with `plot_graph`). When you compute gradients, which of these links will have non-zero gradients? What will the absolute value(s) of these gradients be? Which (if any) will have positive gradients and which negative? To codify your answers, make a 12-element numpy array that contains your predicted gradient value for each link." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.3 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 0. 0. 0.25 0. 0.25 -0.25 0. -0.25 0. 0. 0. ]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAasAAAGwCAYAAAAXAEo1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAApFUlEQVR4nO3deXwV1f3/8fdNQhKEJGyyRC4oAiIiqAE0uCEiGjew1FqqlLq0RYNfkEdpVWz7UNH46KLQqrSgra0Vg8iqAoIKQVQwYZOisghIlCCCkgSExCTz++P8LjcrWUhyzqSv5+NxHzOZO4kf7mO87zlnzpwJeJ7nCQAAh0XYLgAAgOoQVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOdF2S7gZJSUlGjv3r2Ki4tTIBCwXQ4AoJY8z1N+fr4SExMVEVF1+8nXYbV3714Fg0HbZQAATlJ2drY6d+5c5fu+Dqu4uDhJ5h8ZHx9vuRoAQG3l5eUpGAwe/z6viq/DKtT1Fx8fT1gBgI9VdymHARYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVawbtcuaeZM6ec/l/r1k6KipEBAmjKl+t/94ANp+HDp1FOl5s2l3r2lRx+Vjh1r+LrhprocT/v2Sf/+tzRunDRwoBQTY37nrrsar26cWJTtAoBp08yrtl56SRozRioulk47TQoGpf/+V/rd76TXXpNWrpROOaXey4Xj6nI8padL993XMPWgftCygnXt2knXXy898oi0ZIk0cmT1v7N7t3TnnSao/vAHKTtbWr9e2r5dOussKTNT+vWvG7x0OKgux1N8vHTVVdLkydLChdK99zZ8nagdWlaw7qGHyv6cnl797/zxj1JBgTRsmDRpUnh7167SP/4hXXyxNGOG9NvfSh061G+9cFtdjqc77jCvkPXr67cmnDxaVvAdz5Pmzzfrd95Z8f1Bg6RevaTvvzdnyQD8j7CC7+zZI+XkmPWLL658n9D2tWsbpyYADYuwgu9s326WMTFSYmLl+3TrVnZfAP5GWMF3vv3WLFu1MsOLK9O6ddl9AfgbYQXfCd1DFR1d9T4xMWZ59GjD1wOg4RFW8J3YWLMsLKx6n4ICs2zevOHrAdDwCCv4TqiL79AhMzKwMqHuv9C+APyNsILv9OhhlgUF0t69le+zc2fZfV1y9Kj02We2q0BTcfCgmS6qqXMmrNLS0hQIBDRhwgTbpcBxXbpIHTua9ffeq3yf0PYLL2ycmmojJUXq3l3q21dKS5N27LBdEfzsnHPMqNhLL5WeeabpBpcTYZWZmakZM2aob9++tkuBDwQC0k03mfXnn6/4/vvvS59+KjVrJt14Y+PWVhOh1uDmzWa2hR49CC7U3ddfm+7w994z00Q11eCyHlaHDx/WrbfeqpkzZ6o1FxhQQ5MmmdGAy5aZqZdC164+/zw8bc5dd4VbYK4qKTFLggsny/PCr6YYXAHPq+oSdeMYM2aM2rRpo6eeekqDBw/Weeedp6lTp1a6b0FBgQpCw7wk5eXlKRgMKjc3V/Hx8Y1U8YmtXWum+wl9CQF1ERFhjqEuXcyMHUBdlb4XMSlJWrpUatvWXj3l5eXlKSEhodrvcastq/T0dK1fv15paWk12j8tLU0JCQnHX8FgsIErrL077ySocPJCXzAEFU6W55mTH8+TsrKkX/7SdkV1Yy2ssrOzNX78eP3nP/9RbOjGmWo88MADys3NPf7Kzs5u4Cpr58svpY8/Nutz55ZtlvPiFXpVNUIx6v8/A6FFC2nUqLIPC/z4Y/t183LzFVHFt3joeGrb1gRUaOza669LR46c9Nddo7MWVuvWrdP+/fuVlJSkqKgoRUVFKSMjQ3/5y18UFRWl4uLiCr8TExOj+Pj4Mi+XzJ1rlpGR0iuv2K0F/lA6oH78Y2nRIjMU+cUXzTO6oqLM8TRnjt064Q+lA+oXvzAPIP3qK3PNKivLtNgLCqTFi62WWSfWrlnl5+fr888/L7Pt9ttvV69evfSb3/xGffr0qfZv1LSvs7EMGiStWWPOdmJjpW++YQYFVNSvn/TRRyagbrpJ+tGPzHO5QlNESeahku3bm2NIMo88+eQTO/XCbc2bmynI2raVbrnFHE+XXGJOckL27TODLTzPbL/pJndOgGr6PW7t4YtxcXEVAqlFixZq27ZtjYLKNV9+GQ4qyRw8S5ZIP/iB3brgniVLzMP9rrqqbECVtmpVOKgkMxT/k0+ks89unBrhH1lZ0oEDFQOqtHnzwuvFxdJrr5muwBYtGqfG+mB96HpTEeoCDImKoisQlUtMNI9dryqoJGn27HCXjkRXIKp2zjnS5ZdXHVSS9PLLZX/2Y1eg9aHrJ8OlbsDSXYAhdAWiLsp3AYbQFYi6KN0FGOJSV6Avhq43FeW7AENCXYFAbZTvAgwJdQUCtVG6CzCkdFegXxBW9aB8F2AIXYGoi/JdgCF0BaIuyncBhvitK5Cwqgfp6ZVvLyqSFi7kAYCoueJiE0hFRZW/V9UXD1CZffvM1EuVXezx2y02hNVJ2ru38i7AELoCURtVdQGG0BWI2pg3r+rvJr91BVobut5UtGkjJSeHp8X54guz7NzZLGNipPPPt1Mb/Ofss6Wzzgp/gZQ/ntq3D68D1bnoIjO/ZGgKuPLH07nnhp+87TpGA9az0Jxu/v1U4RKOJ9SnQMA8raDUfODWMRoQANBkEFYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWAADnEVYAAOcRVgAA5xFWDWj3bikQqNkrI8N2tfCD/fulX/1KOucc6ZRTpNhY6cwzpV/8Qtqxw3Z18Jt9+6T77pN69DDHUrt20jXXSG++abuyigKe53m2i6irvLw8JSQkKDc3V/Hx8bbLkWSCR5I8zxwIP/xh1fvm5Eg7d5qDZN8+KSGhcWqEf5Q+nrZulS67zARWs2ZSt25muWOHdOyYCa/Fi6XLL7dbM9wVCEjR0VJBgbR5s3TVVdJXX0kxMVKfPlJubvikJy1Nuv/+hq+ppt/jUQ1fyv+ujh2l1aurfv+220xY3XgjQYXqpaaaoLr4Yik9Xerc2Ww/eFC64w5p0SLp9tulzz4LhxxQmaIicyL91VfS4MHSK69Ip55q3nvnHWnECOnBB6VBg8wJkgvoBrTk8GFpwQKzPnq01VLgA999J61YYdanTw8HlSS1bSu98IIJqF27pE8/tVIifOSNN6Rt20yL6oUXwkElSUOGSJMnm9b8ww9bK7ECwsqSefOkI0fMQXLNNbargesKC6WSErPerVvF91u3ltq0MetFRY1XF/zpvffMcsAAqWvXiu+PHGmWK1ea1rwLCCtL/vMfs/zxj6UoOmNRjVatpGDQrL//fsX3t2413YGtWpmL5cCJfPutWZ52WuXvh7aXlEiZmY1TU3UIKwtycqS33zbrdAGipqZMMcs77pDmzjXhlJtrRm6NGGG6Af/wBzNgBziR0DXyL7+s/P3S27dubfh6aoJzegteesmcsZx1lmmGAzXx059KLVtKjz5acZRp375mJCBdyqiJ0PdOVpaUnR1utYfMmxdeD7XCbKNlZUGoC5BWFWrD88zo0YMHpchIqXt3qXdvMxT5v/+VZsyQvvnGdpXwg+HDpcREc8vDT35ientC3nhDeuyx8M9HjzZ+fZUhrBrZ5s3Spk2my+a222xXAz8ZO1aaNMmcBe/YIW3fLm3ZYs6Mr71Wmj9fuuIKqbjYdqVwXWysNHu2FBdnbq/p0sXcZ3XaadL115trn6Eh6y1bWi31OMKqkb34olledlnlo3CAymzaJM2caW4CTk+XTj89/F779qZruV076aOPzD0zQHUuuURav95cA+3Y0Qxll8xJUVZW+KSnY0d7NZbGNatGVFIivfyyWacLELXx3numG7Bnz4rXFyQpPl4aONBct8rKkkaNavwa4T/du0vPP19xe1GROUGSpKSkxq2pKlZbVtOnT1ffvn0VHx+v+Ph4JScna8mSJTZLalArVkhffGGa4CeahgkoLz+/+n1CE6cdO9awtaDpe/NNM3FBYqJ0wQW2qzGshlXnzp31xBNPKCsrS1lZWRoyZIiGDx+uLVu22CyrwYS6AJleCbUVundq2zZzjaq8vLzw/TA9ezZeXWh6Cgul3/3OrN99txnM4wKrYXXDDTfo2muvVc+ePdWzZ0899thjatmypdasWWOzrAZx9Gh4OChdgKitYcPMNanvvzc3ku/eHX5v/37p1lulAwdotaPmFi+W1q4tuy0729yzt369GWk6aZKV0irlzDWr4uJizZkzR0eOHFFycnKl+xQUFKigoOD4z3l5eY1V3klbsMB05TC9EuqiZUvp3/+WfvADM4NF9+5lZ10vLDQzofztb1XPSgCUtmyZNG2amarr9NNN9/Gnn5ru5N69zfsxMbarDLMeVps3b1ZycrKOHTumli1bav78+erdu3el+6alpelhl2ZWrIVQFyDTK6GuUlLMRe8//9nMjL1nj/li6dTJjC6dMMGd6wtw34gR5v6qDz+UPvnEBNOAAdItt5gZ/l0KKsmB51kVFhZqz549OnTokObOnavnnntOGRkZlQZWZS2rYDDo7POsgJPF8YT6VPp5Vq6o6fOsrIdVeUOHDtWZZ56pv//979Xu6/rDF4GTxfGE+uTnsHLupmDP88q0ngAAsHr15MEHH1RKSoqCwaDy8/OVnp6ulStXaunSpTbLAgA4xmpYffXVVxo9erRycnKUkJCgvn37aunSpbrqqqtslgUAcIzVsHq+snk+AAAox7lrVgAAlEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWMEJP/uZFAic+HXsmO0q4SfFxdLMmdLll0vt2kmxsVLXrtKIEdLChbarQ21F2S4AKK1HD6l9+8rfi+DUCjX07bfStddKa9aYE52ePaXTT5f27jVBFRUlDR9uu0rUBmEFpzz4oGllAXVVUiLdeKMJqh/8QJo2TercOfz+F19IO3faqw91Q1gBaFJmzJBWr5auuEKaM6dii7xz57LhBX+gYwVAkzJtmlk++ihdx00JLSs45dVXpQULpLw8c+3q4ouln/5USkiwXRn8YPt26dNPpTZtpEGDzPWpOXOknBzp1FOloUOl0aOlmBjblaK2CCs45Y03yv48e7b0+99Ls2ZJ11xjpyb4x7p1Ztmrlwmll14q+/7s2dKf/ywtXWpGBsI/aCTDCWeeKT3+uLRpk2lV5edLy5ZJF15oRnaNGCFlZdmuEq7LyTHLzEwTVHfdJe3ebW57eOstqVs30/IaOdIMxIB/BDzP82wXUVd5eXlKSEhQbm6u4uPjbZcjyQyTlST/fqpuKSyULr1U+vBDacgQ6e23bVfUuDieamfKFOm3vzXrl14qrVpV9v1Nm6Tzzzef56JF0g03NH6NNgUCUnS0VFBgu5Kwmn6P07KC06KjzYVySVq50rSygKrExobXx4+v+H6/fmaUoGS6AuEfhBWcl5xsliUl3B+DE2vdOrzeq1fl+5x9tlnu3t3g5aAeEVZwXrNm4fWiInt11JecHDOQxKWumKbirLPC61WN+AttLy5u+Hoaw8cfSxkZTeffUxWrYZWWlqYBAwYoLi5O7du314gRI7R161abJcFBW7aE15vCzZwpKdL110tt25oRa6+/TnDVl/PPD3cFVtUKD20/7bTGqamh9e8vDR4sdewopaY23eCyGlYZGRlKTU3VmjVrtHz5chUVFWnYsGE6cuSIzbLgmD//2Sx79WoaXzDffWeWR45I6enmIj/BVT9atDBzAkrSv/5V8f19+6Q33zTrQ4Y0Xl0NKXS8HDhgZu9ossHl1dKYMWO8jIyM2v5ajezfv9+TVOO/n5ub60nycnNzG6SeujDjjGxX4S/Llnne/fd73s6dZbcfOuR5994b/kxnzbJTX33r0SP8byr9iooyyxYtPO+22zzvtdc4nupi40bPi4z0vIgIz3vhhfD2b7/1vKuvNp9nt26eV1BgrcR6FRFx4uOpXTvPu+cez1u50vwcHW274rJq+j1e66HrI0eO1BtvvKFgMKjbb79dY8aM0Wn1dLq7Y8cO9ejRQ5s3b1afPn0qvF9QUKCCUqedeXl5CgaDTg1db9asaVxXgV2RkU3ojBjWlT6eunWTPvvMbj2lNdjQ9blz5+rLL7/UuHHjNGfOHJ1++ulKSUnRq6++qu+//77OBXuep4kTJ+qSSy6pNKgkc40rISHh+CsYDNb5v9dQOnWyXQGaAu6rQn0JBMxI2tA9e4mJduupq5O+KXjDhg36xz/+oeeee04tW7bUbbfdpnvuuUc9evSo1d9JTU3VG2+8odWrV6tzFVfRXW9ZbdsWHo30wgvSmDFWy4GjevY0c9iVFxFhvlTOPVcaNcoMw777bvPe2rXSwIGNWyf8ITKy4mwcoWCSzByJo0ZJX34ppaWZ/b/6ylwndUGj3BSck5OjZcuWadmyZYqMjNS1116rLVu2qHfv3nrqqadq/HfuvfdeLVq0SCtWrKgyqCQpJiZG8fHxZV4uCT2OICLCXDgHqhOaFfzcc83sC9u3Sx99JD3wgPTuu+YhgVFR0iuv2K0T7iv9VO1Bg6S//tUE1OrVZrBFaN7N4mIzWbTv1PZiWGFhoffqq6961113ndesWTMvKSnJmz59upeXl3d8n5dfftlr1apVtX+rpKTES01N9RITE71t27bVthTnBlj07l324ua339quCC667DJzjJx7ruc9/rjnbd9ecZ+jRz3vlFPCx9Npp3leSUnj1wr3tW/veYGA5118sec9/bTn7d1bcZ8dO8LHUkSE5w0d2vh1VqWm3+O1nnW9U6dOKikp0ahRo/Thhx/qvPPOq7DP1VdfrVatWlX7t1JTUzVr1iwtXLhQcXFx2rdvnyQpISFBzZs3r21pVm3bZm7OCykqMo8noCsQ5S1dah6vfuaZVe/z5pvhIe6SOUPOzKQrEBV9/LGZQ/NE18tDvT4lJea1YoV08KA7XYE1UetuwKeeekp79+7VM888U2lQSVLr1q21a9euav/W9OnTlZubq8GDB6tTp07HX7Nnz65tWdbNmWP6gkMiI+kKROWaNz9xUEmm2y+q1KkkXYGoStu21Q/sevnlste1/NgVyKzr9eScc8q2rCTzBfP111INGpnAcceOmS+g0i0rydwQnZ1d9uI5UJ3PPpO6dy+7LSLC3BS9fLmdmkpj1vVGVL4LMCTUFQjURvkuwJBQVyBQG6EuwNJKdwX6BWFVD8p3AYbQFYi6KN8FGEJXIOqifBdgiN+6AgmrejBrVuWzDRQXm6eTHjrU6CXBp44dM18glc2CUlRkTn7823GPxvbZZ+ZWiMr47RYbwuok7d5deRdgSFGRtHhxo5UDn1uxovIuwJAvv5Q2bmy0cuBzJ7oMEeoKzM9vvHpORq2HrqOsLl3MLAOff25+DgVTaObn6Gjpmmvs1Ab/uewy6eabzYzsUsXj6dRTpSpmIwMq+OEPpXfeCbfGyx9PfftKcXF2aqstRgPWs9BILf9+qnAJxxPqUyBgTqBdegwNowEBAE0GYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmEFAHAeYQUAcB5hBQBwHmHVgDxPWr1amjRJuugiqVUrKTpaSkyURo6UVqywXSH8ZsEC6Ze/lJKSpE6dzPHUqpU0aJA0bZpUWGi7QvjZQw9JgYB5TZliu5qyomwX0JS98440dKhZj4iQuneXWrSQtm+X5s0zr4cekh591G6d8I8//Ul67z0pJsac9PTrJ+XkSB98YF4vvii99ZYJMKA2PvlE+uMfbVdRNVpWDcjzTEA9+6x04IC0dau0fr108KD0wANmnylTpNdft1sn/OOuu0yLPD9f2rlTysyUvvjCBFXnztK6ddLkybarhN94nmmxN2smDRliu5rKEVYNaOBAc7Zy991S69bh7dHR0uOPSykp5ueZM+3UB//52c+kwYPNl0ppF10kPfmkWV+woJGLgu89/7z07rvS734nBYO2q6kcYdWA4uOlqBN0tF51lVlu29Y49aBp69XLLL/7zm4d8Jevv5Z+8xupd2/pvvtsV1M1rllZdOyYWTZvbrcONA0ffGCWF1xgtw74y333Sd98Y66hl2+xu4SwssTzpDlzzPrFF9utBf5VXGwGWCxaJN1/vxnAk5Zmuyr4xdtvSy+9JN12m3T55barOTG6AS2ZOVPasMFcv5owwXY18JupU83w4qgoc40hNVW68kppzRpzrRSozrFj0tixUkKCGWXqOsLKgvXrpfHjzfqUKdKZZ9qtB/5z2mmmRT5woNShg9m2YoX08sumtQVUZ8oUaccO6bHHwseQywirRrZrl3T99eas5ic/kX71K9sVwY9uvtnccL52rbRvn2lRnX66GWU6bpzt6uC60D1VF1xgRiv7AWHViPbtMyMAc3Kk666TXnjBdOUAJ+vCC6XFi83NwjNmSJ9/brsiuOyee6SiImn6dDNhgR8EPM/zbBdRV3l5eUpISFBubq7i4+NtlyMpHD7lP9VvvjEXMP/7X7NcsoRRgKheVcdTVS66yLS2Fi6Ubryx4eqCPwUC5jp58+bS4cNSu3YV98nNNT0/LVuaATvBoLn5vKHU9HvcaqauWrVKN9xwgxITExUIBLSgid7NePiwdO21JqgGDJBee42gQsMoKiq7BKpSXCx99VXFV+iWmsOHzc9ff223zhCrYXXkyBH169dPTz/9tM0yGlRBgTR8uDnbPeccaelSKS7OdlVoinbvljZtMuv9+lktBY47dMi01it7jRlj9nn0UfPz7t02Kw2zep9VSkqKUkJzDjVBxcXSj39sJrQ980xp+XKpTRvbVcGv1q0z91ONGSN161b2vaVLzc2dRUWmFc8IUzQ1vropuKCgQAUFBcd/zsvLs1hN9V55JTxPW0SEGcFVmU6dwjcIA1XJz5ceecS8OnY0E9cWFkp79pgzZcl0M//rX1bLBBqEr8IqLS1NDz/8sO0yaqxUrmr7dvOqTNeujVMP/K1fP/PMqrfflrZskT791IRV27ZScrL0ox+ZmQhONB8l4FfOjAYMBAKaP3++RowYUeU+lbWsgsGgL0YDAnXB8YT6FBoNWPpE2raajgb01TlYTEyMYmJibJcBAGhkPrkdDADwv8xqy+rw4cPasWPH8Z937dqljRs3qk2bNurSpYvFygAALrEaVllZWbriiiuO/zxx4kRJ0pgxY/TCCy9YqgoA4BqrYTV48GA5Mr4DAOAwrlkBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1gBAJxHWAEAnEdYAQCcR1jBKYsXS0OHSm3aSC1aSBdcIP31r1JJie3K4Be7dkkzZ0o//7nUr58UFSUFAtKUKbYrw8mIsl0AEPLEE9IDD5j1bt2kli2lTZuk//s/6a23pPnzpQhOr1CNadPMC00L/+vDCR98ID34oAmjWbOkzz4zQbV+vdShg7RokfTkk7arhB+0ayddf730yCPSkiXSyJG2K0J9IKzghClTJM+T7rpLGjUqvL1fv3BIPfGE9P33duqDfzz0kPTaa9Jvfytdc41pocP/CCtYl5dnuvkk6c47K75/881SfLx08KC0YkXj1gbADYQVrNuwQSoslGJjzYCK8po1kwYMMOtr1zZubQDcQFjBuu3bzbJLFzNyqzLdupXdF8D/FsIK1n37rVm2bl31PqH3QvsC+N9CWMG6Y8fMMjq66n1iYszy6NGGrweAewgrWBcba5aFhVXvU1Bgls2bN3w9ANxDWMG6mnTx1aSrEEDTRVjBuh49zHLPHqmoqPJ9du4su6+frVsn/elPZlog4GQtXiz97W/S/v22K2lY1sPq2Wef1RlnnKHY2FglJSXp3XfftV0SGtn555vh6ceOmRkryvv+eykz06xfeGHj1tYQfvITadIkM8Lx/POlP/6R4ELd3XCDdPfdUseO0uDBTTe4rIbV7NmzNWHCBE2ePFkbNmzQpZdeqpSUFO3Zs8dmWWhk8fFm8lpJev75iu/PmWNuHG7b1vzP6HeeF17fuFG6/36CCyfP86R33226wWU1rJ588kndeeeduuuuu3T22Wdr6tSpCgaDmj59us2yYMHkyWZm7Oeek15+Obx90yZp4kSz/utfn3jEoF+FZpSvLLiA2ggdS6HguueessHlZwHPK32e13gKCwt1yimnaM6cObrpppuObx8/frw2btyojIyMCr9TUFCggtCwMEl5eXkKBoPKzc1VfHx8o9RdncREKSfHdhUAEBYIhFv0V1whvfOO3XpKy8vLU0JCQrXf49YeEXLgwAEVFxerQ4cOZbZ36NBB+/btq/R30tLS9PDDDzdGeXWWkWHmsiOw6qagQPruOzPQwvPMjBaxsWbIeiBgu7r6UV23TFSU+fc3b26u0e3ebT4T1ExhoXToUPX7tW0rRUY2eDkNrqbHU+vWpoX1r381Sln1zvrzrALlvoE8z6uwLeSBBx7QxFCfkMItK5f06GG6c4Cq9OxZcdqo0gE1YoT0ox9JV1/NfWWoXmRkxYeTlg6om2+WbrlFuuyyqqcz8wNrpbdr106RkZEVWlH79++v0NoKiYmJUUxoKgPA5wgo1KemGFClWftnREdHKykpScuXLy9zzWr58uUaPny4rbKABte/v/TFFwQU6se555p7FJtiQJVm9Z80ceJEjR49Wv3791dycrJmzJihPXv2aOzYsTbLAhrUSy+Za3OhaaaAk5GZaa7nNsWAKs3qP++WW27RwYMH9cgjjygnJ0d9+vTR4sWL1bVrV5tlAQ0qECCoUH+aNbNdQeOwNnS9PtR0yCMAwE01/R63Pt0SAADVIawAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM4jrAAAziOsAADOI6wAAM6Lsl3AyfA8T5KUl5dnuRIAQF2Evr9D3+dV8XVY5efnS5KCwaDlSgAAJyM/P18JCQlVvh/wqoszh5WUlGjv3r2Ki4tTIBCwXY4kc5YQDAaVnZ2t+Ph42+U4i8+pZvicaobPqWZc/Jw8z1N+fr4SExMVEVH1lSlft6wiIiLUuXNn22VUKj4+3pmDwWV8TjXD51QzfE4149rndKIWVQgDLAAAziOsAADOI6zqWUxMjH7/+98rJibGdilO43OqGT6nmuFzqhk/f06+HmABAPjfQMsKAOA8wgoA4DzCCgDgPMIKAOA8wqqePfvsszrjjDMUGxurpKQkvfvuu7ZLcsqqVat0ww03KDExUYFAQAsWLLBdkpPS0tI0YMAAxcXFqX379hoxYoS2bt1quyynTJ8+XX379j1+g2tycrKWLFliuyznpaWlKRAIaMKECbZLqRXCqh7Nnj1bEyZM0OTJk7VhwwZdeumlSklJ0Z49e2yX5owjR46oX79+evrpp22X4rSMjAylpqZqzZo1Wr58uYqKijRs2DAdOXLEdmnO6Ny5s5544gllZWUpKytLQ4YM0fDhw7VlyxbbpTkrMzNTM2bMUN++fW2XUnse6s3AgQO9sWPHltnWq1cv7/7777dUkdskefPnz7ddhi/s37/fk+RlZGTYLsVprVu39p577jnbZTgpPz/f69Gjh7d8+XLv8ssv98aPH2+7pFqhZVVPCgsLtW7dOg0bNqzM9mHDhun999+3VBWaitzcXElSmzZtLFfipuLiYqWnp+vIkSNKTk62XY6TUlNTdd1112no0KG2S6kTX09k65IDBw6ouLhYHTp0KLO9Q4cO2rdvn6Wq0BR4nqeJEyfqkksuUZ8+fWyX45TNmzcrOTlZx44dU8uWLTV//nz17t3bdlnOSU9P1/r165WZmWm7lDojrOpZ+UeVeJ7nzONL4E/jxo3TRx99pNWrV9suxTlnnXWWNm7cqEOHDmnu3LkaM2aMMjIyCKxSsrOzNX78eC1btkyxsbG2y6kzwqqetGvXTpGRkRVaUfv376/Q2gJq6t5779WiRYu0atUqZx+HY1N0dLS6d+8uSerfv78yMzM1bdo0/f3vf7dcmTvWrVun/fv3Kykp6fi24uJirVq1Sk8//bQKCgoUGRlpscKa4ZpVPYmOjlZSUpKWL19eZvvy5cs1aNAgS1XBrzzP07hx4zRv3jy98847OuOMM2yX5Aue56mgoMB2GU658sortXnzZm3cuPH4q3///rr11lu1ceNGXwSVRMuqXk2cOFGjR49W//79lZycrBkzZmjPnj0aO3as7dKccfjwYe3YseP4z7t27dLGjRvVpk0bdenSxWJlbklNTdWsWbO0cOFCxcXFHW+xJyQkqHnz5parc8ODDz6olJQUBYNB5efnKz09XStXrtTSpUttl+aUuLi4Ctc6W7RoobZt2/rrGqjdwYhNzzPPPON17drVi46O9i644AKGGpezYsUKT1KF15gxY2yX5pTKPiNJ3j//+U/bpTnjjjvuOP7/2qmnnupdeeWV3rJly2yX5Qt+HLrOI0IAAM7jmhUAwHmEFQDAeYQVAMB5hBUAwHmEFQDAeYQVAMB5hBUAwHmEFQDAeYQVAMB5hBUAwHmEFQDAeYQV4Jivv/5aHTt21OOPP35829q1axUdHa1ly5ZZrAywh4lsAQctXrxYI0aM0Pvvv69evXrp/PPP13XXXaepU6faLg2wgrACHJWamqq33npLAwYM0KZNm5SZmenrx5IDJ4OwAhx19OhR9enTR9nZ2crKylLfvn1tlwRYwzUrwFE7d+7U3r17VVJSos8//9x2OYBVtKwABxUWFmrgwIE677zz1KtXLz355JPavHmzOnToYLs0wArCCnDQpEmT9Oqrr2rTpk1q2bKlrrjiCsXFxen111+3XRpgBd2AgGNWrlypqVOn6sUXX1R8fLwiIiL04osvavXq1Zo+fbrt8gAraFkBAJxHywoA4DzCCgDgPMIKAOA8wgoA4DzCCgDgPMIKAOA8wgoA4DzCCgDgPMIKAOA8wgoA4DzCCgDgvP8HFAk55EUVy68AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(tinygrid, at=\"link\")\n", + "pred_grad = np.array([0, 0, 0, 0.25, 0, 0.25, -0.25, 0, -0.25, 0, 0, 0])\n", + "print(pred_grad)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.4) Test your prediction by running the `calc_grad_at_link` function on your tiny grid. Print the resulting array and compare it with your predictions." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.4 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 0. 0. 0.25 0. 0.25 -0.25 0. -0.25 0. 0. 0. ]\n" + ] + } + ], + "source": [ + "grad = tinygrid.calc_grad_at_link(ht)\n", + "print(grad)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.5) Suppose the flux of soil per unit cell width is defined as -0.01 times the height gradient. What would the flux be at the those links that have non-zero gradients? Test your prediction by creating and printing a new array whose values are equal to -0.01 times the link-gradient values." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.5 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-0. -0. -0. -0.0025 -0. -0.0025 0.0025 -0. 0.0025\n", + " -0. -0. -0. ]\n" + ] + } + ], + "source": [ + "flux = -0.01 * grad\n", + "print(flux)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.6) Consider the net soil accumulation or loss rate around the center-most node in your tiny grid (which is the only one that has a cell). The *divergence* of soil flux can be represented numerically as the sum of the total volumetric soil flux across each of the cell's four faces. What is the flux across each face? (Hint: multiply by face width) What do they add up to? Test your prediction by running the grid function `calc_flux_div_at_node` (hint: pass your unit flux array as the argument). What are the units of the divergence values returned by the `calc_flux_div_at_node` function?" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.6 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "predicted div is 0 m/yr\n", + "[ 0. 0. 0. 0. 0.005 0. 0. 0. 0. ]\n" + ] + } + ], + "source": [ + "print(\"predicted div is 0 m/yr\")\n", + "dqsdx = tinygrid.calc_flux_div_at_node(flux)\n", + "print(dqsdx)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 3: Hexagonal grid\n", + "\n", + "Next we will use an non-raster Landlab grid.\n", + "\n", + "We start by making a random set of points with x values between 0 and 400 and y values of 0 and 250. We then add zeros to our grid at a field called \"topographic__elevation\" and plot the node locations. \n", + "\n", + "Note that the syntax here is exactly the same as in the RasterModelGrid example (once the grid has been created)." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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44+Hrq6u0NnZGW688cZw8cUXh8OHD2efif21LGTG2F/LZ555Jjz77LNh165dYdeuXeG+++4LFRUVoaurK4QQ/2sYQv4ZY38NR/vP//zP8KEPfSh8/OMfD3fddVf280m9liwoI37v934v3H777Tmf+53f+Z3wla98JaFGpVm3bl247LLLzvi1EydOhHQ6HTZu3Jj93LFjx0J1dXV47LHHxqlhaUb/5V3ITIcOHQoVFRVh8+bN2WfefffdMGHChPDCCy+MW/dCnW1B+fSnP33WPxPbjCGE0NfXF8wstLW1hRDK87UcPWMI5flazpgxI/zTP/1TWb6GJ52cMYTyeg0HBgbCJZdcElpbW8OiRYuyC0qSryX/isfMhoeHraOjw5qbm3M+39zcbO3t7Qm1Kt3u3butrq7OGhoa7LOf/ay9+eabZma2Z88e6+3tzZm3srLSFi1aFO28hczU0dFh7733Xs4zdXV11tjYGNXcW7dutYsuusjmzp1rt912m/X19WW/FuOMmUzGzMwuvPBCMyvP13L0jCeVy2t5/Phx27x5sx05csQWLFhQlq/h6BlPKpfX8Mtf/rLdeOONdv311+d8PsnXMspjgWNt//79dvz4caupqcn5fE1NjfX29ibUqjTz58+3733vezZ37lz71a9+ZQ888IAtXLjQdu7cmZ3pTPO+/fbbSdQtWSEz9fb22uTJk23GjBmnPRPL67xkyRL74z/+Y5szZ47t2bPH/uqv/squu+466+josMrKyuhmDCHY3XffbZ/4xCessbHRzMrvtTzTjGbl8Vru2LHDFixYYMeOHbPf+q3fsi1bttill16a/UupHF7Ds81oVh6voZnZ5s2b7fXXX7dt27ad9rUk/++RBeUUqVQq559DCKd9LhZLlizJ/ud58+bZggUL7CMf+Yh997vfzX4TVznNe9L5zBTT3MuXL8/+58bGRrviiitszpw59uyzz9ott9xy1j+nOuPKlSvtjTfesFdfffW0r5XLa3m2GcvhtfzoRz9qnZ2ddujQIXvqqadsxYoV1tbWlv16ObyGZ5vx0ksvLYvXsLu72+666y578cUXbcqUKWd9LonXkn/FY2YzZ860iRMnnrbp9fX1nbY1xmratGk2b9482717d/anecpp3kJmSqfTNjw8bAcPHjzrM7Gpra21OXPm2O7du80srhlXrVplzzzzjL388ss2e/bs7OfL6bU824xnEuNrOXnyZPvt3/5tu+KKK6ylpcUuu+wy+7u/+7uyeg3PNuOZxPgadnR0WF9fnzU1NdmkSZNs0qRJ1tbWZn//939vkyZNyvZM4rVkQbH3/wfY1NRkra2tOZ9vbW21hQsXJtRqbA0NDdkvf/lLq62ttYaGBkun0znzDg8PW1tbW7TzFjJTU1OTVVRU5DzT09NjXV1d0c594MAB6+7uttraWjOLY8YQgq1cudKefvppe+mll6yhoSHn6+XwWuab8UxifC1HCyHY0NBQWbyGZ3NyxjOJ8TVcvHix7dixwzo7O7MfV1xxhf3Jn/yJdXZ22oc//OHkXsvz/vbaMnPyx4y/853vhF/84hdh9erVYdq0aeGtt95Kutp5WbNmTdi6dWt48803w2uvvRaWLl0aqqqqsvNs3LgxVFdXh6effjrs2LEjfO5zn5P/MeOBgYGwffv2sH379mBm4aGHHgrbt2/P/ih4ITPdfvvtYfbs2eHHP/5xeP3118N1110n9SN/55pxYGAgrFmzJrS3t4c9e/aEl19+OSxYsCB88IMfjGrGO+64I1RXV4etW7fm/Hjm0aNHs8/E/lrmm7EcXsu1a9eGV155JezZsye88cYb4b777gsTJkwIL774Yggh/tcwhHPPWA6v4dmc+lM8IST3WrKgnOKb3/xmmDNnTpg8eXK4/PLLc34kMDYnf069oqIi1NXVhVtuuSXs3Lkz+/UTJ06EdevWhXQ6HSorK8Mf/MEfhB07diTYOL+XX345mNlpHytWrAghFDbT4OBgWLlyZbjwwgvD1KlTw9KlS8PevXsTmObMzjXj0aNHQ3Nzc5g1a1aoqKgIF198cVixYsVp/dVnPNN8ZhYef/zx7DOxv5b5ZiyH1/LP/uzPsv//ctasWWHx4sXZ5SSE+F/DEM49Yzm8hmczekFJ6rVMhRDC+b//AgAAMPb4HhQAACCHBQUAAMhhQQEAAHJYUAAAgBwWFAAAIIcFBQAAyGFBAQAAclhQAACAHBYUAAAghwUFAADIYUEBAAByWFAAAICc/w8NHaWj5DD2kgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from landlab import HexModelGrid\n", + "\n", + "mg = HexModelGrid((25, 40), 10, node_layout=\"rect\")\n", + "z = mg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "plt.plot(mg.x_of_node, mg.y_of_node, \".\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we create our fault trace and uplift the hanging wall. \n", + "\n", + "We can plot just like we did with the RasterModelGrid. " + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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l8vlQu/evTF06FCf561WK3JycnD//ffHqGVExya9flguLS3N56E1+BD1+K2k+uDgg4i8zGYzFi5ciM8++wxvvvmm9/lx48YhIyMDDz74YAxbR3TsifattmPHjsWiRYuwePFi728lFRYWorKyUtd+8bQLEfno0KED8vPzMW7cOPTr1w8bNmzAkiVL8MMPPyApKSnWzSOiBjRv3jwAQN++fX2ef+2113DTTTfpVg8HH0QUYNy4cVi2bBluvPFGbN26FQ8++CDOOOOMWDeL6JgT7Vtto/Vzbxx8EFEARVEwb948nHrqqejSpQumTJkS6yYRHZNineejofCaDyJS9eqrr6JJkyYoKCjAH3/8EevmEFEc4eCDiAJ8++23eOaZZ/D++++jV69eGDVqVNSmY4molhACwu2u/8Og2y0HH0Tko7KyEiNHjsTo0aPRv39/vPzyy9iwYQP+85//xLppRMccvW61NRoOPojIx5QpU+B2u/HEE08AANq1a4enn34a99xzD37//ffYNo6I4gIHH0TktXbtWsydOxcLFixA06ZNvc/feuut6N27N0+/EEWZiHDWw6jbK+92ISKvCy64AE6nU/W1zz//PMqtISLe7UJERESkA858EBERGZTb7Ybb7Y7o/UbEwQcREZFB1ef3Wfzfb0QcfBARERkUr/kgIiIi0gFnPoiIiAyK13wQERFRVPG0CxEREZEOOPNBRERkUPE688HBBxERkUHF6zUfPO1CREREUcWZDyIiIoNyCwEXT7sQERFRtPC0CxEREZEOOPNBRERkUG5EdurEmPMeHHwQEREZltvthltRInq/EXHwQUREZFAutxumCAYfLoMOPnjNBxEREUUVZz6IiIgMihlOiYiIKKp42oWIiIhIB5z5ICIiMije7UJERERR5Xa74YrDwQdPuxAREVFUceaDiIjIoFxuN5Q4vOCUgw8iIiKDitfBB0+7EBERUVRx5oOIiMigeLcLERERRZUzwsFDpO9vKBx8EBERGZTL5YISQYp0XvNBREREBM58EBERGVakMxdGnfng4IOIiMigXC4XwNMuRERERJHhzAcREZFBOWw2uE31nyfgzAcRERGFxeFwwGG31//hcNSr3hdeeAG5ublITk5G9+7d8dVXX+naLw4+iIiIyGvp0qUYP348pk2bhs2bN+O8885DXl4e9u3bp1sdihARXMlCREREuispKUF6ejpyExNhiiTDqRAocDhgtVqRlpYm9Z6ePXuiW7dumDdvnve5U089FVdeeSXy8/Pr3Za6eM0HERGRQTkcjohOUYR7xYfdbsfGjRsxZcoUn+cHDBiA9evXR9ASXxx8EBERGVSkl4t63l9SUuLzvMVigcViCYg/dOgQXC4XMjMzfZ7PzMxEYWFhhK2pxcEHERGRwSQlJSErKwt/6XDAb9asGXJycnyee+ihhzB9+nTN9yh+p3qEEAHPRYKDDyIiIoNJTk5GQUEB7HZ7xGWpDRzUZj0AoFWrVjCbzQGzHEVFRQGzIZHg4IOIiMiAkpOTkZycHNU6k5KS0L17d6xcuRJXXXWV9/mVK1fiiiuu0K0eDj6IiIjIa8KECbjhhhvQo0cP9OrVC/Pnz8e+fftw++2361YHBx9ERETkde211+Lw4cOYMWMGDhw4gM6dO+OTTz5B+/btdauDeT6IiIgoqpjhlIiIiKKKgw8iIiKKKg4+iIiIKKo4+CAiIqKo4uCDiIiIooqDDyIiIooqDj6IiIgoqjj4ICIioqji4IOIiIiiioMPIiIiiioOPoiIiCiqOPggIiKiqPp/kya+G2sAIHUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fault_trace_y = 50.0 + 0.25 * mg.x_of_node\n", + "z[mg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]\n", + ")\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can use the same code as before to create a diffusion model!\n", + "\n", + "Landlab supports multiple grid types. You can read more about them [here](https://landlab.readthedocs.io/en/latest/reference/grid/index.html)." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "qs = mg.add_zeros(\"sediment_flux\", at=\"link\")\n", + "for i in range(25):\n", + " g = mg.calc_grad_at_link(z)\n", + " qs[mg.active_links] = -D * g[mg.active_links]\n", + " dzdt = -mg.calc_flux_div_at_node(qs)\n", + " z[mg.core_nodes] += dzdt[mg.core_nodes] * dt\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 3\n", + "\n", + "(3.1-6) Repeat the exercises from section 2c, but this time using a hexagonal tiny grid called `tinyhex`. Your grid should have 7 nodes: one core node and 6 perimeter nodes. (Hints: use `node_layout = 'hex'`, and make a grid with 3 rows and 2 base-row columns.)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.1 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tinyhex = HexModelGrid((3, 2), 2.0)\n", + "plot_graph(tinyhex, at=\"node\")" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.2 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "height = tinyhex.add_zeros(\"height\", at=\"node\")\n", + "height[3] = 0.5\n", + "tinyhex.imshow(height, cmap=\"Blues\")" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.3 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 0. 0.25 0.25 0. 0.25 -0.25 0. -0.25 -0.25 0. 0. ]\n" + ] + }, + { + "data": { + "image/png": "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bNLnLswlNTUVqdkuOqWkpCA4OBjJycnw9/e3419DrmbzZiA83Pg5+5Aeso8jR4xr3b6+cvbj4kX5uUoVORK1+rConTtlytiieHrKTIE2m3F6PSYGuOUWh6ZHLiAlJQUBAQFF1p0C5kRyPWlpadi+fTteeumlHPdHRERg48aN+T5m06ZNiNC7c/6ne/fumDt3Lq5evQrvfC5uRkZGYkJ+XT/J8tq1k2k+9Wu0a9aozcfq9LHhOnedB70g+jS/evHu0IHFm3IyTQE/e/YsMjIyEBgYmOP+wMBAJBYw72BiYmK+26enp+Ps2bMIyme6o7Fjx2K03lMExhE4uYft24ELF4o/RzpRSS1bBjz0UOHb6EffjRsD/fvLYi9crIRyM00B19lynV/TNC3PfUVtn9/9Oh8fH/joU0KRW/LzU50BWVnFivnfz6JNJWWaAl61alV4enrmOdpOSkrKc5Stq169er7be3l5oUqVKg7LlYioOFi0qSxMU8DLlSuH0NBQREdH46677sq6Pzo6Gn369Mn3MeHh4fjxxx9z3Ldq1SqEhYXle/2biMjR6tWTszw1arBoU9mYpoADwOjRozFw4ECEhYUhPDwcs2fPxrFjxzB06FAAcv365MmT+OKLLwBIj/MPP/wQo0ePxuOPP45NmzZh7ty5+Prrr1X+GUTkxlq2BE6f5pzvVHamKuD9+vXDuXPnMHHiRCQkJKBFixZYvnw56vw3p2BCQgKOHTuWtX29evWwfPlyjBo1Ch999BFq1KiB999/H/fcc4+qP4GIiMWb7MJU48BVKO54PCIiInsobt0x3VSqRERExAJORERkSizgREREJsQCTkREZEIs4ERERCbEAk5ERGRCLOBEREQmxAJORERkQizgREREJsQCTkREZEIs4ERERCbEAk5ERGRCLOBEREQmxAJORERkQizgREREJsQCTkREZEIs4ERERCbEAk5ERGRCLOBEREQmxAJORERkQizgREREJsQCTkREZEIs4ERERCbEAk5ERGRCLOBEREQmxAJORERkQizgREREJsQCTkREZEIs4ERERCbEAk5ERGRCping//zzDwYOHIiAgAAEBARg4MCBOH/+fKGPefjhh2Gz2XLc2rVr55yEiYiIHMhLdQLF1b9/f5w4cQIrV64EADzxxBMYOHAgfvzxx0If16NHD8ybNy/r53Llyjk0TyIi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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(tinyhex, at=\"link\")\n", + "pred_grad = np.array([0, 0, 0.25, 0.25, 0, 0.25, -0.25, 0, -0.25, -0.25, 0, 0])\n", + "print(pred_grad)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.4 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 0. 0.25 0.25 0. 0.25 -0.25 0. -0.25 -0.25 0. 0. ]\n" + ] + } + ], + "source": [ + "hexgrad = tinyhex.calc_grad_at_link(height)\n", + "print(hexgrad)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.5 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-0. -0. -0.0025 -0.0025 -0. -0.0025 0.0025 -0. 0.0025\n", + " 0.0025 -0. -0. ]\n" + ] + } + ], + "source": [ + "hexflux = -0.01 * hexgrad\n", + "print(hexflux)" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.6 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 1.1547009 1.1547009 1.1547 1.1547 1.1547004 1.1547004]\n", + "[ 3.464101]\n", + "0.0173205135568\n", + "0.00500000247013\n" + ] + } + ], + "source": [ + "print(tinyhex.length_of_face)\n", + "print(tinyhex.area_of_cell)\n", + "total_outflux = 6 * 0.0025 * tinyhex.length_of_face[0]\n", + "divergence = total_outflux / tinyhex.area_of_cell[0]\n", + "print(total_outflux)\n", + "print(divergence)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 4: Landlab Components\n", + "\n", + "Finally we will use a Landlab component, called the LinearDiffuser [link to its documentation](https://landlab.readthedocs.io/en/latest/reference/components/diffusion.html).\n", + "\n", + "Landlab was designed to have many of the utilities like `calc_grad_at_link`, and `calc_flux_divergence_at_node` to help you make your own models. Sometimes, however, you may use such a model over and over and over. Then it is nice to be able to put it in its own python class with a standard interface. \n", + "\n", + "This is what a Landlab Component is. \n", + "\n", + "There is a whole [tutorial on components](../component_tutorial/component_tutorial.ipynb) and a [page on the User Guide](https://landlab.readthedocs.io/en/latest/user_guide/components.html). For now we will just show you what the prior example looks like if we use the LinearDiffuser. \n", + "\n", + "First we import it, set up the grid, and uplift our fault block. " + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "from landlab.components import LinearDiffuser\n", + "\n", + "mg = HexModelGrid((25, 40), 10, node_layout=\"rect\")\n", + "z = mg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "fault_trace_y = 50.0 + 0.25 * mg.x_of_node\n", + "z[mg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we instantiate a LinearDiffuser. We have to tell the component what value to use for the diffusivity. " + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "ld = LinearDiffuser(mg, linear_diffusivity=D)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally we run the component forward in time and plot. Like many Landlab components, the LinearDiffuser has a method called \"run_one_step\" that takes one input, the timestep dt. Calling this method runs the LinearDiffuser forward in time by an increment dt. " + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ezVi8UFERKRSvOaDiIiIqBlw5IOIiEileM0HERERORVPuxARERE1A458EBERqVRrHflg8UFERKRSrfWaD552ISIiIqfiyAcREZFKWURg5mkXIiIichaediEiIiJqBhz5ICIiUikLmnbqRJ3jHiw+iIiIVMtiscCi0TRpezVi8UFERKRSZosF2iYUH2aVFh+85oOIiIiciiMfREREKsUZTomIiMipeNqFiIiIqBlw5IOIiEileLcLEREROZXFYoG5FRYfPO1CRERETsWRDyIiIpUyWyzQtMILTll8EBERqVRrLT542oWIiIiciiMfREREKsW7XYiIiMipqppYPDR1+7uFxQcREZFKmc1maJowRTqv+SAiIiICRz6IiIhUq6kjF2od+WDxQUREpFJmsxngaRciIiKipuHIBxERkUpVVlTAom38OAFHPoiIiOiOVFZWotJkavyrsrJRn7tp0yaEhITAw8MD4eHh+Pjjj5s1LxYfREREpNi1axfmzJmDRYsW4fTp0xg+fDji4uKQn5/fbJ+hEWnClSxERETU7IqKiuDl5YUQNzdomzLDqQjyKithNBrh6enp0DaRkZEYPHgwMjIylGX9+vXD+PHjkZ6e3ui2VMdrPoiIiFSqsrKySaco7vSKD5PJhNzcXMyfP99meWxsLE6cONGElthi8UFERKRSTb1c1Lp9UVGRzXK9Xg+9Xl8r/tq1azCbzfD19bVZ7uvri4KCgia25icsPoiIiFTG3d0dfn5++K4ZDvidOnVCYGCgzbJly5Zh+fLldrfR1DjVIyK1ljUFiw8iIiKV8fDwQF5eHkwmU5Pfq67Coa5RDwDw8fGBTqerNcpRWFhYazSkKVh8EBERqZCHhwc8PDyc+pnu7u4IDw9HTk4OJkyYoCzPyclBfHx8s30Oiw8iIiJSpKamIikpCREREYiKisLmzZuRn5+PmTNnNttnsPggIiIiRWJiIq5fv460tDRcvXoVYWFh2L9/PwwGQ7N9Buf5ICIiIqfiDKdERETkVCw+iIiIyKlYfBAREZFTsfggIiIip2LxQURERE7F4oOIiIicisUHERERORWLDyIiInIqFh9ERETkVCw+iIiIyKlYfBAREZFTsfggIiIip/r/i4hc+U88i4AAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(25):\n", + " ld.run_one_step(dt)\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 4\n", + "\n", + "(4.1) Repeat the steps above that instantiate and run a `LinearDiffuser` component, but this time give it a `RasterModelGrid`. Use `imshow_grid` to display the topography below." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 4.1 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rmg = RasterModelGrid((25, 40), 10)\n", + "z = rmg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "fault_trace_y = 50.0 + 0.25 * rmg.x_of_node\n", + "z[rmg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * rmg.x_of_node[rmg.y_of_node > fault_trace_y]\n", + ")\n", + "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n", + "for i in range(25):\n", + " ld.run_one_step(dt)\n", + "imshow_grid(rmg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(4.2) Using either a raster or hex grid (your choice) with a `topographic__elevation` field that is initially all zeros, write a modified version of the loop that adds uplift to the core nodes each iteration, at a rate of 0.0001 m/yr. Run the model for enough time to accumulate 10 meters of uplift. Plot the terrain to verify that the land surface height never gets higher than 10 m. " + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 4.2 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rmg = RasterModelGrid((40, 40), 10) # while we're at it, make it a bit bigger\n", + "z = rmg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n", + "for i in range(50):\n", + " ld.run_one_step(dt)\n", + " z[rmg.core_nodes] += dt * 0.0001\n", + "imshow_grid(rmg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(4.3) Now run the same model long enough that it reaches (or gets very close to) a dynamic equilibrium between uplift and erosion. What shape does the hillslope have? " + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 4.3 here)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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DQAAGJ1ZnujrdiFaWlr0+c9/XhkZGXrttdf0zjvv6Mknn9Rf/MVfRNusXLlSq1at0tq1a1VTU6NgMKjp06ervb3d0/fPOQ0AAFyIfj4l4fvf/76Kioq0YcOG6GOf+tSn/jwcx9Hq1au1YsUKzZkzR5K0adMm5efna8uWLbrvvvs8GwszDQAAxEFbW1vMFgqFemz38ssva9y4cfrKV76iESNG6LrrrtMzzzwTfb6+vl5NTU2aMWNG9LFAIKBJkyZp3759no6ZogEAAKsz4U593SQVFRUpNzc3ulVWVvb4ku+//77WrVunkpISvf7667r//vv1j//4j3r22WclSU1NTZKk/Pz8mJ/Lz8+PPucVlicAADDy8pLLhoYG5eTkRB8PBAI9to9EIho3bpwqKiokSdddd50OHz6sdevW6Rvf+Ea03dmXwTqO4/mlscw0AAAQBzk5OTFbb0VDQUGBrrrqqpjHrrzySn300UeSpGAwKEnnzCo0NzefM/vQVxQNAABYxeGSy89//vN67733Yh77zW9+o1GjRkmSiouLFQwGtWPHjujznZ2dqq6u1sSJEy/0HZ4XyxMXwN/fCWiWhEYvh9SP78+azmebWuvPNv37et69fxvLyzlOcu5L65hMSY7mdEmPePTd7OePk0m/H1f7KB6JkP/8z/+siRMnqqKiQvPmzdOvfvUrPf3003r66aclnf7MlpWVqaKiQiUlJSopKVFFRYUGDx6su+66q09jPVtcZxoqKyt1/fXXKzs7WyNGjNAdd9xxTjVlCawIhUJasmSJhg8friFDhui2227T0aNH+/OtAABwSVx//fXaunWrfvazn6m0tFT/+q//qtWrV+vuu++OtnnooYdUVlamhQsXaty4cfrd736n7du3Kzs729OxxLVoqK6u1qJFi7R//37t2LFD3d3dmjFjhk6cOBFtYwmsKCsr09atW1VVVaW9e/fq+PHjmjVrlsLhcDzeFgBgoIp4tF2gWbNmqa6uTqdOndK7776re++9N+Z5n8+n8vJyNTY26tSpU6qurlZpaenFvcfziOvyxLZt22L+vWHDBo0YMUK1tbW66aabTIEVra2tWr9+vZ577jlNmzZNkrR582YVFRVp586duuWWW8553VAoFHM9bFtb2yV8lwCAAeMTl0z2qY8klVAnQra2tkqS8vLyJNkCK2pra9XV1RXTprCw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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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c38/6aSTMG3aNPzJn/wJVq5cmQvuSlubB/BpV2ht//KXv5z7+4QJEzB16lSMGTMGa9euxZw5c0r+ntV2XnbZZfjNb36DJ598suBnaerPUu1MQ39+9KMfRVtbG958803cf//9uPjii7Fhw4bcz9PSj6XaeeKJJ6aiHwGgs7MTV1xxBdatW4eDDz64ZL0k+pSuHwBHHHEEDjzwwAINr7u7u0BbDJlDDz0UJ510En73u9/lTv+krc0u7WpoaMCePXvQ09NTsk6IjB49GmPGjMHvfvc7AGG18/LLL8eDDz6IRx99FMccc0yuPG39WaqdxQixPw866CD86Z/+KaZOnYqWlhZMnDgR//zP/5y6fizVzmKE2I/AB26b7u5uTJkyBSNGjMCIESOwYcMGfP/738eIESNysibRp1RU8MGgmzJlCtavX59Xvn79ekyfPr1MUsXP7t278dxzz2H06NEYO3YsGhoa8tq8Z88ebNiwIeg2u7RrypQpGDlyZF6d1157DVu2bAm67W+88QY6OzsxevRoAGG0M4oiXHbZZfjpT3+KRx55BGPHjs37eVr6c6h2FiPE/vwwURRh9+7dqenHUgy0sxih9uOZZ56JzZs3o62tLfdn6tSpuOiii9DW1objjjsuuT71CAJOJQPHk3/0ox9Fzz77bDR//vzo0EMPjV5++eVyi+bNggULosceeyx66aWXoqeeeio699xzo+rq6lybbrzxxqi2tjb66U9/Gm3evDn66le/GsTx5F27dkW//vWvo1//+tcRgGj58uXRr3/969xRcpd2ffOb34yOOeaY6OGHH46eeeaZ6IwzzjB3PHCwdu7atStasGBB1NraGm3fvj169NFHo2nTpkVHH310UO381re+FdXW1kaPPfZY3nHOd955J1cnDf05VDvT0J+LFi2KHn/88Wj79u3Rb37zm+i73/1udMABB0Tr1q2Loigd/RhFg7czDf04GPuf+omi5PqUisp+rFixIhozZkx00EEHRSeffHLe0cEQGTjTPnLkyKixsTGaM2dOtHXr1tzP9+3bF1177bVRQ0NDVFlZGZ166qnR5s2byyixG48++mgEoODPxRdfHEWRW7v6+/ujyy67LKqrq4uqqqqic889N+ro6ChDa0ozWDvfeeedaObMmdGRRx4ZjRw5Mmpubo4uvvjigjZYb2ex9gGI7rrrrlydNPTnUO1MQ3/+9V//dW79PPLII6Mzzzwzp6REUTr6MYoGb2ca+nEwPqyoJNWnFVEURWKbECGEEEJIAjBGhRBCCCFmoaJCCCGEELNQUSGEEEKIWaioEEIIIcQsVFQIIYQQYhYqKoQQQggxCxUVQgghhJiFigohhBBCzEJFhRBCCCFmoaJCCCGEELNQUSGEEEKIWaioEEIIIcQs/w+N0uH3qVPHuQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "z[:] = 0.0\n", + "uplift_rate = 0.0001\n", + "for i in range(4000):\n", + " ld.run_one_step(dt)\n", + " z[rmg.core_nodes] += dt * uplift_rate\n", + "imshow_grid(rmg, \"topographic__elevation\")\n", + "plt.figure()\n", + "plt.plot(rmg.x_of_node, z, \".\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(BONUS CHALLENGE QUESTION) Derive an analytical solution for the cross-sectional shape of your steady-state hillslope. Plot this solution next to the actual model's cross-section." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### SOLUTION (derivation)\n", + "\n", + "##### Derivation of the original governing equation\n", + "\n", + "(Note: you could just start with the governing equation and go from there, but we include this here for completeness).\n", + "\n", + "Consider a topographic profile across a hillslope. The horizontal coordinate along the profile is $x$, measured from the left side of the profile (i.e., the base of the hill on the left side, where $x=0$). The horizontal coordinate perpendicular to the profile is $y$. Assume that at any time, the hillslope is perfectly symmetrical in the $y$ direction, and that there is no flow of soil in this direction.\n", + "\n", + "Now consider a vertical column of soil somewhere along the profile. The left side of the column is at position $x$, and the right side is at position $x+\\Delta x$, with $\\Delta x$ being the width of the column in the $x$ direction. The width of the column in the $y$ direction is $W$. The height of the column, $z$, is also the height of the land surface at that location. Height is measured relative to the height of the base of the slope (in other words, $z(0) = 0$).\n", + "\n", + "The total mass of soil inside the column, and above the slope base, is equal to the volume of soil material times its density times the fraction of space that it fills, which is 1 - porosity. Denoting soil particle density by $\\rho$ and porosity by $\\phi$, the soil mass in a column of height $h$ is\n", + "\n", + "$m = (1-\\phi ) \\rho \\Delta x W z$.\n", + "\n", + "Conservation of mass dictates that the rate of change of mass equals the rate of mass inflow minus the rate of mass outflow. Assume that mass enters or leaves only by (1) soil creep, and (2) uplift of the hillslope material relative to the elevation of the hillslope base. The rate of the latter, in terms of length per time, will be denoted $U$. The rate of soil creep at a particular position $x$, in terms of bulk volume (including pores) per time per width, will be denoted $q_s(x)$. With this definition in mind, mass conservation dictates that:\n", + "\n", + "$\\frac{\\partial (1-\\phi ) \\rho \\Delta x W z}{\\partial t} = \\rho (1-\\phi ) \\Delta x W U + \\rho (1-\\phi ) q_s(x) - \\rho (1-\\phi ) q_s(x+\\Delta x)$.\n", + "\n", + "Assume that porosity and density are steady and uniform. Then,\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = U + \\frac{q_s(x) - q_s(x+\\Delta x)}{\\Delta x}$.\n", + "\n", + "Factoring out -1 from the right-most term, and taking the limit as $\\Delta x\\rightarrow 0$, we get a differential equation that expresses conservation of mass for this situation:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = U - \\frac{\\partial q_s}{\\partial x}$.\n", + "\n", + "Next, substitute the soil-creep rate law\n", + "\n", + "$q_s = -D \\frac{\\partial z}{\\partial x}$,\n", + "\n", + "to obtain\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = U + D \\frac{\\partial^2 z}{\\partial x^2}$.\n", + "\n", + "##### Steady state\n", + "\n", + "Steady means $dz/dt = 0$. If we go back to the mass conservation law a few steps ago and apply steady state, we find\n", + "\n", + "$\\frac{dq_s}{dx} = U$.\n", + "\n", + "If you think of a hillslope that slopes down to the right, you can think of this as indicating that for every step you take to the right, you get another increment of incoming soil via uplift relative to baselevel. (Turns out it works the same way for a slope that angles down the left, but that's less obvious in the above math)\n", + "\n", + "Integrate to get:\n", + "\n", + "$q_s = Ux + C_1$, where $C_1$ is a constant of integration.\n", + "\n", + "To evaluate the integration constant, let's assume the crest of the hill is right in the middle of the profile, at $x=L/2$, with $L$ being the total length of the profile. Net downslope soil flux will be zero at the crest (where the slope is zero), so for this location:\n", + "\n", + "$q_s = 0 = UL/2 + C_1$, \n", + "\n", + "and therefore,\n", + "\n", + "$C_1 = -UL/2$, \n", + "\n", + "and\n", + "\n", + "$q_s = U (x - L/2)$.\n", + "\n", + "Now substitute the creep law for $q_s$ and divide both sides by $-D$:\n", + "\n", + "$\\frac{dz}{dx} = \\frac{U}{D} (L/2 - x)$.\n", + "\n", + "Integrate:\n", + "\n", + "$z = \\frac{U}{D} (Lx/2 - x^2/2) + C_2$.\n", + "\n", + "To evaluate $C_2$, recall that $z(0)=0$ (and also $z(L)=0$), so $C_2=0$. Hence, here's our analytical solution, which describes a parabola:\n", + "\n", + "$\\boxed{z = \\frac{U}{2D} (Lx - x^2)}$." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to the bonus challenge question here)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGdCAYAAAA8F1jjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABvt0lEQVR4nO2deXQUxRbGv4EshJAEeAGSSAiL8lTAyKICKpsIRHYUEEWDIIoCiqDIIoqKRlF8KIoLsgrIKqACsm8+9CGBICACsiUIMYCQEJaw9fujnCxkknR1pqa7Z77fOXMy6ampuTU9XXX71l0cmqZpIIQQQgixICXMFoAQQgghpCCoqBBCCCHEslBRIYQQQohloaJCCCGEEMtCRYUQQgghloWKCiGEEEIsCxUVQgghhFgWKiqEEEIIsSx+ZgtghGvXruHYsWMICQmBw+EwWxxCCCGE6EDTNJw9exZRUVEoUUKfrcSWisqxY8cQHR1tthiEEEIIMUBKSgoqV66sq60tFZWQkBAAYqChoaEmS0MIIYQQPWRkZCA6Ojp7HdeDLRUV53ZPaGgoFRVCCCHEZsi4bdCZlhBCCCGWhYoKIYQQQiwLFRVCCCGEWBYqKoQQQgixLFRUCCGEEGJZqKgQQgghxLJQUSGEEEKIZaGiQgghhBDLQkWFEEIIIZaFigohhBBCLAsVFUIIIYRYFioqhBBCCLEstixKSAixMVlZwJ9/isfx40BGBnDuHJCZKR6XLgF+fkDJkuKvnx8QGgr8619AeLh4VKgAVK4sXiOEeDW8ygkh7kfTgJQUYNcuYPdu8fjtN+DQIeDkSfd8hp8fEBMD1KghHjffDNSrB9x+O1CmjHs+gxBiOlRUCCHFJysLSEwENm8G/vtf8TctreD2pUoBN9wAREUBZcsCwcFCuShTBggIAK5eBa5cyXmkpwsF59Qp8TctTXzmgQPikRuHQygt9esD99wDtGgB3HijOE4IsR1UVAghxjh0CFi2DFi6FFi3Drh4Me/r/v5AzZpArVo5jxtvFFs25csXT3G4dk1sG/3xh1BU/vhDWG8SE4Fjx4A9e8Rj5kzRPjoauO8+8WjbFihXzvhnE0I8ikPTNM1sIWTJyMhAWFgY0tPTERoaarY4hPgGmgbs3AnMng0sWQL8/nve1ytUAO6+WzwaNxYWjcBAz8uZmgps2wZs2QKsXw/89JPwe3Hi5wc0bw506QJ06gRERHheRkJ8FCPrNxUVQkjhHDoEfP21UFB27845XrKk2Fp54AHxqFXLmtsr58+L7ag1a4T1Z9eunNccDqBJE6B3b+DBB8UWFCFEGVRUCCHu4fJlYTWZOFFs6zgJCADatQO6dQNatxb+JXZj/35g0SJg4UJhdXESEgJ07y6UloYNral0EWJzqKgQQorHn38CX3wBTJokfEAAoEQJ4ZD6yCNA5872VE4KIjkZ+OorYMoU4ODBnON16wIvvCAUl4AA8+QjxMugokIIMcaePcC77wKzZokoGwCoVAl48kngqaeAKlXMlU81164BmzYJhWX+fODCBXE8MhIYMAB4+mmRx4UQUiyoqBBC5Ni6FUhIEFshzqng3nuB/v2F9cQXrQmnTgmr0oQJOVal0qXFd/LSS8JpmBBiCCPrN1PoE+KLJCUJB9g77gC++UYoKR07Aj//DGzc6NtbHv/6FzB8OHD4sNgWqltXOOS+9x5QrRowbJj7ktYRQoqEigohvsTBg8Cjj4rFd/lyEbnz2GMiEmbxYuCuu8yW0DoEBAA9e4rcLN9/L8Ktz50TW2TVqgGvvipS/hNClEJFhRBf4ORJYOBAkbF19mxx7OGHRS6UGTNEaDFxjcMhksT98ouIhKpbVygob74pEtpNnSp8XAghSqCiQog3c/Uq8OmnYkH9+GMRdtyqlbASfP21yBRL9OFwAB06iO9u/nygenXhw9K7N9CgAbBhg9kSEuKVUFEhxFv56SfgzjuBZ58FTp8GbrtNJD1bsUIU7yPGcDiAhx4SRRbfe09Udt6+HWjWTIRw//WX2RIS4lVQUSHE2/j7b6BPH5HGfts2ICxMRLAkJop8KMQ9BAYCL74o6gw984zIN/P112J7bdIkbgcR4iaoqBDiTSxeLPxNpkwR//fuDezbJ3KB+LEGqRIqVBAZfLdsEZaqM2dE7pmmTYXVhRBSLKioEOINnDghnGM7dxZF+W6+WdS3mTwZqFjRbOl8g/r1gf/9D/jPf0TNoB9/FI63Y8cKXyFCiCGoqBBidxYuBG69FZg7V4QbDxsmfCYaNzZbMt/Dzw8YNEhYUtq2FVWbX35ZWFcOHDBbOkJsCRUVQuzKuXMixf1DD4nw4zp1RMK2hASgVCmzpfNtqlQBvvtObMGFhAjrVmysyHhrv2TghJgKFRVC7Mi2bcIfYvJkEYUyfLhIh9+ggdmSEScOB/DEE8CvvwqLyrlzomZQp07C4ZkQogsqKoTYiWvXgPffBxo2FE6yN9wArF0LvP2276a8tzpVq4pzNG6cOEfffit8V37+2WzJCLEFVFQIsQtnzoi78ZdeEonbunQBduwQ+TuItSlRAhg8WCgnN94IJCeL4o/jxnEriJAioKJCiB3YsUNs63z3ncjf8dlnwIIFooAesQ9164p8Nt27A1euiDwsHTuKhHyEEJdIKyobN25E+/btERUVBYfDgcWLF+d53eFwuHy899572W2aNWuW7/WHH3642IMhxCv56iugUSMRNRITIxwzn35a+EAQ+xEaKhLDffqpUDq/+05kEGbOFUJcIq2onDt3DrGxsfj4449dvn78+PE8jylTpsDhcODBBx/M065v37552n3++efGRkCIt3L5skjU9vjjwIULQOvW4m68fn2zJSPFxeEA+vUTZQ5iYkR224YNhf8KISQP0qkq4+LiEBcXV+DrERERef5fsmQJmjdvjurVq+c5Xrp06XxtCSH/cOYM0LUrsHq1+P/VV8WjZElTxSJupm5dUZW5Wzdg/XqxDfTGG8DIkcKvhRCi1kflr7/+wtKlS9GnT598r82aNQvh4eGoVasWXnzxRZw9e7bAfrKyspCRkZHnQYjX4ry7Xr1aZDhdvBh4/XUqKd5KhQrAypXCegYIhbR7d2FFI4SoVVSmT5+OkJAQdOnSJc/xRx99FF9//TXWr1+PUaNGYeHChfna5CYhIQFhYWHZj+joaJViE2IeGzYAd90F7N0LREeLNOwdO5otFVGNv78oHPnll+L5ggWigOSJE2ZLRojpODTNeGycw+HAokWL0KlTJ5ev33zzzbj//vsxYcKEQvtJTExEgwYNkJiYiHouys9nZWUhKysr+/+MjAxER0cjPT0doaGhRsUnxFrMmCEyzV6+LJwrlywBuD3qe2zalBMJVKMGsHw5cNNNZktFiFvIyMhAWFiY1PqtzKKyadMm7N27F08++WSRbevVqwd/f3/s37/f5euBgYEIDQ3N8yDEa9A04N13gfh4oaR07y78Faik+Cb33gts3gxUqyYivRo1EpFehPgoyhSVyZMno379+oiNjS2y7e7du3H58mVERkaqEocQa3LtGvDCC6KQICCSuc2eDQQFmSsXMZebbxYRQXfcAZw6Bdx3nyg+SYgP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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "L = 390.0 # hillslope length, m\n", + "x_analytic = np.arange(0.0, L)\n", + "z_analytic = 0.5 * (uplift_rate / D) * (L * x_analytic - x_analytic * x_analytic)\n", + "plt.plot(rmg.x_of_node, z, \".\")\n", + "plt.plot(x_analytic, z_analytic, \"r\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hey, hang on a minute, that's not a very good fit! What's going on? \n", + "\n", + "Turns out our 2D hillslope isn't as tall as the idealized 1D profile because of the boundary conditions: with soil free to flow east and west as well as north and south, the crest ends up lower than it would be if it were perfectly symmetrical in one direction.\n", + "\n", + "So let's try re-running the numerical model, but this time with the north and south boundaries closed so that the hill shape becomes uniform in the $y$ direction:" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0dcWqoI+aRg6dKgcDoe3jR49WtLn/+BeeOEFPfHEE1q8eLFSUlK0c+dOXb58WXv37g1w1AAA+Edubq7uvPNORUdHKyEhQffdd58++OADnz7Lly/vUJmfNm2a32MJ+qShoqJCLpdLycnJevDBB/XRRx9JkiorK1VTU6P09HRvX7vdrnvuuUcnTpzo9poej0f19fU+DQCAngRieKKoqEirV6/WyZMnVVhYqKtXryo9PV1NTU0+/ebPn+9TmT948KA/b11SkK+emDp1qnbt2qXx48fr008/1TPPPKMZM2bozJkzqqmpkSQlJib6fCcxMVEff/xxt9fNzc3V008/3W9xAwAGp0DsCHno0CGfz9u3b1dCQoJKS0t19913e4/b7XafeX/9IagrDRkZGVqyZIlSU1M1Z84cHThwQJK0c+dObx+bzebzHcuyOhy73oYNG1RXV+dtVVVV/g8eAIBuXF/x9ng8Rt+rq6uTJMXFxfkcP3r0qBISEjR+/HitXLlStbW1fo85qJOG640YMUKpqamqqKjwZlPXKg7X1NbWdqg+XM9utysmJsanAQDQE39OhHS73YqNjfW23Nxco99fu3at7rrrLqWkpHiPZ2RkaM+ePTpy5Ig2b96s4uJizZo1yzgRMRXUwxPX83g8+tOf/qRvfOMbSk5OlsPhUGFhoSZNmiRJamlpUVFRkX72s58FOFIAwGDkz+GJqqoqn/9otdvtPX53zZo1eu+993T8+HGf48uWLfP+OSUlRVOmTFFSUpIOHDigxYsX9yneLwrqpGH9+vVauHChxo4dq9raWj3zzDOqr69XZmambDabsrOztWnTJo0bN07jxo3Tpk2bNHz4cD388MOBDh0AgG71ttKdlZWl119/XceOHdOYMWO67et0OpWUlKSKioq+hukjqJOG8+fP66GHHtJnn32m0aNHa9q0aTp58qSSkpIkSY899piam5u1atUqXbx4UVOnTtVbb72l6OjoAEcOABiMAjER0rIsZWVlad++fTp69KiSk5N7/M6FCxdUVVUlp9N5o2F2KqiThoKCgm7P22w25eTkKCcnZ2ACAgCENcuyZLW39/kavbF69Wrt3btXr732mqKjo71z+WJjYxUVFaXGxkbl5ORoyZIlcjqdOnv2rDZu3Kj4+Hjdf//9fYr1ekGdNAAAEEwCUWnYunWrJCktLc3n+Pbt27V8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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rmg = RasterModelGrid((40, 40), 10)\n", + "z = rmg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "rmg.set_closed_boundaries_at_grid_edges(False, True, False, True) # closed on N and S\n", + "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n", + "for _ in range(4000):\n", + " ld.run_one_step(dt)\n", + " z[rmg.core_nodes] += dt * uplift_rate\n", + "rmg.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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p3r16oSFheU55szMTJYvX+7Wx1yY42rUqBH+/v55tklKSmLTpk1ufeyHDx8mMTGR8PBwwD2O0zAMhg4dyrfffstPP/1E9erV86z3lPN5sePMjzuez3MZhkFGRobHnMeC5B5nftz1PN52221s3LiR+Ph4+9S4cWP69OlDfHw8V1xxRcmd02I0AvZIuY8nT5kyxdiyZYsxfPhwIygoyEhISLA6WrGNHDnSWLZsmbFz505j9erVRocOHYzg4GD7MU2YMMEIDQ01vv32W2Pjxo1G79693eLx5OPHjxsbNmwwNmzYYADGa6+9ZmzYsMH+KHlhjmvIkCFG1apVjcWLFxvr1683br31Vpd7PPBCx3n8+HFj5MiRxsqVK41du3YZS5cuNZo3b25UqVLFrY7zwQcfNEJDQ41ly5bleZzzxIkT9m084Xxe7Dg94XyOHj3aWLFihbFr1y7jzz//NJ566inDx8fHWLhwoWEYnnEeDePCx+kJ5/FCzn7qxzBK7pyqUDnLu+++a0RFRRkBAQFGw4YN8zw66I5yn2n39/c3IiIijK5duxqbN2+2r8/JyTHGjh1rhIWFGYGBgcbNN99sbNy40cLEhbN06VIDOG/q37+/YRiFO66TJ08aQ4cONcqXL2+ULl3a6NChg7Fnzx4LjqZgFzrOEydOGG3atDEqVqxo+Pv7G9WqVTP69+9/3jG4+nHmd3yAMXXqVPs2nnA+L3acnnA+Bw4caH//rFixonHbbbfZixTD8IzzaBgXPk5POI8Xcm6hUlLn1GYYhlHka0IiIiIiJUBtVERERMRlqVARERERl6VCRURERFyWChURERFxWSpURERExGWpUBERERGXpUJFREREXJYKFREREXFZKlRERETEZalQEREREZelQkVERERclgoVERERcVn/D+0DQ7UoO3ZKAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(rmg.x_of_node, z, \".\")\n", + "plt.plot(x_analytic, z_analytic, \"r\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's more like it!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Congratulations on making it to the end of this tutorial!\n", + "\n", + "**Click here for more** Landlab tutorials" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/lessons/landlab/landlab/landlab-fault-scarp-for-espin.ipynb b/lessons/landlab/landlab/landlab-fault-scarp-for-espin.ipynb new file mode 100644 index 0000000..665d52a --- /dev/null +++ b/lessons/landlab/landlab/landlab-fault-scarp-for-espin.ipynb @@ -0,0 +1,2039 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "toc" + ] + }, + "source": [ + "# Table of Contents\n", + "* [Introduction to Landlab: Creating a simple 2D scarp diffusion model](#Introduction-to-Landlab:-Creating-a-simple-2D-scarp-diffusion-model)\n", + " * [Part 1: 1D version using numpy](#Part-1:-1D-version-using-numpy)\n", + " * [Part 2: 2D version using Landlab's Model Grids](#Part-2:-2D-version-using-Landlab's-Model-Grids)\n", + " * [(a) Explore the RasterModelGrid](#(a)-Explore-the-RasterModelGrid)\n", + " * [Exercises for section 2a](#Exercises-for-section-2a)\n", + " * [(b) Use the RasterModelGrid for 2D diffusion](#(b)-Use-the-RasterModelGrid-for-2D-diffusion)\n", + " * [Exercises for section 2b](#Exercises-for-section-2b)\n", + " * [(c) What's going on under the hood?](#(c)-What's-going-on-under-the-hood?)\n", + " * [Exercises for section 2c](#Exercises-for-section-2c)\n", + " * [Part 3: Hexagonal grid](#Part-3:-Hexagonal-grid)\n", + " * [Exercises for section 3](#Exercises-for-section-3)\n", + " * [Part 4: Landlab Components](#Part-4:-Landlab-Components)\n", + " * [Exercises for section 4](#Exercises-for-section-4)\n", + " * [SOLUTION (derivation)](#SOLUTION-(derivation))\n", + " * [Derivation of the original governing equation](#Derivation-of-the-original-governing-equation)\n", + " * [Steady state](#Steady-state)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to Landlab: Creating a simple 2D scarp diffusion model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "For more Landlab tutorials, click here: https://landlab.readthedocs.io/en/latest/user_guide/tutorials.html\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tutorial illustrates how you can use Landlab to construct a simple two-dimensional numerical model on a regular (raster) grid, using a simple forward-time, centered-space numerical scheme. The example is the erosional degradation of an earthquake fault scarp, and which evolves over time in response to the gradual downhill motion of soil. Here we use a simple \"geomorphic diffusion\" model for landform evolution, in which the downhill flow of soil is assumed to be proportional to the (downhill) gradient of the land surface multiplied by a transport coefficient.\n", + "\n", + "We start by importing the [numpy](https://numpy.org) and [matplotlib](https://matplotlib.org) libraries:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 1: 1D version using numpy\n", + "\n", + "This example uses a finite-volume numerical solution to the 2D diffusion equation. The 2D diffusion equation in this case is derived as follows. Continuity of mass states that:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla \\cdot \\mathbf{q}_s$,\n", + "\n", + "where $z$ is elevation, $t$ is time, the vector $\\mathbf{q}_s$ is the volumetric soil transport rate per unit width, and $\\nabla$ is the divergence operator (here in two dimensions). (Note that we have omitted a porosity factor here; its effect will be subsumed in the transport coefficient). The sediment flux vector depends on the slope gradient:\n", + "\n", + "$\\mathbf{q}_s = -D \\nabla z$,\n", + "\n", + "where $D$ is a transport-rate coefficient---sometimes called *hillslope diffusivity*---with dimensions of length squared per time. Combining the two, and assuming $D$ is uniform, we have a classical 2D diffusion equation:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla^2 z$.\n", + "\n", + "In this first example, we will create a our 1D domain in $x$ and $z$, and set a value for $D$.\n", + "\n", + "This means that the equation we solve will be in 1D. \n", + "\n", + "$\\frac{d z}{d t} = \\frac{d q_s}{dx}$,\n", + "\n", + "where \n", + "\n", + "$q_s = -D \\frac{d z}{dx}$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "dx = 1\n", + "x = np.arange(0, 100, dx, dtype=float)\n", + "z = np.zeros(x.shape, dtype=float)\n", + "D = 0.01" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we must create our fault by uplifting some of the domain. We will increment all elements of `z` in which `x>50`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "z[x > 50] += 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will diffuse our fault for 1,000 years.\n", + "\n", + "We will use a timestep with a [Courant–Friedrichs–Lewy condition](https://en.wikipedia.org/wiki/Courant–Friedrichs–Lewy_condition) of $C_{cfl}=0.2$. This will keep our solution numerically stable. \n", + "\n", + "$C_{cfl} = \\frac{\\Delta t D}{\\Delta x^2} = 0.2$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABC+UlEQVR4nO3deXxU9b3/8ddkkkz2AEEyiQQIEoQalM0NbMEF0IrW61rFhVZ7cUGJKCjFJVBJBG+RVn6iUiv0KuJtRatWgbhhFa0YQBGQzbBpYgRCEgkkZOb8/hjmkBCWLDOZMznv5+ORx0zOnJzzzXlkknc+3+U4DMMwEBEREbGQiFA3QERERORICigiIiJiOQooIiIiYjkKKCIiImI5CigiIiJiOQooIiIiYjkKKCIiImI5CigiIiJiOZGhbkBzeL1evv/+exITE3E4HKFujoiIiDSCYRhUVlaSnp5ORMTxayRhGVC+//57MjIyQt0MERERaYYdO3bQuXPn4+4TlgElMTER8H2DSUlJIW6NiIiINEZFRQUZGRnm3/HjCcuA4u/WSUpKUkAREREJM40ZnqFBsiIiImI5CigiIiJiOQooIiIiYjlhOQalMQzDoLa2Fo/HE+qmSBvldDqJjIzUVHcRkSBokwGlpqaG4uJiqqqqQt0UaePi4uJIS0sjOjo61E0REWlT2lxA8Xq9FBUV4XQ6SU9PJzo6Wv/hSsAZhkFNTQ0//vgjRUVFZGVlnXDRIRERabw2F1Bqamrwer1kZGQQFxcX6uZIGxYbG0tUVBTbtm2jpqaGmJiYUDdJRKTNaLP/8um/WWkN+jkTEQkO/XYVERERy2lyQPnoo4+47LLLSE9Px+Fw8Prrr9d73TAMcnNzSU9PJzY2lqFDh7J27dp6+1RXV3P33XfTsWNH4uPjufzyy9m5c2eLvhGBrVu34nA4WL16daO/Zt68ebRr1y7k7Qik3NxcUlNTzZ/P0aNHc8UVV5ivDx06lJycnJC0TUREGqfJAWXfvn2cccYZzJ49+6ivz5gxg5kzZzJ79mxWrFiB2+1m2LBhVFZWmvvk5OTw2muvsXDhQj7++GN++uknRo4cqSnB+O4vdOutt5oDfLt27cq4cePYvXv3Cb82IyOD4uJisrOzG32+6667jo0bN7akyc0ydOhQHA4HDocDl8tFz549ycvLa/HPwPr165kyZQrPPvssxcXFXHLJJfzpT39i3rx5gWm4iIi0iiYPkr3kkku45JJLjvqaYRjMmjWLyZMnc+WVVwIwf/58UlNTWbBgAWPGjKG8vJznn3+e//3f/+Wiiy4C4MUXXyQjI4N3332XESNGtODbCW/ffvst5557Lj179uTll18mMzOTtWvXMmHCBN555x0+++wzOnTocNSvrampITo6Grfb3aRzxsbGEhsbG4jmN9nvfvc7pk6dyoEDB3jrrbe45557cDqdPPDAAw329X9/J7JlyxYAfvWrX5mzt1wuV2AbLiIiQRfQWTxFRUWUlJQwfPhwc5vL5WLIkCEsX76cMWPGUFhYyMGDB+vtk56eTnZ2NsuXLz9qQKmurqa6utr8vKKiIpDNtoy77rqL6Oholi5daoaGLl260K9fP0455RQmT57MnDlzAOjWrRu33XYbmzdv5rXXXuOKK65gypQpZGZmsmrVKvr27QvAG2+8wX333cfOnTs555xzGD16NKNHj6asrIx27doxb948cnJy2Lt3L+DrHnn99de57777ePjhhykrK+OSSy5h7ty55t0nFy9ezGOPPcbXX3+N0+nk3HPP5U9/+hOnnHJKk77fuLg4M1CNHTuWf/7zn7z++us88MADjB49mr1793L22Wfz1FNPER0dzdatW1mzZg3jxo3j008/JS4ujquuuoqZM2eSkJBAbm4uU6ZMAQ4PXjUMwzzWkd2RfjU1NTz00EO89NJL7N27l+zsbKZPn87QoUOb9P1I8BVu28O/virBwAh1U4LL8BJXW05c7V5c3iqiPfuJ9lYR7aki0qjB6T2I06jFaRzEaRwkwvDiwEuE4cGBgcPw4sAADByG7xGg/oILbfwaSsvFncQ5o/NCdvqABpSSkhIAUlNT621PTU1l27Zt5j7R0dG0b9++wT7+rz9Sfn6++YenOQzDYP/B0HQfxUY5G7UOy549e1iyZAnTpk1rUNFwu92MGjWKV155haeffto83hNPPMHDDz/MQw89dNRjbt26lauvvppx48Zx2223sWrVKu6///4TtmXLli28/vrrvPXWW5SVlXHttdfy+OOPM23aNMDXzTd+/Hj69OnDvn37eOSRR/iv//ovVq9e3aJZLbGxsZSVlZmfv/feeyQlJVFQUIBhGFRVVXHxxRdzzjnnsGLFCkpLS7ntttsYO3Ys8+bN4/7776dbt278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YdTfoZ2qbyItpYDSxm3atInHHnuMPXv20KVLF+677z4mTZoU6maJNIvlung2LIaFN4DhgcwhcN3/QkyYTH8WsTgFlDbuySef5Mknnwx1M0RazDAMDuUTawySLdsGr/23L5ycfh1cPhsiT3y/KBFpnOavSy4i0or81ROwQAWltgb+8VvfrJ2TByqciASBAoqIhIXaOgEl5BWU96bAd1/4unOueUHhRCQIFFBEJCx4DYtUUL75F3x6aGr7Fc9obRORIFFAEZGwULeLJ6KZCw22WNk2eP0O3/Nzx0KvX4amHSI2oIAiImEh5GNQvF549TbfuJPOZ8JFua3fBhEbUUARkbBQN6CEZB2U9W/Azs8hOhGu/is4o078NSLSbAooYcrhcPD666+bn3/zzTecc845xMTE0Ldv32NuC4WhQ4eSk5MTknN/8skn9OnTh6ioKK644go+/PBDHA4He/fuBWDevHm0a9cuJG2TpjHvw+No/r2kms3rgQ/yfM/PvUvjTkRagQKKhYwePRqHw4HD4SAqKorU1FSGDRvGX//6V7yH7uLqV1xczCWXXGJ+/uijjxIfH8+GDRt47733jrnNiubNm2d+3w6Hg7S0NK699lqKiopafOzx48fTt29fioqKmDdvHoMGDaK4uJjkZC2mFW48RghXkV3zD9i1AWLb+276JyJBp4BiMRdffDHFxcVs3bqVd955h/PPP59x48YxcuRIamtrzf3cbne9G/5t2bKF8847j65du5KSknLMbVaVlJREcXEx33//PQsWLGD16tVcfvnleDyeBvsahlHvWhzPli1buOCCC+jcuTPt2rUjOjoat9vd+v+BS4vVekIUUDwH4cN83/PB47RSrEgrUUCxGJfLhdvt5uSTT6Z///78/ve/55///CfvvPOOecdoqN/F43A4KCwsZOrUqebdpI+27cjuDYDVq1fjcDjYunUrANu2beOyyy6jffv2xMfHc9ppp/H222+b+69bt45f/vKXJCQkkJqayk033cSuXbvM1/ft28fNN99MQkICaWlp/PGPf2zU9+1wOHC73aSlpXH++efz6KOP8vXXX7N582az3UuWLGHgwIG4XC7+/e9/U11dzT333EOnTp2IiYnhvPPOY8WKFQBs3boVh8PB7t27+e1vf4vD4WDevHlHvQZHevPNNxkwYAAxMTF0796dKVOmNDoQSfD4pxk7Wztcrn4Jyoog/iQ4679b99wiNmaPgGIYULMvNB8BuFn0BRdcwBlnnMGiRYuO+npxcTGnnXYa9913H8XFxdx///1H3dYYd911F9XV1Xz00UesWbOG6dOnk5CQYJ5nyJAh9O3bly+++ILFixfzww8/cO2115pfP2HCBD744ANee+01li5dyocffkhhYWGTv+fY2FgADh48aG6bOHEi+fn5rF+/ntNPP52JEyfy6quvMn/+fFauXEmPHj0YMWIEe/bsISMjg+LiYpKSkpg1axbFxcVcd911JzzvkiVLuPHGG7nnnntYt24dzz77LPPmzWPatGlN/h4ksGpDcaPAgwdg2Qzf85/fB9HxrXduEZuzx714DlZBXnpozv377wPyS61Xr1589dVXR33N7XYTGRlJQkICbrcbgISEhAbbGmP79u1cddVV9OnTB4Du3bubr82ZM4f+/fuTl5dnbvvrX/9KRkYGGzduJD09neeff56//e1vDBs2DID58+fTuXPnJn2vO3fu5IknnqBz58707NnTrNBMnTrVPO6+ffuYM2cO8+bNM8fizJ07l4KCAp5//nkmTJhgduUkJyc3+hpMmzaNBx98kFtuucX8/v/whz8wceJEHn300SZ9HxJY3lAElJXzoeI7SEyHAb9pvfOKiE0CShtgGEarjJu45557uOOOO1i6dCkXXXQRV111FaeffjoAhYWFfPDBB2ZFpa4tW7awf/9+ampqOPfcc83tHTp04NRTTz3hecvLy0lISMAwDKqqqujfvz+LFi0iOvrwEuIDBw6sd76DBw8yePBgc1tUVBRnnXUW69evb9b3Dr7vccWKFfUqJh6PhwMHDlBVVUVcXFyzjy0t0+oVlJoq+Oh/fM+HTIComNY5r4gAdgkoUXG+Skaozh0A69evJzMzs0XHiIjw9egZdbqd6nahANx2222MGDGCf/3rXyxdupT8/Hz++Mc/cvfdd+P1ernsssuYPn16g2OnpaWxadOmZrctMTGRlStXEhERQWpqKvHxDatOdbf5v4cjQ1tLg5zX62XKlClceeWVDV6LidEfqFDytHZAKZwH+0qhXVfoe2PrnFNETPYIKA5HWPcdv//++6xZs4Z77723Rcc56aSTAN9Ykvbt2wO+QbJHysjI4Pbbb+f2229n0qRJzJ07l7vvvpv+/fvz6quv0q1bNyIjG/7o9OjR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JzExEYfDEdBjV1RUkJGRwY4dO3SfnyDTtW49utatR9e69ehat55AXWvDMKisrCQ9PZ2IiOOPMgnLCkpERASdO3cO6jmSkpL0A99KdK1bj65169G1bj261q0nENf6RJUTPw2SFREREctRQBERERHLUUA5gsvl4tFHH8XlcoW6KW2ernXr0bVuPbrWrUfXuvWE4lqH5SBZERERadtUQRERERHLUUARERERy1FAEREREctRQBERERHLUUCp4+mnnyYzM5OYmBgGDBjAv//971A3Kezl5+dz5plnkpiYSKdOnbjiiivYsGFDvX0MwyA3N5f09HRiY2MZOnQoa9euDVGL2478/HwcDgc5OTnmNl3rwPnuu++48cYbSUlJIS4ujr59+1JYWGi+rmsdGLW1tTz00ENkZmYSGxtL9+7dmTp1Kl6v19xH17r5PvroIy677DLS09NxOBy8/vrr9V5vzLWtrq7m7rvvpmPHjsTHx3P55Zezc+fOljfOEMMwDGPhwoVGVFSUMXfuXGPdunXGuHHjjPj4eGPbtm2hblpYGzFihPHCCy8YX3/9tbF69Wrj0ksvNbp06WL89NNP5j6PP/64kZiYaLz66qvGmjVrjOuuu85IS0szKioqQtjy8Pb5558b3bp1M04//XRj3Lhx5nZd68DYs2eP0bVrV2P06NHGf/7zH6OoqMh49913jc2bN5v76FoHxmOPPWakpKQYb731llFUVGT8/e9/NxISEoxZs2aZ++haN9/bb79tTJ482Xj11VcNwHjttdfqvd6Ya3v77bcbJ598slFQUGCsXLnSOP/8840zzjjDqK2tbVHbFFAOOeuss4zbb7+93rZevXoZDz74YIha1DaVlpYagLFs2TLDMAzD6/UabrfbePzxx819Dhw4YCQnJxvPPPNMqJoZ1iorK42srCyjoKDAGDJkiBlQdK0D54EHHjDOO++8Y76uax04l156qfHb3/623rYrr7zSuPHGGw3D0LUOpCMDSmOu7d69e42oqChj4cKF5j7fffedERERYSxevLhF7VEXD1BTU0NhYSHDhw+vt3348OEsX748RK1qm8rLywHo0KEDAEVFRZSUlNS79i6XiyFDhujaN9Ndd93FpZdeykUXXVRvu6514LzxxhsMHDiQa665hk6dOtGvXz/mzp1rvq5rHTjnnXce7733Hhs3bgTgyy+/5OOPP+aXv/wloGsdTI25toWFhRw8eLDePunp6WRnZ7f4+oflzQIDbdeuXXg8HlJTU+ttT01NpaSkJEStansMw2D8+PGcd955ZGdnA5jX92jXftu2ba3exnC3cOFCVq5cyYoVKxq8pmsdON9++y1z5sxh/Pjx/P73v+fzzz/nnnvuweVycfPNN+taB9ADDzxAeXk5vXr1wul04vF4mDZtGtdffz2gn+tgasy1LSkpITo6mvbt2zfYp6V/PxVQ6nA4HPU+NwyjwTZpvrFjx/LVV1/x8ccfN3hN177lduzYwbhx41i6dCkxMTHH3E/XuuW8Xi8DBw4kLy8PgH79+rF27VrmzJnDzTffbO6na91yr7zyCi+++CILFizgtNNOY/Xq1eTk5JCens4tt9xi7qdrHTzNubaBuP7q4gE6duyI0+lskPZKS0sbJEdpnrvvvps33niDDz74gM6dO5vb3W43gK59ABQWFlJaWsqAAQOIjIwkMjKSZcuW8ec//5nIyEjzeupat1xaWho/+9nP6m3r3bs327dvB/RzHUgTJkzgwQcf5Ne//jV9+vThpptu4t577yU/Px/QtQ6mxlxbt9tNTU0NZWVlx9ynuRRQgOjoaAYMGEBBQUG97QUFBQwaNChErWobDMNg7NixLFq0iPfff5/MzMx6r2dmZuJ2u+td+5qaGpYtW6Zr30QXXngha9asYfXq1ebHwIEDGTVqFKtXr6Z79+661gEyePDgBtPlN27cSNeuXQH9XAdSVVUVERH1/1Q5nU5zmrGudfA05toOGDCAqKioevsUFxfz9ddft/z6t2iIbRvin2b8/PPPG+vWrTNycnKM+Ph4Y+vWraFuWli74447jOTkZOPDDz80iouLzY+qqipzn8cff9xITk42Fi1aZKxZs8a4/vrrNUUwQOrO4jEMXetA+fzzz43IyEhj2rRpxqZNm4yXXnrJiIuLM1588UVzH13rwLjllluMk08+2ZxmvGjRIqNjx47GxIkTzX10rZuvsrLSWLVqlbFq1SoDMGbOnGmsWrXKXGKjMdf29ttvNzp37my8++67xsqVK40LLrhA04wD7f/9v/9ndO3a1YiOjjb69+9vToWV5gOO+vHCCy+Y+3i9XuPRRx813G634XK5jF/84hfGmjVrQtfoNuTIgKJrHThvvvmmkZ2dbbhcLqNXr17Gc889V+91XevAqKioMMaNG2d06dLFiImJMbp3725MnjzZqK6uNvfRtW6+Dz744Ki/o2+55RbDMBp3bffv32+MHTvW6NChgxEbG2uMHDnS2L59e4vb5jAMw2hZDUZEREQksDQGRURERCxHAUVEREQsRwFFRERELEcBRURERCxHAUVEREQsRwFFRERELEcBRURERCxHAUVEREQsRwFFRERELEcBRURERCxHAUVEREQsRwFFRERELOf/A6KY1/puwJOMAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "dt = 0.2 * dx * dx / D\n", + "total_time = 1e3\n", + "n_steps = int(total_time / dt)\n", + "z_orig = z.copy()\n", + "for _ in range(n_steps):\n", + " qs = -D * np.diff(z) / dx\n", + " dzdt = -np.diff(qs) / dx\n", + " z[1:-1] += dzdt * dt\n", + "\n", + "plt.plot(x, z_orig, label=\"Original Profile\")\n", + "plt.plot(x, z, label=\"Diffused Profile\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The prior example is pretty simple. If this was all you needed to do, you wouldn't need Landlab. \n", + "\n", + "But what if you wanted...\n", + "\n", + "... to use the same diffusion model in 2D instead of 1D.\n", + "\n", + "... to use an irregular grid (in 1 or 2D). \n", + "\n", + "... wanted to combine the diffusion model with a more complex model. \n", + "\n", + "... have a more complex model you want to use over and over again with different boundary conditions.\n", + "\n", + "These are the sorts of problems that Landlab was designed to solve. \n", + "\n", + "In the next two sections we will introduce some of the core capabilities of Landlab. \n", + "\n", + "In Part 2 we will use the RasterModelGrid, fields, and a numerical utility for calculating flux divergence. \n", + "\n", + "In Part 3 we will use the HexagonalModelGrid. \n", + "\n", + "In Part 4 we will use the LinearDiffuser component. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 2: 2D version using Landlab's Model Grids\n", + "\n", + "The Landlab model grids are data structures that represent the model domain (the variable `x` in our prior example). Here we will use `RasterModelGrid` which creates a grid with regularly spaced square grid elements. The RasterModelGrid knows how the elements are connected and how far apart they are.\n", + "\n", + "Lets start by creating a RasterModelGrid class. First we need to import it. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from landlab import RasterModelGrid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### (a) Explore the RasterModelGrid\n", + "\n", + "Before we make a RasterModelGrid for our fault example, lets explore the Landlab model grid. \n", + "\n", + "Landlab considers the grid as a \"dual\" graph. Two sets of points, lines and polygons that represent 2D space. \n", + "\n", + "The first graph considers points called \"nodes\" that are connected by lines called \"links\". The area that surrounds each node is called a \"cell\".\n", + "\n", + "First, the nodes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from landlab.plot.graph import plot_graph\n", + "\n", + "grid = RasterModelGrid((4, 5), xy_spacing=(3, 4))\n", + "plot_graph(grid, at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that the nodes are points and they are numbered with unique IDs from lower left to upper right. \n", + "\n", + "Next the links" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xEZaBUsCOHcDEicBddwFhYYCfHxAdDTz6KLBli+XtDh4EXn8d6NwZqFIF8PUFqlUDuncH1q516ldwObaW6ZYtwJgxwN13A9WrA/7+QHAw0KoV8OabQEaGU7+GS7G1TC358EPAYJBhxAiHhewWbC3XadPMZVjScOyYM7+J67DHvrpyJfDgg0BEhBwHqleXn//3P5sC8mxGo1EBUEaj0artIiOVMpXO5s0yDSjl5aVUgwZKtWihVMWK5vlTphTe/tQp8zJAqbp1lWrVSqlKlczzhgxRKi/PPt/THaxZI997zhzbylQppQYOlGU+PkrVqqVU69ZK1a6tlMFgLudz55z+1TRlKi9by7SotDSlwsPN2wwf7vjv4GpM310p28t16lRZVrOmUh06WB70tK+OGSPlsXu39WVa8DielaXUQw+Z16tXT6k2baScvbzkOGstJsISFEyEcXFK3XabUgsWKHX5snmd7GylJk82/0E2bDAvO3lSqagopWbPViolxTw/L0+pDz4wH7g/+KAcX87NFEyEtpSpUkp99ZVS33+v1LVrhecfOaJU06ayTY8ejv8ursRUVraWaVEDB8oBpWdPJkKlbC9XUyKcOtVZUbu2gonQ2jIteBx/4glZ1qmTUseOFf4daWlK/fCD9bExEZagYCI0GpXKySl53e7dZd2HHjLPu35dqczMkrcZOVK2adrUqrDcWsFEaEuZlmbvXtnG21vKXy9MBw17lGlcnKzz3HPmA7neE6Gt5cpEWFjBRGhtmZqO46tXX1WAUg0bFj8ZLg/eIyyDkBDAx6fk5V27yvjECfO8gAAgKKjkbbp1K76NnthSpqVp2FDGeXlAdrbtsbmr8pZpVhbw3HNyH3vWLPvH564csa/qna1lumCBPwBgyhQgMNB+8dwiFCqrrCwZW/OHsWUbPbGlfHbtknG9ekBoqP1jcnellemMGcCpU8Cnn0rjBSqb0sp1yxbgyBHg0iUgPBxo2xYYPBiIjHRejO7GcpkGYNs2bxgMQM+e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SpL1ExPN1yvh4Uq1bKlUixZKValinl+/vlKnTllZKG5szRr53nPmyM/WlumtTJ0q2w4f7tCv4JJM+5NS1pfpwYPm7atWVapVKxmCgszzhw9XKj9fs6+niYJlqpTt++r69Ur5+cm6ERFKtWmjVGioedsffnDq19LUmDHyvXfvlp+tKVOj0VjoOL5zp6zr66vUX3+VPzarrwhXr16NP/74A6NHj8aqVatQp04ddO/eHV999RVycnLskJrNzpw5g4ULFyImJgY//PADRo4ciTFjxuAzS3UN/4iNjUVoaOjNoaapor6ccnKkqa5pMPUPeu1a4fmmG9+RkcB//yuvYKlSReqzDx+WG7r33Qf85z/ysxtc3DqMtWVKpbO2TOvUkXdjdu8uVy/Hj8t+GR4O9OsnrZpN73vUM1v31d69gf375VEJg0Gq9ytUkKb+Bw7ou9Pt8vz/m6pFbe1SrSiDUuW7m3Lw4EH873//w4cffoiKFSti0KBBeP755xETE1Pu4Pz8/NC6dWvs3Lnz5rwxY8Zg37592GW6S1pEdnY2sgv0Yp2eno6aNWvCaDSW+PoOS6Ki5J1hvNdkP2vXynOTc+ZItRHZhylJcV+1H5ap/Y0dKxcAu3cD7dpZt216ejpCQ0OtPo6XVbkay1y4cAGbNm3Cpk2b4O3tjR49euDIkSNo3Lgx3nvvvXIHFxUVhcaNGxea16hRIyQlJZW4jb+/P0JCQgoNREREJbE6Eebk5GD16tXo1asXateujVWrVmH8+PG4cOECPv30U2zatAlLly7F9OnTyx1chw4dcPz48ULzTpw4gdq1a5f7s4mIiAAb3j4RFRWF/Px8PPHEE9i7dy+aW2j7/69//csujziMHz8e7du3x6xZs9C/f3/s3bsXixcvxuLFi8v92URERIANifC9997DY489hoBb9G5aqVIlJCYmliswAGjTpg3Wrl2LyZMnY/r06ahbty7mzZuHgQMHlvuziYiIABsS4ZN2eWij7Hr16oVevXo59XcSEZF+uHTPMkRERI7GREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrGREhERLrG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AgJUvXr11Kuvvqqys7O1Ds1mW7Zssfi/N2TIEKWUPEIxdepUFRkZqfz9/VWnTp3U4cOHtQ3aSrf6jomJiSUef7Zs2aJZzHwNExER6RrvERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERIRka4xERK5ob/++guRkZE3X8wLAHv27IGfnx82bdqkYWRE7oedbhO5qe+++w59+/bFzp070bBhQ7Ro0QI9e/bEvHnztA6NyK0wERK5sVGjRmHz5s1o06YNDh06hH379iEgIEDrsIjcChMhkRu7fv06mjRpguTkZOzfvx9NmzbVOiQit8N7hERu7MyZM0hJSUF+fj7OnTundThEbolXhERu6saNG2jbti2aN2+Ohg0bYu7cuTh8+DAiIiK0Do3IrTARErmpiRMn4quvvsKhQ4dQsWJF3HvvvQgODsY333yjdWhEboVVo0RuaOvWrZg3bx6WLl2KkJAQeHl5YenSpdixYwcWLlyodXhEboVXhEREpGu8IiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl1jIiQiIl37/whVnX2etF+xAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(grid, at=\"link\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which are lines that connect the nodes and each have a unique ID number. \n", + "\n", + "And finally, the cells" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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tlaSlJmZ2eltgsGggsFg6+VAINDjczlFQm3M7hGMkVDX8lwmBCzFTkdtnsYMPKc9o+XfvcvuMRwhboJmWZYWLFig8ePHa9iwYZ3erqSkRM8888xlnMx+nlSP/L4kDTsckmTZPY4RrKBbYW+i+hx1y13Bc9odeE57ikt+X5I8qR67B7Gdy7KsuPjNmjdvnn7zm99o165d6tevX6e362gLraCgQLW1tcrIyLgco9oiUhtRtJFXvd3JCltyJfLKtzvxnPYMT6pHCf642T65YIFAQH6//2vX43HxDDz66KPavHmzdu7ced6YSZLX65XX671MkzlHgj/B6F9oAPg6jl4DWpalRx99VJs2bdL27dtVWFho90gAAIdydNDmzZunDRs26Ne//rV8Pp+qq6slSX6/XykpKTZPBwBwEke/h+Zydbyvfd26dbr//vu79D26uu8VAOBMRryH5uDWAgAcxtFnCgEAoKsIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIxA0AAARiBoAAAjEDQAgBEIGgDACAQNAGAEggYAMAJBAwAYgaABAIwQF0Fbs2aNCgsLlZycrNGjR+u9996zeyQAgMM4PmgbN25UcXGxnnjiCR04cEDf+c53NGnSJJ04ccLu0QAADuKyLMuye4jzueGGG3Tddddp7dq1rcuuueYaTZ06VSUlJV97/0AgIL/fr9raWmVkZPTkqACAHtDV9bijt9BCoZD27dunoqKiNsuLioq0e/fuDu8TDAYVCATafAEAzOfooH3xxReKRqPKyclpszwnJ0fV1dUd3qekpER+v7/1q6Cg4HKMCgCwmaODdo7L5Wpz2bKsdsvOWbJkiWpra1u/KisrL8eIAACbJdg9wPn06dNHHo+n3dZYTU1Nu622c7xer7xe7+UYDwDgII7eQktKStLo0aO1devWNsu3bt2qcePG2TQVAMCJHL2FJkkLFizQfffdpzFjxujb3/62SktLdeLECT300EN2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_graph(grid, at=\"cell\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which are polygons centered around the nodes. \n", + "\n", + "Landlab is a \"dual\" graph because it also keeps track of a second set of points, lines, and polygons (\"corners\", \"faces\", and \"patches\"). We will not focus on them further." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 2a\n", + "\n", + "(2a.1) Create an instance of a `RasterModelGrid` with 5 rows and 7 columns, with a spacing between nodes of 10 units. Plot the node layout, and identify the ID number of the center-most node." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2a.1 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "rmg = RasterModelGrid((5, 7), 10.0)\n", + "plot_graph(rmg, at=\"node\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2a.2) Find the ID of the cell that contains this node." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2a.2 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "plot_graph(rmg, at=\"node,cell\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2a.3) Find the ID of the horizontal link that connects to the last node on the right in the middle column." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2a.3 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "plot_graph(rmg, at=\"node,link\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Use the RasterModelGrid for 2D diffusion \n", + "\n", + "Lets continue by making a new grid that is bigger. We will use this for our next fault diffusion example.\n", + "\n", + "The syntax in the next line says: create a new *RasterModelGrid* object called **mg**, with 25 rows, 40 columns, and a grid spacing of 10 m." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "mg = RasterModelGrid((25, 40), 10.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note the use of object-oriented programming here. `RasterModelGrid` is a class; `mg` is a particular instance of that class, and it contains all the data necessary to fully describe the topology and geometry of this particular grid.\n", + "\n", + "Next we'll add a *data field* to the grid, to represent the elevation values at grid nodes. The \"dot\" syntax below indicates that we are calling a function (or *method*) that belongs to the *RasterModelGrid* class, and will act on data contained in **mg**. The arguments indicate that we want the data elements attached to grid nodes (rather than links, for example), and that we want to name this data field `topographic__elevation`. The `add_zeros` method returns the newly created NumPy array." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "z = mg.add_zeros(\"topographic__elevation\", at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above line of code creates space in memory to store 1,000 floating-point values, which will represent the elevation of the land surface at each of our 1,000 grid nodes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the positions of all the grid nodes. The nodes' *(x,y)* positions are stored in the arrays `mg.x_of_node` and `mg.y_of_node`, respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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360PP/xQkrRv3z41Nzfnnbm4uFgTJ06M+syFnKuhoUEnTpzIuyabzaq2tja6s2/btk0jR47Utddeq+9+97tqaWnJvRbjOVtbWyVJ5eXlktJ7P7ue84y03M+TJ09q3bp1+uSTTzRhwoTU3seu5zwjLfdRku6//37dcccduvXWW/Oe78t7GuVSwt526NAhnTx5UhUVFXnPV1RUqLm5uZ9aXbrx48frueee07XXXqvf/va3+v73v6+bbrpJu3fvzp3rfGf+9a9/3R91e0Uh52pubtbgwYM1bNiwc66J6X5PmzZN3/72t1VTU6N9+/bp0Ucf1S233KKGhgYVFxdHd84QgpYsWaKbb75ZtbW1ktJ5P893Tikd97OxsVETJkzQ7373O/3e7/2eNmzYoOuuuy73TSkt97G7c0rpuI9nrFu3Tm+99ZZ27dp1zmt9+X+bDCpnyWQyeX8OIZzzXEymTZuW++8xY8ZowoQJ+spXvqIf/ehHuR/uStuZz7iYc8V29rlz5+b+u7a2Vtdff71qamq0ceNGzZ49u9uvcz3nwoUL9e6772rHjh3nvJam+9ndOdNwP7/61a/qnXfe0dGjR/Xiiy9q3rx52r59e+71tNzH7s553XXXpeI+SlJTU5MeeOABbd68WVdccUW31/XFPeWffiQNHz5cAwcOPGfCa2lpOWdajFlJSYnGjBmjvXv35n77J21nLuRclZWVOn78uI4cOdLtNTGqqqpSTU2N9u7dKymucy5atEivvPKKtm7dqlGjRuWeT9v97O6c5xPj/Rw8eLD+8A//UNdff73q6+s1duxY/cu//Evq7mN35zyfGO+j9Pk/27S0tGjcuHEaNGiQBg0apO3bt+tf//VfNWjQoFzXvrinDCr6/H9048aN05YtW/Ke37Jli2666aZ+atX7Ojs79ctf/lJVVVUaPXq0Kisr8858/Phxbd++PeozF3KucePGqaioKO+agwcP6r333ov67IcPH1ZTU5OqqqokxXHOEIIWLlyol156Sa+//rpGjx6d93pa7ueFznk+Md7PrkII6uzsTM197M6Zc55PrPdxypQpamxs1DvvvJN7XH/99frzP/9zvfPOO/qDP/iDvrunF/FDwKl05teTf/jDH4b3338/LF68OJSUlISPPvqov6tdtAcffDBs27YtfPjhh+HNN98M06dPD6WlpbkzPfHEE6GsrCy89NJLobGxMXznO9+J4teT29vbw9tvvx3efvvtICmsXLkyvP3227lfJS/kXPfee28YNWpU+NnPfhbeeuutcMstt9j9euAXnbO9vT08+OCDYefOnWHfvn1h69atYcKECeHKK6+M6pwLFiwIZWVlYdu2bXm/zvnpp5/mrknD/bzQOdNwP5ctWxbeeOONsG/fvvDuu++Ghx9+OAwYMCBs3rw5hJCO+xjCF58zDffxi5z9Wz8h9N09ZVA5y7/927+FmpqaMHjw4PDNb34z71cHY3Tmd9qLiopCNpsNs2fPDrt37869furUqfDYY4+FysrKUFxcHL71rW+FxsbGfmxcmK1btwZJ5zzmzZsXQijsXB0dHWHhwoWhvLw8DBkyJEyfPj18/PHH/XCa7n3ROT/99NNQV1cXRowYEYqKisJVV10V5s2bd84Z3M95vvNJCmvWrMldk4b7eaFzpuF+/tVf/VXu/3+OGDEiTJkyJTekhJCO+xjCF58zDffxi3QdVPrqnmZCCKHH7wkBAAD0AX5GBQAA2GJQAQAAthhUAACALQYVAABgi0EFAADYYlABAAC2GFQAAIAtBhUAAGCLQQUAANhiUAEAALYYVAAAgC0GFQAAYOv/A84aVLraqg7FAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(mg.x_of_node, mg.y_of_node, \".\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we bothered to count, we'd see that there are indeed 1,000 grid nodes, and a corresponding number of `z` values:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1000" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(z)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now for some tectonics. Let's say there's a fault trace that angles roughly east-northeast. We can describe the trace with the equation for a line. One trick here: by using `mg.x_of_node`, in the line of code below, we are calculating a *y* (i.e., north-south) position of the fault trace for each grid node---meaning that this is the *y* coordinate of the trace at the *x* coordinate of a given node." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "fault_trace_y = 50.0 + 0.25 * mg.x_of_node" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here comes the earthquake. For all the nodes north of the fault (i.e., those with a *y* coordinate greater than the corresponding *y* coordinate of the fault trace), we'll add elevation equal to 10 meters plus a centimeter for every meter east along the grid (just to make it interesting):" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "z[mg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(A little bit of Python under the hood: the statement `mg.y_of_node > fault_trace_y` creates a 1000-element long boolean array; placing this within the index brackets will select only those array entries that correspond to `True` in the boolean array)\n", + "\n", + "Let's look at our newly created initial topography using Landlab's *imshow_node_grid* plotting function (which we first need to import)." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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4AMAAEO1trbKFcEr0pnzAQAAIDIfAAAYK9LMhamZD4IPAAAM1draKlF2AQAAiAyZDwAADNXS1KS2fj3PE5D5AAAA3dLS0qKW5uaet5aWHt133bp1SktL08CBA5WVlaW33347quMi+AAAAEFbt25Vfn6+Vq5cqffee08333yzcnJydPz48ajdw2VZEcxkAQAAURcIBOTxeJQ2YID6RfKGU8tSdUuLGhoalJiYGNY548eP17e+9S2tX78+uG306NG68847VVxc3OO+fBlzPgAAMFRLS0tEJYruzvhobm5WVVWVVqxYEbI9Oztbe/bsiaAnoQg+AAAwVKTTRdvPDwQCIdvdbrfcbneH4z/99FO1trYqOTk5ZHtycrLq6uoi7M0/EXwAAGCY+Ph4eb1efRKFX/hXXXWV/H5/yLZVq1apsLCwy3NcF5V6LMvqsC0SBB8AABhm4MCBqq6uVnNzc8TX6ixw6CzrIUnDhw9XXFxchyxHfX19h2xIJAg+AAAw0MCBAzVw4EBb7xkfH6+srCxVVFTorrvuCm6vqKjQrFmzonYfgg8AABBUUFCg++67T+PGjdOECRO0YcMGHT9+XIsWLYraPQg+AABA0Lx583Ty5Ek98cQTqq2tVUZGht544w2lpqZG7R685wMAANiKN5wCAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABbEXwAAABb/T8x3aAImGPObAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from landlab.plot.imshow import imshow_grid\n", + "\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To finish getting set up, we will define two parameters: the transport (\"diffusivity\") coefficient, `D`, and the time-step size, `dt`. (The latter is set using the Courant condition for a forward-time, centered-space finite-difference solution; you can find the explanation in most textbooks on numerical methods)." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2000.0" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "D = 0.01 # m2/yr transport coefficient\n", + "dt = 0.2 * mg.dx * mg.dx / D\n", + "dt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Boundary conditions: for this example, we'll assume that the east and west sides are closed to flow of sediment, but that the north and south sides are open. (The order of the function arguments is east, north, west, south)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "mg.set_closed_boundaries_at_grid_edges(True, False, True, False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*A note on boundaries:* with a Landlab raster grid, all the perimeter nodes are boundary nodes. In this example, there are 24 + 24 + 39 + 39 = 126 boundary nodes. The previous line of code set those on the east and west edges to be **closed boundaries**, while those on the north and south are **open boundaries** (the default). All the remaining nodes are known as **core** nodes. In this example, there are 1000 - 126 = 874 core nodes:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "874" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(mg.core_nodes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One more thing before we run the time loop: we'll create an array to contain soil flux. In the function call below, the first argument tells Landlab that we want one value for each grid link, while the second argument provides a name for this data *field*:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "qs = mg.add_zeros(\"sediment_flux\", at=\"link\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now for some landform evolution. We will loop through 25 iterations, representing 50,000 years. On each pass through the loop, we do the following:\n", + "\n", + "1. Calculate, and store in the array `g`, the gradient between each neighboring pair of nodes. These calculations are done on **links**. The gradient value is a positive number when the gradient is \"uphill\" in the direction of the link, and negative when the gradient is \"downhill\" in the direction of the link. On a raster grid, link directions are always in the direction of increasing $x$ (\"horizontal\" links) or increasing $y$ (\"vertical\" links).\n", + "\n", + "2. Calculate, and store in the array `qs`, the sediment flux between each adjacent pair of nodes by multiplying their gradient by the transport coefficient. We will only do this for the **active links** (those not connected to a closed boundary, and not connecting two boundary nodes of any type); others will remain as zero.\n", + "\n", + "3. Calculate the resulting net flux at each node (positive=net outflux, negative=net influx). The negative of this array is the rate of change of elevation at each (core) node, so store it in a node array called `dzdt'.\n", + "\n", + "4. Update the elevations for the new time step." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(25):\n", + " g = mg.calc_grad_at_link(z)\n", + " qs[mg.active_links] = -D * g[mg.active_links]\n", + " dzdt = -mg.calc_flux_div_at_node(qs)\n", + " z[mg.core_nodes] += dzdt[mg.core_nodes] * dt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at how our fault scarp has evolved." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1re0du3a+CKugdYnqW9ttq1f1157bfzfCwoKNHXqVI0fP15/+MMfNG/evG6vS1U/TravfyA9j+76MRCexz/+4z9q165d+uKLL/TCCy+opKREmzdvjr8+UJ5Dd/0466yzBsRzsIXjOHJisaSutxHTLl8zevRopaWldYqsGxsbO33asNmIESNUWFiovXv3xne9DKQ+mbQ5HA6rra1Nhw4d6raMjXJycjR+/Hjt3btXkl396NjX/9ZbbyXs6x9oz6O7fnTFxueRnp6uf/iHf9DUqVNVUVGhyZMn69/+7d8G3HPorh9dsfE52MKv0y4EH1+Tnp6uKVOmqLq6OuF8dXW1ZsyYkaJW9V5ra6v++te/KicnR/n5+QqHwwl9amtr0+bNm63tk0mbp0yZoiFDhiSUqa+v1wcffGBtvyTp4MGDqqurU05OjiQ7+uE4ju644w69+OKLevPNNzvt6x8oz6OnfnTFxudxIsdx1NraOmCeQ3c6+tGVgfAc4C6mXU6wZMkS3XjjjZo6daqmT5+u1atXa//+/br99ttT3bRuLV26VHPnztW4cePU2Niohx9+WJFIRCUlJQoEAiotLVV5ebkmTJigCRMmqLy8XMOHD9cNN9yQsjY3Nzdr37598Z9ra2u1a9cuZWVlady4cT22ORQKacGCBbrrrrs0atQoZWVlaenSpSosLNSsWbOs6EdWVpbKyso0f/585eTk6OOPP9Z9992n0aNH66qrrrKmH4sWLdL69ev18ssvx/f1d7Rt2LBhRr9DA6Efzc3N1j+P++67T8XFxcrLy9Phw4e1YcMGbdq0Sa+99tqAeQ499WMgPAebOEmOXtg67cJW2y488cQTzvjx45309HTnu9/9bsJWPRtde+21Tk5OjjNkyBAnNzfXmTdvnrNnz57467FYzHnwwQedcDjsBINB54ILLnB2796dwhY7zltvveVI6nSUlJQYt7mlpcW54447nKysLGfYsGHOnDlznP3791vTj6NHjzpFRUXO6aef7gwZMsQZN26cU1JS0qmNqe5HV+2X5DzzzDPxMgPhefTUj4HwPH7605/G/99z+umnO5dcconz+uuvx18fCM+hp34MhOdgg46ttrfOnOksmjWrz8etM2daudU24Di2hkUAAJyaIpGIQqGQbp05U+mD+z5J0Xb8uJ7atElNTU29+m6X/sa0CwAAlorFYoolsdslmWv7E8EHAACWcvrw/SwnXm8jgg8AACzl9bfaeoWttgAAwFOMfAAAYCnWfAAAAE8x7QIAAOACRj4AALAUIx8AfC8ajWrGjBmaP39+wvmmpibl5eXp5z//eYpaBpyaOtZ8JHPYiOADQFxaWprWrl2r1157Tb///e/j5xcvXqysrCw98MADKWwdAL9g2gVAggkTJqiiokKLFy/WRRddpO3bt2vDhg165513lJ6enurmAaeUmOMo6sNpF4IPAJ0sXrxYVVVVuummm7R792498MAD+s53vpPqZgGnHLbaAjhlBAIBrVq1ShMnTlRhYaGWLVuW6iYB8BHWfADo0n/8x39o+PDhqq2t1YEDB1LdHOCUFNP/7Xjp05HqDnSD4ANAJ3/5y1/0+OOP6+WXX9b06dO1YMECa7+gCvAzv+52YdoFQIKWlhaVlJTotttu06xZs3TGGWeooKBAv/vd73T77benunnAKSUai2lQIJDU9TZi5ANAgmXLlikWi+mRRx6RJI0bN06PPfaYfvazn+njjz9ObeMA+ALBB4C4zZs364knntCaNWs0YsSI+Plbb71VM2bMYPoF8FhS6z2SzI7an5h2ARB34YUX6vjx412+9qc//cnj1gBg2gUAAMAFjHwAAGCpWCymWBIjH+x2AQAAvRKLxRT1YfDBtAsAAPAUIx8AAFgqGosp4MMFpwQfAABYyq/BB9MuAADAU4x8AABgKXa7AAAATx1PMnhI9vr+QvABAIClotGoAkmkSGfNBwAAgBj5AADAWsmOXNg68kHwAQCApaLRqMS0CwAAQHIY+QAAwFLtra2KDer7OAEjHwAAoFfa29vV3tbW96O9vU/3ffLJJ5Wfn6+hQ4dqypQp+vOf/+xqvwg+AABA3MaNG1VaWqrly5fr3Xff1fnnn6/i4mLt37/ftXsEHCeJlSwAAMB1kUhEoVBI+UOGaFAyGU4dR7Xt7WpqalJmZqbRNdOmTdN3v/tdrVq1Kn5u4sSJuvLKK1VRUdHntnwdaz4AALBUe3t7UlMUvV3x0dbWppqaGi1btizhfFFRkbZt25ZESxIRfAAAYKlkl4t2XB+JRBLOB4NBBYPBTuU///xzRaNRZWdnJ5zPzs5WQ0NDkq35PwQfAABYJj09XeFwWJ+58Af/tNNOU15eXsK5Bx98UGVlZd1eEzhhqsdxnE7nkkHwAQCAZYYOHara2lq1tbUlXVdXgUNXox6SNHr0aKWlpXUa5WhsbOw0GpIMgg8AACw0dOhQDR061NN7pqena8qUKaqurtZVV10VP19dXa0rrrjCtfsQfAAAgLglS5boxhtv1NSpUzV9+nStXr1a+/fv1+233+7aPQg+AABA3LXXXquDBw/qoYceUn19vQoKCvTqq69q/Pjxrt2DPB8AAMBTZDgFAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACeIvgAAACe+v8eazuh57Sm6QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that we have just created and run a 2D model of fault-scarp creation and diffusion with fewer than two dozen lines of code. How long would this have taken to write in C or Fortran?\n", + "\n", + "While it was very very easy to write in 1D, writing this in 2D would mean we would have needed to keep track of the adjacency of the different parts of the grid. This is the primary problem that the Landlab grids are meant to solve. \n", + "\n", + "Think about how difficult this would be to hand code if the grid were irregular or hexagonal. In order to conserve mass and implement the differential equation you would need to know how nodes were conected, how long the links were, and how big each cell was.\n", + "\n", + "We do such an example after the next section. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 2b\n", + "\n", + "(2b .1) Create an instance of a `RasterModelGrid` called `mygrid`, with 16 rows and 25 columns, with a spacing between nodes of 5 meters. Use the `plot` function in the `matplotlib` library to make a plot that shows the position of each node marked with a dot (hint: see the plt.plot() example above)." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.1 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "mygrid = RasterModelGrid((16, 25), xy_spacing=5.0)\n", + "plt.plot(mygrid.x_of_node, mygrid.y_of_node, \".\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.2) Query the grid variables `number_of_nodes` and `number_of_core_nodes` to find out how many nodes are in your grid, and how many of them are core nodes." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.2 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "print(mygrid.number_of_nodes)\n", + "print(mygrid.number_of_core_nodes)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.3) Add a new field to your grid, called `temperature` and attached to nodes. Have the initial values be all zero." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.3 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "temp = mygrid.add_zeros(\"temperature\", at=\"node\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.4) Change the temperature of nodes in the top (north) half of the grid to be 10 degrees C. Use the `imshow_grid` function to display a shaded image of the elevation field." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.4 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "temp[mygrid.y_of_node >= 40.0] = 10.0\n", + "mygrid.imshow(\"temperature\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.5) Use the grid function `set_closed_boundaries_at_grid_edges` to assign closed boundaries to the right and left sides of the grid." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.5 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "mygrid.set_closed_boundaries_at_grid_edges(True, False, True, False)\n", + "mygrid.imshow(\"temperature\", color_for_closed=\"c\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.6) Create a new field of zeros called `heat_flux` and attached to links. Using the `number_of_links` grid variable, verify that your new field array has the correct number of items. " + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.6 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "Q = mygrid.add_zeros(\"heat_flux\", at=\"link\")\n", + "print(mygrid.number_of_links)\n", + "print(len(Q))\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.7) Use the `calc_grad_at_link` grid function to calculate the temperature gradients at all the links in the grid. Given the node spacing and the temperatures you assigned to the top versus bottom grid nodes, what do you expect the maximum temperature gradient to be? Print the values in the gradient array to verify that this is indeed the maximum temperature gradient." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.7 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "print(\"Expected max gradient is 2 C/m\")\n", + "temp_grad = mygrid.calc_grad_at_link(temp)\n", + "print(temp_grad)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.8) Back to hillslopes: Reset the values in the elevation field of the grid `mg` to zero. Then copy and paste the time loop above (i.e., the block in Section 2b that starts with `for i in range(25):`) below. Modify the last line to add uplift of the hillslope material at a rate `uplift_rate` = 0.0001 m/yr (hint: the amount of uplift in each iteration should be the uplift rate times the time-step duration). Then run the block and plot the resulting topography. Try experimenting with different uplift rates and different values of `D`." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.8 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "z[:] = 0.0\n", + "uplift_rate = 0.0001\n", + "for i in range(25):\n", + " g = mg.calc_grad_at_link(z)\n", + " qs[mg.active_links] = -D * g[mg.active_links]\n", + " dzdt = -mg.calc_flux_div_at_node(qs)\n", + " z[mg.core_nodes] += (dzdt[mg.core_nodes] + uplift_rate) * dt\n", + "mg.imshow(z)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (c) What's going on under the hood?\n", + "\n", + "This example uses a finite-volume numerical solution to the 2D diffusion equation. The 2D diffusion equation in this case is derived as follows. Continuity of mass states that:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla \\cdot \\mathbf{q}_s$,\n", + "\n", + "where $z$ is elevation, $t$ is time, the vector $\\mathbf{q}_s$ is the volumetric soil transport rate per unit width, and $\\nabla$ is the divergence operator (here in two dimensions). (Note that we have omitted a porosity factor here; its effect will be subsumed in the transport coefficient). The sediment flux vector depends on the slope gradient:\n", + "\n", + "$\\mathbf{q}_s = -D \\nabla z$,\n", + "\n", + "where $D$ is a transport-rate coefficient---sometimes called *hillslope diffusivity*---with dimensions of length squared per time. Combining the two, and assuming $D$ is uniform, we have a classical 2D diffusion equation:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = -\\nabla^2 z$.\n", + "\n", + "For the numerical solution, we discretize $z$ at a series of *nodes* on a grid. The example in this notebook uses a Landlab *RasterModelGrid*, in which every interior node sits inside a cell of width $\\Delta x$, but we could alternatively have used any grid type that provides nodes, links, and cells.\n", + "\n", + "The gradient and sediment flux vectors will be calculated at the *links* that connect each pair of adjacent nodes. These links correspond to the mid-points of the cell faces, and the values that we assign to links represent the gradients and fluxes, respectively, along the faces of the cells.\n", + "\n", + "The flux divergence, $\\nabla \\mathbf{q}_s$, will be calculated by summing, for every cell, the total volume inflows and outflows at each cell face, and dividing the resulting sum by the cell area. Note that for a regular, rectilinear grid, as we use in this example, this finite-volume method is equivalent to a finite-difference method.\n", + "\n", + "To advance the solution in time, we will use a simple explicit, forward-difference method. This solution scheme for a given node $i$ can be written:\n", + "\n", + "$\\frac{z_i^{t+1} - z_i^t}{\\Delta t} = -\\frac{1}{A_i} \\sum\\limits_{j=1}^{N_i} \\delta (l_{ij}) q_s (l_{ij}) \\lambda(l_{ij})$.\n", + "\n", + "Here the superscripts refer to time steps, $\\Delta t$ is time-step size, $q_s(l_{ij})$ is the sediment flux per width associated with the link that crosses the $j$-th face of the cell at node $i$, $\\lambda(l_{ij})$ is the width of the cell face associated with that link ($=\\Delta x$ for a regular uniform grid), and $N_i$ is the number of active links that connect to node $i$. The variable $\\delta(l_{ij})$ contains either +1 or -1: it is +1 if link $l_{ij}$ is oriented away from the node (in which case positive flux would represent material leaving its cell), or -1 if instead the link \"points\" into the cell (in which case positive flux means material is entering).\n", + "\n", + "To get the fluxes, we first calculate the *gradient*, $G$, at each link, $k$:\n", + "\n", + "$G(k) = \\frac{z(H_k) - z(T_k)}{L_k}$.\n", + "\n", + "Here $H_k$ refers the *head node* associated with link $k$, $T_k$ is the *tail node* associated with link $k$. Each link has a direction: from the tail node to the head node. The length of link $k$ is $L_k$ (equal to $\\Delta x$ is a regular uniform grid). What the above equation says is that the gradient in $z$ associated with each link is simply the difference in $z$ value between its two endpoint nodes, divided by the distance between them. The gradient is positive when the value at the head node (the \"tip\" of the link) is greater than the value at the tail node, and vice versa.\n", + "\n", + "The calculation of gradients in $z$ at the links is accomplished with the `calc_grad_at_link` function. The sediment fluxes are then calculated by multiplying the link gradients by $-D$. Once the fluxes at links have been established, the `calc_flux_div_at_node` function performs the summation of fluxes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 2c\n", + "\n", + "(2c.1) Make a 3x3 `RasterModelGrid` called `tinygrid`, with a cell spacing of 2 m. Use the `plot_graph` function to display the nodes and their ID numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.1 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "tinygrid = RasterModelGrid((3, 3), 2.0)\n", + "plot_graph(tinygrid, at=\"node\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.2) Give your `tinygrid` a node field called `height` and set the height of the center-most node to 0.5. Use `imshow_grid` to display the height field." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.2 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "ht = tinygrid.add_zeros(\"height\", at=\"node\")\n", + "ht[4] = 0.5\n", + "imshow_grid(tinygrid, ht)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.3) The grid should have 12 links (extra credit: verify this with `plot_graph`). When you compute gradients, which of these links will have non-zero gradients? What will the absolute value(s) of these gradients be? Which (if any) will have positive gradients and which negative? To codify your answers, make a 12-element numpy array that contains your predicted gradient value for each link." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.3 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "plot_graph(tinygrid, at=\"link\")\n", + "pred_grad = np.array([0, 0, 0, 0.25, 0, 0.25, -0.25, 0, -0.25, 0, 0, 0])\n", + "print(pred_grad)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.4) Test your prediction by running the `calc_grad_at_link` function on your tiny grid. Print the resulting array and compare it with your predictions." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.4 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "grad = tinygrid.calc_grad_at_link(ht)\n", + "print(grad)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.5) Suppose the flux of soil per unit cell width is defined as -0.01 times the height gradient. What would the flux be at the those links that have non-zero gradients? Test your prediction by creating and printing a new array whose values are equal to -0.01 times the link-gradient values." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.5 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "flux = -0.01 * grad\n", + "print(flux)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2c.6) Consider the net soil accumulation or loss rate around the center-most node in your tiny grid (which is the only one that has a cell). The *divergence* of soil flux can be represented numerically as the sum of the total volumetric soil flux across each of the cell's four faces. What is the flux across each face? (Hint: multiply by face width) What do they add up to? Test your prediction by running the grid function `calc_flux_div_at_node` (hint: pass your unit flux array as the argument). What are the units of the divergence values returned by the `calc_flux_div_at_node` function?" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2c.6 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "print(\"predicted div is 0 m/yr\")\n", + "dqsdx = tinygrid.calc_flux_div_at_node(flux)\n", + "print(dqsdx)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 3: Hexagonal grid\n", + "\n", + "Next we will use an non-raster Landlab grid.\n", + "\n", + "We start by making a random set of points with x values between 0 and 400 and y values of 0 and 250. We then add zeros to our grid at a field called \"topographic__elevation\" and plot the node locations. \n", + "\n", + "Note that the syntax here is exactly the same as in the RasterModelGrid example (once the grid has been created)." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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44+Hrq6u0NnZGW688cZw8cUXh8OHD2efif21LGTG2F/LZ555Jjz77LNh165dYdeuXeG+++4LFRUVoaurK4QQ/2sYQv4ZY38NR/vP//zP8KEPfSh8/OMfD3fddVf280m9liwoI37v934v3H777Tmf+53f+Z3wla98JaFGpVm3bl247LLLzvi1EydOhHQ6HTZu3Jj93LFjx0J1dXV47LHHxqlhaUb/5V3ITIcOHQoVFRVh8+bN2WfefffdMGHChPDCCy+MW/dCnW1B+fSnP33WPxPbjCGE0NfXF8wstLW1hRDK87UcPWMI5flazpgxI/zTP/1TWb6GJ52cMYTyeg0HBgbCJZdcElpbW8OiRYuyC0qSryX/isfMhoeHraOjw5qbm3M+39zcbO3t7Qm1Kt3u3butrq7OGhoa7LOf/ay9+eabZma2Z88e6+3tzZm3srLSFi1aFO28hczU0dFh7733Xs4zdXV11tjYGNXcW7dutYsuusjmzp1rt912m/X19WW/FuOMmUzGzMwuvPBCMyvP13L0jCeVy2t5/Phx27x5sx05csQWLFhQlq/h6BlPKpfX8Mtf/rLdeOONdv311+d8PsnXMspjgWNt//79dvz4caupqcn5fE1NjfX29ibUqjTz58+3733vezZ37lz71a9+ZQ888IAtXLjQdu7cmZ3pTPO+/fbbSdQtWSEz9fb22uTJk23GjBmnPRPL67xkyRL74z/+Y5szZ47t2bPH/uqv/squu+466+josMrKyuhmDCHY3XffbZ/4xCessbHRzMrvtTzTjGbl8Vru2LHDFixYYMeOHbPf+q3fsi1bttill16a/UupHF7Ds81oVh6voZnZ5s2b7fXXX7dt27ad9rUk/++RBeUUqVQq559DCKd9LhZLlizJ/ud58+bZggUL7CMf+Yh997vfzX4TVznNe9L5zBTT3MuXL8/+58bGRrviiitszpw59uyzz9ott9xy1j+nOuPKlSvtjTfesFdfffW0r5XLa3m2GcvhtfzoRz9qnZ2ddujQIXvqqadsxYoV1tbWlv16ObyGZ5vx0ksvLYvXsLu72+666y578cUXbcqUKWd9LonXkn/FY2YzZ860iRMnnrbp9fX1nbY1xmratGk2b9482717d/anecpp3kJmSqfTNjw8bAcPHjzrM7Gpra21OXPm2O7du80srhlXrVplzzzzjL388ss2e/bs7OfL6bU824xnEuNrOXnyZPvt3/5tu+KKK6ylpcUuu+wy+7u/+7uyeg3PNuOZxPgadnR0WF9fnzU1NdmkSZNs0qRJ1tbWZn//939vkyZNyvZM4rVkQbH3/wfY1NRkra2tOZ9vbW21hQsXJtRqbA0NDdkvf/lLq62ttYaGBkun0znzDg8PW1tbW7TzFjJTU1OTVVRU5DzT09NjXV1d0c594MAB6+7uttraWjOLY8YQgq1cudKefvppe+mll6yhoSHn6+XwWuab8UxifC1HCyHY0NBQWbyGZ3NyxjOJ8TVcvHix7dixwzo7O7MfV1xxhf3Jn/yJdXZ22oc//OHkXsvz/vbaMnPyx4y/853vhF/84hdh9erVYdq0aeGtt95Kutp5WbNmTdi6dWt48803w2uvvRaWLl0aqqqqsvNs3LgxVFdXh6effjrs2LEjfO5zn5P/MeOBgYGwffv2sH379mBm4aGHHgrbt2/P/ih4ITPdfvvtYfbs2eHHP/5xeP3118N1110n9SN/55pxYGAgrFmzJrS3t4c9e/aEl19+OSxYsCB88IMfjGrGO+64I1RXV4etW7fm/Hjm0aNHs8/E/lrmm7EcXsu1a9eGV155JezZsye88cYb4b777gsTJkwIL774Yggh/tcwhHPPWA6v4dmc+lM8IST3WrKgnOKb3/xmmDNnTpg8eXK4/PLLc34kMDYnf069oqIi1NXVhVtuuSXs3Lkz+/UTJ06EdevWhXQ6HSorK8Mf/MEfhB07diTYOL+XX345mNlpHytWrAghFDbT4OBgWLlyZbjwwgvD1KlTw9KlS8PevXsTmObMzjXj0aNHQ3Nzc5g1a1aoqKgIF198cVixYsVp/dVnPNN8ZhYef/zx7DOxv5b5ZiyH1/LP/uzPsv//ctasWWHx4sXZ5SSE+F/DEM49Yzm8hmczekFJ6rVMhRDC+b//AgAAMPb4HhQAACCHBQUAAMhhQQEAAHJYUAAAgBwWFAAAIIcFBQAAyGFBAQAAclhQAACAHBYUAAAghwUFAADIYUEBAAByWFAAAICc/w8NHaWj5DD2kgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from landlab import HexModelGrid\n", + "\n", + "mg = HexModelGrid((25, 40), 10, node_layout=\"rect\")\n", + "z = mg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "plt.plot(mg.x_of_node, mg.y_of_node, \".\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we create our fault trace and uplift the hanging wall. \n", + "\n", + "We can plot just like we did with the RasterModelGrid. " + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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l8vlQu/evTF06FCf561WK3JycnD//ffHqGVExya9flguLS3N56E1+BD1+K2k+uDgg4i8zGYzFi5ciM8++wxvvvmm9/lx48YhIyMDDz74YAxbR3TsifattmPHjsWiRYuwePFi728lFRYWorKyUtd+8bQLEfno0KED8vPzMW7cOPTr1w8bNmzAkiVL8MMPPyApKSnWzSOiBjRv3jwAQN++fX2ef+2113DTTTfpVg8HH0QUYNy4cVi2bBluvPFGbN26FQ8++CDOOOOMWDeL6JgT7Vtto/Vzbxx8EFEARVEwb948nHrqqejSpQumTJkS6yYRHZNineejofCaDyJS9eqrr6JJkyYoKCjAH3/8EevmEFEc4eCDiAJ8++23eOaZZ/D++++jV69eGDVqVNSmY4molhACwu2u/8Og2y0HH0Tko7KyEiNHjsTo0aPRv39/vPzyy9iwYQP+85//xLppRMccvW61NRoOPojIx5QpU+B2u/HEE08AANq1a4enn34a99xzD37//ffYNo6I4gIHH0TktXbtWsydOxcLFixA06ZNvc/feuut6N27N0+/EEWZiHDWw6jbK+92ISKvCy64AE6nU/W1zz//PMqtISLe7UJERESkA858EBERGZTb7Ybb7Y7o/UbEwQcREZFB1ef3Wfzfb0QcfBARERkUr/kgIiIi0gFnPoiIiAyK13wQERFRVPG0CxEREZEOOPNBRERkUPE688HBBxERkUHF6zUfPO1CREREUcWZDyIiIoNyCwEXT7sQERFRtPC0CxEREZEOOPNBRERkUG5EdurEmPMeHHwQEREZltvthltRInq/EXHwQUREZFAutxumCAYfLoMOPnjNBxEREUUVZz6IiIgMihlOiYiIKKp42oWIiIhIB5z5ICIiMije7UJERERR5Xa74YrDwQdPuxAREVFUceaDiIjIoFxuN5Q4vOCUgw8iIiKDitfBB0+7EBERUVRx5oOIiMigeLcLERERRZUzwsFDpO9vKBx8EBERGZTL5YISQYp0XvNBREREBM58EBERGVakMxdGnfng4IOIiMigXC4XwNMuRERERJHhzAcREZFBOWw2uE31nyfgzAcRERGFxeFwwGG31//hcNSr3hdeeAG5ublITk5G9+7d8dVXX+naLw4+iIiIyGvp0qUYP348pk2bhs2bN+O8885DXl4e9u3bp1sdihARXMlCREREuispKUF6ejpyExNhiiTDqRAocDhgtVqRlpYm9Z6ePXuiW7dumDdvnve5U089FVdeeSXy8/Pr3Za6eM0HERGRQTkcjohOUYR7xYfdbsfGjRsxZcoUn+cHDBiA9evXR9ASXxx8EBERGVSkl4t63l9SUuLzvMVigcViCYg/dOgQXC4XMjMzfZ7PzMxEYWFhhK2pxcEHERGRwSQlJSErKwt/6XDAb9asGXJycnyee+ihhzB9+nTN9yh+p3qEEAHPRYKDDyIiIoNJTk5GQUEB7HZ7xGWpDRzUZj0AoFWrVjCbzQGzHEVFRQGzIZHg4IOIiMiAkpOTkZycHNU6k5KS0L17d6xcuRJXXXWV9/mVK1fiiiuu0K0eDj6IiIjIa8KECbjhhhvQo0cP9OrVC/Pnz8e+fftw++2361YHBx9ERETkde211+Lw4cOYMWMGDhw4gM6dO+OTTz5B+/btdauDeT6IiIgoqpjhlIiIiKKKgw8iIiKKKg4+iIiIKKo4+CAiIqKo4uCDiIiIooqDDyIiIooqDj6IiIgoqjj4ICIioqji4IOIiIiiioMPIiIiiioOPoiIiCiqOPggIiKiqPp/kya+G2sAIHUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fault_trace_y = 50.0 + 0.25 * mg.x_of_node\n", + "z[mg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]\n", + ")\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can use the same code as before to create a diffusion model!\n", + "\n", + "Landlab supports multiple grid types. You can read more about them [here](https://landlab.readthedocs.io/en/latest/reference/grid/index.html)." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "qs = mg.add_zeros(\"sediment_flux\", at=\"link\")\n", + "for i in range(25):\n", + " g = mg.calc_grad_at_link(z)\n", + " qs[mg.active_links] = -D * g[mg.active_links]\n", + " dzdt = -mg.calc_flux_div_at_node(qs)\n", + " z[mg.core_nodes] += dzdt[mg.core_nodes] * dt\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 3\n", + "\n", + "(3.1-6) Repeat the exercises from section 2c, but this time using a hexagonal tiny grid called `tinyhex`. Your grid should have 7 nodes: one core node and 6 perimeter nodes. (Hints: use `node_layout = 'hex'`, and make a grid with 3 rows and 2 base-row columns.)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.1 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "tinyhex = HexModelGrid((3, 2), 2.0)\n", + "plot_graph(tinyhex, at=\"node\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.2 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "height = tinyhex.add_zeros(\"height\", at=\"node\")\n", + "height[3] = 0.5\n", + "tinyhex.imshow(height, cmap=\"Blues\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.3 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "plot_graph(tinyhex, at=\"link\")\n", + "pred_grad = np.array([0, 0, 0.25, 0.25, 0, 0.25, -0.25, 0, -0.25, -0.25, 0, 0])\n", + "print(pred_grad)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.4 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "hexgrad = tinyhex.calc_grad_at_link(height)\n", + "print(hexgrad)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.5 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "hexflux = -0.01 * hexgrad\n", + "print(hexflux)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 3.6 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "print(tinyhex.length_of_face)\n", + "print(tinyhex.area_of_cell)\n", + "total_outflux = 6 * 0.0025 * tinyhex.length_of_face[0]\n", + "divergence = total_outflux / tinyhex.area_of_cell[0]\n", + "print(total_outflux)\n", + "print(divergence)\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 4: Landlab Components\n", + "\n", + "Finally we will use a Landlab component, called the LinearDiffuser [link to its documentation](https://landlab.readthedocs.io/en/latest/reference/components/diffusion.html).\n", + "\n", + "Landlab was designed to have many of the utilities like `calc_grad_at_link`, and `calc_flux_divergence_at_node` to help you make your own models. Sometimes, however, you may use such a model over and over and over. Then it is nice to be able to put it in its own python class with a standard interface. \n", + "\n", + "This is what a Landlab Component is. \n", + "\n", + "There is a whole [tutorial on components](../component_tutorial/component_tutorial.ipynb) and a [page on the User Guide](https://landlab.readthedocs.io/en/latest/user_guide/components.html). For now we will just show you what the prior example looks like if we use the LinearDiffuser. \n", + "\n", + "First we import it, set up the grid, and uplift our fault block. " + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "from landlab.components import LinearDiffuser\n", + "\n", + "mg = HexModelGrid((25, 40), 10, node_layout=\"rect\")\n", + "z = mg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "fault_trace_y = 50.0 + 0.25 * mg.x_of_node\n", + "z[mg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * mg.x_of_node[mg.y_of_node > fault_trace_y]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we instantiate a LinearDiffuser. We have to tell the component what value to use for the diffusivity. " + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "ld = LinearDiffuser(mg, linear_diffusivity=D)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally we run the component forward in time and plot. Like many Landlab components, the LinearDiffuser has a method called \"run_one_step\" that takes one input, the timestep dt. Calling this method runs the LinearDiffuser forward in time by an increment dt. " + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGOCAYAAAA3j2GqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACyl0lEQVR4nOz9e7wlZ13ni3+euq61r0l3ku70EGLQcJFERGTwoA5BIBAHUEERUUH0eFCQAQG5ChMcSAsqMiaAB4ZDIgzizAERR89Pwg9JdHg5R4JoggqJNJiQdLrTvfe61e25nT+ep2pVrVWXZ/devfdK87xntqH3fq+nqtaqteq7nqrvp4iUUsJisVgsFotlj3D2ewUsFovFYrF8a2GLD4vFYrFYLHuKLT4sFovFYrHsKbb4sFgsFovFsqfY4sNisVgsFsueYosPi8VisVgse4otPiwWi8VisewptviwWCwWi8Wyp3j7vQIWi8VisVjmSZIEWZbtepwgCNDr9RawRovDFh8Wi8VisSwZSZLgsssuw/Hjx3c91uHDh3Hs2LGlKkBs8WGxWCwWy5KRZRmOHz+Ou+/+V2xsbJzxOMPhEJdc8lBkWWaLD4vFYrFYLN1sbGzsqvhYVmzxYbFYLBbLkiKlxG7u/7qs9461xYfFYrFYLEuL1D+7efzyYVttLRaLxWKx7Cl25sNisVgslqXl3Jz5sMWHxWKxWCxLyrl6zYc97WKxWCwWi2VPsTMfFovFYrEsLfa0i8VisVgslj3FFh8Wi8VisVj2EHvNh8VisVgsFssCsDMfFovFYrEsLfa0i8VisVgslj3l3Cw+7GkXi8VisVgse4qd+bBYLBaLZUk5Vy84tcWHxWKxWCxLiz3tYrFYLBaLxbJr7MyHxWKxWCxLy7k582GLD4vFYrFYlpRz9ZoPe9rFYrFYLBbLnmJnPiwWi8ViWVrsaReLxWKxWCx7ii0+LBaLxWKx7CH2mg+LxWKxWCyWBWBnPiwWi8ViWVrsaReLxWKxWCx7igQgdvn45cOedrFYLBaLxbKn2JkPi8VisViWlHP1glNbfFgsFovFsrScm9d82NMuFovFYrFY9hQ782GxWCwWy9Jybs582OLDYrFYLJYl5Vy95sOedrFYLBaLxbKn2JkPi8VisViWFnvaxWKxWCwWy55iiw+LxWKxWCx7iL3mw2KxWCwWi2UB2JkPi8VisViWFnvaxWKxWCwWyx5iT7tYLBaLxWKxLAA782GxWCwWy9Ii9M9uHr982OLDYrFYLJal5dy85sOedrFYLBaLxbKn2JkPi8VisViWlHP1glNbfFgsFovFsrTY0y4Wi8VisVjOYW699VY861nPwpEjR0AIwSc/+cnib5RSvO51r8OVV16J1dVVHDlyBC984Qtx77337ng5tviwWCwWi2VpkQv4MWcymeAxj3kMbrjhhrm/RVGEL37xi3jzm9+ML37xi/jEJz6Br371q3j2s5+9462yp10sFovFYllS9vqaj2uuuQbXXHNN7d82Nzdx8803V353/fXX49/+23+Lf/3Xf8VDH/pQ4+XY4sNisVgslqVmOa/bAIDBYABCCM4777wdPc4WHxaLxWKxnOMMh8PKv8MwRBiGuxozSRK8/vWvxwte8AJsbGzs6LH2mg+LxWKxWJYWsYAf4JJLLsHm5mbxc/To0V2tFaUUz3/+8yGEwHvf+94dP97OfFgsFovFsqQs6pqPu+++uzI7sZtZD0opnve85+HYsWP47Gc/u+NZD8AWHxaLxWKxnPNsbGycUZEwS1543HnnnfjLv/xLHDx48IzGscWHxWKxWCxLy96GjI3HY9x1113Fv48dO4YvfelLOHDgAI4cOYIf//Efxxe/+EX8j//xP8A5x/HjxwEABw4cQBAExsshclmzVy0Wi8Vi+RZlOBxic3MT99zzv7CxsbaLccZ4yEOegMFgYDTz8bnPfQ5PfvKT537/ohe9CNdeey0uu+yy2sf95V/+Ja666irj9bIzHxaLxWKxWAAAV111Ves1Jouar7DFh8VisVgsS4q9sZzFYrFYLJY9xt5YzmKxWCwWi2XX2JkPi8VisViWlmlQ2Jk/fvmwxYfFYrFYLEuKvebDYrFYLBbLHmOv+bBYLBaLxWLZNXbmw2KxWCyWpeXcnPmwxYfFYrFYLEuKlAJSnvlFo7t57NnEnnaxWCwWi8Wyp9iZD4vFYrFYlhZ72sVisVgsFssecq622trTLhaLxWKxWPYUO/NhsVgsFsvSYk+7WCwWi8Vi2VMkdheRvpzFhz3tYrFYLBaLZU+xMx8Wi8VisSwp5+oFp7b4sFgsFotlabHXfFgsFovFYtlTzs3iw17zYbFYLBaLZU+xMx8Wi8VisSwtu7u3y+46Zc4etvgAIITAvffei/X1dRBC9nt1LBaLxbLESCkxGo1w5MgROM7ZPoFwbp52scUHgHvvvReXXHLJfq+GxWKxWB5E3H333XjIQx6y36vxoMQWHwDW19cBqB1pY2Njn9fGYrFYLMvMcDjEJZdcUhw7zi525uOcJT/VsrGxsaPiQ0qJLD0BEAdBcEHjKRspJbLsAQASQXBh66mdLH0AUnIE4UXtXnYaUmYIgkOtHqXb4DxBGHZ5Q3AeIQwvAiHN04iMjcHY2MCbgPOx3t5mj/MYlA4QhheCELfFS8DYAEFwEIQ077ZCpKB0AN8/AMdp8zLtnQfH8Vs8Ckq3Oz0pGSgdwPPW4ThBi8dB6baBJ7S3CscJO7whXLcP1233GBvBcUK4bq/Fk9oLOj3OxyDEN/AmIMSF6/Y7vAiEOJ2eEAkAwHF6re85IVIAstUDAM5TAKLTEyKDlAKOEy7Io5CSG3gMUrJOT0oOIRgcJ1iYJyUDIV2e0J5v6Hmtnwkq14KBENfA49prW26eEOoYeBIAMT79vhen6dXzdubXbezuepGzhy0+zhBKBxhu3w5KtwAAQXghNjYeDc+vVsKMjjAc3QGanQIA+P4BrG9cAd+vFjmMjTEafhlZdhIA4PnnYWPjCvj+eRWP8wij0T8hy+5XnreB9fVHw/fPn/FijMdfRZoeBwC47hrW1x+FIDgw46WYTO5Emt4HAIiiFaytPRJBcLDiCZFhMvka0vRe7X0Na2sPh+8frLwBhaCI428gSb4JAHCcr2Fl5TvmijMhGOL4X5Ek9+jxjmF19dvnijMpOeL4Hj2eRBR9HSsr34YguGjOS5L7EMf3AJAg5Ovo9y/VRVLZE0jT44jje5F/IPX7D5krppR3Ui9XII7vRq93pMZThWWS3AeAAyAIw8O1HqWnkST3Qsrcu0h77oy3jTS9D1IyAEAQXFjrMTZEkhwveQcavDHS9H5ISQEAnncewvDCueKMscmMt4EgqPMipOmJwnPdNYThBXPFGecxsuwBCJFpbxVBcLDGS5Flp3SxALhuv9YTIkOWnS48x+khCA7UeBRZtlXyAgTB+XPFniosB4VHiI8gOK/GY2BsWPI8+P7mnKcKy1FRHBHiwfPW54pCKTkYG5fGc+F5a3NFpioYJ8V4wER7wdw+zXlcjMd5BM9bnSsGVIFX9mK47gocZ94TIik8IIHr9uaKEOVlFc9xerXjSZkV+wGQ6kKqzmMlD3qsOo8X+5+UVBc03pynLtbk+jccUjpzxcq06MhnCCSkJNhJEWLZOUTuY/zZ0aNH8YlPfAL//M//jH6/jyc+8Yl4xzvegUc84hGFI6XEW9/6Vrz//e/H1tYWnvCEJ+A973kPHv3oRxdOmqZ4zWtegz/8wz9EHMd4ylOegve+973G5+KGwyE2NzcxGAw6Zz44TzEe/TPi6F8BEEx3WPW/V1Yvw9r6wwEA4/FXEUdfr/X6/Ydibf0RABxMxnciio7lW1zxer2HYG39kSDEQxT9C6LoazOeIgyPYG3tEXCcAFF0DJPJMdRN1wXBRVhffyQcJ0Ac/ysmk681eBdgdfXhcN0+kuQePR7HLL5/vvZWkKb3IoqOld7sUzxvA6url8N1V5Gmx7XH5jzXXcfa2nfAddeQZScRRV8vPmSq3ipWVh4Gz1tHlp1q9Bynj9XVy+B5G6B0G3H8jcqH29QLsbJyKXz/PFA6QBz/a+lDtewF6PcfCs/bBOdjxPHdtR4hPvr9fwPPOw+cTxDH95QOImXPQ693BL5/PoSIEcffhBBxjeciDC/WXoIkuQ+cz3uAg17vkPZSpOn94Dyq9cLwQvj++ZCStngEQXBQexxpehKcTxq88wsvy041eIDvn6c9gSw73eJt6uJbIsu2wfm41vO8dfj+JgA1g8dYvaeKn00ABIyNWry+Ho+AsXHj+jlOT3+JcMD5pHE8xwnheesgxAXnUeN4hATwvDXtxS2eX3hCpHo/mP8YJ8SD665oL2vx3MKTkjZ6gFPyGDhPWrxe4eUzUDVboosVD0LkRUeTF+iiWkAI2uBBF4QOVAEx//lS3uZp0kTbzEB9EbKTY8aZki/ja1/7FNbXV894nNFogoc97NlndV3PhH0tPp7xjGfg+c9/Ph7/+MeDMYY3velNuP322/GP//iPWF1VT/Y73vEOvP3tb8eNN96Ihz/84Xjb296GW2+9FV/5yleK822//Mu/jD/90z/FjTfeiIMHD+LVr341Tp8+jdtuuw2u2zyVn2O6IyXxfRhs/52exmp+2ghxAUJQd7CuoqYB6w7WpdEAEDiua+QR4re+6ZSnvlGYeUGHB+2FRl73+u10PLP1IyQEYLZ+3a+bWq6JpyYXTcbzYNYS58HkHK76cF2cB5iOZ3rlv7mnPvi7lk2QH3S6PLWOi/JguNydPNem45ntC/l7uXs802/5Zq/dosdT+4KpZyKaevPu3hYff7KA4uNHbPHRxsmTJ3HRRRfhlltuwb/7d/8OUkocOXIEr3zlK/G6170OgJrlOHToEN7xjnfgJS95CQaDAS688EJ8+MMfxk/+5E8CmHav/Pmf/zme/vSndy7XdEc69cD/BM1Od28IWfC5QGI6/Zd/AHd7puOZHUx2MkW5yOUC5h+E3UWo8hY7nvkHv+n2mi/X/DU2fd2+tcYzfw+br5/ZkDsZb1HvueUvPhb93jR/DwOzn0m2+Ng9S5VwOhgMAAAHDqjrEo4dO4bjx4/j6quvLpwwDPGkJz0Jn//85wEAt912GyilFefIkSO44oorCmeWNE0xHA4rPxaLxWKxLBv5Bae7+VlGlqb4kFLiVa96FX7gB34AV1xxBQDg+HF1seShQ4cq7qFDh4q/HT9+HEEQ4Pzzz290Zjl69Cg2NzeLH5vxYbFYLJblRC7gZ/lYmuLjV37lV/AP//AP+MM//MO5v81O30kpO6f02pw3vOENGAwGxc/dd9995itusVgsFstZQnX37O5nGVmK4uPlL385PvWpT+Ev//IvKx0qhw8fBoC5GYwTJ04UsyGHDx9GlmXY2tpqdGYJw7DI9NhptofFYrFYLJbdsa/Fh5QSv/Irv4JPfOIT+OxnP4vLLrus8vfLLrsMhw8fxs0331z8Lssy3HLLLXjiE58IAHjc4x4H3/crzn333Yc77rijcBYB53FjK92esODi1bQYXtaq2WI5U/Zv3zcdz77nLGXykLQz/VnO/WlfQ8Ze9rKX4aMf/Sj+5E/+BOvr68UMx+bmJvr9PggheOUrX4nrrrsOl19+OS6//HJcd911WFlZwQte8ILC/YVf+AW8+tWvxsGDB3HgwAG85jWvwZVXXomnPvWpu15HKTnGo7swHt2J/PxZ51XcEpAmnvlKQBIAsutq+fL5vTaxvDN2eaT033bP5HRY91jKMRvLdDyzU3U784Th1feLXT/1YWLW2WH6ekhp0plgsl9Nx+vu7NjpeF3ruJN9GgbbrALoup9D0+V2j6e2c/qe614/t2O86bp1b0P3+zf/++x/m8dT75EmbzpOu2c+nko46B4v9808xX6Gjdl49YXzvve9DwBw1VVXVX7/oQ99CD/3cz8HAHjta1+LOI7x0pe+tAgZ+/SnP13J1P/d3/1deJ6H5z3veUXI2I033miU8dGElBJJch+G23fMhUPlb2qT605MvB2slcGHptmH4XSItoMjMfSmy13cgSc/V0n0+ppsc9v2TqOTu1yzD22pryJfzPqZHWTLv+9+Pab5GHtdgJis307GMy1uF1Us5+sltKfXcs6VM/9Fw3J3Mt50P+32GFRB4zR4QJ4xoxI73VpPLYcVXt6CWjeeEAxqf3FAiFf7HKr3T7uXv8eq47lz++H0vZh7RI9XfW5yL+/smG7H7Otcfq3y97BbjDG/zTtpabbshKXK+dgv6nq2B9u3I5oc63zs3E7ZsI+e8c7b8Lj6N8mcNfd7swNb15uta9kmB+RFjGeyLU3rUTd7sLvnenHbW7fcttmOM3mNm9ftzHM1TJ8/0/HqvbM3XttHoWPolZfb7uUzZ9N47+bxpoVkk+dgGlqYT9PXuWaeWreppwIO68ZzkceVq/E46sPyqp466Hd701MH89uRx6nPx6PPem7p+WuCoPoatxcde5nzceed/w3r6ytnPM5oFOHyy5+3dDkf9t4uDdBsq1uCPr2Sf9i0fNaZT6uXaJ0yLP+5+dt5+e+mU4u7D1cyndre2XgmsxaV0Yy+JZuPZ/JtemeYTvUuYnuBxc+CmK2f+em47rHOzmkik/UT+tu0yXJNn2du5E2/8bevX76O7eRee4pqXhyo8doO2lxvh4v2hF7lSdmV8loer80TkDID4Bt4Aiq5uA2pl03QdUO7PUfKfHrqzB+/hNjiYxEsekZuocmK5gXAYhMdd8L+bO+il2vOfm3v2cBORy8XpkXwoi9+NQ2yWvRyF31gXc4D9bnIEpV3FovFYrFYvhWwMx8Wi8VisSwpuw0KW9bLOu3Mh8VisVgslj3FFh8NqNtVG2JYWBoXoMbjmYmL9kxX8FutPW3Rz9/iX7f9w3wV92dfXeRzra4P3J/t2M9rcLo2Zfr3xTw3+fNs9pqYzx5IybBUN2OTC/jZAbfeeiue9axn4ciRIyCE4JOf/GR1daTEtddeiyNHjqDf7+Oqq67Cl7/85R1vli0+Gtg877sQBAe7Rak6XsxYpLezsbrfePlV9YtbR/OxzFL41AeCmac+bPZ2ufnzZ/pcd48pOtowd7rc8rK7x+tmJ+mJi9ynzQ4M+X5gttyd7Qftw07fS21e/tq2vcbT11W0vsbT+3iYeULwBXt5DkezB0gIQVuLs+l4tPS45vGkpJ3LnY63kwKEQgi2FIX9mdzLZfZnJ0wmEzzmMY/BDTfcUPv3d77znXjXu96FG264AX/7t3+Lw4cP42lPexpGo9GOlmOv+WjA89dw4IInIk2OYzC4A4LHtV7x7b78+tZ8+djxLMA0RadRUX9qayms/m6xiZf5spuXu/OuE9Pxuq7on3rN21KXx9CVU9Huldet/bkmc37zcjt2rMo4+W7T1ZbZvtz899MPrbbxZhNX29rDp9vSFt5WXbfZ52q6XDVcNWBruozpf9XvZoO4Zj3oFk+nsm7T8fLwKmCabusgb3mfhlxVC4lp0FXVmy14VMhW03LzIkY0jjdbIM8GbFW9fFu49twaj2MaUJbPBM9709ZYNWOQe/lzXR5PyjzIjOrWV6/Bo3rsDI4TtHhsxvMrXv7+ydePc7V+jjP12sm3zcPsfrGnnMHsxdzjd8A111yDa665pn4oKfHud78bb3rTm/Cc5zwHAHDTTTfh0KFD+OhHP4qXvOQlxsuxMx8tEELQ61+Miw79ENY3HlX7d9NxzpiaqpWQuryBWY+gelDIh6v7NjbrTb9BtXv1y61fvzqaxqsecJu312T9Zr89qTCh+oNkdbzm7TjTWaT69TNbrukn0E5msOqc+vVrH099M9/Jp+TOZofaxs0PzuUZhFlXIg+/qjp1Y4qZ2YN826rjSclnvu3nwVnVMZXHK179jJHQB9SyNx/sVb/cNq+8zmxuW5RHS4/P8zP4jMcgRDbn5Qf2Nk+IrFQo5B7VydGi5KWlwkP/VmTgPC4tR9aOp7xoxmO168d5Mvf7Nuqet29Vjh07huPHj+Pqq68ufheGIZ70pCfh85///I7GsjMfBhDiYm39ciTJcdBsa2+KjjMer+kA1+QuzjMP5jEJ19pNYmjzmKYs5rVr+gZ/psvtmvHZqVdZ8g79RS13EWPOzpa0ecLQMyveTIPCcq/7tgMmB0VZOvi27y/q+gWT8ehCPVWAmHgpTJ4/VZgwAy8BEBqtn+M8SA5/arptd4+HSkwtE4YhwrDruaqS339t9o7xhw4dwje+8Y0djWVnPnYAIeZTb/tTeAD7VXicK0Fh5rM2ppgVPYtf7k741row2GJ5MJHXHrv5AYBLLrkEm5ubxc/Ro0fPeJ3q7uez08+vB0npZ7FYLBaL5Uy5++67K/d22emsBwAcPnwYgJoBufjii4vfnzhxYm42pAs782GxWCwWy7KyoKmPjY2Nys+ZFB+XXXYZDh8+jJtvvrn4XZZluOWWW/DEJz5xR2PZmY8dIEXXOcdzj/yqeovFYrGc+4zHY9x1113Fv48dO4YvfelLOHDgAB760Ifila98Ja677jpcfvnluPzyy3HddddhZWUFL3jBC3a0HFt8GMBYhOHgy6B0AGAfwrMWXgGYX7hotli54LtAmt5pVLkm22I6nuog2G2r6s7Hy7s/Fne31p2ch138c7gfnhn7t62Os+jlOp1+uTW23QPyfatrvJy998zWz+y9lHcn7aQz71uDL3zhC3jyk59c/PtVr3oVAOBFL3oRbrzxRrz2ta9FHMd46Utfiq2tLTzhCU/Apz/9aayvr+9oOUQuQ4rKPjMcDrG5uYnBYFA5JyYEw2R8F8ajO/Vvph/8ZvsrKf9n95A8q6BLzAuBdlEVDF0fxsTQU8td7IWipuOZXtTZ1GI7P97itiMfy/wDrnvZph00ixhvtk1Z/Xd2yPp25rply5n/1nvVPIzp83emXnW5zes3m+th7nkdHtd/V/kbbZ7KEfFaPdWWK+A4fm3hP5uH4ThBh8cgJdWeW+sRQiAEhRDKcxxvrqipehkcJzTwUjhOD47jt3gMQqRw3R4cJ2j08tZh5YWNRVeed+K6PZ050vQ+ISDEm3vumo4ZiyRfxj/9w0ewvr5yxuOMRhEe9V0/c1bX9UywMx8NpMkJbG/9nW4Fm2WalVG7w5KpB+QTF7uoQGaCkZrHq3ozK1MabtarKyyIoVddbv5N36ytsEmoG69um8v/bt7m6naYtL92Lbfq1o81+1iTGQvT/aX99V3ceLPfS+a98jfmqqcCu+b3ydk2VuWpcerc8mPIjjy1yaTBKy9XudNtKWc6cD1eXUhZ2aN6vDxgK1+2QLl9Vh30XORBXNMxRaWVVOVdOCh/ROdenvMBAEKkIMQtDqBVjxp6abEtQiTaC1DdhwUYq3pSuvoAjxqPay/WXm+mW1RU8jaEiLTXL57r/Hku53xwHukiZAV56NnUm+aT5J7jrIAQb6Y4nuaicB4DSOG6/cLLX2NVAO5juFjO7FvmTB6/hNjio4HR6CsNhUcVCQmSfxi27KNnNHXcMU06/XPzQbT8d9NZBPOsCbPlto8167V9++7y5mkPCTuT9Wtz2755z3rtY+XT6t3LrC63bTyz19Z8/bo9oQ+2jt5Xmz4F84N4fkBu8vL1c4w8lRra9sk9nd1Qx6amIKlysTJbdMyOp4oLKQmAaZFQRSVn5rMb1ZCv6ngq8MsFIQ44p7XLVrMbvPiGznl9KNbUc0GIWzlYz3sxAA+O44FzirqMDSk5OI9AiF/yaIM30Z6vQ8KavDEICeA4gY5ir/cYG4GQAK4bopp2OjveCEIEcN0+5gvGHAHOJxDC10mpqqja96LjHMcWH03s5GzUovfRBWdcmGeTLCokDMhnhxZ7PnWx27toFnvdy46WvODxzK6LMPdMgr322zPB1DNLz+wOzZp6Jh9H5h7VRU23pwqeLi/Thcwive7nRsoMwuAlUdsaGHhqez1vY7kKjwWFjC0btviwWCwWi2VJOUdrD1t8WCwWi8WytJyj1YcNGbNYLBaLxbKn2JkPS8GicyEsFovlwYZqJV6eC04ldjnxsbA1WSx25qOB/sol6O4iACAx08bVopruQUae+W3TVfBOt2e86JLfaRmuo8l45QChRXiL3QYzz3zddjKeyYWQO3mOzdbNZFvKXptaHa9ZNPWm+337OlbXb2+9sr9bb/r+NRmP7Plyy54J0326fR2F4J3jKo8aeVJKcD5Blm0Vj9l38tMuu/lZQuzMRwOra5chCC/AcHAHsvRkq0tAjCYDdlRJV3tpG8YDpm9Ok8wMs7wHM4+ge6OnH3S7n1FRy1PjmCw3f8+15Y3MtpbuNvdDQLVYznvTDIm8DRRoDuIyW24540DlIHQFe+Wtr25D8FLZU+vX7pVbWpu86faqbqCm7zvTNkgp69dv6uUHHK/RU8tmerkeyrkaVYR+7mSnl+drlL265zpvnW33hO78EDpToz6kTHmp9nwA84FYefuvigbgeryg0VO5GaxoaW33KAgJ4Ti9Bk+C8whS5oFi/RZvrLM3QrjuKmZbv6feBEIkcJweXHe9ZbwJhIjhOH34/nlz+2G+nwoRg7Et7Z2P2f2/uj/nv8uQZafguivwvLV97GQ7d7HFRwu+v44DB78PaXoCw+3bwXlU+fvcB0W5wCQtnin5gafm4fUHmLocjPkDlklAmWmhUreMOq95PLPtaD6gLlsxJUte/fpMEYVnWhQCQB6XPc90vNyrn/HgukiaFiv1MwnzxdTOvOqMjJQC5fySJi9P+SwfuJU3DYdSML1cF9X9t+qpFtRpDka+DaroEJ2eKjrmPcfxke8P6vcU5VmoqaeKkOlyq7kZUqrcC1UITAOxhEgxGzyWp5WWPSlTlPMw8vEICUGIXxovgZRpxeM8P8VQ9uJKxpGUKTjPdAEybVlVXlL6d6pTTVW66PT3UeWzM/dcd6UoavLxlDddXxUotgrHWZnxJiUvRpom8Lz1oliZLiee8WJ43gY8bwPV4qd+doDzCJzHCIKD+nXcB+recjt9/BJii48OCCHo9Q4hPHQhTp74S3A2KX7f/KDq43dH9YC4iOjt6qRK+7fuxQZdldffbDsW8/yZLO9seAbTYYXX9I171m0qPOqW2+WVg7O6xzP32k4D5Qf9fH9pGlPNXEyLqS4v30+bg8LUwdvUI3rZTZkdEkJkyGeH2j0KgOkU1ab8CqkP+HlSatOU/9RTBVJTboaElAkYU8mmyqt7DmVxkCfE1WM3eTGkTOE4nt72uudQFsULIZ4uTuo9zifgPIbjhMWsTb031l5PF1r1HmNDMBbB9zf0c17/mihvgl7v4o59urxN2b4VH1L/v908fhmxxYchhDhw3R7EzOxHs7/Yi5UWe8+UnXiLZrmDws4dTAqfs+WZsGhvsUFhZtfRqPHMTqlzowOdOrCahJTVp3qeqadSQk2uceB6JshkvO5AMTWeyWfqTrykWzPeXyxnC1t8WCwWi8WyrNjTLhaLxWKxWPaU3XasLGm3i72E12KxWCwWy55iZz4MSZOToNlg35Zv0HmbmzC5yLG7wyJf7hncjXfXLGelfjb5Vgx4M9mnzff7nSx3sfu06XiL3paz8dw8+DH/7MivwTF57fbzGrRzdOLDFh9dMDbGcPBlpMn9+jdtuREaqa4wXtgOK6U+3ph0Tizzp1EeiNV1a3cYedO2T5Pxuj9opm2f3been64f0PScl9evO29EFJ0Y7dkVU9q3Rd3Kfn+87k4lKYXuEul6rrl22idp8wtEzbz27qJpS6wAIaZe80fpdD/gRssVQrXnNhU10+UyENLtCUGL9VuIxymIY+AxBuI25ZxM92fBMjjefH7JnEcpHL/bo+kYXrCCpvdxvn5pcj/C8ELIhjybHNU63Gv8+1nnHK0+bPHRgBAU49GdmIz/ZeYveUBU/gHbPEY1IGr36zQdzyxnQtHeStt9oJh63cWUSRtq/sHZ/oZv8+ZDgUzHy78tNn9wTZfbdMCTpR80LrdaKLQtu7zcvPV13pvmXOQ4Lc9NHsIldDumg9nip5qvIUrjAfnrN92GPDcjXz+3wWOl7VEeMN2WWW8atObVeqrlleu/uTpkazdeVuOROU+IrNT54epcjTovLTo6pPT0AarOm+ZrEOLqDAyn1svzNYRw4bp9lIuVag5HXHiOs1IpfsreNDfDheuuFM/NrMfYGOpzxYXrrtZ7PAGjOl+DOPC8VRA3KGZg8iJIsAQ0nQBSKC9cgesFxd8Lj2agydTzeytwg3DO41kGGo0hhQBxHPgrq/DCfu142WQMKTgIcRCsnQ+/t1bsC4XHM9BsACkYkuhe9Fb+DcLeRZV9Rv1vH76/ofNc9o9ztPawxUcT21t/hzQ53mLI4v+SSrBHg2d4mmOOhoPV/LedpoNa7Uqdwfo1FSF1jzEpQqbBVO3LraZt1odczXvNVLejuf1xmhraHNaVL3eaGto2HlB+npu8POXTwTToStT4Qi/bbfXUuuXf4J3S89c2Xjn8a7YlsezlwVm80VPhWnkRV+9Jmelv8I5eZ4bZ9lDVusn1QdE18DzkH2/Koy3j5R7V+RVlOISIUU4XVV41D0NKBs7HUKmhoX4OaSXkKl8u5xEI8Sse51UP4Ho8H47TQ57poYoJMTPeCEIEcN1+4TE2QbVYLXsrJW+Ecm6GlByMDUFIAM9bUa+xYGB0XH2upQCjIxDuw/VWCy9LRpBixkvG4K4HL1gFcV1IwZHFY0he9Wg8BssS+P1VENeD5BzpZAzBSgFqQiAbj8CSGP7qOlzPhxQC6WQEQaevnZQC6egUaDxCuH4Ant+DlBxZMoTgScljiCffQJqcwMrqpfCDDQCA72/q532ZZ5If3Njio4HyDmrEovfRBYSJ7QzzUzbmhVTXmCZFSk5erHR7poFdZt8IpqcR2uHFN/2u5ZqRFzUmy+321MFWGLxuHM2BWWfmmeRWqAKhqcAre3k6aJdXLkya3WrBYeK1r6MqEFKofab5dZGSgrGdes3Po5QZKE3QHng29VSAWnNeh4oXT0Gk0z6eoKDJFiCdatEx63GGLNoGgQMpWsbjDOloG4BbLU5mEIwhHWzpIqXNyxBvHYe/ttK6foLHGA//GY7bx8bmo/Ss05Jwjk592OJjEex54XG2FmyK/TZgORuYfkjup2fimnqAediVSaEHw4IQrYXHGY1nEDymPMPxWgqKM/IM10/w2MjbU3ayOzU9fgmxrbYWi8VisVj2FDvzYbFYLBbLkiJlfp3amT9+GdnXmY9bb70Vz3rWs3DkyBEQQvDJT36y8vef+7mfAyGk8vN93/d9FSdNU7z85S/HBRdcgNXVVTz72c/GPffcs4db8a3Icu7MFovFslsENzs1tGfIBfwsIftafEwmEzzmMY/BDTfc0Og84xnPwH333Vf8/Pmf/3nl76985Svxx3/8x/jYxz6Gv/7rv8Z4PMYzn/lM8F3uQI5r3tdtWlkaV6CGd1o0vSPjolnsTe72752x8NfNcFvUNxnDEY08829G++Ht5JvbIsdT1+ntx/YaDbUDZOU/pnrjn6XheEWLctfizLxiMzrXb6de18XHZvtM/vev3fwXeOCr/7i0MwbnCvt62uWaa67BNddc0+qEYYjDhw/X/m0wGOCDH/wgPvzhD+OpT30qAOAjH/kILrnkEnzmM5/B05/+9DNet/POf+xMzkfDjpg3dBg2ixinK+bN8+2SYedJ3rHRHezVFdKEUsAW0N2ea/Lk5C2t7ePlJbxJfkm5RbZpmaqVNG8tbUbqMU3GY1Att/XPYTk3I299bfNUK6hj6LloDztTFxmqfIv6rpxyboZaphpzdrPrvaZsktwjmM3zmPWmXSf1QVLlvA41XpeXQkqpczXalptCSlEESbV73MDLAMn0F5j5VvJpbkYGIShcr9lTuRkMgmdw/bDdowycZfDCoMHTeRxMgGcZ3NADnGZPMAGWUHg9X3kglV2sPB6NMnihD+I58293/W/BBOgkg9/3QHy30ZNMIBul8Po+3KDZE5QjGyTw1wJ4fX/+I1OqwkhkHMN7h+hftIZgs1f7GSylBIsotv7+PsTHx7jrnj/B8S99AZdddTVWL6o//uwV5+ppl6W/5uNzn/scLrroIpx33nl40pOehLe//e246CIVCHPbbbeBUoqrr7668I8cOYIrrrgCn//85xuLjzRNkaZp8e/hcDjnOI6Pjc3vxMrqQ2cSTqtUduKzUYCohbRJJc2krRWoW8npY9u9qaM21iQfZPrf9jyP6Xj5suveNLO/q/Mk8mTMclEzGySmmPeq6zxdvzyXpH68nLz11a3xprkZqhWUoJwoOT1olr28RXZ+vKqXjzctfsrLzbsWpBTgnMFx/Dmv2p6qbsWuApbcXXiljAbJdGCXq/fZaXEybWMtex7KBbYaL6s8jpAAhPjFMqf5GknhcU51pkYw55VzMzjPdGERFOs89SYGHlOefq6FyOC4vaL4KTzBwOikeE0Ez+B6PThu7qmCTwoOmk6KDhHBKFw/hOMHM55AFkeQerY3owxu4MMNpx4gIYUAnSQQTI+XcTihB7fnzXgS2TiFyPR4KYcbevBWfEBO90EpJLJRCp6ykufC6wel50R5dJiCJ8pLEwa358Ffm/eyQQoWqX2Gx9pbD0CcUi6PkEi3YtCRKlbZOIO34iM8uAK4VS++f4z0tOpgybZiBJs9rF16PpxQ59kItdztfzyB0b+crky3jO+/F7d/7EO48Du/C5dddXWRwrrn7PbUyXLWHstdfFxzzTX4iZ/4CVx66aU4duwY3vzmN+OHfuiHcNtttyEMQxw/fhxBEOD888+vPO7QoUM4frw5IOzo0aN461vfarQOnreGAwefgDQ5ga3Tf4tpQmLDgTR/oTtqi/KHYCedsyCypO28AGmfbTCbFaj7hnzm4+1krLZ3lipC8tTQ5nfx1Kv+rn798iKp3WPIU0Prw7qUV509kKhvbZT6YJ/PgrR7apbGRbnomPWEyECIo4sfFa1dV8QpzzXyAEcXIbJSTFS9tPCkzP89+9zkv6e6CIHOzpj3pEx1caE8xhLMt6VKnR5Ki0KA8wjz7aZSh4JlRcAUYxFmA8qmXgrH6YPAAWOTeo/HEDxVuRHEBaMRBJ8NMgM4S8B5BtftgTguWBpDsBqPpuBMzYI4rgcaJ+C0xssoOGXwwgCO64IlKXg6u36ASBlExuCGPhzfAY0peDzv8ZSBZwxez4cTuGARBYtqlpty8CyG2/PhBS5oRMHGNV7CwFOmZjf6HtiEIhulc7tM4a348Po+2CRDuhXPeSyiYPEA/kaIYD1ENkyRnBhD8qqYDRKcvv0+9C5cQ//QGuLjI2z/4wmItOZ9ot/kJ//xH7B5ybfhgkc8et6xnDFLXXz85E/+ZPG/r7jiCnzv934vLr30UvzZn/0ZnvOc5zQ+rmtm4Q1veANe9apXFf8eDoe45JJLWtcl7F0EPzgPNDu9gy1YXhab3GdYce1ovEWEmOWYBoVN71/SvVwTmoqOec9satQ0eMzMk1Igj/1u90wDxYSecej21IyDyXgmuQtCz0x0oVI+u18/U0+AMzOP0lG3JgVYNgFEhyglWBJDGng0SgzGA1iUQfCOfUYCdJJBDrs9NslAtw3GG2dItzv2GQnQUYb0gY59RgLZVoL43lGnFx8f4fQX7233SuzrRag2ZGz/ufjii3HppZfizjvvBAAcPnwYWZZha2urMvtx4sQJPPGJT2wcJwxDhGHY+HeLxWKxWJaBc7T2eHCFjJ06dQp33303Lr74YgDA4x73OPi+j5tvvrlw7rvvPtxxxx2txYfFYrFYLA8KJKYVyBn97PcG1LOvMx/j8Rh33XVX8e9jx47hS1/6Eg4cOIADBw7g2muvxXOf+1xcfPHF+PrXv443vvGNuOCCC/BjP/ZjAIDNzU38wi/8Al796lfj4MGDOHDgAF7zmtfgyiuvLLpfLBaLxWKxLBf7Wnx84QtfwJOf/OTi3/l1GC960Yvwvve9D7fffjv+4A/+ANvb27j44ovx5Cc/GX/0R3+E9fX14jG/+7u/C8/z8LznPQ9xHOMpT3kKbrzxRriuyU2+zJFS7PxmcxaLxWKx7Abb7bJ4rrrqqtYL7f7iL/6ic4xer4frr78e119//SJXrUKS3I/h9u36VtiLvana/uR+SOPlmnmmF36ad/mYeOV9Z3Hefi13Mc/JmXmt2lkbT/0DjbtOeby23V95uk20ZX9VwxHkOTXN41XHbfUIgRTd4xFCIITQ29PSKUcMnu+z5EGquLDWfbXorGv/XHgweMRzIFnHRbGEwPF8rB8+0u6dRSR2mfOxpNXHg+qC072G0hGGgzuQpSeL33V9IE1F/d9F534sMHisKTir/GE+XWxXiywvtdzWhypNS3inZcxymV/vVccTLePlGSiitNy2bc5bU+uDs+ZzM9wOj7d60/XjukXWBSF1wVllj7Z4+bI5pMy0F9R6ys1zMxzdqjr/2uWeECkIcXS+RZsXl7yZ57o4GDJwpgp5x+2BoCn0jIOzGAQEjtfDXDhaPp5Q7Z2AhOP3QNyZYKqKl0BKATcIWj2WqIAyFZw170mdh8GiFFJIeL364Kw8v4JNVDeJ2/PgBl6tByFBxxkE5aoFNfTm3vJlj2cM3koAJ5gPgys8ncPhrQQ6z6PGk0A2TMBiqrx+s8eGKofDW/Hhrszvg7lHBynYKIO3GsBbbfG2U2TDBN5qAH9jPgyu8E4nSE9H8NcC+Js9gNS/57ITEeL7xvA3Q4QXrABOvbf1zW2c/PoDWFnp4fwLNuDMhq3piveiKx6LS77vB+H3V2BZLLb4aGAyPobh4I6Gv+YHgzxwqmWgctHZ4pUP+K0H+nJh0JLPMR2vrXAQejscHcxTXuHyik/Hqw8jm46nVtFtCfUqew6maaB1y616puPNFydlL081dYqirxzWNX1e8mAvt1QczuZmqOKCEE8XXih5rNNTra6stC2550NKd8ajNZ4HKcshZRzlEC7lxXq8qlfN1+C6aPBRTg2Vkut8jTygjIPzCQjxK8FZeUtsvs0qyGwMQoIiDTT3OI1KHsCZHq9yOwMJzuLiNugSAKcTCMeH66mUz3wAnsUQfJpLwbMIwvVUGqgseykEK3lpCuG6cH2/NB7AkhSCTl87FmcgrqNSPktvYBZnEGnJiyiIx+H2PBCn5EVZEa4FADyiECmHu+LDcaf7KptU8zVYRMFTDm9FpYYWXkTBJtPcDDbJQBICbyUA8d3SeJny5NTjCYW3GsINql45X6Pw1gK4gVdZPzpKi7ZdNqHgCVNeWPWy7aTkZeAxhbcewOv5xXuJjVVeR57DwcYZeEThb4bwVoKpN8qQnJwUMxR0lIFOKILzepWihg5SxHcPi2A0upWADVMEF6zAP29a1ExOT3D8rhPIdEbJeBghGsfYPLCOjfNWC2/9yCW47ElPw8oFF2Hfmf24O5PHLyG2+Gggju5G96u2g+kNI0z3kp14ZvkW5fTOtvHMZn54aby2dRX6Q8Yx8kzHU17bdGqeQuqgLb9imi7q6Cnz+mWrg6lKFxWCd3jQXnMGiCo0GAjx9HhNHkMe1a7Gq9+WfDxVSM0WRlVPRbB7ECIveOo9lZLq6fHmQ6SUl4FzqoqaIlCsYTxG9SyNrA3hAgApKFhGi1kfwRrG4wyMMxBXezUhXMrjYJyDOC5ACHja5AnQSQrHdbRHa19iyQTYOAPxHBAHYHGDxwXYKNUeAYtZbRaH5AJUe45LwCJam+0huSx5DliUzYVrFd4wAfMcOJ6rMjtqsj0kl2rmwqNwfBdsktWenig8N1PBY+MMgtZ4QnvjDE7ggY7T2lAvKSSyrQR0mMLteSoVNa7ZV4VEdjoGHSRwfBd0OwEbzb92kkuk90+QnIrAegTjU2OMT8/nwQghsfXAEONBhPXzVvDQJ3w/HnH1NQs/xX7GyN2ddsGS9tra4sOiMS1UdjKeyZimZf1OCi7T8UwCu5rSROu8+oP6mXv1B/8z9+oPrrNeU5Ew75lcgC2NL9QW3GS5zUXHnNdQdMzCaX2RMOdlzMxLmdEHvkh5d1AYVAopN/Vqio669csjzFvHyzi4occmZh6tKRJqvUH3aywyjvR4d7icSDmO332q06OU4fTJIR5+8KLlKTzOYWzxYbFYLBbLsmJPu1gsFovFYtlTztGIU1t8WCwWi8WypJyjtceDK159bzl3zvmZ73yLvuD13HkOLTUs6YeaxVJhhx9Dt33uc0hikxsaWnaDLT4aWN94RHGb7i6klGYHeMNzd9L06uYuR+ZOu6cqa8NtMDziqPFM7qz64PBMXo/ca3eJoQcIwQ29jvH0r6WxJ408ITr21Xw82b1P53/Pl93qldaxzYPheJCG4wGdd37diSchDT3D8Qgg8q6UppdESsDQk5Bmnul4RHXw5M+5ide4a0kADoFw2j+7pARcx0Gg24abXuH8dXtgNMLn/uIv8Jaf/mn8r5tvLoLh9pV86mM3PzuAMYZf//Vfx2WXXYZ+v4+HPexh+I3f+I2FPxf2tEsDYe8iXHjoqZiM78J4dKf+bduLaBruBePGEjWegZQPRmZ/P/3fUpJisPpALIlpi6wz500rJ6kf1+QB5dwM9b/rAramnnp/EBDiNXrTbAjlTfNB6jzZ4fEZz58PsCq8PF+DAGjyBITI9DYTXbQ2eDwteT5AvBlHPceCp8iTOB03KJ6bOY9lUN04BI7rg7jVAKv8IMyzFFKorh3HCwC3Gkw19TJIfftwx/frPQA8zSCZ9gIXjtfgxRSCljy/3mMJLTIa3MDTwVnTfaE8Htf5Gk7gwg29Wo/FtMjXcENPB2zVeBEtOj/c0IXb91s8lZvhhh68vl8Juip7dJxqz4W3Gsx4ACCVN8oAKeGELvzVsNbjEVU5HELCCVz4awFQCsTKPyNYREEHCSTX3kYI0uBl2zOeO+/xmCI9HUMyASdwEWz29Gun0fsYjxnSByaQVHn+Zq947ea8ExOIjIP4Dvzz+3AbvOT4GCJhIL6D4Px+8dqVYSnF8P4haELhOA5WV3vwfW92OKQ0w30nTyNKUjiEIAwC+KVbb0i90XGW4a777sPWRHXPjAYD3Hj0KD778Y/j+a94BS571KPm1mGv2OvTLu94xzvw+7//+7jpppvw6Ec/Gl/4whfw4he/GJubm3jFK15x5isyA5G7aiA+NxgOh9jc3MRgMMDGxsbc3xmLMBp8GUlyn9F4O2rTMlSNx8yzqNv+rsPC8gNYPeW0UonmtlRVhEzHa2pLdYw9QqYhZdUQrlnPm/Hq1nHWow2eq4uQsle3jo72HO3lB/95z3GCqScy1LbYkqonRFaEa816rhOAOCogSvAWzw1AHD0eyyrhWhXP96fjMQpB6zwCx/fhuNqjrNFzAw+ODsQSGVd5GHVeqIqV3GN1uRmEqKLBL3lxVuMBbugXBzKeMtCIzr8HCOD1fDiB2rdYwlR+xWwLa+6FyuMpAx2n87kZBEUKae5lw3Q+NyP3+jNeTW6Gt+LD7at9kGcM2SCBrMnNcFd8FT5GCHjGkW3FReE2O563GoA4yku34tp8DXfFh7+mPEE50lNRJRitPJ6/0Zt6D0S1rbjuiq+LGkd5JyOw8XyLrdv34J3Xg6O95P4J2HC+xdbte/DP78PxHAgmMDw5RDKcb9/2fQ8rKz24rgPOBe4/tYWt0Xh+PMdBLwjgOg4Y5zh24gTuPX16zgMAx1EZP6/+z/8Z33HllcXvu44ZiyBfxhf+/L1YW+2f8TjjSYzv/eGXGq/rM5/5TBw6dAgf/OAHi98997nPxcrKCj784Q+f8XrMYmc+DPC8FZx/8PE4ef/nwNiw0zeOSz8bdJ6KUQWH7Kx68g89k5yOfMakbdn5LIdJoJgwGk8d+E28VC+3K3iMG3hC51sYeDwGiAu05YRIoSLEidtQxJS9RBcpLcvVHmR+z5Gm+WgBnqVQp4FavlpJCZFlEAYeTyl4CnVAb/MSBgZVcDTmXEgJnlBwXXA0ewBPqCpMgNpwrdxjMYWMMrXNTff0qHho9yIKOslUpF1NkVDxogwEpJgFqqNILyWktpjI4RFVB3OC2mKiPF42yeA4Tm0xURlvkqkZjxZPzepkcFynNf9DrV8KONpreEl4zMAmQwCkksZa52XRANSVoBFF0/dlShlObw0R0RRRkkI07DNcCAyjCHc/8ABGSQLGm5/D/FTDyW9+s1J87Cl7PPXxAz/wA/j93/99fPWrX8XDH/5w/P3f/z3++q//Gu9+97vPfB1qsMXHDiCOfbqaMd3B98szPV+5YM8ooAzthUfFM1tufoql2zMdz9DruDZh6pm9bmfFM/gw3olnEhSmPINrjIQ0eg6lkN03RQMAIVU4monXUhhNFyyNgscgAW4QPAaJSlx8m5eZeADGkVmoXX6KZelpm6A2fTzUTEqZMAwRhuGc/rrXvQ6DwQCPfOQj4bouOOd4+9vfjp/6qZ/axUrMYy84tVgsFovlHOeSSy7B5uZm8XP06NFa74/+6I/wkY98BB/96EfxxS9+ETfddBN++7d/GzfddNNC18d+lbdYLBaLZUkx7n5seTwA3H333ZVrPupmPQDg137t1/D6178ez3/+8wEAV155Jb7xjW/g6NGjeNGLXnTG6zGLLT52gr0212KxWCx7yYKu+djY2DC64DSKIjhO9aSI67q21XY/kJJjMvoaKN3awWMM2mSBSltk+3gGF7FKfSmpwYIXOp7hNhhjOt7Z8vZ7+V2a4b517ngG+yBR10EsbN/Xd3Be3Hgwen3NDzGmZtcF2TsbrftC9R16O+niWyAEKHXedbOyvr7Q5S8zz3rWs/D2t78dD33oQ/HoRz8af/d3f4d3vetd+Pmf//mFLscWHy1IKZEmxzHYvkN1LuS0vQ/yfZm0537M7vRtH15SShAQ3aNCGpefj2nuod2DVNdVOkA5m6FuPCkkiEMMPAHi1OeDnJHHBYjb7OWBRoJxOJ6JJ9St0w3GM16u63TuB5xyOI4D4rZ7IlPLzZfdNh5xSLeXMRDHAfGc2oPjNNeDqfF8t8Pjqv016PKmGRx1RUiRc5FySEh4Jp4QOvdjfh/MPZExCC5bPULU8yyogNvv8hhExufyQaYiiq4UnjF4Kx1exsFj7ZEWjwrwSQZ3Jaj3cp2qO8l6awbeIIW35ldyROY8xpGNUvgrfiVHpPrcSAghEMcpwqDbi1iG0PHgkGZPCoGUUniu2+5JHcomBFyned8XUmKj38cgimodACCOg16/jx/9xV/Elf/b/9bonW32Oufj+uuvx5vf/Ga89KUvxYkTJ3DkyBG85CUvwVve8pYzX4kabPHRAKNjDLb+HllWcyvmosBo+H3pf9fNHMwl/ElAOnUeij1HQj/G0QXDzHiVK+5rPPWhP5MBIlWaYG3oWGk8yXVhQaYHqKKAEWK6rdpTpQ+Z8abvIMm5yqEAkH+wy9LfymMTxwEcp94TJc9t8BgvugxEpj133hNMFF0GXBc05WJl6vGiy6AofCqefrWYKNoqOdPj+fOeoCUPAsQllYCtqcdLbZUcwnPgBl5xQCl76pbu+mV0SaPHktxTBY1XCuIqH4RZPG2XJB5XnkN0QTz1aESL/YZnHF7fU4Wc3nULbzzN1+ApV5kV3qzHQEdZ0cXCYwZ/NQDxZzzKK7kZPGYqsyIvktQuBkE56DApWmJ5TOGtBuq5mfUGSdHqymMKby1QxUrJk0znZuReROGthSoQq/QekUwg20qKFlY2pvA3Anh9v3iOC+90DB7nXgZ/I4S3MuNxqfI1dCcJHVH46wHcVb+yT0sukZ2KwMbKY6MU/kYIdy2Y905GRb4GG6TwNkN4G0Fl35dCIjkVg2ovG6UI1kIE6zOeBCZbEZKR6jhJkKK3EqC3Es55o1GEyVh9qZsgRd/3sRrOeAC2JxMMoqh4+ns1HgCcGo9xejwu/u27Lnq+P+edHA5xYjiEkBKOk+f1TD/v8kybJ//Yj+GHX/hCrO73rMceVx/r6+t497vfvfDW2lls8dHAYPsf6guPMiavqdQHODL9dy1CFxhOuyeFij1Wsww1hUyDp6P8akT1AYTCaxlP6G/7Eo1ZDuqgItUBXhdPda2IeUGgihCVSVHXipj/3nHdqVfTiii5+r3jupCO9th862DuEc8FHALJJUSDx7lQBYjrQHJRm9EwHW/Gk/XjEU8VNZLrFsg5T4LHTHm+9lJWKQYBQDIBxrIiNVRyAZ6wuedacgkWUzi+oz3173lPgE4yOL4LN1QejaYH//Jy6Tgr0kWlkMgm2Vzbp2QCdKQ8r6e9cTqXhyGZAB2mylvxlTfK5nIuJJfItOeveJAAsmGqZlpmvYEeb1UdeOgwncuvkFyq3/tMBXERPd5MG6nkEnSQggcM3loA4gDZdjLXRiqFBB0m4LGrPNdBtp3Mh2sJCbqdgk8ovI0Qjqe92XAtIUG3E7CJKkIc30W2lYAOkuo+I9T6sQmFvxnCCV3QrQTZ9ownUfV6HujpBNmpaM5j2yn4mMI7L4S74iEbpEhOx9V9UKoChEYZwo0QXt9HMkox2Y7m9q0kypAmFP2VEEHPRxSlGA0nczkcMaVIGMNqEKDn+xgnCU5PJuAznwsJpUgZQ9/30Q8CjJIEJ4fDubwOyjko5wg8D6HnYRjHuG97Gxmb7guEkFJBpH6OfNu34ed//ddx8aWXYinQH6m7evwSYouPBmrTI3c1oKGnErW7hzPIFsg9o/PRpuMZ5ziYeaIl4Kfi1RQI9Z7Z69YW9jTnGbiCcqAlGKrstQVIVby0e1tExluDoabjCbDYxOPgcXc+g8h4EUve5SUG+QzKMxsvjpoDqSrjmXiUIzk56dz/RcaRnBh3e5QjOTHpzB0RVCC9f9L5PpFUIDk+6cz0kEwguX8HXks4We6lJyZgXevHJSanItCO97EUEuNhhPR0+z4opcRAFwld3ihJcPepji+IAOIsw1fva0+nLhchT3v+85en8DiHscWHxWKxWCyYFiHLxKJabZcNW3xYLBaLxbKsnKOnXWzCqcVisVgslj3FznxYLBaLxaLZOnlyv1ehwrl62sXOfDTgB+fv9yrsOU2dM7POTjyj/d6gk0zCbLy8O7l7uWous+uNmc94dr6B83bjhXnSyJPGntlyd+p1kXd4L8rbQRrW9Nx922Ok6iA3GdtoPKCzY206IMzeIyTf/008g9eGGO7Tmi6PGHqLHs80KIwAjZkfs+slpcQNv/mb+MBv/zYm43HnY/YMuYufJcUWHw1snHcFzjvwvXCcXr2QH4DzI13Duz7/cFGtqvp/N3qyaN1sekNVPNbmofAE443dMfl4gnHlGSxXUI6mu6sWHhMQGQPyNrnZllK9foIJ1XLa4UkmIFI2bcdt8XhCp10ELctlEZ0+h23eJFM5IDUHiqnHQSepfm7qPUB17WQjlSNRe+DJPSqQjVLwlNV/8yk8jmyQgMddHtOtoNRoPBZRvb+2e3Sc1nu5zlRuBh11e9l2gmyQNO7/UkoILpS3nUB0eOnpGNnpuNs7FSM9FUE0dHbk+0H6QITkRNTYeZW/P7IHYiT3jxs7qnIvfSBGcnyi3idNnpBItmNMTk4a706be/EowfD0GJS2eFJiMklwejgqWk7ndkHtjZMUp0YjpF1emuLUeIyEUmMvz/CoeNodJwm2Tbw0xSiOkTHW6AHAJE3BOYcQzZ+XADBOEhy7/34kaYr/+8Yb8cKnPQ3/v49/fOGx4hYFkcs6J7OHDIdDbG5uYjAYzGXfS8kxHt2F8fBOFLdRl8X/aYCUtAZPf4tS4celAmZ2mDw1tPAw3+5XeCiSUOs9UkrQ1CPW3cKbkCJgq+LNtvE5NR6X8/kaDoHjufppUQFHgtXkZujxiFMKuWI6r6O8KYTA8d05T1A257nBvDeXr5F7rjPvlZ9DohI5HVcFExFClJfM5GYQAjd04XhuxWMxrT7XhMDreSp/o+xFM7kZBHB7PtzAnc50cAkWZdXcDAJ4fV+nhmpPSLDxTG4GAdy+X4SZAVB5EeO0FGQ29VQaaNnLqu29udcreRKgo6QIzcpx+75ODS15w3Subddd8Ys00KmXgE1qvNUab5TNezrlM4duJyo0S1Y9fz2c82ZzM9wVD8Fmr/L1jW6lyLbi4mMi9/zzetMcHQB0O0U2k5vh9j345/cqCbfpMEWyFVf2LS/00NvsTfN7AKSTDJNBNV/D812srPfh5J8LhCCOUoyGUeVg6rsu1vo9eO50H4zSDIMoquRr+K6LtV4PfsmLswzbkwlYyfMcB2v9fsVLsgynJ5NKDofrOFjv9eB7XsU7NRpV2nZdx8FqGFY9SvHAcFjJ63AIQS8IKstNKcXJ4RApre4zjuMUMya5d2J7G3E20xKuktjwsEc8Akf/y3/B+QcPFn9qO2YsinwZf/PffxdrK/0zHmccxfi+n/jVs7quZ4K95qMDQlysbzwCKysPxcn7b4EUaedjihq8dbpXTpWmAkUC4BLQeV2NGQOFpwuPRk9CMqk/CGuKjpIndDw3CFFe3ZBCqrhvh6hlzxYJFY8BOj6cM1G/jqXxWj2Zj0dAHKd5ZkfqgC6HwHEdcMbr8xfKnueA0/ogM0iAJwzcIXA9B5xyiLpcBSm1x+H4bnO2h1SBX0gZ3MBVaad12R5SJW3y3GOiPttDAizKPQ+C8bmDfzFeRCFSBicfry6zI/cSBif0VMFTl9lR9noeJFezRXX7QrEdoQspADpK672IgidMJ4ZK0FFWuy/MecO02YspXF3Q0O2kdl/IPa/vA4Qg205qszN4xBDHY5XO6hJkpxNIWu/xeAx31VfBY6fjei9m4MkYzpoPx3eQbCfgNfsMSxnGJ9RyXd9BPEzAamZYGOUYnh7DDz14vovJOKmdEaGcY2s8QeB5CDwPoySpHNQr3mTqjZNk7qAOAEwIbE8m8F238JIajwuB7SiC57oItRel85+tXAgM4xiu48B3XYzTFJMkmfOElIjSFA4hcAjBRM+K1CGEgJASCaWIkqQ5Yl1/Ln/tK1/B3956K67+sR+r984y5+o1H7b4MMT1+vC8VdCsu/gwPy9tKBoGgC0+KMzspKHkAjDI7FKnlBbsdYQq5R5fsFf3gV/rGQSKSS7AxmYeNfKkOqibeLPJmnWe2IE3mD8wzCFUCmnnrpWPZ+Jtx92eBOhW0h3QJ1WKaVdQGCSQbSWq8DdZrsl4g3Qu0bOOdGzmJXFmtG/FWYZRzUG91ms4qFeWSymGBl5KKQaTSaeXMYbTBtdgqGKq25NS4r7Tpzs9y9nDFh8Wi8VisSwrZt8B2x+/hNjiw2KxWCyWJcWedrFYLBaLxbK3CFQuYj6jxy8httXWEM5iMNZ9btJisewDS3Y/DovF0o4tPjoQgmE0+Aruv/czEDztvEZU6jbcriCuaTRIe3hQkV/RMfW2Ew8wmMqTKAV7dSzXYLzK89JGvn4GFwUCBlOKOx0v95r0HXrTJ7xj8Xn3U4tHdOufUdiagVcOKDP32l7jHXhkwR7QmiNSeA5ZrOcSCJP1c8w8BzDyCNCZWyGhOoZFx84ioVpVu/IsCs9wPJPpfsewaMy7WEw8z3U7vbyFt408VO5hj3wkHv/v/p3Rep4V1If77n6WEOPTLvfccw8e8pCHnM11WSqklEiiezHYvgOCJzN/U/+dfS/kBUfxYag6Wqt3SdQHdejQMUAlLKoPClKK99MHfyGLq+SJS3S5SKbL1p8wUkw7P4hLANdp9IRuia31cl3oHA4JENcBdJ7H7B0fpdBhYtpz/GaPZxwQUnk6Y2LWE0JAJAxSSBDPgRuofJA6jycMkksQl6gsiiYvZpBMqPF6814e0pSHjhHPgdfzVCtvjccnKl+DeA7cvqdag2e8PA9DZBzEdeCu+KVMlJInUeRrEJfAWwlAWjyesKnnu/XeKAWPtbcaqOewwWMTOvVCd3rEKnvDFGycgTgE3nqo21pnPAB0kIKOUhBC4G0Eql21zttOVRcLIfA2QpXnUeOxQQq6nXsB3BW/8h4pe9npBICEvxHCXfNR3qfzwpcOM6SnY0gp4a+H8Bu8bJwh3la5GeFKiGA1ADDdZ6RU7/00zhANIggh0esF6PfDqqc3KUkpRmOVm7ESBMVBb86jtMjN6AcBVnu9IsWz7KWMKY/zWi8noxRbkwko5+j5PtaaPMawNR4jYww938d6v197d1fKGE6PVDhZqD2nxmO6MyWlFIHnYa3Gk1KCCYHToxESSosckTqPC4GtyQRxlsF1HPSDoN6TElujEeIsg0MIAt+fK1iklBBSFsttKqYcx8HaxgZ+8TWvwdN+9EfhGCSkni12Wz8sae1hXnxcccUVuP766/GzP/uzZ3N9lobB1u2IxsdanfxDSP1vOf/tOi9CUP7gms/XKB7nVD0xk68huSpEHM8pFiylLIqEqsdBPEcVDtrjGa/sibWe0OOJsqdyL4jnAK4O6NHZHXLG41yoAqTk8YxV2gwlF+CxgOO7gFfyUlZpnZVMgDEBJ3Dh+FWvHK6lArcoHF8VNYWXsEq+hmQCbJyp8UK3CBpS2RNVj2rP7XlTT2dKVMYblTxHeSyildwMyQXYKFVe3y88HtFKuFbeIusELrySxyIKFk1zMwrPd+GtBpXx6HjGG6bggQtv1S/C0VhEK7kZhec78NYCOJ5TjJcNprkZeSstj1x4G2FRTPGIVlpTpZSg2yn4hMLfDNXrnHunS7kZUoJtJ+CTDP5mryhIecRAT8czXj5eD06ovZghOxlVcjPodgo2pvDPD4vQM55QJA/ElX1BBZtlCDZ7qtAEwDOG6NSkkq+RTlJkcYbeeg9+T2WEcMowHkRgpcTRJMmQZRT9fg9hqDzGOIajCbJSvkaUZUgoxWoYoh+ooobpDI1ybkasvbUwRC8IQAgB5xzbk0klNyOeGY8QUmRtlEOzEkqRUoqVMMRKPp4+qJfzNQqv18NqGBbe9niMSclLtbcahqr40TMn25MJxqWW3UwXLEWRpA/225NJpWU3zxHp+X6xXCElBlFU8bgQGCcJAs9Dz/eL9+YgijCKouJjUEiJRBcrgedVvMFkUniEEDhAMXsLqMLjx1/8YvzUS16C1bU1WM4Oxgmn733ve/H6178eT3va0/D+978fB0tpbw926tLqTh6/BTTb7nysNIze7Zymzz3DaXo9pdKZ7aEKH3Sfdsi9jiyCvJDqygqRgDooduRmSGnoQcJxnWqiZ+14udcQeFYajxh6juuoA5eBl8/utK6f76p49S7PU+vX9ZoQx9BzCQTtzkYhjk6W7Xiu4To6Rr89R4K4RMfjG3gCEHUBamUcKK8uQK2E9NTUI4s6PBcAAWhcE7RWxlWzLlnS4RG1Tydpu5fPQswla856+pRDpwd14IyzrP3jQ0q4joMoTTs/ZjzXVV77eTl4ntfpSSnh6vHaTt1IKYvtbfWEANdFRlvmiRACCaVIsqySxlq3XAng//i1X8Nzf+7nGj1gbxNO/+eHf2vXCaff/7O/tnQJp8ZzSS996Uvx93//99ja2sKjH/1ofOpTnzqb63XuIWFQUOzQMwkVq5uRafK6QpAKz6DgkjVx7Lvy0Fl4FF5HobBjLzXzeMKMXhOeMKPXJD+ttDAvZkbPNY9Zd+EBnWpqEKKm0lQNvJh1Fx6511F45F5X4QEAPGXdhQcAlrHuwgNqxqOr8ADUt/2uggJQMyNGnhCIugoPqNmDiUHhwYXAJEk6r90QUhp74yTpvmZESkw6ChRAvSUnSWIUtjZOktbCA5gWeQcuvLBzvL3kHL3kY2cXnF522WX47Gc/i1//9V/Hc5/7XHzXd30Xvud7vqfysxNuvfVWPOtZz8KRI0dACMEnP/nJyt+llLj22mtx5MgR9Pt9XHXVVfjyl79ccdI0xctf/nJccMEFWF1dxbOf/Wzcc889O1oPi8VisVgse8eOcz6+8Y1v4OMf/zgOHDiAH/mRH4HnnXlUyGQywWMe8xi8+MUvxnOf+9y5v7/zne/Eu971Ltx44414+MMfjre97W142tOehq985StYX18HALzyla/En/7pn+JjH/sYDh48iFe/+tV45jOfidtuuw2uwVXPFovFYrEsLefoFac7qhw+8IEP4NWvfjWe+tSn4o477sCFu5yeuuaaa3DNNdfU/k1KiXe/+91405vehOc85zkAgJtuugmHDh3CRz/6UbzkJS/BYDDABz/4QXz4wx/GU5/6VADARz7yEVxyySX4zGc+g6c//em7Wj+LxWKxWPaVc7T4MD7t8oxnPAOve93rcMMNN+ATn/jErguPLo4dO4bjx4/j6quvLn4XhiGe9KQn4fOf/zwA4LbbbgOltOIcOXIEV1xxReGcKYQsf/ir8T5leA2J0XCLXObZwGZNLSWL3m0W6i06oGzB4y38rWS4fot+KxmPt8+vx03vfS+O3XnnYtfBModx8cE5xz/8wz/ghS984dlcn4Ljx48DAA4dOlT5/aFDh4q/HT9+HEEQ4Pzzz2906kjTFMPhsPIzy3kHvgtBaNjRY1gFGF/4aXABlRQlr+1CdKFado1Cz5jy2i9sV624bZ7UlbqZB/DM1GNoC5zK8zWMPH3BqYnHU9YaOFVZvy4PejzeHBBV9kSHJ6VuPWbdHjP0eMpVF1AD6uWVEClrveA0Xwyj3eMBAKWs0r465+n/UiFA9W3f67Yk/x2THFS3pbZ6QhRtrm3vUK67Jky8lNKie2K3Xt6t0eZJKZWXZUZe13LzPIzCa9lnhJRImcF7DiorxMRj3OC9SUhnwGH+e89x2rdXu+M4xj/efjue90M/hN9+y1sw3N5ueMTeIcXuf5YR46/3N99889lcj0bmwqqknPvdLF3O0aNH8da3vrV1DM9fx8GLvh9JfByDrdshePX20OpAV8rh0G8G5C2wuaMP6pVETodUtq04GLJpm6YkAsR1QZyZ8CroLg3tcabyMuZCrvKDet7d4ABu4BZ5HhUvLXkEcMMaD6qroug4yTjc0KsEYhVeXDooEagMDH8aYFX28nwNnirPrfWm+RqcULh9H27gFU952StyMwiF1/N1dgSZ92JaLMft+To7IvcAQOV/sDw3g0Att+fVenSUFUdRt+/D7Vc9QtT20tE0N8Nd8eGu+MW+UPGG09wMd8WHtzr18vXhMavcqt1d8eGtBdMQtZKXlXIz3BUf/kY454mEIT0VF50u7opX9TQiYchKuRnOigd/M5wLZeMZQ3IqKnIzvJ6HcD2cC2XjlGGyNc3N8AMP/fU+nDmPYzicgOae52Gt36t4eSjVYDTNzfBdF2v9PlzHmfdKuRl+lmGt16skZObhVeXcjInrYqPfhz/j5fkVkfY8x8F6vw+/dF1c7g0mkyI3w9VeMOPluRRlb63XQ+j7VQ/AoJSv4TgO1vp99Gq8YRRhrHMzHEKw0uvNeQAwimOM8vEIwUoY1ntJgnEcFy34K0FQ5G8A+mNPqi6XUe4B6AUBwhovSlPl6fF7QVDkdMx6wygqOmICz4PvunOf+1GaYlDyHEIq+0FOmmUYlzwA+KMPfQh/+t//O37l9a/Hc3/2Z/cvaExVRrt7/BKytOcWDh8+DEDNblx88cXF70+cOFHMhhw+fBhZlmFra6sy+3HixAk88YlPbBz7DW94A171qlcV/x4Oh7jkkkvmPEII+isXo9e/COPR1zDa/sfi23XtzqB/l9fXkktgtgVSQv2OAFLvy5KJ+fZVCUjGIR0yDQBjNRkN+hs8cQiIThcVtCZ7QQA84SCuCu0CAURW40nlCVcU6aIi45UQrqnHIFyiPIcoL2HVnV1OixFHB3GJjIPFzZ7b84psDRbR6nMt89ZNBrev0kBFxsEmWXVmSQIspiAZg9fzQXS2Rp3HYz3eSu4xsFFabV/Nl5swuKuq+BGUgQ7TuddEhZYxeCs+3NCDoFwVEzPtq3lombfqw+35yhskc69J2fP6PgTjyE4nc+2rhbcWwO17kEwgOxVXgtEKL6bw10O4q/7Ui2c9Bh4zeOsBvFUfkktkD8Tgk2obqYgYUu256wEkl0i2ItAZjyUMLGEIVgMEawGkkIgGEdJJtY2UZgz01AjhSoD+Sg8SEuNRjDhKqx5j2BqN0QsDrPRCQAKjKMIkriYSU86xNR6jl6eLEoJRFFXCsApvJuhqGMfFQbPYDs5xejwuUkOdJk+HeIWllM9RHGNYOrgCagZkezJRaaC9HlzHwThJar1BFFW8SZJUDq6AmikZTiaIPQ/r/X6R1TGYTKqe/qafZBlWez34ros4y+bH08VD2UsoxSCKKm2ueYtsHnoWeB7SLMP2rAcVjpYyhpUggO95yCjFUKe7lkmyDBml6JW8PN21TMYYKOdFEZKnttIZT0gJwTlcx4HrOGCcY6RTYGcRQmA8HOI33/hGXHTxxXhS6fT+XiIbDjc7efwysrTFx2WXXYbDhw/j5ptvxmMf+1gAQJZluOWWW/COd7wDAPC4xz0Ovu/j5ptvxvOe9zwAwH333Yc77rgD73znOxvHDsMQYUeufxlCXKxvXI549E3Q9HSnL6norjZlnjPRIQoJwVjneFKoRMpOj0uwSXcGgeRSHTw61q/itaiSS7CRziDo8OgoNRqPDpPu00lcIhvr2YY2T6iUTylke0iY9jKRtGd6CLUd2baBN0yRbpl52alujw1TpA9E7Z5UKZ/pqbjTY8MM2Ukzb7Idd7522STDZBh1vnZplGEyjtVNOVu8JM0wnkSdpy+SLMMkjtW9U9o8SjGOY3CgcvCv9ZKkmLJv3A7GMNne7rxnS8YYTg6HZt5goA6kLR7VnuzwGOc4PRp1jseEwOnxWN0CocXLiyne4QkhMIwiMM7bvbxIorQznCxOU5w0yBJhnOP0cNj6PJcZbG0ZeRZz9rX4GI/HuOuuu4p/Hzt2DF/60pdw4MABPPShD8UrX/lKXHfddbj88stx+eWX47rrrsPKygpe8IIXAAA2NzfxC7/wC3j1q1+NgwcP4sCBA3jNa16DK6+8suh+WSRdp3u+pTGtrpfdM7kux3q79ySMXhPTb22Gw+3MM1z4fnldB1jrtWP6PO875+jUx74WH1/4whfw5Cc/ufh3firkRS96EW688Ua89rWvRRzHeOlLX4qtrS084QlPwKc//eki4wMAfvd3fxee5+F5z3se4jjGU57yFNx4440248NisVgsD35s8bF4rrrqqtbqkxCCa6+9Ftdee22j0+v1cP311+P6668/C2tosVgsFotl0SztNR/LiBDd94mwWCwWi2VRSIldtcsu6cTHzu7t8q0KoxOcOv43YNnA7AHnzKUhO7ygouti1zMctvnPSuh8c0kzz3Q8WYzXcTFu/rTsh0cMPOzAc8w8YrB+0/Xs9kzHW/j1WPb6rloW/qyYPs+mwWg7eN1M3Pz0/SWXXWY87sLJT7vs5mcJscVHC0IwDE9/Gfff/Wkk0X2dft6bL7kowqHqO3K1R3lr0FUR+pRxsKQ5wCr3VAsr7fR4ysCiDFLUB06Vw6boOGsMulL7tfYmKURDOFruiUTlV4iGu+KWx8uGCUTDHVjzVREJRzZIIFlDgJX2eMKRbcUQTQFWpfHS0zFEyiq/n/VkypGeTiAS3ukl5RbWhs8AmXFkJyPwCWvtAJEZR3w6ApvQxn0LAATliLYj0Ljd44xjNIyQxFnrPsgZx/ZE5U20epxjGMfdnhAYGXrDOC7uhNrlDfNOlgZP6OUOowiiZd/PuyvyVtI2b5IkRWdH23tpovMmTLxt3XJa62k30i2xsy2ns16cZbWtqbNekmUYNLSclkkoxTCKOr2UMYwMvIxSjJIEGWufVc4YQ5ymneNRzsE577zTLReitZDKC5NHXHEFbvof/wOP/bf/tnU8y86xp10aSKL7sXXiCxAi7XTVZ4S6NXz5gCm5BHEIJAim3xlU8mc5y0GmXIV1uZjxBHg6bbNlsYDjO3D8/GJaFWIldHFSeBFVXjDjUa4OhPpDjY0zOIELJ/TmPBbRonMh91TAVtlj4BNa5GawcQbH1x6ZGW88zc1gw0SNtxJUPEk56Hiam0FHKZzAhbfiV8djHHRQ8gbaW/V1gFvVy59rMUjBA5VHQWa8bGuam0EHKXhM4a2HIG7+2klIJpFtx0XRQXUOib8RwvGd6X7AZSU3g6YcbEIRbIZwAnfemyhPpCn4hMI/L4QTljwhkZ6KwcaqRTpLOGhEEW6GcEOv4iXbMTKdm8FTjizO0FvrwSt7UiIaxkgj5TEwZGmG/koPQeiXPGA8jhBFKg8jg2pXXev10AuCIvBJAkWRkJPqrIeyB+jwqnga2JdnQvR8P0+MU14pvGp2vDKzeRi51zfwVsIQKzMt9+OZ3IzcW809QkAwH151ajSq9fLcjPxgeHo8Rj/PGyl7M7kZp8dj9H0fq72e3vWVl+ZFh/a2owhhnktS8jJKsV0qTrYmE4S+jzWdX1J4jFWKjkEpb4SQaXgbZQyDUjEximP4rouVMIRT9jjHsDTeOI7h1XiMcwyiqCg6GOfFc517RWEZRUhzL8tAHQeh78PVoV95ITgqjQeoVl6vFDyWF3hxmhYJuXUQQnD+wYP41f/4H/GMH/3R/QsX0+x28mJJJz5A5IOm3+jsMRwOsbm5icFggI2NDQDAiW9+zijTI/8WLyjvOE2gDmA8bcn2ICgSTXnKm+PYCeB4LghRwU1yNsis7PkqzY8nbD7IrOwFKgCMxXQ+yGzGc1zt0eZvF07gwvEcsIi2RnA7PQ+O74JF2VxoVsULXbi+CxbRudCs2fHcwAWbZHOhWXNezwMfZ625J07Phdv3wSc67bTV88AnFHTY7nmrPviEgQ7Sxn3G6blw13ywmKmskAbP7XnwVn2wlCEZxM1e4MLvB2CUIR4ljacyPM9F2A/AGMdoFDV6vuuiH4bgnGOgZxxqx3Mc9IMAQkoMZ8KmGr04bvRcx0E/DCH1eLOhVGVvRRcgbTMEeXonIQTbLd/8c88hpHIQrvP6YQjXcTCcORiWIYSgHwTwHAfDOC4OrnMegJUwhOc4GCVJkdpa5/WCAJ7rFpkYTfR1auiow8vTRSdpiiRr3qdDz0PgeYjStEiBrSPwPPiehzhNixTYOnzXReB5iLMMUdr85c91HPiui5TSVi8voihjSFuWm3PVM56B//R7v4eV1dVGp+6YsWjyZXzuvW/HWr93xuOM4wRXvfRNZ3VdzwQ789GIWU0mmDDKNuAZ6/ZkR9FR8lhCga6LkCQqMx3tHjVaLo8puMn2xhSsqSgqexEFE90fCDxmYCMDL6Jgw+7ZKh5RsIGJx8BaiomyR7cNxosZ2LbZ9qYm25EwJOOk28s44mjU6THGMTk9f6+jWSjnmIwMxtPBVF3fcZgQOD2ZdHrccDxTT0ipgrMMvO2ZhNAmbzZJtA7ZUWQVHtSsUtMpzbI3juPGYqzMOEk6lwugiDrvIs4yIy/JMgwNvJRSo/Eo50VUfBtCCMQtxcksT33mM1sLD8tisMWHxWKxWCxLStN1UTt5/DJiiw+LxWKxWJYVge5Z7q7HLyG2+LBYLBaLZVk5R684ta22FovlrGI87btoz2I5A26/7balPVVxLmGLjwZW1i8FKi2y80gJ3YrZjpQAyUOaWvZpKVGEPrXt+/nfus4FVsfbvYedeA5Z7HgmHnbudULMLj2WRURZhyfNPRPKXtsjduKRHXhd2yOlhOM4Rl7eXtk53iI9YOq1vUeA6fotwIPhcnfk5c/zgsYrXt8ur9TKauJ1YRwUpveZbk3tCyae4Bwf+J3fwU9ffTW+cscdZutxlsknPnbzs4zY4qOBtY2H4aKHPBVh/8L5P+YHf65DwhpCvQqPcrCIQaS8/qp17QnKwUYZeESnwVl1w1IONkpVdgbljUWNpBzZIEU2SCHSPMysxmMqNCvbSsCTZk8wjux0jOy0yrBo9gSyU3GRdVH3Aabe6EKNdzJSeSFt3skI6fEJ2Cirfb6llGq5J2Ok903ABs2e5ALZA8qj20nzeFwgPh1jfHyEeDuuDaZS4VUS8SDB8IERomGzJ4VENE6wtT3EaFIfdJU/B+M4wQPDYWMwVe6N4hgPDIeNQVfFeEky9WraRMveyfEYWw3BVFK7kzTFyeEQ2+MxWE2baOElCU5sb+P0eFybrZCvbZSmODEY4PR4jKym/TP34izDyeGw0cuJKcWJ4RCnxuPG9lRA5WY8MBxiq8PLKMWp0QinJxOklDYeaCljOD0eF+O1eqMRtsdjJNqrMynnarmjEeIsq/WklGCcY2s8xvZk0jhenpsxiCIMoqjTG0YRBpMJkqw+hK7sbU8m0/WrfY+ogLdRFCFpCJfL8zrGcYxxhyelCkZLsgyUNX/GSCmRpinSJAGjzZ8xUkqkUYTR1hakELjt85/HM7/3e/GWl78cpx94oOaV2UOE3P3PDvnmN7+Jn/mZn8HBgwexsrKC7/7u78Ztt9220M2yOR/o7tlOouPYfuDvwdkEgMr2yIuOOYjK8yCEQHChDr6zuRkEcHxXBZDpgxKLanIzHAI3dEFc9Y0GQoJNqMoUmfV6Phxv6tFxNpevQRwCb8XXgViqYKGjFDyZ99xVH27gFh4bpfO5GQ6Bt+rroCs93jAFj2i3N1KBWrVe3596g2S+1dUh8NYDuP3pJUt0O1UttuWXhEB5q37xKzZIVUtsh5eNUiSDZM4LVgMEq9MAq3ScIh7O52aE/QDhytRL4gzRKJ7zemGAfk8FThFCECWpKkxmvVIwFSEEUZrWtmD2SsFUhJC5kKsub7ZVM/S8IpiKEIJEh2HNFiahHi8PiEopxfZ4PJeHEXge1vv9wssYw9ZkMleY1Hnbk8lcbobvuljr9+E6Ks+Gco7t8XguN8N3Xaz3evBctzhobulCooznulgre1JiEEVznus4WOv14GsvzzGZzc1wHQerM94ojufyMBxCsNLrIfC84mA4jKJab7XXQ+j7lQJ01iM6lyQfD1AttnVe3/cR6PEAYNLg5bkfOZMkmcvXyPNGyl6UprU5HKHvwy95cZoiTpK5YiiY8TJKVUE047mOUwSPAUCWZUh1AVPGcV04OjadEIIsSZA0tHk7rov+ygo+/ld/he941KOK3+9lzsdnf/c3dp3z8UO/+hbjdd3a2sJjH/tYPPnJT8Yv//Iv46KLLsK//Mu/4Nu+7dvw7d/+7We8HrPY4gNmO5KUAvd97S9A01FzWJcmTyVtC9cCoOPN0RquVbjANPa7CT212BbCBQBwCIiTZ4C0DOcSEIeAx7TdcwiIS1Qqatve5KhwtHJ6ah1Sh6ixcdZetTsETuCCj7PmoLXcC7XHWpbrAiR0QSPaGO2eb4cbesjirN0jgBd4yFIK3hQBr/F8DxmloB1e4HnIGGuNoyYAfEPP8zxQnS7Zhu844EK0hlIB6uDNhWgNpQLUdnAhWkOpALUdUojWUKp8uRJoDZsC1HYAwKTD8/TBqXO5uujpWq5DCBzHQZym7W8R7UU1B+EyruPAcxxEerahbTzXdYtZiSYI1DabeK7rIsmy1iwTQgg8x+n0INVpuZTSziwT13VBGWsdTwoBSAnaMV5+ioVRCt4R7Q4A7/jAB/DcF76w+PdeFh///3e9ddfFx1Ne9R+N1/X1r389/uf//J/4q7/6qzNepgm228UQQhwQBJ2FBwBIJtoPhhpBTT2D4LHcMxkv40ZTccYe5ZBJtyepAEsMCi0qwKLuDwRJBVhLimnhMVNPIjMII5JcIhl1B3tJIRFPDDwpMYnNvHKEeaMHLNQDug/WOV0HzfJ4Jt97op14BsuNuw6GmoRSIy819LKOg2bZMwkAo4whNRiPcd6YnlqGC9F5f5XcMx6vo1AFVChbavKek7KzQM4xGQ8AUoOAsqVAwuzCs7bH74BPfepTePrTn46f+ImfwC233IJ/82/+DV760pfiF3/xF3exEvPYaz4sFovFYjnHGQ6HlZ+mIu1rX/sa3ve+9+Hyyy/HX/zFX+CXfumX8B/+w3/AH/zBHyx0fWzxYbFYLBbLsrKTtpamHwCXXHIJNjc3i5+jR4/WLk4Ige/5nu/Bddddh8c+9rF4yUtegl/8xV/E+973voVulj3tYrFYLBbLsiKk0Wn3tscDwN1331255iOcuaNzzsUXX4zv/M7vrPzuUY96FD7+8Y+f+TrUYIsPQ+LRcWRx911ugd2dntsVhgsmhtkV+4Xx+hnGAVj2DtP9yvg6d0Mvz9ZYVgghyxu4cC5hmhGyQ/wg6JaWnI2NDaMLTr//+78fX/nKVyq/++pXv4pLL710oetjT7t0QNMR7v/6Lbj/65+DlB0XS+rPFsdzzCpVAoiOC0TzPvzWrorCk2aekPPtujUepATPmvNGivF26DXlg0y3A+DMwJOy1OPfNp5ExlljlkLuQUqwhsyAigeVv7AQT/+XcQ6xaK8m92PW4x1eDtdZDV2eBGrzRuY83e7a5Qk9XhdCytr8krrxuu78mr9edTkns54w9EzHA7DQ8aQer+153okHqH2m1VOy0f6S+yae6Fhujmkh6nrt371dzwMhBM978Ytx9Y/8SOd4Zw25gJ8d8Ku/+qv4m7/5G1x33XW466678NGPfhTvf//78bKXvWwx26OxMx8NCE6xfeLLGD7wlW4Z+cFL51zo1lniEDi+qu8qKYBS5UjkuRmO58DteQCZ9+homptBfAfealDvDae5GcR34K0FqqV2xlPhZFnJC1VL7UxKIRukYCOVh8ECB/5GCMd3q9sLgA5S0IHyiO8g2AzhBDXeMEOqczMcT3luxQMAiWycIRmq4C/HdRCuhfD8eS+NM0Rj7TkOVlZC+P50d5ZQEyNJmmE8iSGESjlcyzMS9N/z/8b6dt9ciGqWwoyXUIqhzs1wCMFqGKIXBHNemudhCAFCCNbCED3fBwipTNhklGJL52aQfLwGbxBFoJyDAFgJQ/SDYM6jpdyM3FsJwzmPaS/vcCg8VPctJgS2x+PC68/kjeQeFwLbpTyMvu/XjpeHXOUtu7N5I7knpMrXyFtx27xyHkbQ4EmpbmGf31o98DyslvJLCg+o5Gb4Ld44ioouIN/zsFbKOck96PEKz3UreShlb5wkmOjuI89xsNLrVXIr8oN6nGVFa6/rOFgJw2ZPdx+5joN+GBYtxIUrVVhX3lXkENLopZSqVmGpcozCIJjzAIBSWrTsEkIQeF69x1gRYAaoVt/yduQwxqZ5HYTA9/3awoFRiiSOVbstVGsu0a3QZTjnyJKk8GYhjgMpBB7zvd+L//if/zMe/d3fXevtFRK7vKvtDquPxz/+8fjjP/5jvOENb8Bv/MZv4LLLLsO73/1u/PRP//QZr0MdNucD9T3b93/jrxEP7+l8bHGwjmhjzoXjOUUMO4so6Dir9dzQLQ7cPKKgo7R+vJ5XBGzxiIIO6/MwnJ4Hd8UHcQjYJAMdpo2etxoUHttOalt23b4HbyPUHkW2FdfmZigvgOM6YDFFcjqZD1oD4PY8BNqjCUW8FdfO3HiBi3A1VF7GMBnGtbkZnudiZaUH13VAKcNwHIHVeH4pSIoyhu0oqm0zLAdOUc4xqAm5Knu+64JxXjkIVzzHwXqvB9/zCq8uNyMPsMqzMPLUyjpvtddDqL3BZFKbS5F7Pd8vDv51uRQOIVjt99HzfQidXFnXYlsuuvKDf51HCMFqEBRF3CiOa1t7K0WX9kZ1HkpFF9TBehzHtR+t/ZI3SRKMk/kgOEAVU7kXZVmj1yt7aYpxHNe2zvaCACthCEdnf4wavFAXZ44OeBtF88FygCqS+tpLKcUkSWo93/PQ9304joOMUoyTpHbGyPc89IMAjuOAMoaxLrhn8Vy38BjnmDR4ruMgLHlxmtZ6juMg9Dw4eV5Mg0cIgee6cAiBEAJpmtbOaBHHga+XK4RAEkX1eR2EwNMzGEII0DTtzPU4/+BBXPt7v4cffu5zG+Pb9zLn4zNH34LV3pnnfEySBE99w2+c1XU9E2zxgfod6d67Pm10jUe6HUMw2ZmHQSMKMNF5OkZkHOAGHhPqQqSO0zaCc0Ci05NMKK/jtI3gAgDp9oQAHAIxm9o660kB6aDbE8rjJsslpHNKWkh1b5LZBM46DzCcCjf0YLBc0/EAdVqCc975/UYIAd5yymanXn7apCu/ggsBIUSnJ/RUfae3g+WaePlprC6P6QCrrtNA+Tidnv57l5fPIHR5XAgQw+WajCf1e8Roe/XBvWu8fPmtnhAQvOFWFDPjmXqcscaZjll+8wMfwI+XAsXqsMXH7rGnXXaLhFl2vjS8YtnUMyg81HjdhUfhdRzYp+OZeV0FxY48dBceOSYHbKC7ANjpeMu+3K5rHXbqmVyLkXsm33FMvbZrXs6mJ3VxZOQZXutgNJ6hB+zsNVmkZ7p+++WZFh4AECzZxaVt14yZPn4ZscWHxWKxWCzLyhneHK7y+CXEdrtYLBaLxWLZU+zMh8VisVgsGpP7O+0pZ9AuO/f4JcTOfDTg+StmomMWamOafWO8n5HFnsvbaTvW4pa7WG+nIUOLWr6c+e9eLfeseSZ5CoYeTM9ZL9hb9PotPL5qwefijddvwUFcC39ezlJQmClve81r8Kd/9EdLc61Efs3Hbn6WEVt8NHDBQ56AjQsfBfXWmn8zSH1hqORC3dVV52jUelKCJxwspo07Q/57ETN16/cOj08o2ChT61Dr6ZyGmCEdpZ0ezRjiSQrR5On/ZpQhipPGAKHCYwzjJG68iDD/DWUMI90W2OpxjlEcg3VclEgZU17HRZiMc9WOaOCZjMeFwDiOwVra+PKci3Ecg5p4SdJ6Z1ApVbDWxMQTApGhN0kSpJQ2Ps/5hZeTNEXS5UmJhNLu8aRETGkxXp2Z7/udnnYTQy+ltMibaNqzpFSBdqmhl+hcirZtZpxPx2vZp1kpD6PVE6J4nts8znlxN94uL0ma3+uFxxjiKFKddS0IzpEmiZGXGXgmXSzF52VHV0zuMUqxfeoUfuX5z8dzvv/7cfsXv9i6DpYzx552acBxfRw4/Bisn/8wnL7v7xCP7gWgDtaEQOVcbMdFJ4nkAsRz4XiO6ghByTsVFZ5IGNwVH27oTY+sROd1lPIweMzgrQVwei4AHRBF1O+zUzGk7hDhEYW3HsBd8ateSpFsxUUnCYspgtUAnvb0/wfLGOJBDK4TT7OUIuwHCHu+Xjc1JqcM41Fc5GakGUUvDNALg4rHOMdoEoHmHmWVLAXomOk8byLPzUgprQRTzXr5bbxTxtDTXh4klR80h6XcjJRShDOBU/lBrhxylVCK0PNqvXJ4VUopAh0klQdO5R9Ywygq8jUS7ZWDpPKD1bCUr5FQOhdMlXujUm5GAiDJMqz1+/NeOTeDUsSUYq0UEJUfMMY65yL3kizDqs4vmfNKuRmxXq6fe/oNMEkSjEp5GEmWqZwTHfyUe1GaVnIzUkqxEoZzXqzzNcSMF8wESSWUVvI1mryU0kq+RsrUPhjOeFmDF+hciMJjDJNSbkbGOULfh++6FY9yjqjk0ThW3sx4bNbjHIHnzXlcCMQljzGGoGa8vLAsPM7hu27FKwq3Ur4G5xxek1cqpBlj8H2/6AIp7/vRZAKq30ssy+AHAcJ+f85L4xhMe5xSuJ6HQLePlr1kMgHV+z7LvTwkr5RcmqUpuB5PcA7iOEXwWNmjaVosFwAEIRUv3+a6lt2//3//Xzzre78XP/HiF+M/3XADenq79pxz9IJTm/MBs57teHwcx++6FYJmSLdilcdRh0PUgVNIpKciiLTeIy6B01NvAno6gUjqvwkTjxRBYdmpuEhFnfccuOsBiEuQbsdgTZ5L4K8FcDwH8SABTeq/CTsOQdgP4LoOokmCNK33CCHo91TS4ThOkdSEXBWe/mAfx3FtGFbureRektSGVwGqcOrrAKtJ+eBa54Wh8tIUE534WOf1ggA93y9CpJreGP0gQC8IEKdp5SA8Sx5MFWcZRnHc7Pk++mGIRHtNbZqh76MfBEgZw7AhlKrwfB+U81Yv0IFTudfUVhl4HlbCEIxzDAw8LgRGOt21Ds91VUCZEBglSeOsUh50JaVsnX3ydHonpMQoSRpbmV3HQV+nx47juN0LAhBCMEnTxlkqR6d3Eh0U1uQRQhDqALC4Zbw8DdRxHKQd4wW+D9dxkGRZbfAdoPZp3/PgOg5SSltn23zXheu6SNMUWcN7E1BtqJ7nIUkSpA3vOQAIez14QQCapq3XUHi+D8/3kaUp0ihq9oIAnu+DM1YUJ3UQx4Hjup2eoz2hM0W6+M//9b/iR1/wguLfe5nz8Rf/8Y27zvl4+luvszkfD1b6a4chowDx6Y7gMSGRnm4uOnIkl8hORsUMRqPHJNITUWcGh2QCyQMTiI4qV3KJ6HTzASlHCInxKDYK8BlNYvCO8fIDiEmw0dDEg/qmvj2ZmHktH2y5N0lTDDrGA1TC5aBjPACI0xRDE09Hu3eRGHqpniHoItOnqEy8puJu1qtLTp2FcY7T43HnuWjGObZMPCGU17HcPAK+a7x8Fq1rPKFngbreS1J7XcvNZyZMvc7lApX48jbSLOtM/gSAJEmMvLSjOMmhaYp4PO70WJaBtRRFOfkpm05PB9+ZQg2WbdkZtviwWCwWi2VZOUdPu9jiw2KxWCyWJWW3HSvLemWFLT4sFovFYllWhP7ZzeOXENtqa4jgHJnB9QAWi8UA029jS/qtzWKx7A4789GBlBLbX/8XfOPWmyFIguBAv2i3bfKdwAVPGADS4qkOFdU10+JBdagIKot21ibPIQRcCjNPX2zVdMvo/G/5lF2nZzCeQwiYwXhqO6RuV+4OHJJStnt6mYvy5FnyupBS3WW0M/BsJ+OVXuNGDzBbrtFSzccDULRcd2ukuFtrGw4hYAYe9D7d5ZEdeCbrZ+wBxu9NYfJed9T30M73iCHlfap131/weIvGcV2srK7iu5/whD1b5ixS7u7UybLW77b4aCE+/QC+cetnMLj769PciYQhONhXOR0livyPcYbx1wcQTCA8vzfn5bCUYnJyDMEE+ms9+EGDRzlGgwkE57WZBmrZOg9jEoFxjtVer9UbRhGoHi/0/eJgUPbyPIyMMayGIXodXlLyZoufcm5GorMZmry82yVOU+UFQb2HaW7GShiqHJEGb6RbcVfCsMgRKX+AzeZh9IMAK6VMgzlP51f0fB+rdeMpGRPthTO5JLNepHMu8lbVJi/OMoySBL7rYqWUS1LrxTE818VaGBa5JLMkOufCdZza5ebk3TOO42BFt6DWeRmlGCdJ4TlNHmNFN04/DOE69ROwtNSNs9LiMR20JqHam9u8SHedhC1enq8htJfnoZQpgtF0bkbgeY2elBJJloFzDt/3W704jsE5RxiG8Brew1JKRFEERimCXg++fk1mPUiJROd1+LpVtcmLdb6GH4bNHnTXCaVwXBfOTM5J5bnhHILzTs/kbrN5qJ3gvGiRbVzuDjpY2nB1G+7P/NIv4VVvfSvOP3hwIeOeEXKXF5wuafVhi48G7v+HL+Lrt948/YV+AUXKkdw7hrfmIzjQL+LVBRWYfGOA9PS0dTG+fwJvxUdwfg9Ee1JITB4YIx1NWxIngwh+4KG/VvKkxHgYI46n3ihWB57VXggnD8gBMIriSovjKI6116t44ziu5GaMkwQJpVjVwVT5B8wojjEuj5ckiLMM6zqYqvD0wVqWxysFUzWFV01yTwdT5d5seFWeoJkXUxWvlIcxSVMViNXrqWJK/z5KUwxLXpSqHJLVfl8VU/pbXpxllTyMOMuKAKuKR6nKw8g9SlXRpfNBAHXwzlti89mlhFKkjGFlxkvz8bSXUoqMUvTz4kx7GWMYTiZFbkbGGLLxuMgbyT3KGAZRVORhZIzhtF5uv+zpXI8850Lo/I6e71eWm6e7lr1hHCP0vGK5AMClrORmlL1+yRO63bqcSzGOY/g13njGG5W8/LAjpQoyK3tRksBzXYRlD0CcJBUvTlO4jlPx8t+X8zCSslc64MVZVkmLTSkF1eFj5fHSmRyOjFIVFqaLsyKALU2Rlt5ziS7iwl4PruNMA93iGEmplTSNY9AsQ6/fh1t6j2RpWmk5zcO2gl4Pbum9mSUJkigqPt8KLwwr4zFKK7kZeXHh6vyS/PWQQlRacQvP8+CUii7BuVHLrpgdT7fIuq4L4jjFazLr7ZbH/8AP4K3XX49HXnnlwsa0VFnq4uPaa6/FW9/61srvDh06hOPHjwNQO/tb3/pWvP/978fW1hae8IQn4D3veQ8e/ehH73rZJ//p9taKkY0p2ISCBC4EE4jvn9RWpyyiYDGFs+KpD8HtqHaukWYM9PQYXugBhCCa1OcCUM6xPYl0uiIwSepzAZQ3ge+6cBynMY8gD47KvXGTJwS2tOdpry7bgwlRLNdz3UoyZJk8udQz8IZRBNdx4HseJg2hVELPmHhpCt/zEKVpbYiUkBKjKELkOAh1oFiTN04SRFmGwPPUwabmw01KibEufkLPQ0xpozcpeakuSOY8TIukwPOQMoa0IRI9L5J8z0PGWJHaOkuUZUWSK+W80cuLpMB1wVq8lDFkjMH3PHAhuj3XVbMEDVkJlDFQPZ4QotPLZ/WaAu0Y52B65qfNy5NBPccBCEHa4bn6G3eaZbWnC4QQRVFDoAqNWk9KJGkKB7oIbcj2EEIgjiL1bd9xkCRJ7UyB4BzReAzP9+F6HrI0rfWkEEijSAVxOU5jhLkUAmkcw3FduJ4HRmnjDAWnFIIQENdVYzV8ZnLGVBKp60Jy3noaQQqhot9bYt0554AQcByn1TsTfv6Vr8Rb3vWuPT2904qE+fmppscvIUtdfADAox/9aHzmM58p/u2Wqud3vvOdeNe73oUbb7wRD3/4w/G2t70NT3va0/CVr3wF6+vrZ3/lJBAfHxcR5m1est2cXFkmjrrDgwB14DGZYoyzzGw8SjuDvQB1gDL1hEHgVEqpUTCVaYBVxlhjemqZtoNwGcZ548Gw4gmBxCCwiwthFBRm6uVFl4k3Mghfkrro6vSAxvTZWS8yDLqKDAK2gOZiYpamImGWjDGj5TYVE7NQw/GoPiB3epQaeYzSSpR4E7yhQJ4ln7XoQkoJaTCeqZcv22BAM2+HPObxj1+ewgPnbqvt0ne7eJ6Hw4cPFz8XXnghAPWEvvvd78ab3vQmPOc5z8EVV1yBm266CVEU4aMf/eg+r7XFYrFYLJYmlr74uPPOO3HkyBFcdtlleP7zn4+vfe1rAIBjx47h+PHjuPrqqws3DEM86UlPwuc///n9Wl2LxWKxWBZGPvOxm59lZKlPuzzhCU/AH/zBH+DhD3847r//frztbW/DE5/4RHz5y18urvs4dOhQ5TGHDh3CN77xjdZxZy/uGg6Hi195i8VisVh2yTmaMbbcMx/XXHMNnvvc5+LKK6/EU5/6VPzZn/0ZAOCmm24qnLqWsK7zdUePHsXm5mbxc8kll8w5pKENz2LG8pwxtew3xt+8Fv0NbYnO21t2wD6/bn/23/87JgY3u7PsjgfVEXZ1dRVXXnkl7rzzThw+fBgAihmQnBMnTszNhszyhje8AYPBoPi5++6755yHPOEH4a+sou0wKqWE9FVLYuvV2zoEhHdclZ2HSJl40F4b5fEW5Zkud6HrBxh7RstVC+9+nrUnDK+mFwZTnISQwmszTT3odTTxxA6mYffaKweemez7i/RMpqfzv5nc5dnUI7pTowtiGLRmPMVueHDfyWtrcvF77nWNud+nCT79J3+CH3zYw/CJD394Ybkhu8GedlkC0jTFP/3TP+EHf/AHcdlll+Hw4cO4+eab8djHPhYAkGUZbrnlFrzjHe9oHScMQ4Q6HKqJzYd+Gx7zwpfgvtv+Bvfe9r8gpSg+ANSbSOLub57A8ftPAwAu3NjAofPOqwQ15QeE06MRtvUtv9f7fWysrMx5ADCI4+JW3itBgLV+v9YbxTFGOjej5/tYmwmcyg+a41JuRtjiTdK0yM0IPQ+rvV4lSKoIwyp5gfacGY8AldyMwPOwNuPlJJQWeRi+6zZ7ejwuRBGcVe56yskoxUCP5zlOkV8y5zGGURSBCQHXcbDa68Gv8cq5Ga7jYKXJ4xwjnZvhEILVMIRfExBV5GswpryaMDipi6KhzrlwCKkNl5NyGtyWMQZCCPot3iiOkVEKQghWggDBTJBU/iE1ThKklIJABXYFnjfvQeVp5B0Toe/Db/AmcVy0sIZBoHIwaoLbIp05AwCB79cuF1C5G2nJmxtPyUVmCgB4rju3fvmY5VOwvu8jaAiXS5Kk6GbygwBhv1/r0Xw8KeF6HoJer9bLkgRpFEF2eJxSZFkG6GLF1a/v7LaUczNMvTbKuRmEELg1z9+sJ1o8KYRqkddFZqMnpWqj3U+kxOkHHsCvvvCF+L9+7/fwn264AY/d14TTc7PbhchlXTMAr3nNa/CsZz0LD33oQ3HixAm87W1vwy233ILbb78dl156Kd7xjnfg6NGj+NCHPoTLL78c1113HT73uc/tuNV2OBxic3MTg8EAGxsbc39Ph9v417/+S5z+l69ASokTJ7fwr/ecAGPVN4nnurj4/PNxYG1NjRtFeGA4nPsm7hCCzdVVrOr0yUmaYmsymfMIIVjv9VSwkg7D2q7zAKzqlE9CCBJKMSiFUpW9lZKXUortUihVmbKXMYbBZFKbh9EPApWOaeDl20t1tkhdu19Pp4E6OuRqezKp9cKyp7NA6nIzQp0amkfKD+O4Njcj8DyshiEcxymyRepacf2SJ4TAKI7rPdctUjlzr65lNw+Dcx2nCNeqaxX2dJGUe5MkqW09ztNK8yCpNm+1FBoXpWmtlxc/uZdkWe12OIQUaaBSqhyLutZZhxD0dHEmdZFQ5xFCiqJGSomMUiQ1LbuEEPSCoCj2KGO1HqBe4zyrg1KKOI7rvSCAr4uaLMsQR9H8N2BCEIYhfL1PM0qRxnHtN2U/CODp9xKjFPF4XNsiWvYE50gbcj3KqaF5gVK3HaZeGSkleEOrMHGc4vk7Kx7nRjNBe4nruuCc4//+q7/C43/gB4rfdx0zFkG+jE+++tVFkvKZMElT/Ojv/M5ZXdczYalnPu655x781E/9FB544AFceOGF+L7v+z78zd/8DS699FIAwGtf+1rEcYyXvvSlRcjYpz/96YVnfIQb5+HyH/4xfPK6/4T7v/6NSupoGcY57n7gAQwmEzj6YFyHkBJb4zGGcazCiBoqfSlVhsMojgGdYFnrYRr5TVqWm2czdHmAylyYGHhxliFKUyMvTlM4jlNbJOQklCLKMri6OGoi1QejrvFSHb7V9noAKEK6XEJax6OMYYtSOI6j8hyaPF04Ef2/mz70KefYGo/VeC1eHt7m6OKtyeO60JFQQUxNGS95gZUXZU1eHrbmEHWPkDYvTlP1TVinUDZ5UZIA+rRSk5cXOnkh0ebFpdmQtmnyjDEIHcDV6mWZShFt+xYuJdIkQZZlRbHQBM0ypPl4bfuWji4njtM6Xp6/0XVfHlMPQBFf3nrqSYjivjh76e0n+ev/9bvuqhQflt2z1MXHxz72sda/E0Jw7bXX4tprr92T9ck4GguPMimljfeNKFM3Q1AHM7zmoO0gciaeMJwC3YnXVECVkVK2FgCFBxh7JqFKMBwPOxhvvzyT5xnYwT64A890XzW6jmYHnglCCKNv16aeFMIoeEzqg3unJyWk4XNtesA+V7xvVc7V0y5LXXxYLBaLxfKtzLlafDyoul0sFovFYrE8+LEzHztgGdquLJZzgiX9NmaxLBt25uNbmCxN8YkPfQj/+KUvmZ1/Nt1ZFu3B8AaGpn3+RtYOMFzuoiOGTMezkVQLYJH7KXYYULbAD9md7AuL/nBf1oPFtzLnHTiwb8uWC/hZRmzx0YKUEv/rs5/Fy5/zHHz0Pe/BV7/5Tdy/vV38bc7Xv9+OIgx1G1/dC597UakdsckD1EWQsb7qv21HyjgvugPaPKrv1Nrl8bLX8oHI9a3EuzzGueqIWJCXL7fNy3Mz8rv7tnlCSnU33paLHAsvy1ovmsyfi7TjLsD5a5AZeimlrRf35sulXeNpN6O09WLS3Esp7bw4NV9Hk4AtwVhn3kTeHso67oqbby/taCWVUt0FtWs8wKz7A5h2lHQWDIaFt+lypRCqNdWkddbwImBLFcd1sXH++bju938fT3nmM/d7dc457GmXBr759a/j/7zuOnz5tttUEqGUoJzjzvvuw31bW/iOiy/Ger9fBGsB6gBSzs3YjiJctLGBfhDMeVulPIxxkmBzdRU936+sA2UM25NJ0bkQpSnW+32Esx7nGJTyMKI0xVqvV/Hyg/CglIcRZxlWwrCyXCkluJQYTiZVbyYgKj8ID6KoaHOMKW30RqXcjDhN0Q9D9IIAIAQE04PmMIqKHIk4y9APgnkPqORmtHmTkpdkGXq+P+flr0HhQeWI9Hx/zpukKWKdh5FkGQLfR78UTFUOZJuUbk0feF6tl2TZNNeDUviuq9YP1XC5JMsQJUlRLPqui14YzoXQpZQWhSAohdswXjaTh+E6Dno6Y6Ic/kTL4wHIXLfIf6l4M+MRHRw3GyTFGENaGo8xBj8I4Mx0hzHGkJbyNRxKEfR6cGZC3jjnyEp5GEx7syF0jDHEo1HRcUIoRRCGRRhXjtDjFQWUDsSaXb/Z3AzBOVzfr3j537ryNQqvlIchhFAZGI4zFzJY8ThXeR51Xik3o84rtmMJ8zX2E1dny7z4P/wHvOItb8Hmeeft7wrt8rTLsp7itMVHA+//zd/EP/3d3wHA3BtznCT40rFjuHBjA99x8cUAgEFNKFXGGO45fRprYYgLNzZACMHWZDIX0sQ4x6nhED3fx+bqKgghGNR4XGc9BJ6H9X4fDiEYxvFcOJSQKh/Ez7IimKrJGycJkpI3jmNMZjwpVQpqQmmRGjpKksrBddZbCUP4rotJkmA860EVSGnueZ7ydD5FxcuyYrzA8xClKcY1oVRxliGltEj5jLMME53uWiahFClj6Ov0zoRSjGu8lFJkjKGn0zZTSjFJkrkW5Ux/487TO1NKMdYpsBWPMVDGEOpUTsp57XiUc9A4RuB5ymMMkySZm8WgnINGUTEe4xxRjcc5xySO4XseAt8vZovmPCEwSRL4erlcCMQN4431eL0gULNANePlBY7jOPB08Z6m6dysjRQCWZLAdV24vq8KsjiemxURQiCJIrieB18HLtE0nfOkEEhnvGQ8Bp15L0khkMYxHNdFoJN/s5rxoIuMPL0ThKiDf83BetYTjLXOApULiDqPcw6iixDoLJE6L/99HtiVz57UepwX6aJN3rc6j7jiClz/h3+I73jkI/d7VQCcu9d82OKjgaQu1XCGk8MhXJ1k2cY4TZGePt2Z/ZFQikSf1mkjYwwnB4POc3mUc5wajTozPZgQOD0ed24vF6I2ibXO255MjMarS2ydJS+mTLxRQ8pkGamLLpN7z0RpimEUtXtQszlGXpbNFXd15EWMiRfNFHd1UH3qzsRLDNaP6mKqCyGEmrHp2Ad5nujZ5Rmcrsm9NI47v9ELzpFMJp3jSSnBWkLvduoBMDr4SynBTDJbZHuAWRlT71uVl/zary1N4XEuY4sPi8VisViWlN1eNLqc8x62+LBYLBaLZWmxp10sFovFYrHsKedq8WFbbS0Wi8Vi0Zw8fny/V+FbAlt8NPDwK64AgLlWwVna7rxaxuRGbjtiwYFd5XbSLky8nQZ7dY6ol7lwzyAnYaHejN/FMt/Ey3gsw33V2DOk67273yz7+n2rct1rX4vrXvtajIbD/V4VANOZj938LCO2+Gjg53/t1/Dq3/xNnHfBBbUfEnmOxMnBAPecOqVur17zIuf5GqeGQ5zY3m68HXrubY3HOD0aNQY/5d5wMsHWeNzqCSEwjGNsd3m6S2Q7ihqDpHJvkiQYxnGrl7fcbpeyR5q8KMswiKLGzok85CrOsvbxtJdQimEUIWspCgtvPEbW8LrlXpqP1+FRxjCJ48b9IIfpVtW28YBp10nXeJRSRFGErCM4i3OONI7BOjInOGNIJhOVndHywSU4RxpFqqOkxcvH6/KEEGD6lvJNXv57E08IUdyivnM8Slufl8JjrPP524lnszWWE8E5PvA7v4MfuOwyfOyDHzS6Y/dZXZ8F/CwjRC5rWbSHDIdDbG5uYjAYYGNjo/K3NEnwpx/5CP7vD34QTPf35wfi8mwGAXDe2houWF+vFCvjJClCqXLW+32V51H63bgmN6MfBFjv9yvjTbRXftFC38dav18ZL8/XqHieh9Verzpems7lXASeh7UwrHhRls15vm4zdghR31qlCsMaz+RXzHoEquV01vMcBythCNdxilC2pCY3w3WcIpck9zKd1zHr9YMAnutOPcYwnmnbdfRyyx6t8whBf8ZjOkej7BFCEOrl5nDdcjrr9Zq80gceAeD7fuHlB8M4jittmIQQBEEAX4fG5V5dvobn+0XeQ+Hp4qSMH4bwdGiclBKQsjYPo/BQKgQnE9CZfd8PAng6pCzfl7I0BZ9ZruO6cEohZVLK2tyMspePR9N0bjscx5kfryY3o9araYkljlMEmeXL3o1nWT7y1+uRV16Jj9x8My48dKj4W9sxY1Hky/ivL3tZZ5xDG1Ga4qff854zWtejR4/ijW98I17xilfg3e9+9xmvQx32gtMOwl4PP/6//+948rOehdf8zM9g64EHak+hSABb4zGGUYTD550Hx3FqQ64Alc45SRKct7oKRwd71Y0Z64CtNV0wjMvJiyVSSpFRip5OimzKsEgZQzoeK0+PV+dljOG0Dthy9XawGo9yjkEUIfA8eI6DSZrWzrBUPNdFlKa1MydMz9T4rgvPdRE3eFwIDKMIvuvC9zwkWdbojZMEnuvCd10kWVY7cyKEwDiOled5SJs8PfPjOg4Cz0Omg8hmkVIFbzmOA8/zGjMxpJSI0xQOIfA9D4zz2hmbPH6dMgbPccAYQ1aT2ZEXGpRS+L6vvv03zAAxSsEZg+O6KtWzIdsjP5D7QVDMTjR6WQbX8yB0gBdq9ul8NsLXqb+zxUlOHojleB6gC4U2L0+NpVlWu1whBIQQRUJq43gljwCN33qlEGAL9CzLR/7Z/c+3347P/T//D37i535u39ZjPy44/du//Vu8//3vx3d913ed8bLbsMWHIQcPHcKhhzwEp06ebPXKKaRt5NHkXcFjUp8S6UICczMdTdQla9YR6fumdBFnmdEdf5MsAzcYL6V0Lo21joyxuVTZJm929qmOPCK8i6YiYRbOeeNpooonBKhBUFge2GXipQbbK6VE0hGMBkxTSI3Gm0yMro9pKnZmEYaBWNTgfi1Ac9GxLJ7FMst+FB/j8Rg//dM/jQ984AN429vedsbLbsNe82GxWCwWi6XgZS97Gf79v//3eOpTn3rWlmFnPiwWi8ViWVIWNfMxnOneCcMQYc21JB/72MfwxS9+EX/7t397xss0wc58WCwWi8WypMgF/ADAJZdcgs3NzeLn6NGjc8u6++678YpXvAIf+chH0Ov1zup22ZkPQ45/85v412PH9ns1LJalxjbPWSzLyd13313pdqmb9bjttttw4sQJPO5xjyt+xznHrbfeihtuuAFpmhbdW7vFFh8dxHGMD//+7+P/+r3fg+842FxbA0FzQJCEumDS01e3N3o6r4Po1tM2Lx+3yyMAuP5v2/oRqAteuzwYeEA1oKwrOElK2enkLW4mIUxCStXC2zYeptvdhbFnuH6Q0iw8y8AjulVZ6v2mdTghVFtziyelBHGcolukzausQ4vnuC44YwsZr+x27jOOA2kv6rQskPxz6Dsf8xg8+Yd/eN/WY1GnXTY2NjpbbZ/ylKfg9ttvr/zuxS9+MR75yEfida973cIKD8AWH41IKXHzpz6F33nrW3HqxAkVJAUgSVNsrK5iZSYvI38M4xwRYxjGMTb6faz1ekW2RdlLKUWk2wLX+n2shmGtl+j8CiklVsKw1gOAmFKMoghCeysNXpplGOlcil4QFP3js9uS6XwNLgRC32/2SnkYgeehHwS1HuW8yLnwXRdhk6fDuhjn8D0PvTCsLX4Y56oFmHP4rot+r1frcSEQ6xZg13EQ6CyKslfkZmQZOOdwujydr+G6LsIwhDPTsTSbr0EcB75ug571ICUSna/hOA6CXq9oB614ALIkUfkahMDTGR11Xt4eS/R4cx8YUhZtroxSgBC4nje3fvmYeTsrALi+3+jRLCtacVvHK+VcuDqno8tzXBeO49Rus83NsCwax3Gwef75eONv/RZ+/EUvqt2X94o8N2c3jzdlfX0dV+h075zV1VUcPHhw7ve7xRYfDbzzzW/Gf/vQhyrhRYD6pr09HmMSxzhvfR2BDnTiQiAtpRpK3Uo7SVOct7qKnvaoPmiW8zVGcYwoTbGxsjL1dAFTzteYpCniLMN6v1/xBjPJpFGaIskyrJY8prM2ynkTSZYhpRQrYYieLgYY5xjppM6cVOdZ9IMAoQ6c4jobo9xKmuk8i14QINAHRyEEJjqpM4dyDhrHCH0ffskbx3GlhTXPxwhLyxVSIkqSSqw95Rx0MkHo++iVAqziNK2sX16I5PkguZdkWWX9hBBI0rTI/Si8JKnka3DOEUURPM9DqEPZpJTIsqySr5G3qrquWwnYytK00sIqhEASRXA9D0EYqm/zUiV60nILsE7lJLpoyMdjlFZyM6QQSKMIruvC7/Xg5ONRWs3DkBKcUghC4JYCxaQQc2Fisx6AYrnl9wlnTHmlIknUjaeDvrq8PBCsXHRJISohaxbLInBdF//Ha16Dl73xjVg/SwFiO2E20PJMHr+M2OKjgS//3d8BaK44Kec4ub2NzbU1uK7bmHPBOMcDw6FK5CSkMZY8j1bPD7JN+RB5PsiYEDiO03hvGSElRlGEiBCQFk/q4KxYh2K1eZEuftw2DzocTXttORcppUjSFISQ1nvkpFmGNMvgum67p4sk33VVLHmDRzkHZQyODuxq8hjnoJSqJNOWmHPGGBhj8DwPvCE+H1AHWhZFACHgLfHbnDHEjKnArpbx8kIiPzA3xXVzzsEnkyIArMnLC5286KkL6yp7+VhN+74sFUn5v3fjwdSzWHbBG975Tvziq16136uxNHzuc587K+Pa4mOXsI7z5TmUMQiDqbus43x5MR7ngMFUM+Xc6Fw4E8LI40I03iemjJBy7ttrk2fy7VXoA08XUkqjYC8JNN5PZpamlNBZTL+FN6WEzmLy/J0Nz/SeI5zzxgKlMp5hkbBoz2I5Ey48fHi/V6FCuWPlTB+/jNjiw2KxWCyWJWW/4tXPNjbnw2KxWCwWy55iZz4sFovFYslZspkCO/PxLcaKvuNsF6Y7xk52IGPPyFpyTDIw9pNlX7/9ZEk/1CyW3fD7v/VbuPOf/mm/V2OKPnac6c+yvk9t8dHAG44exWO/7/sAqACjJiZRhNTgAsJYt7V2kVJqdMdUxrnRcmdbgJsQQiAz8KSBl2cvpDPtl3Ve3i7Z6ekcia4uDCkEMr3ctu4KKSWyJIEUotWDviC2tXjUf2N6/Uzu6trlSSlBKW1dv2Id0V3cSimLThxTr2sb2t4XFsuDla/ccQeuvuIKXPuKV2CwtbXfq3POYk+7NHDpt387/s//9t9wy6c/jd9685tx/733VvM+dHaD4BzxZIIwDLG5uQnXdSutgFLnUuQdIoHnqfbcUmCS1H3coygqOjV8z8PG6ir8UgBT7g0nk6KQidIU6ysrc56UEqM4LjzXcbDa7897QCU3w9G5H16TpwsehxD0ez34njfvTSaIdX6FE8dYXVlBoHNEcg8AojhGoj1CCMIwhDczHgAks16vB38mGng2NyNLEgS9Hnydq1H2kihCPJmogC9CEK6sIJgJjcuLkySKimLHD0N4pXyL3KvkZqQp/CAo8jzKHqdU5YTo8RwdsDUXoFbKzaAAvCCY2w5Ada9kOoAOUMFIdeOV8zCEDlEz8YjjVPbnimfY6WKxPNjIA+tues978PE/+AP82tvfjp/5pV/at6CxczXng8hlPSG0hwyHQ2xubmIwGNTGz2Zpij/84Adxw9Gj4JwjS1PwhtmJ1dXVYow4TRtnMVbCEOsrKyCEYKxzNuroB8HUi2NMSqFUZULfx3q/D0IIojRt9ALPw6o+0CZZhjhNa0/feK6LfhjCyb0kafccB0mSYBJFtd+aPc/Dmj6VlWYZogbPcRyEYQjXdZGlabPnuuj1+3A9DzTLkOpZjDov7PfheZ4abzSqTcN0XBf91VV4QQCWZYgnk1qPEAK/1ysyPbKG5RJCimJFaK8pD8P1PDiu2+4RgqA8Xpo2pnrmaaCAKlCa3uKL9iyWc5X/8id/gqc9+9nFv7uOGYsgX8b7Xvzi/6+9uw+Lqs77B/6eGWHwCRRRHm5hYBVNQ90VFKHELKNlfUClDXND/OlallIu2t4+a6wr6q5rdqmUupGlhnmb2YOS3PmUa90aq7tqW+lKYiWxWg4PAgMzn98fOicGGBgBhzPwfl3XXBec8zkz3w9fDufD95zzPcrM0Y1RZjLh6czMu9rWxuDIhwPc9XokP/MMst9+G2dOnqw3trS0FFW3Z2ysT/UJu+r7U15mMqHMZFKeT2JPRWUlKm5PiFVfnKmqCqaSkgbjqsxmGEtKlKm464u7UVwMaWCovqqqCjeMxlozxtZksVhQWlJyawKr+uLMZtwsKWn4/cxmlBYVwdLAQdMa19D7iQhMZWUwaTT1/udvHTkxVVQ0OEJQVVmJqrKy+uOs72enqKyZiyPTjTd3HFFrdeOHH1q6Ca0Oi4870JwP1bFy9H9I1ce10ERSLTaBVUvFEVGbwknGiIiIyKla6622LD6IiIhUqrVecMp75YiIiMipWHzcgZA+fRqMsT4e3vq1I1oqrqFbx6zzOGgbuNZF52CctV0NXTujvX2xboNxtz+3oTjr+gbf7y7FNfjzs8Y10B/W9Q3FWd+voXk4lLgGfl+sn+doXEMcjWvM77ta9yWH4xzcRxzdlzQO7iPKvtTAhfKO7nN3a19qrn1O6+A+Z/284N696427m5oywVhTT9ncTSw+7sCydeuwZO1adPL0rPOXW6vVwqtrVyxduxaL1qyBp5dXnb/cWq0WnTw98d8rVmDJ2rXo4u1d54HCevvn75YuxR9eegndunev84+h7vZtp7MXLEB6RgZ8/f3txrnr9Xhq3jys3rwZAYGBdeap0+nQrl07TH/2Wax77TUEhYTYjdPpdJjyzDPYtGsXevXtC6D2H2zd7Vs1H58xAy/v3o2+AwbYjdNoNHh0yhRkvvceBkZE3Iqr8bOx/kGIf/xxvPbBBwiPjr7186oRZ+2jXyUkYEdODu4fNareuFFjxmBHTg4eHD3aZrkSd3u7mNhY7MjJwSMTJti0p2ZcZEwMth88iPjHH68zzprX4KgovHnoEBKnT4dGo6l1ALD+nAZERGBHTg6mzJoFrVZrN65vWBi2ZWfjt7/7HbQ6nd0DSkifPsj84AM8s2AB2rm51R2n0SDoZz/D5r178bvly+Gu19cZp9Fo4B8YiIzdu/H7lSuhb9++zgOFRqNBD39/vLRzJxavXYsOnTrVGafVauHdvTvWbtuGP2zYgM5eXvXuc6u2bEH6K6/Aq2vXuvc5nQ6eXbogbcMG/DkzE94+PnXuczqdDh06dcLSdeuwfscO9KhnX/Jo3x7zV63Cpt274dezZ737XGpaGjbv3YvAkJA6Z83VtWuHdm5uSFm0CK++/z6CQ0NrxVjjdO3a4cl587DtwAGE9u+v/Fxrxmm1WkydPRvbDx5E/1/8wm6cRqPBpN/+Fjs/+gi/iIxUfq418wCAhClT8OahQxg6fHi9cWMeewxZhw9jeGxsvXEPjxuHXUeO4KGxY2/F2dmXRjzyCLIOH0bco4/abF8zbtiIEXjz0CFM+M1v6o0Lj4rCzo8+anCfu3fwYLx78iSG3H8/WkprLT4grcTGjRslODhY9Hq9DB48WI4dO+bwtkajUQCI0Wh0KP7H69dlxbx50t/LS+7t2lXu7dJF7u3SRf60ZIkUV3uPIqNR1qWlyZDAQOUV0bOn/GnJEjH++KMSV1pSIhtXr5aokBAZFhwsw4KDZWhQkKQvWCA/XLumxJXdvClb1q2T6F69lLghQUGSNneu/Of775W4ivJyeW3jRrk/NFQig4MlMjhYhgQGyuLZs6Xgu++UOFNFhezYskVi+va9FWcwyJDAQPn9k0/KN5cvK3GVlZWyKzNTYvr2lYiePSWiZ08ZHBAgz02ZIpf//W8lrqqqSva88Ybc37u3DOreXQZ27y4DunWT306YIBe/+EKJM5vN8u6uXTKib18Z2L27DPTxkQHdukny6NHyxdmzSpzFYpH9e/ZITJ8+0s/TU/p5eso9nTvLYyNHytncXJu4/33/fRnZv78Sc0/nzjLhvvvk759+atN3Rw4ckJH33CO99Hrp5e4uvdzd5ZFBg+STI0ds4k4cOiSPDByoxPRyd5eH+veXox9+aBN36vhxGR0ersT01uslJjRU/ve998RisShxZ06elPFRUUpMb71eooODZf+ePTZxZ//+d5l4330SBIhBo5FgrVYG+/rK3h07bOK+PHdOJo0ceStOq5VgrVYGdesmu159VcxmsxJ38YsvZEpcnAQBEqzVSrBOJ2FdusgbGRlSWVmpxF3+979lxvjxt+J0OgnR6aRf587y6vr1YjKZlLhv8/Nl1qRJEgRIyO24vh06SMaaNVJeXq7EFXz3naQmJ/8U166dhHp4yPo//EHKbt5U4q4VFsr8J58Ug0ajxPVyd5c/LV4sJcXFStyP16/L0pQUCdZqJaRdO+X1x+efl6Jq+5zxxg1ZMW+eTUywVivLn3tObvzwgxJXUlwsaxYtkp+5uSlxBo1GFjz1lFwrLFTibpaWyosvvCC99fpbcTqdGDQamTt1qnx/9aoSV15eLptWrZI+7dsrP5cgQGY//rh8m5+vxJlMJtm6bp3c06mThOh0EqzVShAgT06cKJcvXVLiKisr5fVNm+ReLy8JrhY3dfRoufTVV0pcVVWVvLl1qwz09pZgrVYMt+MmjxolX54/r8SZzWbZ88Yb8osePcSg1YpBo5EgQB4dPlzOnzmjxFksFnn/rbdkSECAGDQaJW7s0KFy5uRJm7gP33lHogwGJSYIkF8OGiQnjx+X6g4fOCAxvXtLULW4h/r3lxOHD9vEHf/oI3mwXz8lJgiQEaGhciQ72ybu5McfyyODBikxBo1GooOD5eC+fTb7yOn/+z8ZM2SIEmPQaGTof/2XvL97t03cudOn69zn3t6+3Sauujs9ZjSG9TPWJyXJ5unTG/1an5R019vaGK2i+MjKyhI3NzfZsmWLfP755/Lcc89Jx44d5XK1A2h9GvuL9NXnn8vTjz0mzz7xhHx98aLduK8vXpS506fLnKlTbf5w1PTN5cuy4Omn5dmkJPnq88/txhV8+60sfe45mT15ss0fjpr+U1AgaXPnyszERPnHqVN24364dk3SFyyQJx99VHI/+cRu3I0ffpA1S5bI/4uPlxM1DtbVFRmN8uelS+U3jzwiR7Kz7e7ApcXF8tIf/yiTH35YDr77rt24sps3ZeOqVfLoiBHy/ltv2Y2rKC+XLevWSUJMjLy9fbvNQbg6k8kkr65fL/GRkbJz82apqqqqM66yslK2v/yyxEdGyrYNG2wOwtVVVVXJW5mZEj9smGxZu9bmIFyd2WyWd3bulPFRUbIxPd3mIFydxWKR93fvlnFDh8qflyyR0pISu3EH9+2T+GHDZOXvf29zEK7p8IEDMiE6Wl6YM8fmIFzT3w4dkkeHD5dFTz8t1//zH7txJ48fl8ceeECenz7d5iBc05mTJ2XyqFEyJylJvrtyxW7cudOnZUpcnMyeNEny8/Lsxn157pxMGztWnkpIqHdfuvTVV/LkxIkybexYm4NwTZcvXZJZiYkyJS5OPv/HP+zGfZufL3OSkmTyww/Xuy8VfPedzJs2TRJHjpRTf/ub3bhrhYWycOZM+XVMTK3Ct7ofr1+XZc8+KxPvu69W4VtdkdEof3z+eYkfNqxW4VudtegaN3SofPA//1PvPvdiWpqMGTKkVuFbXXl5uWSsXi2jIyJqFb7VmUwm+euLL8qvwsNl+8sv17vPvb5pk/wqPLxW4Vud2WyWrL/+VUZHRNQqfKuzWCzy9vbtMmbIEHlpxQqH9rk/LV5sd5+zcmbx8eITT8gr06Y1+vXiE0+osvhoFTOcRkZGYvDgwcjIyFCW9evXD+PHj0d6enqD2ztjtjoiImodnDnD6V+eeKLJM5ymbt+uuuOby99qazKZkJubi/nz59ssj42NxYkTJ+rcpqKiAhXVpjM3Go0AbnU2ERFRfazHilbwv3uLcfni49q1azCbzfD19bVZ7uvri4KCgjq3SU9PxwsvvFBreaCdCzCJiIhqKi4uhpeX1139DOEkY+pW68mbInZvk1uwYAFSU1OV72/cuAGDwYD8/Py7/ot0NxUVFSEwMBBXrlxR1fDanWoteQCtJxfmoS7Mo2WJCIqLixEQEOCUz2LxoUI+Pj7Q6XS1RjkKCwtrjYZY6fV66Gs8kh0AvLy8XGoHsMfT05N5qExryYV5qAvzaDmu/I+qGrj8PB/u7u4IDw9HTk6OzfKcnBxE357/gYiIyBVZp1dvykuNXH7kAwBSU1ORlJSEiIgIREVFYfPmzcjPz8fMmTNbumlERESNxtMuKpaYmIjr168jLS0NV69eRVhYGPbv3w+DweDQ9nq9HsuWLavzVIwrYR7q01pyYR7qwjzakKbOUqrS4qNVzPNBRETUmljn+VidmAiPJszzUW4y4b937eI8H0REROSYpl63wWs+iIiI6I4ImnbdhjpLj1ZwtwsRERG5Fo58EBERqVRrvdulzY98bNq0CSEhIfDw8EB4eDg+/vjjlm5SvZYvXw6NRmPz8vPzU9aLCJYvX46AgAC0b98eDzzwAM6fP9+CLf7JsWPHMHbsWAQEBECj0eCdd96xWe9I2ysqKpCSkgIfHx907NgR48aNwzfffOPELBrOY+rUqbX6aNiwYTYxasgjPT0dQ4YMQefOndGjRw+MHz8eX375pU2MK/SJI3m4Qp9kZGRg4MCByoRbUVFROHDggLLeFfrCkTxcoS/UpLXO89Gmi49du3Zhzpw5WLRoEU6fPo3hw4cjLi4O+fn5Ld20et177724evWq8jp79qyybs2aNfjLX/6CDRs24NSpU/Dz88PDDz+M4uLiFmzxLaWlpRg0aBA2bNhQ53pH2j5nzhzs3bsXWVlZOH78OEpKSjBmzBiYzWZnpdFgHgDwy1/+0qaP9u/fb7NeDXkcPXoUs2bNwqeffoqcnBxUVVUhNjYWpaWlSowr9IkjeQDq75OePXti1apV+Oyzz/DZZ5/hwQcfRHx8vFJguEJfOJIHoP6+ICeQNmzo0KEyc+ZMm2X33HOPzJ8/v4Va1LBly5bJoEGD6lxnsVjEz89PVq1apSwrLy8XLy8vefnll53UQscAkL179yrfO9L2GzduiJubm2RlZSkx3377rWi1WsnOznZa26urmYeISHJyssTHx9vdRo15iIgUFhYKADl69KiIuG6f1MxDxHX7pGvXrrJ161aX7Qsrax4irtsXzmY0GgWApCUkyJpJkxr9SktIEABiNBpbOiUbbXbkw2QyITc3F7GxsTbLY2NjceLEiRZqlWMuXLiAgIAAhISEYNKkSbh06RIAIC8vDwUFBTY56fV6jBgxQvU5OdL23NxcVFZW2sQEBAQgLCxMdfkdOXIEPXr0QJ8+fTBjxgwUFhYq69Sah9FoBAB4e3sDcN0+qZmHlSv1idlsRlZWFkpLSxEVFeWyfVEzDytX6ouW1lpPu7TZC06vXbsGs9lc6+Fzvr6+tR5SpyaRkZF4/fXX0adPH3z//fdYsWIFoqOjcf78eaXddeV0+fLllmiuwxxpe0FBAdzd3dG1a9daMWrqs7i4OPz617+GwWBAXl4elixZggcffBC5ubnQ6/WqzENEkJqaivvvvx9hYWEAXLNP6soDcJ0+OXv2LKKiolBeXo5OnTph79696N+/v3LQdZW+sJcH4Dp9QXdXmy0+rDQajc33IlJrmZrExcUpXw8YMABRUVHo1asXtm3bply05Wo5VdeYtqstv8TEROXrsLAwREREwGAw4IMPPsDEiRPtbteSecyePRv//Oc/cfz48VrrXKlP7OXhKn3St29fnDlzBjdu3MCePXuQnJyMo0ePKutdpS/s5dG/f3+X6Qu1EN7t0rr4+PhAp9PVqqQLCwtr/XehZh07dsSAAQNw4cIF5a4XV8zJkbb7+fnBZDLhxx9/tBujRv7+/jAYDLhw4QIA9eWRkpKCd999F4cPH0bPnj2V5a7WJ/byqIta+8Td3R29e/dGREQE0tPTMWjQIKxfv97l+sJeHnVRa1+oRWs97dJmiw93d3eEh4cjJyfHZnlOTg6io6NbqFV3rqKiAv/617/g7++PkJAQ+Pn52eRkMplw9OhR1efkSNvDw8Ph5uZmE3P16lWcO3dO1fldv34dV65cgb+/PwD15CEimD17Nt5++20cOnQIISEhNutdpU8ayqMuau2TmkQEFRUVLtMX9ljzqIur9EVLsY58NOWlRm36tEtqaiqSkpIQERGBqKgobN68Gfn5+Zg5c2ZLN82uefPmYezYsQgKCkJhYSFWrFiBoqIiJCcnQ6PRYM6cOVi5ciVCQ0MRGhqKlStXokOHDpg8eXJLNx0lJSW4ePGi8n1eXh7OnDkDb29vBAUFNdh2Ly8vTJ8+HXPnzkW3bt3g7e2NefPmYcCAARg1apQq8vD29sby5cuRkJAAf39/fP3111i4cCF8fHwwYcIEVeUxa9Ys7Ny5E/v27UPnzp2V/6q9vLzQvn17h36f1JBLQ3mUlJS4RJ8sXLgQcXFxCAwMRHFxMbKysnDkyBFkZ2e7TF80lIer9AU5wV29l8YFbNy4UQwGg7i7u8vgwYNtbs9To8TERPH39xc3NzcJCAiQiRMnyvnz55X1FotFli1bJn5+fqLX6yUmJkbOnj3bgi3+yeHDhwW3H1VQ/ZWcnCwijrW9rKxMZs+eLd7e3tK+fXsZM2aM5OfnqyaPmzdvSmxsrHTv3l3c3NwkKChIkpOTa7VRDXnUlQMAyczMVGJcoU8aysNV+mTatGnK36Lu3bvLQw89JAcPHlTWu0JfNJSHq/SFGlhvtV04bpykJSQ0+rVw3DhV3mqrEVHpmAwREVEbVVRUBC8vLywYOxYebm6Nfp/yykqkv/cejEYjPD09m7GFTdNmr/kgIiKilsHig4iISKWkiXe63OnJDUeeldQcWHwQERGplDj5bhdHn5XUVG36bhciIiL6SXZ2ts33mZmZ6NGjB3JzcxETE9Nsn8Pig4iISKWaOlFYUycZs/espKZi8UFERKRSjTl1UnN74NbdM9Xp9Xro9foGt63rWUnNgdd8EBERtXKBgYHw8vJSXunp6Q1uY31W0ptvvtns7eHIBxERkUo112mXK1eu2Mzz0dCoh/VZSceOHWvwWUmNwZEPIlKYzWZER0cjISHBZrnRaERgYCAWL17cQi0japua68Fynp6eNi97xYc04llJjcHig4gUOp0O27ZtQ3Z2Nnbs2KEsT0lJgbe3N5YuXdqCrSNqe5x9q+2sWbOwfft27Ny5U3lWUkFBAcrKypo1L552ISIboaGhSE9PR0pKCkaOHIlTp04hKysLJ0+ehLu7e0s3j4juooyMDADAAw88YLM8MzMTU6dObbbPYfFBRLWkpKRg7969mDJlCs6ePYulS5fi5z//eUs3i6jNcfatts563BuLDyKqRaPRICMjA/369cOAAQMwf/78lm4SUZvU0vN83C285oOI6vTqq6+iQ4cOyMvLwzfffNPSzSGiVoTFBxHV8sknn2DdunXYt28foqKiMH36dKcNxxLRT0QEYrE0/qXS/ZbFBxHZKCsrQ3JyMp566imMGjUKW7duxalTp/DKK6+0dNOI2pzmutVWbVh8EJGN+fPnw2KxYPXq1QCAoKAgrF27Fs8//zy+/vrrlm0cEbUKLD6ISHH06FFs3LgRr732Gjp27KgsnzFjBqKjo3n6hcjJpImjHmrdX3m3CxEpRowYgaqqqjrXffjhh05uDRHxbhciIiKiZsCRDyIiIpWyWCywWCxN2l6NWHwQERGpVGOez1JzezVi8UFERKRSvOaDiIiIqBlw5IOIiEileM0HERERORVPuxARERE1A458EBERqVRrHflg8UFERKRSrfWaD552ISIiIqfiyAcREZFKWURg5mkXIiIichaediEiIiJqBhz5ICIiUikLmnbqRJ3jHiw+iIiIVMtiscCi0TRpezVi8UFERKRSZosF2iYUH2aVFh+85oOIiIiciiMfREREKsUZTomIiMipeNqFiIiIqBlw5IOIiEileLcLEREROZXFYoG5FRYfPO1CRERETsWRDyIiIpUyWyzQtMILTll8EBERqVRrLT542oWIiIiciiMfREREKsW7XYiIiMipqppYPDR1+7uFxQcREZFKmc1maJowRTqv+SAiIiICRz6IiIhUq6kjF2od+WDxQUREpFJmsxngaRciIiKipuHIBxERkUpVVlTAom38OAFHPoiIiOiOVFZWotJkavyrsrJRn7tp0yaEhITAw8MD4eHh+Pjjj5s1LxYfREREpNi1axfmzJmDRYsW4fTp0xg+fDji4uKQn5/fbJ+hEWnClSxERETU7IqKiuDl5YUQNzdomzLDqQjyKithNBrh6enp0DaRkZEYPHgwMjIylGX9+vXD+PHjkZ6e3ui2VMdrPoiIiFSqsrKySaco7vSKD5PJhNzcXMyfP99meWxsLE6cONGElthi8UFERKRSTb1c1Lp9UVGRzXK9Xg+9Xl8r/tq1azCbzfD19bVZ7uvri4KCgia25icsPoiIiFTG3d0dfn5++K4ZDvidOnVCYGCgzbJly5Zh+fLldrfR1DjVIyK1ljUFiw8iIiKV8fDwQF5eHkwmU5Pfq67Coa5RDwDw8fGBTqerNcpRWFhYazSkKVh8EBERqZCHhwc8PDyc+pnu7u4IDw9HTk4OJkyYoCzPyclBfHx8s30Oiw8iIiJSpKamIikpCREREYiKisLmzZuRn5+PmTNnNttnsPggIiIiRWJiIq5fv460tDRcvXoVYWFh2L9/PwwGQ7N9Buf5ICIiIqfiDKdERETkVCw+iIiIyKlYfBAREZFTsfggIiIip2LxQURERE7F4oOIiIicisUHERERORWLDyIiInIqFh9ERETkVCw+iIiIyKlYfBAREZFTsfggIiIip/r/i4hc+U88i4AAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(25):\n", + " ld.run_one_step(dt)\n", + "imshow_grid(mg, \"topographic__elevation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercises for section 4\n", + "\n", + "(4.1) Repeat the steps above that instantiate and run a `LinearDiffuser` component, but this time give it a `RasterModelGrid`. Use `imshow_grid` to display the topography below." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 4.1 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "rmg = RasterModelGrid((25, 40), 10)\n", + "z = rmg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "fault_trace_y = 50.0 + 0.25 * rmg.x_of_node\n", + "z[rmg.y_of_node > fault_trace_y] += (\n", + " 10.0 + 0.01 * rmg.x_of_node[rmg.y_of_node > fault_trace_y]\n", + ")\n", + "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n", + "for i in range(25):\n", + " ld.run_one_step(dt)\n", + "imshow_grid(rmg, \"topographic__elevation\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(4.2) Using either a raster or hex grid (your choice) with a `topographic__elevation` field that is initially all zeros, write a modified version of the loop that adds uplift to the core nodes each iteration, at a rate of 0.0001 m/yr. Run the model for enough time to accumulate 10 meters of uplift. Plot the terrain to verify that the land surface height never gets higher than 10 m. " + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 4.2 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "rmg = RasterModelGrid((40, 40), 10) # while we're at it, make it a bit bigger\n", + "z = rmg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n", + "for i in range(50):\n", + " ld.run_one_step(dt)\n", + " z[rmg.core_nodes] += dt * 0.0001\n", + "imshow_grid(rmg, \"topographic__elevation\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(4.3) Now run the same model long enough that it reaches (or gets very close to) a dynamic equilibrium between uplift and erosion. What shape does the hillslope have? " + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 4.3 here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "z[:] = 0.0\n", + "uplift_rate = 0.0001\n", + "for i in range(4000):\n", + " ld.run_one_step(dt)\n", + " z[rmg.core_nodes] += dt * uplift_rate\n", + "imshow_grid(rmg, \"topographic__elevation\")\n", + "plt.figure()\n", + "plt.plot(rmg.x_of_node, z, \".\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(BONUS CHALLENGE QUESTION) Derive an analytical solution for the cross-sectional shape of your steady-state hillslope. Plot this solution next to the actual model's cross-section." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### SOLUTION (derivation)\n", + "\n", + "##### Derivation of the original governing equation\n", + "\n", + "(Note: you could just start with the governing equation and go from there, but we include this here for completeness).\n", + "\n", + "Consider a topographic profile across a hillslope. The horizontal coordinate along the profile is $x$, measured from the left side of the profile (i.e., the base of the hill on the left side, where $x=0$). The horizontal coordinate perpendicular to the profile is $y$. Assume that at any time, the hillslope is perfectly symmetrical in the $y$ direction, and that there is no flow of soil in this direction.\n", + "\n", + "Now consider a vertical column of soil somewhere along the profile. The left side of the column is at position $x$, and the right side is at position $x+\\Delta x$, with $\\Delta x$ being the width of the column in the $x$ direction. The width of the column in the $y$ direction is $W$. The height of the column, $z$, is also the height of the land surface at that location. Height is measured relative to the height of the base of the slope (in other words, $z(0) = 0$).\n", + "\n", + "The total mass of soil inside the column, and above the slope base, is equal to the volume of soil material times its density times the fraction of space that it fills, which is 1 - porosity. Denoting soil particle density by $\\rho$ and porosity by $\\phi$, the soil mass in a column of height $h$ is\n", + "\n", + "$m = (1-\\phi ) \\rho \\Delta x W z$.\n", + "\n", + "Conservation of mass dictates that the rate of change of mass equals the rate of mass inflow minus the rate of mass outflow. Assume that mass enters or leaves only by (1) soil creep, and (2) uplift of the hillslope material relative to the elevation of the hillslope base. The rate of the latter, in terms of length per time, will be denoted $U$. The rate of soil creep at a particular position $x$, in terms of bulk volume (including pores) per time per width, will be denoted $q_s(x)$. With this definition in mind, mass conservation dictates that:\n", + "\n", + "$\\frac{\\partial (1-\\phi ) \\rho \\Delta x W z}{\\partial t} = \\rho (1-\\phi ) \\Delta x W U + \\rho (1-\\phi ) q_s(x) - \\rho (1-\\phi ) q_s(x+\\Delta x)$.\n", + "\n", + "Assume that porosity and density are steady and uniform. Then,\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = U + \\frac{q_s(x) - q_s(x+\\Delta x)}{\\Delta x}$.\n", + "\n", + "Factoring out -1 from the right-most term, and taking the limit as $\\Delta x\\rightarrow 0$, we get a differential equation that expresses conservation of mass for this situation:\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = U - \\frac{\\partial q_s}{\\partial x}$.\n", + "\n", + "Next, substitute the soil-creep rate law\n", + "\n", + "$q_s = -D \\frac{\\partial z}{\\partial x}$,\n", + "\n", + "to obtain\n", + "\n", + "$\\frac{\\partial z}{\\partial t} = U + D \\frac{\\partial^2 z}{\\partial x^2}$.\n", + "\n", + "##### Steady state\n", + "\n", + "Steady means $dz/dt = 0$. If we go back to the mass conservation law a few steps ago and apply steady state, we find\n", + "\n", + "$\\frac{dq_s}{dx} = U$.\n", + "\n", + "If you think of a hillslope that slopes down to the right, you can think of this as indicating that for every step you take to the right, you get another increment of incoming soil via uplift relative to baselevel. (Turns out it works the same way for a slope that angles down the left, but that's less obvious in the above math)\n", + "\n", + "Integrate to get:\n", + "\n", + "$q_s = Ux + C_1$, where $C_1$ is a constant of integration.\n", + "\n", + "To evaluate the integration constant, let's assume the crest of the hill is right in the middle of the profile, at $x=L/2$, with $L$ being the total length of the profile. Net downslope soil flux will be zero at the crest (where the slope is zero), so for this location:\n", + "\n", + "$q_s = 0 = UL/2 + C_1$, \n", + "\n", + "and therefore,\n", + "\n", + "$C_1 = -UL/2$, \n", + "\n", + "and\n", + "\n", + "$q_s = U (x - L/2)$.\n", + "\n", + "Now substitute the creep law for $q_s$ and divide both sides by $-D$:\n", + "\n", + "$\\frac{dz}{dx} = \\frac{U}{D} (L/2 - x)$.\n", + "\n", + "Integrate:\n", + "\n", + "$z = \\frac{U}{D} (Lx/2 - x^2/2) + C_2$.\n", + "\n", + "To evaluate $C_2$, recall that $z(0)=0$ (and also $z(L)=0$), so $C_2=0$. Hence, here's our analytical solution, which describes a parabola:\n", + "\n", + "$\\boxed{z = \\frac{U}{2D} (Lx - x^2)}$." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to the bonus challenge question here)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "solution" + ] + }, + "source": [ + "
\n", + " 👉 click to see solution\n", + "\n", + "```python\n", + "L = 390.0 # hillslope length, m\n", + "x_analytic = np.arange(0.0, L)\n", + "z_analytic = 0.5 * (uplift_rate / D) * (L * x_analytic - x_analytic * x_analytic)\n", + "plt.plot(rmg.x_of_node, z, \".\")\n", + "plt.plot(x_analytic, z_analytic, \"r\")\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hey, hang on a minute, that's not a very good fit! What's going on? \n", + "\n", + "Turns out our 2D hillslope isn't as tall as the idealized 1D profile because of the boundary conditions: with soil free to flow east and west as well as north and south, the crest ends up lower than it would be if it were perfectly symmetrical in one direction.\n", + "\n", + "So let's try re-running the numerical model, but this time with the north and south boundaries closed so that the hill shape becomes uniform in the $y$ direction:" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0dcWqoI+aRg6dKgcDoe3jR49WtLn/+BeeOEFPfHEE1q8eLFSUlK0c+dOXb58WXv37g1w1AAA+Edubq7uvPNORUdHKyEhQffdd58++OADnz7Lly/vUJmfNm2a32MJ+qShoqJCLpdLycnJevDBB/XRRx9JkiorK1VTU6P09HRvX7vdrnvuuUcnTpzo9poej0f19fU+DQCAngRieKKoqEirV6/WyZMnVVhYqKtXryo9PV1NTU0+/ebPn+9TmT948KA/b11SkK+emDp1qnbt2qXx48fr008/1TPPPKMZM2bozJkzqqmpkSQlJib6fCcxMVEff/xxt9fNzc3V008/3W9xAwAGp0DsCHno0CGfz9u3b1dCQoJKS0t19913e4/b7XafeX/9IagrDRkZGVqyZIlSU1M1Z84cHThwQJK0c+dObx+bzebzHcuyOhy73oYNG1RXV+dtVVVV/g8eAIBuXF/x9ng8Rt+rq6uTJMXFxfkcP3r0qBISEjR+/HitXLlStbW1fo85qJOG640YMUKpqamqqKjwZlPXKg7X1NbWdqg+XM9utysmJsanAQDQE39OhHS73YqNjfW23Nxco99fu3at7rrrLqWkpHiPZ2RkaM+ePTpy5Ig2b96s4uJizZo1yzgRMRXUwxPX83g8+tOf/qRvfOMbSk5OlsPhUGFhoSZNmiRJamlpUVFRkX72s58FOFIAwGDkz+GJqqoqn/9otdvtPX53zZo1eu+993T8+HGf48uWLfP+OSUlRVOmTFFSUpIOHDigxYsX9yneLwrqpGH9+vVauHChxo4dq9raWj3zzDOqr69XZmambDabsrOztWnTJo0bN07jxo3Tpk2bNHz4cD388MOBDh0AgG71ttKdlZWl119/XceOHdOYMWO67et0OpWUlKSKioq+hukjqJOG8+fP66GHHtJnn32m0aNHa9q0aTp58qSSkpIkSY899piam5u1atUqXbx4UVOnTtVbb72l6OjoAEcOABiMAjER0rIsZWVlad++fTp69KiSk5N7/M6FCxdUVVUlp9N5o2F2KqiThoKCgm7P22w25eTkKCcnZ2ACAgCENcuyZLW39/kavbF69Wrt3btXr732mqKjo71z+WJjYxUVFaXGxkbl5ORoyZIlcjqdOnv2rDZu3Kj4+Hjdf//9fYr1ekGdNAAAEEwCUWnYunWrJCktLc3n+Pbt27V8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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rmg = RasterModelGrid((40, 40), 10)\n", + "z = rmg.add_zeros(\"topographic__elevation\", at=\"node\")\n", + "rmg.set_closed_boundaries_at_grid_edges(False, True, False, True) # closed on N and S\n", + "ld = LinearDiffuser(rmg, linear_diffusivity=D)\n", + "for _ in range(4000):\n", + " ld.run_one_step(dt)\n", + " z[rmg.core_nodes] += dt * uplift_rate\n", + "rmg.imshow(\"topographic__elevation\")" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGdCAYAAAA8F1jjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPhklEQVR4nO3de3yP9f/H8cdnR6xtyGEbs4lUDskxdKASzSmHnEJESkUJ1eRX1Leig85JB0lROghplEMOFcpp5ZSEMWw5bzZss12/P672YWxs8/ns+hye99vtun2uXde1y/NybZ/Pa9f1vt5vm2EYBiIiIiIuyMfqACIiIiIFUaEiIiIiLkuFioiIiLgsFSoiIiLislSoiIiIiMtSoSIiIiIuS4WKiIiIuCwVKiIiIuKy/KwOUBw5OTns37+f4OBgbDab1XFERESkEAzD4Pjx40RERODjU7hrJW5ZqOzfv5/IyEirY4iIiEgxJCYmUrVq1UJt65aFSnBwMGAeaEhIiMVpREREpDBSU1OJjIy0f44XhlsWKrm3e0JCQlSoiIiIuJmiNNtQY1oRERFxWSpURERExGWpUBERERGXpUJFREREXJYKFREREXFZKlRERETEZalQEREREZelQkVERERclgoVERERcVkqVERERMRlqVARERERl6VCRURERFyWWw5KKCJuLCMD9u0zp6QkSE2F9HRISzOnzEzw8wNfX/PVzw9CQuDyy6FCBXOqWBGqVjXXiYhH02+5iDieYUBiImzaBJs3m9OWLbBrFxw65Jh/w88PoqKgRg1zuvpqaNgQrrsOLrvMMf+GiFhOhYqIXLqMDFi3jhfGTKHxvi003PcXFU8cK3j7UqVIKFWOfy8rT2qpIE76lyLdvxS9b60NAQGQnQ2nT9un71ZspdyJVMqdOk65E6lUOHGMwNNZsGOHOZ3NZoOrr+ZbnzDWVq3NymrXsuz9weZyEXE7NsMwDKtDFFVqaiqhoaGkpKQQEhJidRwR77RrF8yfD3FxsHQpnDqVZ3Wmjx8B11wFdeqcmWrWhKpViX55VYGFQ8KE9nm+jo6NO28bm5FDpbQj/NYj2ixU/vnHvHqzbh3s33/e9vuCK1KlW3u47TZo3x7KlSv+cYtIsRXn81tXVESkcAwDNm6Ezz+HuXPhr7/yrD5UJpR1Va5hbZXarKtyDZvCapLp539e4QFc8tUNw+bDv8EVoGVLczpLk6HTqfPvP1yX9DfN9mykwf6/qHL8IHzyiTn5+cEtt0DXrtC5M4SFXVIWEXEuFSoicmG7dsEXX5gFyubNZ5b7+sKNN0K7drTZFsTfFaJc4vbKwcvKseyyJiyr0QSAUlmnaLx3Kzfs/oMH0/8yr7wsWmRODz0EN98MAwdCt24QFGRxehE5lx5PFpHzZWXBN9+wMqo+XHEFjBljFikBAeaViJkzzUaxy5bBE0/wd8XoIhUp+V5lKWB5UbbNzyn/UvxSvQEvtRpgXhH6+2946SVo2tS8SrR8OfTvz/HyFfmifltYtcpcLiIuQW1UROSMffvggw/gww/NR4eBbJsPK6tdy3e1W/LK5+OgbNl8vzW/tiQXKybO/h5nbXvB79mzh1f6/h89Ni4i6ljymeUNGsBjj0HPnmZxJiIOUZzPbxUqIgJbt5pXGWbMMJ+0AQ4GlWXmtW354rq27A+pZN/0QkVCUYoJZytMltxtbEYOTRM302PjItr99SulT2eYG4SHw9Ch8MADZj8uInJJVKiISNGsXQvjx8Ps2Wdud9x0E0PLNefHWs3J8vU/71usLkAcKb8rL2VPpnJ3/A88sX2R/aoSZcrAww/D44+bnc2JSLEU5/NbbVREvFF8PLRrB02awLffmkXKnXfC6tWwYgXfX3NzvkWKNzhWOoRJzXtAQgJ89pl5G+jECXjlFaheHWJjHddpnYhclAoVEW+ycydz6rQyP3wXLDCf3OnXz3wSZs4cuP564NIbsLqLCx5nQAD07Wv2zfL999CokdnV/0svkValGm/e0JvaI74p4cQi3keFiog3OHQIhg0j88qr6LxlOQDfXXMzLQe9B59+anbGdo5zP8Q9rUjJddHjtNnMTuLWrIG5c9lUuQaXZZ7k0ZUzWfrhAzzebjjk5JRcYBEvozYqIp4sO9t8imfMGDh6FIAV0Q14qWV/NofVtG/mqUWIo0XHxoFhELPtV2KXf2J/UmhT5RrU/XLKeZ3PiUhe6plWRM5Ytcp8YmX9egC2VozmudsGsyqqvsXB3JzNxoKrb2RJzevpv24ew1bOpO6/O6BVK+jdG15/HSpXtjqliMfQrR8RT3PkCAwaBC1amEVKaCi8/TYdBrypIsWBMv38+fD6rrR64EM+a9AOfHzMHnyvvtrsh0a3g0QcQoWKiCeZM8dsb/Lxx+bXAweaPbEOHcqOlzvl+y267VN4+f1fHSkTSr/1cfD779CwIRw7Bvffb94G2rKl5EOKeBgVKiKe4OBB6NULunSB5GTzr/pff4UpU6BSwZ21qUgpugL/Dxs1gt9+M2/9BAXBL7+YT1e9/LLZVkhEikWNaUXc3JAuT/HCj+9y+clU83Hjxx+HsWOhVCmro3mvPXvMAQ/jzA7l1lSpzcj2j7Hi/fssDiZiLXX4JuJN0tOZWb8tk+eM5/KTqWytGE3HPq+aPc2qSLFWtWowbx6PxzzK8YDSNNm3hQVThzH6jmEa8FCkiHRFRcQdrV/Pjts7UePIPnKw8V6zu3jjxrvtvcnqlo71crvnr5ryL6/GvU6zxE0ALKp5Pbf/Nh/Kl7cynogldEVFxNPl5MCrr0KzZtQ4so+kyy7n7t4v8ErL/l7b5b2r2xtamd69X+R/twwiw9eP2//5zWy7snq11dFE3IIKFRF3cewYdO5stkHJymJBrRbEDHyb1dWutTqZXIRh82FK0y507TeRXeXCzTYsN90EEyfqVpDIRahQEXEHf/wBjRvDvHkQGAiTJxPz1y8cK33+pVPd9nEN+Z2HzZVrUD3hL+jZE06fhlGjzMEg/+s1WETOV+RCZcWKFXTs2JGIiAhsNhtz5szJs95ms+U7vfLKK/ZtWrVqdd76Xr16XfLBiHikzz6D5s1hxw6IijIfO37gAbDZ9Lixi8v3/ISEmB3DvfeeWXTOmwdNm6rPFZECFLkL/fT0dOrXr8+9995Lt27dzluflJSU5+sFCxYwaNCg87YdPHgwzz33nP3r0qVLFzWKiGfLyoLHHoN33zW/btsWZsyAyy/Ps5mKE9eW7/mx2WDIEHO06i5d4J9/oFkzmD4dOuXfMZ+ItypyoRITE0NMTEyB68PCwvJ8PXfuXG655RauuOKKPMvLlClz3rYi8p9jx6B7d1i82Pz6mWfMydfX0ljiYA0amKMy9+gBy5aZt4Gee84cRNJHd+ZFwMltVP7991/i4uIYNGjQeetmzJhBhQoVqFOnDqNGjeL48eMF7icjI4PU1NQ8k4jH+ucfdtSoB4sXk+5fyuwW/9lnVaR4qooVYeFCcwBJgGeeIa72zVw18ltrc4m4CKeOnjxt2jSCg4Pp2rVrnuV9+vShevXqhIWFsWnTJkaPHs0ff/zBokWL8t3P+PHjefbZZ50ZVcQ1LF/O0Ts6UuPUcfYFV2Rwt6fZssqPhDutDiZO5e8Pb7/NE//48PzCSbTf9ivhxw/RMOsU69+62+p0Ipa6pA7fbDYbs2fPpnPnzvmuv/rqq7n99tt5++23L7ifdevW0bhxY9atW0fDhg3PW5+RkUFGRob969TUVCIjI9Xhm3iWTz8l895BBOScJj68FoO7Ps3By8rZV6stimfL7SCuSeImPvz2ecqeSiOhbDgDuo9j2Qf3W5xOxDFcqsO3n3/+mW3btnHffRcf26Jhw4b4+/uzffv2fNcHBgYSEhKSZxLxGIYBL70E/fsTkHOaeVffRM/e4/MUKeI91kTWpVvfV9gTWpnoY0l8O/1x80kvES/ltEJlypQpNGrUiPr16190282bN5OVlUV4eLiz4oi4ppwc88me2FgAJjftyiOdHifDP9DiYGKlHZdH0rXfq8SHX0n5k6lw220wa5bVsUQsUeRCJS0tjfj4eOLj4wHYtWsX8fHx7Nmzx75NamoqX3/9db5XU3bs2MFzzz3H2rVrSUhIYP78+XTv3p0GDRpwww03FP9IRNxNRgb07g1vvml+/dprDPltFobt/F9L3fbxfOee40NB5ejda7z5JFBGhvlk0McfW5ROxDpFLlTWrl1LgwYNaNCgAQAjRoygQYMGPPPMM/ZtZs6ciWEY9O7d+7zvDwgIYMmSJbRt25arrrqKRx55hDZt2rB48WJ89VSDeIvjx6FdO/jqK7Mh5YwZ5pUVCugkTLzCued662vdzCsp991nXn0bNMjsdl/Ei2j0ZJGSduyYWaSsWgWXXQbffgu33251KnFlhgFPPgm5PXyPGQP/+5/ZcZyIG3GpxrQiko/Dh832BqtWQblysGSJihS5OJsNXn4Zxo83v37hBbPflZwca3OJlAAVKiIl5d9/oVUrWL8eKlSApUvNMV5ECis21hwjyGaDSZPg/vtVrIjHU6EiUgKaPTSNHbUbwaZNEB4Oy5dDIZ6IEznPkCHmQJU+PjBlCl9d15bqT86zOpWI06hQEXGy6x+exswvRlPjyD72hlSkZcdnoXZtq2OJO+vTh0fajyTb5kOPjYt5ef5bXPHEd1anEnEKp3ahL+LtmgydzsyZY4g+lsSe0Mr07j2efaGViI6N09M8UmzRsXFQuyU5NhtvzHuV7psWY8PgCmDnyxp9WTyLChURZzl4kBkzx9ivpNzd+0X2hVayOpV4kO+vuRkDG2/Oe4W7Ni0xF07ooJGXxaPop1nEGQ4fhtatqXV4D0mXXc7dvV5kb2hlq1OJB4q75iaGdXqC0zYfs1gZNsx8nFnEQ6hQEXG0Y8egTRv4808IC6NPrxfYUy7v8BC67SOX4tyfnwVX38iIDiPOPA00erSKFfEYKlREHOnECejQwXwEuWJFWLKEnz58IM8mKlLEEc79OXrru1dg8mTzi5deghdftCCViOOpZ1oRR8nKgs6dYf58KFvWfAT52mutTiXe5rXXYORIc/6NN+DRRy2NI3I29UwrYpWcHLj3XrNIKV0avv9eRYpYY8QIGDfOnB8+HKZNszKNyCVToSJyqQzD/ECYMQP8/OCbb0AjgYuVnnnGLFjAHMhwwQJr84hcAhUqIpfq+efh7bfN+WnTzAEHRaxks5kDGPbtC9nZcNddsGaN1alEikWFisil+Phj869XgLfegrvvtjaPSK7/utinTRuzkXf79vDPP1anEikyFSoixbVwoTkoHMBTT5n9V4i4koAA81Zkw4Zw8CC0bWsOjiniRlSoiBTHH39wvGNnyM7m2zq3mLd/RFxRcLDZyPuKK2DnTjbWv4HaI76xOpVIoalQESmqvXtJuvE2gjNPsqpaPZ6MeYTo0fOtTiVSsMqVaXXbkxwqE0q9f3fw5rxXNYihuA0VKiJFkZrK1oY3EZ52mO2XR/JAlzFk+foD/w0UJ+KComPjSChfhfu7/h8Zvv7c/s9vxC77RD+z4hZUqIgU1unT0LMn1xxM4GBQWe7tPo7UUpdZnUqk0NZXuYZR7YYDcP+a2fSO/8HaQCKFoEJFpLCeeAJ++IGTfoEM7DZWgwyKW5pXuyUTb+wDwP8WToLFiy1OJHJhKlRECmPKFHj9dQBKfzGdjeFXnreJxvARV3Xuz+bbLXrxbZ1b8DNyzD5Wtm61KJnIxalQEbmYn3+GBx805599Fu6667w3fhUp4ury/IzabHRdtwBuvBFSUqBjRzh61LpwIhegQQlFLiQhAZo0gUOHoEcPmDnT7PVTxBMcOgSNG8Pu3WbHcPPng6+v1anEg2lQQhFHSkuDTp3MN/OGDWHqVBUp4lkqVIA5c8yBNBcuhNGjrU4kch4VKiL5MQwYOBA2boSwMJg7F8qUsTqViONdd51ZhIM5PtDnn1saR+RcKlRE8vPaa/D11+DvD99+C1WrWp1IxHl69oTYWHN+0CBYv97aPCJnUaEicq5ly+DJJ835N96A5s2tTCNSMp5/HmJi4NQp6NLFHBtIxAWoUBE52969ZqPZ7Gzo1+/M0z4ins7X17ztc+WVsGcP9Olj/h6IWEyFikiujAzo3t38S7J+fZg8WY1nxbuULQuzZ5vtsRYtgv/9z+pEIipURHJ91rwrrF5NSmAQzJqlxrPinerUMYt0IOfZ5+jX838aE0gspUJFBBjZfgT9NswnBxuPdhxF9Id/WR1JxDr9+jHjujvwweDNea8SnnpQxYpYRoWKeL22g97lhYXvAvDmDb1ZVqMJoNGQxXtFx8bx3G33s7FyDcqfTOWduS/hn52l3wmxhAoV8W7p6bw7ZwKlTmeyrHoj3rqhl9WJRFxChl8AD3YeTUpgEI32/0Xssk+sjiReqsiFyooVK+jYsSMRERHYbDbmzJmTZ/2AAQOw2Wx5pmbNmuXZJiMjg2HDhlGhQgWCgoLo1KkTe/fuvaQDESmWYcOoeWQvyZeVZ0SHERg21e4iufaWDWNk+xEADFo7l5i/frE4kXijIr8rp6enU79+fd55550Ct7njjjtISkqyT/Pnz8+zfvjw4cyePZuZM2fyyy+/kJaWRocOHcjWo3BSkqZPN3vk9PFheMdRHCkTmme1BhoUb3X2z/7iK69n8vXdAHjvp3dhxw6rYomXuqRBCW02G7Nnz6Zz5872ZQMGDODYsWPnXWnJlZKSQsWKFfnss8/o2bMnAPv37ycyMpL58+fTtm3bi/67GpRQLtnff5vj96Snw9ixMG5cnvvvKlJEzrTT8s3JZsfqV82RxJs2hV9+MXttFimi4nx++zkjyLJly6hUqRJly5alZcuWvPDCC1SqVAmAdevWkZWVRZs2bezbR0REULduXVauXJlvoZKRkUFGRob969TUVGfEFm9x6pTZZXh6OrRqBU8/Dag4ETlXnt+JPdeZ/Qv9/js88wyMH29ZLvEuDr8hHxMTw4wZM/jpp5+YOHEia9as4dZbb7UXGsnJyQQEBFCuXLk831e5cmWSk5Pz3ef48eMJDQ21T5GRkY6OLd7k8cchPt4cOXbGDA1rL1IY1arBRx+Z8y+9BD/9ZG0e8RoOL1R69uxJ+/btqVu3Lh07dmTBggX8/fffxMVd+LE2wzCwFdAL6OjRo0lJSbFPiYmJjo4t3mL2bMhtX/XppxARYW0eEXfSrRsMHmyOLt63Lxw6ZHUi8QJOf8QhPDycqKgotm/fDkBYWBiZmZkcPXo0z3YHDhygcuXK+e4jMDCQkJCQPJNIke3bZ44MC+ZVlZgYa/OIuKPXX4err4akJBg40CxaRJzI6YXK4cOHSUxMJDw8HIBGjRrh7+/PokWL7NskJSWxadMmWrRo4ew44q1ycmDAADh6FBo3hhdesDqRiHsKCoKZMyEgAObNg0mTrE4kHq7IhUpaWhrx8fHEx8cDsGvXLuLj49mzZw9paWmMGjWKVatWkZCQwLJly+jYsSMVKlSgS5cuAISGhjJo0CBGjhzJkiVL2LBhA3379qVevXq0bt3aoQcnYvf227B4MZQubT6WrCcWRIqvfn14+WVzfuRI2LjR2jzi2YwiWrp0qQGcN/Xv3984ceKE0aZNG6NixYqGv7+/Ua1aNaN///7Gnj178uzj5MmTxtChQ43y5csbpUuXNjp06HDeNheSkpJiAEZKSkpR44s32rTJMAIDDQMMY9Ikq9OIeIacHMNo1878vapTxzBOnrQ6kbiB4nx+X1I/KlZRPypSaJmZcP315lM+7drB999DAY22RaSIDhyAevXM11Gj4JVXrE4kLq44n9/qL1w82zPPnHkUecoUFSkijlSpEnz4oTk/caLZIZyIg6lQEc+1YgU5L5n30e+/6QEIC7M4kIgH6tQJ7r0XDIM9HbtT57GvrU4kHkaFinimlBT2drwLHwy+rHc7C2s11xD1Ik5SNzSGvSGVqJbyL2OWfqzfNXEoFSrikb65sRtVUw+yu2wYz9022L5cb6AijhUdG0daYBkebzccgLv/+IFWO9bqd00cRoWKeJ64OO7atIQcbIxoP4L0wDJWJxLxeKuiruXjRp0AeOmHtwg9edziROIpVKiIZzl2DO6/H4ApTe5kXdXa1uYR8SIvtezPP+WrUjntCP9b9J7VccRDqFARzzJiBOzfD1deycSb+p63WiMkizjW2b9TGf6BjOgwgtM2HzptXQFffmlhMvEUKlTEcyxYAFOnmo8gf/wxf03slme1ihQR5zj7d+vP8Fr4/d8Y84uhQ+HgQYtSiadQh2/iGVJSoE4dc+DB4cPNgdNExBqZmeaYWhs3Qu/e8PnnVicSF6EO38R7jRxpFik1amjAQRGrBQSYHSz6+MAXX5iDF4oUkwoVcX8//nim19mpU6GMnvIRsVyTJuYfEABDhpgN3UWKQYWKuLeUFLjvPnN+2DC46SZr84jIGc8+CzVrmg3cn3jC6jTiplSoiHsbPRr27oUrroAXX7Q6jYicrXRp82onmGMC/fSTtXnELalQEff166/w3n99NXz0EQQFWZtHRM53883w4IPm/ODBkJ5ubR5xOypUxD1lZto7dmPgQLjlFmvziEjBJkyAyEjYuROeftrqNOJmVKiIe3r5ZdiyBSpWhFdesTqNiFxISAi8/745/8Yb8NtvlsYR96JCRdzP33/D88+b82+8AeXLWxpHRAohJgb69QPDMK+GZmVZnUjchAoVcS+GAQ88ABkZ0Lat2ZmUiLiH114z/7D480946y2r04ibUKEibuXx9o/BsmWc9As0G9LabFZHEpHCqlDBfqv2xOgxtHhoKtGxcRaHElenQkXcRqNhMxiz1HzU8bUb+xD9/haLE4lIkQ0YwG9V61AmK4NnF5ntVlSsyIWoUBG3EB0bx9M/fUjZU2lsrnQFHze5075cRNxH9FML+L82D5Hl48vt//xGm79Xmcv1uywFUKEibuHGXRvovGU52TYfYu8YRraPr9WRRKSYtleM4oOmXQEYt/h9gjJOWJxIXJkKFXF9GRk8u3gyAJ82bM/G8CstDiQil+rtFj3ZE1qZiOOHGP6rRleWgqlQEdc3cSI1juzjQFA5Xrupb55VCRPaWxRKRIoj93f2lH8pnm7zEAD3rv2OhF5VrIwlLkyFiri23bvtfaZUev9tjgee6SZfRYqIe8r93V1+RSO+v+pG/Iwcs9uB7GyLk4krshmGYVgdoqhSU1MJDQ0lJSWFkJAQq+OIM3XtCrNnm+OFLFumx5FFPM3+/XDNNZCaCpMnmwWLeKzifH7rioq4rgULzCLF1xfefVdFiognioiA554z58eMgSNHrM0jLkeFirimU6dg2DBzfvhwqFvX0jgi4kQPP2z+jh8+rEEL5TwqVMQ1vfIK7Nhh/rU1dqzVaUTEmfz84O23zfnJkyE+3tI44lpUqIjr2bULXnzRnJ84EYKDrc0jIs7XqhX07Ak5OTB0qDmulwgqVMQVPfqoeevn1lvNNy4R8Q6vvgplysCvv8KMGVanERehQkVcy4IFMG+eeSn4nXfUgFbEm1StCv/3f+b844+bTwKJ11OhIq4jKwtGjDDnH3nEfGRRRLzLiBFQsyYkJ8P//md1GnEBRS5UVqxYQceOHYmIiMBmszFnzhz7uqysLJ588knq1atHUFAQERER3HPPPezfvz/PPlq1aoXNZssz9erV65IPRtzcpEnw119QsaJa/ot4q8BAePNNc/6NN2DrVkvjiPWKXKikp6dTv3593nnnnfPWnThxgvXr1/P000+zfv16vv32W/7++286dep03raDBw8mKSnJPr3//vvFOwLxDIcOwbhx5vzzz0PZslamERErtWsHHTrA6dPm1VU1rPVqfkX9hpiYGGJiYvJdFxoayqJFi/Ise/vtt2natCl79uyhWrVq9uVlypQhLCysqP+8eKpnnoFjx6B+fRg0yOo0ImK1N96AhQth8WKz3Vo+f/CKd3B6G5WUlBRsNhtlz/kLecaMGVSoUIE6deowatQojh8/7uwo4qr+/BNyr6i9+abZE62IeLcaNeCxx8z5UaMgM9PaPGIZpxYqp06dIjY2lrvvvjtPn/59+vThiy++YNmyZTz99NPMmjWLrl27FrifjIwMUlNT80ziGaKf/J6VHfuZfSfcdRe0bGl1JBFxFU89BZUqwfbtPBczlOjYOKsTiQWcVqhkZWXRq1cvcnJymDRpUp51gwcPpnXr1tStW5devXrxzTffsHjxYtavX5/vvsaPH09oaKh9ioyMdFZsKUHRsXG03b6KFnv+JMPXnxsr5H9LUUS8VEgIoxv0AODRXz+n7MlUFSteyCmFSlZWFj169GDXrl0sWrTooiMkNmzYEH9/f7Zv357v+tGjR5OSkmKfEhMTnRFbSlB0bByBpzN5aunHAHzQtCt7QyvrTUhE7KJj4/jy2tvZWjGa0Ix0Hv31C/ty8R4OL1Ryi5Tt27ezePFiLr/88ot+z+bNm8nKyiI8PDzf9YGBgYSEhOSZxP0NXDuXqGPJJF9Wnvea3WV1HBFxQTk+vjx/630A9FsfR43D+kPV2xS5UElLSyM+Pp74/waN2rVrF/Hx8ezZs4fTp09z1113sXbtWmbMmEF2djbJyckkJyeT+V9DqB07dvDcc8+xdu1aEhISmD9/Pt27d6dBgwbccMMNDj04cV2Xpx/joVVfAfBSywGcCChtcSIRcVW/Rl/H4hpN8DNyGP3fVVjxHkUuVNauXUuDBg1o0KABACNGjKBBgwY888wz7N27l++++469e/dy3XXXER4ebp9WrlwJQEBAAEuWLKFt27ZcddVVPPLII7Rp04bFixfjq6c9vMa6nJUEZ57kz7CazKnTyr48YUJ760KJiEs5+/3gxVsGkeXjS+sda0hoHWhhKilpNsNwv550UlNTCQ0NJSUlRbeB3NG2bVCnDmRn06v3i6yudi2gIkVE8pfbJmXs4ve5d908qFcPNmxQVwZuqDif3ypUpOR16QJz5kDHjvDdd1anERF3ceSIOQ7Q0aNm30v33291Iimi4nx+a1BCKVk//2wWKb6+8NJLVqcREXdSvjyMHWvOP/00pKVZm0dKhAoVKTmGYfYwCXDffRodWUSK7sEHzV5rDxyAiROtTiMlQIWKlJyvvoLff4fLLjszAKGISFEEBMCLL5rzr7wC//5rbR5xOhUqUjIyMmD0aHP+iSdAA1KKSHF17w5NmkB6Ojz3nNVpxMlUqEjJePdd2LULwsNhxAir04iIO7PZ4OWXzfkPPoACejUXz6BCRZzv6FF4/nlz/vnnISjI2jwi4v5atYJ27eD0aXPwQvFYKlTE+V580SxW6tWD/v2tTiMinmLCBPPqyjffwG+/WZ1GnESFijjX3r3w9tvm/IQJ6qBJRBzn7D9+nnjCfLJQPI4KFXGuZ581G9LefDPExFidRkQ8zXPPQalSsGIFxGlUZU+kQkWcZ9s2mDrVnB8/3rxEKyLiSJGR8Mgj5nxsLGRnW5tHHE6FijjP00+bbxodO0KLFlanERFPFRsL5crB5s0wbZrVacTBVKiIc6xbB19/bV5FeeEFq9OIiCcrVw7GjDHnx40zbzeLx1ChIs6R+7hg375mgzcREWd66CGIiIDERHPAQvEYKlTE8ZYuhYULwd/fbEwrIuJspUvDM8+Y8y+8YPZaKx5BhYo4lmGwoc+DAHxSry1Ur25xIBHxGgMHwhVXwIEDvNzuIaJj9RSQJ1ChIg51f7enaZC0jRP+gbzToqfeKESk5Pj7M7x2FwAe+G0WIafS9B7kAVSoiMNc8cR3jFrxGQBTGnfmUFA5AL1RiEiJiI6N47trbubvy6sRmpHO4N9n25eL+1KhIg7Tecsyah3ew9FSwXxwfVer44iIF8rx8WXizX0BGLh2LpenH7M2kFwyFSriGFlZPPrrFwC8f303jgdq4EERscaPVzbnj7ArCco6xYOrv7Y6jlwiFSriGJ9+StSxZA6WKcu0hh3yrEqY0N6iUCLiTezvNTYbr97cD4B+G+aTMLS+hankUqlQkUuXmQn/+x8AFZ9/hpMBpeyrVKSISEnKfc/5OboBv0XWJTA7y/7+JO7JZhjuN9xkamoqoaGhpKSkEBISYnUcef99GDIEwsJg506zPwMREav98gvcdJM5avtff0HNmlYn8nrF+fzWFRW5NKdOwfPPm/NPPaUiRURcx403mqO2Z2efeZ8St6NCRS7NRx/B3r1QtSoMHmx1GhGRvHJ7x/7sM9i+3dosUiwqVKT4Tp6EF18058eMgVKlLry9iEhJa9IE2reHnBxdVXFTKlSk+CZPhqQkiIoyu64WEXFFY8ear9On66qKG1KhIsWTng4TJpjzTz8NAQHW5hERKUiTJtChg3lVRU8AuR0VKlI8kybBgQPmAGD33GN1GhGRC8u9qjJjBvz9t7VZpEhUqEjRpaXBSy+Z8888A/7+1uYREbmYxo11VcVNqVCRops0CQ4fhiuvhD59rE4jIlI448aZr59/Dtu2WRpFCk+FihRNejq8+qo5P2YM+PlZm0dEpLAaNYKOHfUEkJtRoSJF88EHcPCg2Tbl7rutTiMiUjS5bVV0VcVtqFCRwjt5El5+2ZwfPVptU0TE/TRqBJ06qa2KGylyobJixQo6duxIREQENpuNOXPm5FlvGAbjxo0jIiKC0qVL06pVKzZv3pxnm4yMDIYNG0aFChUICgqiU6dO7N2795IORErAlCmQnAzVqulJHxFxX7lXVb74QldV3ECRC5X09HTq16/PO++8k+/6l19+mddee4133nmHNWvWEBYWxu23387x48ft2wwfPpzZs2czc+ZMfvnlF9LS0ujQoQPZ2dnFPxJxroyMM/2mxMaq3xQRcV8NG55pq5L7viauy7gEgDF79mz71zk5OUZYWJgxYcIE+7JTp04ZoaGhxuTJkw3DMIxjx44Z/v7+xsyZM+3b7Nu3z/Dx8TF++OGHQv27KSkpBmCkpKRcSnwpismTDQMMIyLCME6etDqNiMilWb3afE/z9TWMXbusTuM1ivP57dA2Krt27SI5OZk2bdrYlwUGBtKyZUtWrlwJwLp168jKysqzTUREBHXr1rVvc66MjAxSU1PzTFJyaj4+l71PPGN+8eSTGtNHRNzf9ddD69aQnc1nXR8mOjbO6kRSAIcWKsnJyQBUrlw5z/LKlSvb1yUnJxMQEEC5cuUK3OZc48ePJzQ01D5FRkY6MrZcQHRsHF02/0TV1AMcDCrLVburWh1JRMQhela8DYAefy6k0vHDKlZclFOe+rHZbHm+NgzjvGXnutA2o0ePJiUlxT4lJiY6LKsULDo2Dt+cbIau+gqA95t2JcM/UL/MIuL2omPj+C2yLmuq1CYw+zSD18y2LxfX4tBCJSwsDOC8KyMHDhywX2UJCwsjMzOTo0ePFrjNuQIDAwkJCckzScnotGU5UceSOVw6hBnXtbM6joiI49hsvNOiJwB94hdQ7kSKxYEkPw4tVKpXr05YWBiLFi2yL8vMzGT58uW0aNECgEaNGuHv759nm6SkJDZt2mTfRlyDz1lXU6Y06czJALVNERHPsrx6Q/4Mq0mZrAwGrv3O6jiSjyIXKmlpacTHxxMfHw+YDWjj4+PZs2cPNpuN4cOH8+KLLzJ79mw2bdrEgAEDKFOmDHf/14tpaGgogwYNYuTIkSxZsoQNGzbQt29f6tWrR+vWrR16cHJpdjbNpMaRvaQEBvFpww725QkT2luYSkTk0tnfx2w23m3eA4D+6+aREHuDhakkP0UuVNauXUuDBg1o0KABACNGjKBBgwY884z5VMgTTzzB8OHDeeihh2jcuDH79u1j4cKFBAcH2/fx+uuv07lzZ3r06MENN9xAmTJlmDdvHr6+vg46LLlkhmHvX2Baww6kBZYBVKSIiOfIfT9beGUztlWoRkjmCSigjzCxjs0wDMPqEEWVmppKaGgoKSkpaq/iLIsWQZs2ULo07N4NFStanUhExHk+/9wcDf7yyyEhAS67zOpEHqk4n98a60fyN368+Tp4sIoUEfF8PXpAzZpw+DC8/77VaeQsKlTkfL/9BkuXgp8fjBxpdRoREefz8zOHBwF49VU4dcraPGKnQkXOl3s1pW9fcwBCERFv0K8fVK1qDr762WdWp5H/qFCRvDZvhrlzwWYzu8sXEfEWAQEwYoQ5/8oroIFyXYIKFcnrpZfM1y5d4Oqrrc0iIlLSBg+GcuVg+3aYM8fqNIIKFTnb7t1my3eA0aOtzSIiYoXLLoOHHzbnJ0wwu2oQS6lQkTNefdW81Nm6NTRubHUaERFrPPKI2TXD2rXmgwViKRUqYjpwAD76yJzX1RQR8WYVK8LAgeZ87u1wsYwKFTG9+ab5OF7TpnDLLVanERGx1siR4OsLCxfChg1Wp/FqKlQE0tJg0iRzPjbWfOJHRMSbVa9udgIHuqpiMRUqAh9/DMeOwZVXwp13Wp1GRMQ15HbR8PXXsGOHtVm8mAoVb3f6NLz+ujk/ciT46EdCRASA+vXhjjsgJwcmTrQ6jdfSp5K3mzXLHICrYkW45x6r04iIuJbcqypTp5oPHUiJU6HizQzD7H0RYOhQ83E8ERE5o2VL8yGDU6fMhw6kxKlQ8WbLl8O6dWaB8tBDVqcREXE9Zw8n8t57kJ5ubR4vpELFm736qvl6771QoYK1WUREXNWdd0KNGnD0KHzyidVpvI4KFW+1ZQvExZl/LTz2mNVpRERcl68vDB9uzr/+ugYrLGEqVLzUl72GA7DgyuZQs6a1YUREXN2995qDFe7Ywf3dxxIdG2d1Iq+hQsULNRn6GZ23mONXfNC0q37hREQuJiiId69qDcB9a2YD6L2zhKhQ8TLRsXEMWDePwOzTrKlSmw1VrrYvFxGR/EXHxjGtYQcyffxouncL9fdvsy8X51Kh4mXKZJ6k74b5AHzYtIvFaURE3MeB4MuZV/tmAO5bM8faMF5EhYqX6fHnIkIz0tlZLoLFNZtaHUdExK181KQzADHbfqVKijqAKwkqVLzJ6dOM27EQgI+adiHHx9e+KmFCe6tSiYi4vNz3yK2VruDnqOvwM3K4d+1cvXeWABUq3iS3u/wKFZhV51b7Yv2iiYhcXO575ZT/rqrct+0nSEmxMJF38LM6gJQQwzgzqNbQoWwb29XaPCIibihhQnsw2kHdr8z+qD76yBzQVZxGV1S8xerVsGYNBAbCgw9anUZExH3ZbDBihDn/5puQlWVtHg+nQsVb5A6mdffdUKmStVlERNxdnz7me2lionlbXZxGhYo3SEyEb74x5x991NosIiKeoFQpePhhc37iRPP2ujiFChVvMGmSOTZFq1ZQv77VaUREPMODD5oFy9q18PPPVqfxWCpUPN2JE/D+++Z87qBaIiJy6SpWhP79zfnXX7c2iwdToeLpPvvMHJr8iiugQwer04iIeJbcPwC/+w527bI0iqdSoeLJDONMI9phw8yhykVExHGuvhratIGcHPM2uzicChVPtmgRbN0KwcEwcKDVaUREPNMjj5ivH30E6enWZvFADi9UoqOjsdls500P/9c6esCAAeeta9asmaNjCJy5mjJwIISEWJtFRMRTxcRAjRpw7Jh5u10cyuGFypo1a0hKSrJPixYtAqB79+72be64444828yfP9/RMWTbNpg/3+yYaNgwq9OIiHguH58z77NvvaVHlR3M4YVKxYoVCQsLs0/ff/89NWrUoGXLlvZtAgMD82xTvnx5R8eQt94yXzt2NCt9ERFxngED4LLLzNvtS5ZYncajOLWNSmZmJtOnT2fgwIHYbDb78mXLllGpUiVq1arF4MGDOXDgwkNlZ2RkkJqammeSCzh6FD75xJzXI8kiIs4XGgr33mvO5952F4dwaqEyZ84cjh07xoABA+zLYmJimDFjBj/99BMTJ05kzZo13HrrrWRkZBS4n/HjxxMaGmqfIiMjnRnb/U2ZYvafcu21ZidvIiLifEOHmq9xcfDPP9Zm8SA2w3DezbS2bdsSEBDAvHnzCtwmKSmJqKgoZs6cSdeu+Y/om5GRkaeQSU1NJTIykpSUFELUSDSv06ehZk3YvdssWPS0j4hIyWnXDhYsMK9mqxO486SmphIaGlqkz2+nXVHZvXs3ixcv5r777rvgduHh4URFRbF9+/YCtwkMDCQkJCTPJAWYO9csUipUMAcgFBGRkpP7qPLHH8Px49Zm8RBOK1SmTp1KpUqVaN++/QW3O3z4MImJiYSHhzsrind5+23zdcgQcwwKEREpOW3aQK1akJoK06ZZncYjOKVQycnJYerUqfTv3x8/Pz/78rS0NEaNGsWqVatISEhg2bJldOzYkQoVKtClSxdnRPEuGzfC8uVmD7RDhlidRkTE+5z9qPLbb5s91solcUqhsnjxYvbs2cPAc9pH+Pr6snHjRu68805q1apF//79qVWrFqtWrSI4ONgZUbxLbvfNXbpAlSrWZhER8Vb9+5udbP79NyxcaHUat+fUxrTOUpzGOJ6u3mNfsfrd/gRlnYKlS/W0j4iIlR57DN54g6VXNOLe7s8CkDDhwk0hvIFLNaaVkhMdG0e3jUsIyjrFtgrViF6QZnUkERHv9vDD5GDjlp3rqH5kH2C+V0vRqVBxc9GxcdiMHPptMH8BPmvYAWw2/UKIiFgo+qNt/FSjMQD3rP/+zHK9NxeZChUPcEPCH9Q4so/jAaWZXbuV1XFERASY1qgjAN02LqFM5kmL07gvFSoe4J7/rqZ8U6816YFlLE4jIiIAv0Rfx65y4YRknuDOLcutjuO2VKi4uYQH63LbP78DML1BuzPL1WhLRMQyCRPaY9h8mH6d+b58z/rvwTD03lwMKlTc3eTJ+Bo5/BJVnx2Xm2Mg6RdBRMR6CRPa80291pzyC+Cagwkk3Fne6khuSY8nu7NTpyAyEg4dgtmzoXNnqxOJiMi5Bg6EqVOhTx+YPt3qNJbS48ne5quvzCIlMhI6dLA6jYiI5Oehh8zXr7+GAweszeKGVKi4s3ffNV+HDIGzhioQEREX0rgxNGkCmZnmYIVSJCpU3NWaNfD77xAQABcZoVpERCyWe1Vl8mTIzrY2i5tRoeKucq+m9OgBlSpZm0VERC6sZ08oVw5274YFC6xO41ZUqLijQ4dg5kxzfuhQa7OIiMjFlS5tNqqFMwPISqGoUHFHH38MGRnQqBE0bWp1GhERKYwhQ8zXH36AHTuszeJGVKi4m5wceP99c/6hh8BmszaPiIgUTs2a0LYtGMaZ93G5KBUq7mbJEti5E0JDzXueIiLiPnIb1U6ZAic1/k9hqFBxN5Mnm6/9+kFQkLVZRESkaNq3h2rV4MgRs18VuSgVKu5k/36YO9ecf+ABa7OIiEjR+fqeef9+7z1rs7gJFSru5OOPzefvb7gB6ta1Oo2IiBTHffeBvz+sXg3r11udxuWpUHEX2dnw4YfmvK6miIi4r0qVoHt3c15XVS5KhYq7+PFH2LMHypeHu+6yOo2IiFyK3D84v/gCjh+3NouLU6HiLnIb0fbvb3YcJCIi7uumm+CqqyA93SxWpEAqVNxBYiLExZnz999vbRYREbl0NtuZ9/MPPrA2i4tToeIOPvrI7OitVSu4+mqr04iIiCP0728OLLtunTlJvlSouLrTp81CBdSIVkTEk1x++Zk2h7qqUiAVKq4uLs7sP6VCBejSxeo0IiLiSLm3fz7/XI1qC6BCxdXlNqIdOBACA63NIiIijnXzzVCrFqSlwcyZVqdxSSpUXFlCgvlYMsDgwZZGERERJ1Cj2otSoeLC3rn7STAMfo66zhx1U0REPE9uo9q1a2k/4E2iY+OsTuRSVKi4qJqPz6XnnwsBmNEgRj+4IiKeqkIFvqvRDIDef5hX0fWef4YKFRcUHRvH7dtXUzH9GAeCyrG45vX25SIi4lmiY+P4ov4dANy5ZRllMk/al4sKFZfV67+rKV/Xa81pXz+L04iIiDOtqlaPXeXCCc48ScetK6yO41JUqLigKikHuGnXBgC+vLaNxWlERMTpbDb7VZXef/xgcRjXokLFBf1aeTc+GPwadS17yoXblydMaG9hKhERcYbc9/ZZdW8j08eP65K2U+ffHXrP/4/DC5Vx48Zhs9nyTGFhYfb1hmEwbtw4IiIiKF26NK1atWLz5s2OjuG+srNh6lQAvry2rX2xfmBFRDxXwoT2HA4qy8JazQGIK/2XxYlch1MaP9SpU4fFixfbv/b19bXPv/zyy7z22mt88skn1KpVi+eff57bb7+dbdu2ERwc7Iw47mXxYtizB8qV462vnuOtUqWsTiQiIiUgYUJ7uL0UtG4N06fDK69AUJDVsSznlFs/fn5+hIWF2aeKFSsC5tWUN954gzFjxtC1a1fq1q3LtGnTOHHiBJ9//rkzorif3HF9+vYFFSkiIt7lllvMfrOOH1dPtf9xSqGyfft2IiIiqF69Or169WLnzp0A7Nq1i+TkZNq0OdNANDAwkJYtW7Jy5coC95eRkUFqamqeySMdPAhz55rz991nbRYRESl5Pj4waJA5//HH1mZxEQ4vVK6//no+/fRTfvzxRz788EOSk5Np0aIFhw8fJjk5GYDKlSvn+Z7KlSvb1+Vn/PjxhIaG2qfIyEhHx3YNn30GWVnQuDFce63VaURExAr9+4OvL6xcCVu3Wp3Gcg4vVGJiYujWrRv16tWjdevWxMWZHdZMmzbNvo3NZsvzPYZhnLfsbKNHjyYlJcU+JSYmOjq29QzjzG0fXU0REfFe4eHQrp05/9/DFd7M6Y8nBwUFUa9ePbZv325/+ufcqycHDhw47yrL2QIDAwkJCckzeZzVq83KuUwZ6N3b6jQiImKlgQPN12nTzCvtXszphUpGRgZbt24lPDyc6tWrExYWxqJFi+zrMzMzWb58OS1atHB2FNeWezWlRw/wxEJMREQKr317qFQJDhyA+fOtTmMphxcqo0aNYvny5ezatYvffvuNu+66i9TUVPr374/NZmP48OG8+OKLzJ49m02bNjFgwADKlCnD3Xff7ego7uP4cfjyS3M+txGViIh4L39/uOcec37KFGuzWMzh/ajs3buX3r17c+jQISpWrEizZs1YvXo1UVFRADzxxBOcPHmShx56iKNHj3L99dezcOFC7+5D5csvIT0drroKbrjB6jQiIuIKBg6EV181r6gkJZltV7yQzTAMw+oQRZWamkpoaCgpKSme0V6lWTP47Tezc59Ro6xOIyIirqJFC1i1CiZMgCeftDrNJSvO57fG+rHapk1mkeLnd+Yyn4iICOTtU8X9ris4hAoVq+Xee+zUyWw4JSIikqtHD7Mb/b//hl9/tTqNJVSoWCkjAz791JxX3ykiInKu4GCzWAGv7alWhYqV5syBI0egalU4a1gBERERu9w+Vb76ynxK1MuoULHSJ5+YrwMGmN0li4iInOuGG6BWLfPp0K++sjpNiVOhYpV9+2DhQnN+wABLo4iIiAuz2c5cVfHCPlVUqFjls88gJwduuglq1LA6jYiIuLLcgQpXrfK6gQpVqFjBMPLe9hEREbmQsDCzW33wuka1KlSs8NtvsG2bOQBh9+5WpxEREXeQe/vn00+9aqBCFSpWyL2actdd5qNnIiIiF9OuHVSubA5UGBdndZoSo0KlpJ08CTNnmvO67SMiIoXl7w/9+pnz06ZZm6UEqVApaXPmQEoKREVBy5ZWpxEREXfSv7/5+v33cPCgtVlKiAqVkpZ726d/f/DRf7+IiBRB3brQqBGcPg1ffGF1mhKhT8oS1OyhaeQsXGR+kVsVi4iIFMV/nx8bX3yL6Ng4omM9u72KCpUSEh0bR9fNP+GDwerIukR/4F3PwYuIiIP07k2mjx/1/t1BrYMJAB5drKhQKQHRsXFgGNy1cTEA39RrfWa5iIhIEUS/+htLazQGoNumn84s99DPFBUqJaThvr+44uh+0v1LMf+qG6yOIyIibmxW3dsA6LJ5Kb452RancS4VKiXkrk3m1ZT5V93IiYDSFqcRERF3trRGY46UDqFS+lFu2rXe6jhOpUKlBCQ8cwsdt64A4Jt6t51ZPqG9VZFERMRNJUxoT5avP3Nrm11c3PXf7R9P/UxRoVISZs8mOPMke0Ir83tkHcBzf6BERMT5Eia055v/bv/cvn01CU+2sDiR86hQKQn/9Z1S7bEH2fVSRxUpIiJyyeKmPgJ16xKYnQVffWV1HKdRoeJse/bAkiXmvPpOERERR7HZznyueHCX+ipUnG36dDAMaNUKoqOtTiMiIp6kTx+zl/NVq+Dvv61O4xQqVJzJMOCzz8z5e+6xNouIiHie8HBo29ac99CrKipUnGndOvjrLyhVCrp1szqNiIh4ogEDzNfPPoOcHEujOIMKFWfKvZrSuTOEhFgaRUREPFSnTlC2LCQmwtKlVqdxOBUqzpKVdWZky379rM0iIiKeq1Qp6NnTnPfA2z8qVJxl4UI4eBAqVYI2baxOIyIiniz36Z9Zs+D4cWuzOJgKFWf59FPztXdv8POzNouIiHi2Zs2gVi04ccIsVjyIChVnSEmBuXPNed32ERERZ7PZznzezJhhbRYHU6HiDN98AxkZcM010LCh1WlERMQb3H23+bpkCezfb20WB1Kh4gxn951is1mbRUREvMMVV8ANN5h9eOU+zOEBVKg42u7dsHy5WaD06WN1GhER8SZ9+5qv06dbm8OBHF6ojB8/niZNmhAcHEylSpXo3Lkz27Zty7PNgAEDsNlseaZmzZo5Ooo1cu8NtmoFkZGWRhERES/TvTv4+0N8PGzaZHUah3B4obJ8+XIefvhhVq9ezaJFizh9+jRt2rQhPT09z3Z33HEHSUlJ9mn+/PmOjlLyzu4yX41oRUSkpF1+ObRrZ857SKNahz83+8MPP+T5eurUqVSqVIl169Zx880325cHBgYSFhbm6H/eWuoyX0RErNa3r/nk6YwZ8MIL5qCFbszp6VNSUgAoX758nuXLli2jUqVK1KpVi8GDB3PgwIEC95GRkUFqamqeySWpy3wREbFahw7mZ1BiIvz8s9VpLplTCxXDMBgxYgQ33ngjdevWtS+PiYlhxowZ/PTTT0ycOJE1a9Zw6623kpGRke9+xo8fT2hoqH2KdMW2H+oyX0REXEGpUmZbFTjzB7QbsxmGYThr5w8//DBxcXH88ssvVK1atcDtkpKSiIqKYubMmXTt2vW89RkZGXmKmNTUVCIjI0lJSSHEVa5cxMWZVWylSrBvn3qjFRER6yxbBrfcYl5Z+fdfs3hxAampqYSGhhbp89tpV1SGDRvGd999x9KlSy9YpACEh4cTFRXF9u3b810fGBhISEhInsnl5Fat6jJfRESsdvPN5pOnqanw/fdWp7kkDi9UDMNg6NChfPvtt/z0009Ur179ot9z+PBhEhMTCQ8Pd3SckqEu80VExJX4+Jzpy8vN+1RxeKHy8MMPM336dD7//HOCg4NJTk4mOTmZkydPApCWlsaoUaNYtWoVCQkJLFu2jI4dO1KhQgW6dOni6DglY/ZsOHVKXeaLiIjryO38bf58OHzY2iyXwOGFynvvvUdKSgqtWrUiPDzcPn355ZcA+Pr6snHjRu68805q1apF//79qVWrFqtWrSI4ONjRcUrG55+br336qMt8ERFxDXXqwHXXmQ97fP211WmKzeGNKS7WNrd06dL8+OOPjv5nrZOcbA4ABWb7FBEREVfRt6/ZS+306TBkiNVpisW9e4FxBV9+CTk50KyZOSCUiIiIq+jd27zS/+uvsHOn1WmKRYXKJYiOjSP+pUnmF7nDa4uIiLiKiAi47TYAXh0wlujYOIsDFZ0KlWKKjo0j6uh+rkv6m9M2Hxr/Xc7qSCIiIucZGVAPgC6bl4FhuF2xokKlGHJPcqctywH4Nfo6DgWVc7uTLyIini06No4fazXnpF8gNY7spV7yP/bl7kKFSnEZBp3/K1Tm1m5pcRgREZH8pQWWYXHNpgDcuWWZtWGKQYVKMdU5sJMaR/Zyyi+AhVc2tzqOiIhIgb777w/qDn/9jE9OtsVpikaFSjEkTGhvv+2zuEZT0gLL2JeLiIi4itzPpeXVG5ESGERY2hGa7t3sVp9XKlSKIyeHB/b9BpypUt3ppIuIiPdImNCeTD9/fqjVAoCZwQnWBioip46e7CzFGX3RoZYvh1atIDTUHJUyMLDkM4iIiBTF4sVw++1QvjwkJUFAQIlHcKnRkz1abpf5d92lIkVERNzDLbdA5cpw5AgsWmR1mkJToVJUmZlnxkxQJ28iIuIufH2hRw9z/osvrM1SBCpUiurHH+HoUQgPh5Z6LFlERNxI7ph0c+bAiROWRiksFSpFlXvbp1cvszoVERFxF82aQXQ0pKfD999bnaZQVKgURVoazJ1rzuu2j4iIuBubzfxDG9zm9o8KlaKYOxdOnoQrr4RGjaxOIyIiUnS5t3/mz4djxyyNUhgqVIoi97bP3XebVamIiIi7qVcP6tQxHw6ZPdvqNBelQqWwDh40G9LCmWpURETE3dhsZz7H3OD2jwqVwpo1C7KzoWFDuOoqq9OIiIgUX247lSVLzI5LXZgKlcL68kvzNffkioiIuKsaNaBpU8jJOdM3mItSoVIYSUlmt/lwprMcERERd+Ymt39UqBTG11+DYZjPn0dFWZ1GRETk0vXoYbZXWbkSdu+2Ok2BVKgURu5tn549rc0hIiLiKBER5gC7ADNnWhrlQlSoXExiollt2mzQvbvVaURERBzHDW7/qFC5mK++Ml9vugmqVLE2i4iIiCN16wb+/vDHH7B1q9Vp8qVC5WJ020dERDxV+fLQtq05n/t552JUqFzIjh2wZg34+JhVp4iIiKfJ/UP8yy/NB0dcjAqVC8m97XPLLVC5srVZREREnKFTJwgMhL/+gj//tDrNeVSoXIg6eRMREU8XEgLt2pnzLnj7R4VKQbZtMxsX+flB165WpxEREXEeF779o0KlILlV5e23m42NREREPFWHDlCmDOzcCevWWZ0mDxUq+TGMM53f6GkfERHxdEFBZrECLnf7R4VKfjZtMp8nDwiAzp2tTiMiIuJ8uX+Yf/WVS93+UaGSn9xqMiYGQkOtzSIiIlISYmLgsstgzx5YvdrqNHaWFiqTJk2ievXqlCpVikaNGvHzzz9bGcdkGOrkTUREvE/p0nDnnea8C93+saxQ+fLLLxk+fDhjxoxhw4YN3HTTTcTExLBnzx6rIgHQ/t634J9/OOkXCB07XnDbPxKP8uHPO/gj8Wih9u3M7bVv186ifbt2Fu3btbO4675dKUuht/3vD/TV3y4hOjaO6Ni4QmVxJpthWHMj6vrrr6dhw4a899579mXXXHMNnTt3Zvz48Rf83tTUVEJDQ0lJSSEkJMRhmaJj44hd+jFDfv+WuKtu4OHOo0mY0D7fbUd+Fc+s9fvsX3drWIWJPa4rcN/O3F77du0s2rdrZ9G+XTuLu+7blbIUad8ZGbQf8j6bK11hDsb7n4I+C4uqOJ/fllxRyczMZN26dbRp0ybP8jZt2rBy5crzts/IyCA1NTXP5GjRsXFgGHT46xcAvr/6pjPLz/FH4tE8Jx1g1vp9BVaqztxe+3btLNq3a2fRvl07i7vu25WyFHXf0WMXs7lyjTxFCuT/WVhSLClUDh06RHZ2NpXP6Za+cuXKJCcnn7f9+PHjCQ0NtU+RkZFOydVg/zaqph4gLaA0S2s0LnC73xOO5Lt8bUL+J96Z22vfrp1F+3btLNq3a2dx1327Upai7tsVWdqY1nZOxWYYxnnLAEaPHk1KSop9SkxMdEqePWXD+N8tg/igaVdO+ZcqcLum0fl3ANc4ulyJb699u3YW7du1s2jfrp3FXfftSlmKum9XZEmhUqFCBXx9fc+7enLgwIHzrrIABAYGEhISkmdytIQJ7TkcVJYpTbvw1g298yw/V/3IcnRrWCXPsm4Nq1A/Mv8T78zttW/XzqJ9u3YW7du1s7jrvl0pS1H3XVBbFEe1USkOSxvTNmrUiEmTJtmX1a5dmzvvvNOyxrSQ9z7cxU7MH4lHWZtwlMbR5Qo86SW1vfbt2lm0b9fOon27dhZ33bcrZSnqvovyWVgUxfn8tqxQ+fLLL+nXrx+TJ0+mefPmfPDBB3z44Yds3ryZqKioC36vMwsVERERcY7ifH77OTlTgXr27Mnhw4d57rnnSEpKom7dusyfP/+iRYqIiIh4D8uuqFwKXVERERFxP27Tj4qIiIhIYahQEREREZelQkVERERclgoVERERcVkqVERERMRlqVARERERl6VCRURERFyWChURERFxWSpURERExGVZ1oX+pcjtTDc1NdXiJCIiIlJYuZ/bRekU3y0LlePHjwMQGRlpcRIREREpquPHjxMaGlqobd1yrJ+cnBz2799PcHAwNpvNoftOTU0lMjKSxMREjx5HSMfpObzhGEHH6Wl0nJ6jKMdoGAbHjx8nIiICH5/CtT5xyysqPj4+VK1a1an/RkhIiMf+UJ1Nx+k5vOEYQcfpaXScnqOwx1jYKym51JhWREREXJYKFREREXFZKlTOERgYyNixYwkMDLQ6ilPpOD2HNxwj6Dg9jY7Tczj7GN2yMa2IiIh4B11REREREZelQkVERERclgoVERERcVkqVERERMRlqVA5y6RJk6hevTqlSpWiUaNG/Pzzz1ZHuiTjxo3DZrPlmcLCwuzrDcNg3LhxREREULp0aVq1asXmzZstTFw4K1asoGPHjkRERGCz2ZgzZ06e9YU5royMDIYNG0aFChUICgqiU6dO7N27twSP4uIudpwDBgw47/w2a9Yszzaufpzjx4+nSZMmBAcHU6lSJTp37sy2bdvybOMJ57Mwx+nu5/O9997j2muvtXf61bx5cxYsWGBf7wnnES5+nO5+Hgsyfvx4bDYbw4cPty8rsXNqiGEYhjFz5kzD39/f+PDDD40tW7YYjz76qBEUFGTs3r3b6mjFNnbsWKNOnTpGUlKSfTpw4IB9/YQJE4zg4GBj1qxZxsaNG42ePXsa4eHhRmpqqoWpL27+/PnGmDFjjFmzZhmAMXv27DzrC3NcQ4YMMapUqWIsWrTIWL9+vXHLLbcY9evXN06fPl3CR1Owix1n//79jTvuuCPP+T18+HCebVz9ONu2bWtMnTrV2LRpkxEfH2+0b9/eqFatmpGWlmbfxhPOZ2GO093P53fffWfExcUZ27ZtM7Zt22Y89dRThr+/v7Fp0ybDMDzjPBrGxY/T3c9jfn7//XcjOjrauPbaa41HH33UvrykzqkKlf80bdrUGDJkSJ5lV199tREbG2tRoks3duxYo379+vmuy8nJMcLCwowJEybYl506dcoIDQ01Jk+eXEIJL925H+CFOa5jx44Z/v7+xsyZM+3b7Nu3z/Dx8TF++OGHEsteFAUVKnfeeWeB3+OOx3ngwAEDMJYvX24Yhueez3OP0zA883yWK1fO+Oijjzz2PObKPU7D8LzzePz4cePKK680Fi1aZLRs2dJeqJTkOdWtHyAzM5N169bRpk2bPMvbtGnDypUrLUrlGNu3byciIoLq1avTq1cvdu7cCcCuXbtITk7Oc8yBgYG0bNnSrY+5MMe1bt06srKy8mwTERFB3bp13e7Yly1bRqVKlahVqxaDBw/mwIED9nXueJwpKSkAlC9fHvDc83nucebylPOZnZ3NzJkzSU9Pp3nz5h57Hs89zlyech4BHn74Ydq3b0/r1q3zLC/Jc+qWgxI62qFDh8jOzqZy5cp5lleuXJnk5GSLUl2666+/nk8//ZRatWrx77//8vzzz9OiRQs2b95sP678jnn37t1WxHWIwhxXcnIyAQEBlCtX7rxt3Ol8x8TE0L17d6Kioti1axdPP/00t956K+vWrSMwMNDtjtMwDEaMGMGNN95I3bp1Ac88n/kdJ3jG+dy4cSPNmzfn1KlTXHbZZcyePZvatWvbP5Q85TwWdJzgGecx18yZM1m/fj1r1qw5b11J/m6qUDmLzWbL87VhGOctcycxMTH2+Xr16tG8eXNq1KjBtGnT7I27PO2YcxXnuNzt2Hv27Gmfr1u3Lo0bNyYqKoq4uDi6du1a4Pe56nEOHTqUP//8k19++eW8dZ50Pgs6Tk84n1dddRXx8fEcO3aMWbNm0b9/f5YvX25f7ynnsaDjrF27tkecR4DExEQeffRRFi5cSKlSpQrcriTOqW79ABUqVMDX1/e8Cu/AgQPnVYvuLCgoiHr16rF9+3b70z+edsyFOa6wsDAyMzM5evRogdu4o/DwcKKioti+fTvgXsc5bNgwvvvuO5YuXUrVqlXtyz3tfBZ0nPlxx/MZEBBAzZo1ady4MePHj6d+/fq8+eabHnceCzrO/LjjeQTzts2BAwdo1KgRfn5++Pn5sXz5ct566y38/PzsWUvinKpQwfyha9SoEYsWLcqzfNGiRbRo0cKiVI6XkZHB1q1bCQ8Pp3r16oSFheU55szMTJYvX+7Wx1yY42rUqBH+/v55tklKSmLTpk1ufeyHDx8mMTGR8PBwwD2O0zAMhg4dyrfffstPP/1E9erV86z3lPN5sePMjzuez3MZhkFGRobHnMeC5B5nftz1PN52221s3LiR+Ph4+9S4cWP69OlDfHw8V1xxRcmd02I0AvZIuY8nT5kyxdiyZYsxfPhwIygoyEhISLA6WrGNHDnSWLZsmbFz505j9erVRocOHYzg4GD7MU2YMMEIDQ01vv32W2Pjxo1G79693eLx5OPHjxsbNmwwNmzYYADGa6+9ZmzYsMH+KHlhjmvIkCFG1apVjcWLFxvr1683br31Vpd7PPBCx3n8+HFj5MiRxsqVK41du3YZS5cuNZo3b25UqVLFrY7zwQcfNEJDQ41ly5bleZzzxIkT9m084Xxe7Dg94XyOHj3aWLFihbFr1y7jzz//NJ566inDx8fHWLhwoWEYnnEeDePCx+kJ5/FCzn7qxzBK7pyqUDnLu+++a0RFRRkBAQFGw4YN8zw66I5yn2n39/c3IiIijK5duxqbN2+2r8/JyTHGjh1rhIWFGYGBgcbNN99sbNy40cLEhbN06VIDOG/q37+/YRiFO66TJ08aQ4cONcqXL2+ULl3a6NChg7Fnzx4LjqZgFzrOEydOGG3atDEqVqxo+Pv7G9WqVTP69+9/3jG4+nHmd3yAMXXqVPs2nnA+L3acnnA+Bw4caH//rFixonHbbbfZixTD8IzzaBgXPk5POI8Xcm6hUlLn1GYYhlHka0IiIiIiJUBtVERERMRlqVARERERl6VCRURERFyWChURERFxWSpURERExGWpUBERERGXpUJFREREXJYKFREREXFZKlRERETEZalQEREREZelQkVERERclgoVERERcVn/D+0DQ7UoO3ZKAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(rmg.x_of_node, z, \".\")\n", + "plt.plot(x_analytic, z_analytic, \"r\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's more like it!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Congratulations on making it to the end of this tutorial!\n", + "\n", + "**Click here for more** Landlab tutorials" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/lessons/landlab/landlab/practice-your-skills-solution.ipynb b/lessons/landlab/landlab/practice-your-skills-solution.ipynb new file mode 100644 index 0000000..29519e7 --- /dev/null +++ b/lessons/landlab/landlab/practice-your-skills-solution.ipynb @@ -0,0 +1,606 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "toc" + ] + }, + "source": [ + "# Table of Contents\n", + "* [Introduction to Landlab: Grids, Landlab as a solver for advection-diffusion problems, some demos](#Introduction-to-Landlab:-Grids,-Landlab-as-a-solver-for-advection-diffusion-problems,-some-demos)\n", + " * [Use Landlab to solve the problem Eyjafjallajökull problem](#Use-Landlab-to-solve-the-problem-Eyjafjallajökull-problem)\n", + " * [Preparation](#Preparation)\n", + " * [Advection diffusion](#Advection-diffusion)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to Landlab: Grids, Landlab as a solver for advection-diffusion problems, some demos\n", + "\n", + "This tutorial illustrates how you can use Landlab to construct a simple two-dimensional numerical model on a regular (raster) grid, using a simple forward-time, centered-space / upwind numerical scheme. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Use Landlab to solve the problem Eyjafjallajökull problem\n", + "\n", + "### Preparation\n", + "\n", + "Load the map of Europe, plot the location of the Eyjafjallajökull and Brussels\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "\n", + "europe_coast = np.loadtxt(\"data/EuropePoints_xp25_ym30.csv\", delimiter=\",\")\n", + "volcano_x, volcano_y = (7, 35)\n", + "brussels_x, brussels_y = (30, 21)\n", + "\n", + "plt.figure()\n", + "plt.scatter(europe_coast[:, 0], europe_coast[:, 1], s=0.5, c=\"r\")\n", + "\n", + "plt.plot(volcano_x, volcano_y, marker=\"^\", markersize=10)\n", + "plt.plot(brussels_x, brussels_y, marker=\"*\", markersize=10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b .1) Create an instance of a `RasterModelGrid` called `EU`, with 100 rows and 140 columns, with a spacing between nodes of 0.5 degrees (1 degree = ca. 111 km). Calculate the index of the eyjafjallajökull and Brussels within the grid" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.1 here)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "from landlab import RasterModelGrid\n", + "\n", + "rows, cols = 100, 140\n", + "dx = 0.5 # in degrees\n", + "\n", + "europe = RasterModelGrid((rows, cols), xy_spacing=dx)\n", + "\n", + "volcano_node = int(volcano_y / dx * cols + volcano_x / dx)\n", + "brussels_node = int(brussels_y / dx * cols + brussels_x / dx)\n", + "\n", + "volcano_node = europe.find_nearest_node((volcano_x, volcano_y))\n", + "brussels_node = europe.find_nearest_node((brussels_x, brussels_y))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.2) Query the grid variables `number_of_nodes` and `number_of_core_nodes` to find out how many nodes are in your grid, and how many of them are core nodes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.2 here)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "print(f\"number of nodes = {europe.number_of_nodes}\")\n", + "print(f\"number of core nodes = {europe.number_of_core_nodes}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.3) Add a new field to your grid, called `Aerosol` and attached to nodes. Have the initial values be all zero." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.3 here)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "europe.add_zeros(\"Aerosol\", at=\"node\", clobber=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.4) Change the Aerosol concentration at the eyjafjallajökull to an initial concentration of 10 ppm (store this value in `C_ini`) . Use the `imshow_grid` function to display a shaded image of the Aerosol field." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# (enter your solution to 2b.4 here)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "C_ini = 10.0\n", + "europe.at_node[\"Aerosol\"][volcano_node] = C_ini\n", + "europe.imshow(\"Aerosol\", at=\"node\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.5) Now lets do some more advanced plotting. Use the `imshow_grid` function to plot the Aerosol concentration, but this time plot all cells with Aerosol concentrations smaller than 1 ppm as white transparent pixels. To do this, make a copy of the Aerosol field and mask it [see ](https://numpy.org/doc/stable/reference/maskedarray.generic.html). Hint: try using `np.ma.masked_where(..., ...)`. Use the inferno_r colormap (see cmap argument of `imshow_grid`). On top of the concentration field, plot the map of Europe using the statements from the preparation cell above and the EU_coast variable. \n", + "\n", + "Finally, make a function out of this plotting code snippet so that you can easily reuse it later " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_aerosol(grid, a): \n", + " plt.plot(volcano_x, volcano_y, marker=\"^\", markersize=10)\n", + " plt.plot(brussels_x, brussels_y, marker=\"*\", markersize=10)\n", + " plt.scatter(europe_coast[:, 0], europe_coast[:, 1], s=0.5, c=\"r\")\n", + "\n", + " # a_plt = np.zeros_like(a)\n", + " # a_plt[:] = a\n", + " a_plt = np.ma.masked_where(a < 1, a)\n", + " grid.imshow(\n", + " a_plt, cmap=\"inferno_r\", color_for_background=None, color_for_closed=None\n", + " )\n", + " \n", + " # plt.plot(volcano_x, volcano_y, s=5, c=\"k\")\n", + " # plt.plot(brussels_x, brussels_y, s=5, c=\"g\")\n", + " \n", + " plt.show()\n", + "\n", + "\n", + "plot_aerosol(europe, europe.at_node[\"Aerosol\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define some constants: \n", + "- $C_n$ (source term): amount of dust particles produced per day (20 ppm/day)\n", + "- $D$ (diffusion constant) : 1.5 deg$^2$ day$^-1$\n", + "- $dt$ (in days, see stability rule before)\n", + "- get $dx$ and $dy$ from landlab grid\n", + "- totT: the total amount of iterations, see to 1000 for now\n", + "- create an empty np array to store the aerosol concentration above Brussels during the model run (with size totT)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "C_n = 200\n", + "D = 1.5\n", + "dx, dy = europe.dx, europe.dy\n", + "dt = 0.245 * europe.dx * europe.dx / D\n", + "n_steps = 1000\n", + "aerosol_at_brussels = np.zeros(n_steps)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "- Create a new field of zeros called aerosol_flux and attached to links. Using the 'number_of_links' grid property, verify that your new field array has the correct number of items. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "qa = europe.add_zeros(\"aerosol_flux\", at=\"link\")\n", + "print(europe.number_of_links)\n", + "print(len(qa))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Boundary conditions: for this example, we'll assume that all sides are are open. (The order of the function arguments is east, north, west, south). This is the default configuration. Later on we will check what happens if boundary conditions are open. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# europe.set_closed_boundaries_at_grid_edges(True, True, True, True)\n", + "\n", + "europe.status_at_node[europe.nodes_at_right_edge] = europe.BC_NODE_IS_CLOSED\n", + "europe.status_at_node[europe.nodes_at_top_edge] = europe.BC_NODE_IS_CLOSED\n", + "europe.status_at_node[europe.nodes_at_left_edge] = europe.BC_NODE_IS_CLOSED\n", + "europe.status_at_node[europe.nodes_at_bottom_edge] = europe.BC_NODE_IS_CLOSED" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*A note on boundaries:* with a Landlab raster grid, all the perimeter nodes are boundary nodes. In this example, there are 98 + 140 + 98 + 140 = 476 boundary nodes. All the remaining nodes are known as **core** nodes. In this example, there are 100*140-476 = 13524 core nodes:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"Number of boundary nodes: {len(europe.boundary_nodes)}\")\n", + "print(f\"Number of core nodes: {len(europe.core_nodes)}\")\n", + "print(f\"Number of nodes: {europe.number_of_nodes}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(2b.7) Now solve the 2D diffusion equation. Loop through totT iterations, representing $totT*dt$ days. On each pass through the loop, we do the following:\n", + "\n", + "1. Calculate, and store in the array `g`, the **aerosol gradient** between each neighboring pair of nodes. The gradient value is a positive number when the gradient is \"uphill\" in the direction of the link, and negative when the gradient is \"downhill\" in the direction of the link. On a raster grid, link directions are always in the direction of increasing 𝑥 (\"horizontal\" links) or increasing 𝑦 (\"vertical\" links).\n", + "\n", + "2. Calculate, and store in the array `qa`, the **aerosol flux** between each adjacent pair of nodes by multiplying their gradient by the transport coefficient. We will only do this for the active links (those not connected to a closed boundary, and not connecting two boundary nodes of any type); others will remain as zero.\n", + "\n", + "3. Calculate the resulting net flux at each node, (positive=net outflux, negative=net influx). The negative of this array is the rate of change of elevation at each (core) node, so store it in a node array called `dadt'.\n", + "\n", + "4. Update the aerosol concentrations for the new time step.\n", + "\n", + "5. Take care of the source term: calculate the amount of ash being produced during one timestep and add this to the aerosol field at the volcano location\n", + "\n", + "5. Store the concentration above Brussels in the `Br_out` array\n", + "\n", + "6. Plot the resulting concentration every 100 iterations \n", + "\n", + "~~~ python\n", + " for i in range(totT): \n", + " g = \n", + " qa[EU.active_links] = \n", + " dadt = \n", + " a[EU.core_nodes] += dadt[EU.core_nodes] * dt \n", + " a[vol_loc] += C_n*dt\n", + " Br_out[i] = a[Br_loc] \n", + " if i%100==0: \n", + " print('Time is : ' + str(i*dt) + 'days')\n", + " plot_aerosol(a) \n", + "~~~\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the concentration through time at Brussels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "for step in range(n_steps):\n", + " g = europe.calc_grad_at_link(\"Aerosol\")\n", + " qa[europe.active_links] = -D * g[europe.active_links]\n", + " dadt = -europe.calc_flux_div_at_node(qa)\n", + " europe.at_node[\"Aerosol\"][europe.core_nodes] += dadt[europe.core_nodes] * dt\n", + " europe.at_node[\"Aerosol\"][volcano_node] += C_n * dt\n", + " aerosol_at_brussels[step] = europe.at_node[\"Aerosol\"][brussels_node]\n", + " if step % 100 == 0:\n", + " print(f\"Time is: {step * dt} days\")\n", + " plot_aerosol(europe, europe.at_node[\"Aerosol\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure()\n", + "plt.plot(range(n_steps) * dt, aerosol_at_brussels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* What happens if you set all of the boundaries as closed boundaries? " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Advection diffusion\n", + "\n", + "We have solved the diffusion part of the volcanic ash problem imposed by the eyjafjallajökull volcano. However, most of the ash transport was induced by wind fields advection the ash towards Europe (yup, west winds). Can you come up with a landlab implementation of the advection equation? Copy paste your solution from exercise () and add some lines to solve the 2D advection equation:\n", + "\n", + "$$\\frac{\\partial C}{\\partial t} +v \\frac{\\partial C}{\\partial x} +u \\frac{\\partial C}{\\partial y}=0\n", + "\\label{eq:1}\\tag{1}$$\n", + "where $C$ is the aerosol concentration and $v$ is a constant windspeed at which aerosol concentrations are advectected in the x direction and $u$ is a constant windspeed at which aerosol concentrations are advectected in the y direction.\n", + "\n", + "You will need some additional variables: \n", + "- $v$ (horizontal wind speed, positive in x direction): 1.5 deg/day\n", + "- $u$ (vertical wind speed, positive in y direction): -0.75 deg/day\n", + "\n", + "- Hint 1: reset the Aerosol field (a)\n", + "- Hint 2: update the time criterion and combine the diffusion and the advection criteria \n", + "- Hint 3: currently, the landlab grid library has no predefined functions to calculate advection (no equivalent for calc_flux_div_at_node which is used to solve the heat eq.). Hence, you will have to discretise the advection equation yourself using an upwind first order FDM, but using the matlab node/link structure. To calculate the links at every node, use `links_at_node`\n", + "- Hint 4: given that there is no predefined method to calculate advection, you will also have to take care of the boundary conditions. Assume open boundary nodes by setting the aerosol concentration at all boundary nodes to 0 ppm at the end of every iteration. Use `grid.boundary_nodes`.\n", + "\n", + "~~~ python \n", + "v = 1.5\n", + "u = -.5\n", + "C_n = 200\n", + "D = 1.5\n", + "dx = EU.dx\n", + "dy = EU.dy\n", + "totT = 1000\n", + "Br_out = np.zeros(totT)\n", + "time = np.arange(start=0,stop = totT, step = 1)*dt\n", + "\n", + "a[:] = np.zeros_like(a)\n", + "g = np.zeros(EU.number_of_links)\n", + "dadt = np.zeros(EU.number_of_nodes)\n", + "\n", + "\n", + "dt_a = 0.95*np.minimum(dx/abs(v),dy/abs(u))\n", + "dt_d = 0.245 * dx * dx / D\n", + "dt = min(dt_a,dt_d)\n", + "\n", + "rt = EU.links_at_node[0:len(a)][:,0]\n", + "up = EU.links_at_node[0:len(a)][:,1]\n", + "lt = EU.links_at_node[0:len(a)][:,2]\n", + "dw = EU.links_at_node[0:len(a)][:,3] \n", + "\n", + "for i in range(totT): \n", + " EU.calc_grad_at_link(a,out=g)\n", + " qa[EU.active_links] = ...\n", + " EU.calc_flux_div_at_node(qa,out=dadt)\n", + " a[EU.core_nodes] -= ...\n", + " \n", + " # Advection \n", + " # horizontal (x) direction\n", + " EU.calc_grad_at_link(a,out=g) \n", + " if v<0:\n", + " a -= v*g[rt]*dt\n", + " else: \n", + " a -= ...\n", + " \n", + " # vertical (y) direction\n", + " EU.calc_grad_at_link(a,out=g)\n", + " if u<0:\n", + " a -= ...\n", + " else:\n", + " a -= u*g[dw]*dt\n", + " \n", + " # Or shorter: \n", + "# EU.calc_grad_at_link(a,out=g) \n", + "# a -= (v*g[rt]*(v<0) + v*g[lt]*(v>0))*dt\n", + "# EU.calc_grad_at_link(a,out=g)\n", + "# a -= (u*g[up]*(u<0) + u*g[dw]*(u>0))*dt\n", + " \n", + " # Source term \n", + " a[vol_loc] += C_n*dt\n", + " \n", + " # Keep track of concentration in Brussels\n", + " Br_out[i] = a[Br_loc]\n", + " \n", + " #BC \n", + " a[EU.boundary_nodes] = 0 \n", + " if i%100==0: \n", + " print('Time is : ' + str(i*dt) + 'days')\n", + " plot_aerosol(a) \n", + " \n", + "plt.figure()\n", + "plt.plot(time,Br_out) \n", + "\n", + "~~~" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "v = 1.5\n", + "u = -.5\n", + "C_n = 200\n", + "D = 1.5\n", + "\n", + "dx = europe.dx\n", + "dy = europe.dy\n", + "n_step = 1000\n", + "aerosol_at_brussels = np.zeros(n_steps)\n", + "\n", + "a = europe.add_zeros(\"Aerosol\", at=\"node\", clobber=True)\n", + "g = np.zeros(europe.number_of_links)\n", + "dadt = np.zeros(europe.number_of_nodes)\n", + "\n", + "dt_a = 0.95*np.minimum(dx/abs(v),dy/abs(u))\n", + "dt_d = 0.245 * dx * dx / D\n", + "dt = min(dt_a,dt_d)\n", + "\n", + "east = europe.links_at_node[:,0]\n", + "north = europe.links_at_node[:,1]\n", + "west = europe.links_at_node[:,2]\n", + "south = europe.links_at_node[:,3] \n", + "\n", + "for step in range(n_steps): \n", + " europe.calc_grad_at_link(\"Aerosol\", out=g)\n", + " qa[europe.active_links] = -D * g[europe.active_links]\n", + " europe.calc_flux_div_at_node(qa,out=dadt)\n", + " europe.at_node[\"Aerosol\"][europe.core_nodes] -= dadt[europe.core_nodes] * dt\n", + " \n", + " # Advection \n", + " # horizontal (x) direction\n", + " europe.calc_grad_at_link(\"Aerosol\",out=g) \n", + " if v<0:\n", + " a -= v*g[east]*dt\n", + " else: \n", + " a -= v * g[west] * dt\n", + " \n", + " # vertical (y) direction\n", + " europe.calc_grad_at_link(\"Aerosol\",out=g)\n", + " if u<0:\n", + " a -= u * g[north] * dt\n", + " else:\n", + " a -= u*g[south]*dt\n", + " \n", + " # Or shorter: \n", + "# EU.calc_grad_at_link(a,out=g) \n", + "# a -= (v*g[rt]*(v<0) + v*g[lt]*(v>0))*dt\n", + "# EU.calc_grad_at_link(a,out=g)\n", + "# a -= (u*g[up]*(u<0) + u*g[dw]*(u>0))*dt\n", + " \n", + " # Source term \n", + " a[volcano_node] += C_n*dt\n", + " \n", + " # Keep track of concentration in Brussels\n", + " aerosol_at_brussels[step] = a[brussels_node]\n", + " \n", + " # BC \n", + " a[europe.boundary_nodes] = 0 \n", + " if step%100==0: \n", + " print(f\"Time is: {step * dt} days\")\n", + " plot_aerosol(europe, a) \n", + " \n", + "plt.figure()\n", + "plt.plot(range(n_steps) * dt,aerosol_at_brussels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* what happens if you change the vertical (u) velocity to +0.25? \n", + "\n", + "Congratulations on making it to the end of this tutorial!\n", + "\n", + "**Click here for more** Landlab tutorials" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}