{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Homework 5\n", "\n", "## Problem 1 (150 points)\n", "\n", "Consider a slightly asymmetric wellbore in an otherwise symmetric and homogenous medium in which the interior wellbore pressure $p_0$ is held constant. Assuming steady-state, plane-strain and *undrained* conditions, compute the displacements and pressures on the given mesh. The mesh information is provided in the following files with short descriptions of thier contents.\n", "\n", "[coords.csv](http://johnfoster.pge.utexas.edu/PGE383-AdvGeomechanics/files/coords.csv) - the geometric node locations for all nodes. They are listed in $x,y$ pairs with each line corresponding to a global node index starting with 1 and proceding in sequence.\n", "\n", "[connect.csv](http://johnfoster.pge.utexas.edu/PGE383-AdvGeomechanics/files/connect.csv) - the connectivity arrays. Each line contains the global node numbers of an element with local node numbering as specified in the schematic. For the pressue interpolates, only use the first 4 which will coorespond to the corners of the element.\n", "\n", "[nodeset1.csv](http://johnfoster.pge.utexas.edu/PGE383-AdvGeomechanics/files/nodeset1.csv) - the nodes on the interior boundary. Use these nodes to specify the interior pressure, $p_0$.\n", "\n", "[nodeset2.csv](http://johnfoster.pge.utexas.edu/PGE383-AdvGeomechanics/files/nodeset2.csv) - the nodes on the exterior boundary. Use these nodes to specify the far-field pressure, $p_{\\infty}$.\n", "\n", "[nodeset3.csv](http://johnfoster.pge.utexas.edu/PGE383-AdvGeomechanics/files/nodeset3.csv) - the nodes on the horizontal symmetric boundary (indicated in blue in the schematic).\n", "\n", "[nodeset4.csv](http://johnfoster.pge.utexas.edu/PGE383-AdvGeomechanics/files/nodeset4.csv) - the nodes on the horizontal symmetric boundary (indicated in red in the schematic).\n", "\n", "Assume zero fluid compressibility, i.e. $1/M = 0$ and the following dimensionless properties $\\alpha = 1, \\nu = 0.3, \\mu = 1$ for Biot's coefficient, Poisson's ratio, and shear modulus, respectively. Apply an interior pressue $p_0=5$ and a constant far-field pressure $p_{\\infty}=1$. Assume the far field boundary is stress-free as well. Create plots of the stress fields for $\\sigma_{xx}$, $\\sigma_{yy}$, and $\\sigma_{xy}$ as well as the pressures." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import scipy.linalg\n", "import scipy.sparse\n", "import scipy.sparse.linalg\n", "\n", "class TwoDimCoupledFEM():\n", " \n", " def __init__(self, nodes, connect, mu, nu, alpha, bc_nodes=[], bc_vals=[]):\n", " \n", " self.X = nodes[:,0]\n", " self.Y = nodes[:,1]\n", " self.connect = (connect - 1)\n", " \n", " self.nu = nu\n", " self.mu = mu\n", " self.alpha = alpha\n", " \n", " self.num_elem = len(self.connect)\n", " \n", " \n", " def dNdxi(self, xi, eta):\n", " \n", " return [eta/4. - eta**2/4. - (eta*xi)/2. + (eta**2*xi)/2.,\n", " -eta/4. + eta**2/4. - (eta*xi)/2. + (eta**2*xi)/2.,\n", " eta/4. + eta**2/4. + (eta*xi)/2. + (eta**2*xi)/2.,\n", " -eta/4. - eta**2/4. + (eta*xi)/2. + (eta**2*xi)/2.,eta*xi - eta**2*xi,\n", " 0.5 - eta**2/2. + xi - eta**2*xi,-(eta*xi) - eta**2*xi,\n", " -0.5 + eta**2/2. + xi - eta**2*xi,-2*xi + 2*eta**2*xi]\n", " \n", " \n", " def dNdeta(self, xi, eta):\n", " \n", " return [xi/4. - (eta*xi)/2. - xi**2/4. + (eta*xi**2)/2.,\n", " -xi/4. + (eta*xi)/2. - xi**2/4. + (eta*xi**2)/2.,\n", " xi/4. + (eta*xi)/2. + xi**2/4. + (eta*xi**2)/2.,\n", " -xi/4. - (eta*xi)/2. + xi**2/4. + (eta*xi**2)/2.,\n", " -0.5 + eta + xi**2/2. - eta*xi**2,-(eta*xi) - eta*xi**2,\n", " 0.5 + eta - xi**2/2. - eta*xi**2,eta*xi - eta*xi**2,-2*eta + 2*eta*xi**2]\n", " \n", " def Nu(self, xi, eta):\n", " \n", " return [(eta*xi)/4. - (eta**2*xi)/4. - (eta*xi**2)/4. + (eta**2*xi**2)/4.,\n", " -(eta*xi)/4. + (eta**2*xi)/4. - (eta*xi**2)/4. + (eta**2*xi**2)/4.,\n", " (eta*xi)/4. + (eta**2*xi)/4. + (eta*xi**2)/4. + (eta**2*xi**2)/4.,\n", " -(eta*xi)/4. - (eta**2*xi)/4. + (eta*xi**2)/4. + (eta**2*xi**2)/4.,\n", " -eta/2. + eta**2/2. + (eta*xi**2)/2. - (eta**2*xi**2)/2.,\n", " xi/2. - (eta**2*xi)/2. + xi**2/2. - (eta**2*xi**2)/2.,\n", " eta/2. + eta**2/2. - (eta*xi**2)/2. - (eta**2*xi**2)/2.,\n", " -xi/2. + (eta**2*xi)/2. + xi**2/2. - (eta**2*xi**2)/2.,\n", " 1 - eta**2 - xi**2 + eta**2*xi**2]\n", " \n", " \n", " def Np(self, xi, eta):\n", " \n", " return [1 / 4. * (-1 + eta) * (-1 + xi),\n", " -(1 / 4.) * (-1 + eta) * (1 + xi), \n", " 1 / 4. * (1 + eta) * (1 + xi),\n", " -(1 / 4.) * (1 + eta) * (-1 + xi)]\n", " \n", " \n", " def compute_jacobian_matrix_and_inverse(self, xi, eta):\n", " \n", " x = self.X\n", " y = self.Y\n", " con = self.connect\n", " \n", " J11 = np.dot(x[con], self.dNdxi(xi, eta))\n", " J12 = np.dot(y[con], self.dNdxi(xi, eta))\n", " J21 = np.dot(x[con], self.dNdeta(xi, eta))\n", " J22 = np.dot(y[con], self.dNdeta(xi, eta))\n", " \n", " self.detJ = J11 * J22 - J12 * J21\n", " \n", " self.Jinv11 = J22 / self.detJ\n", " self.Jinv12 = -J12 / self.detJ\n", " self.Jinv21 = -J21 / self.detJ\n", " self.Jinv22 = J11 / self.detJ\n", " \n", " \n", " def compute_B_matrix(self, xi, eta):\n", " \n", " self.compute_jacobian_matrix_and_inverse(xi, eta)\n", " \n", " dNxi = self.dNdxi(xi, eta)\n", " dNeta = self.dNdeta(xi, eta)\n", " \n", " Nmat = np.zeros((4, 2 * len(dNxi)))\n", " Nmat[0,0::2] = dNxi\n", " Nmat[1,0::2] = dNeta\n", " Nmat[2,1::2] = dNxi\n", " Nmat[3,1::2] = dNeta\n", " \n", " zero = np.zeros(len(self.detJ))\n", " \n", " Jmat = np.array([[self.Jinv11, self.Jinv12, zero, zero],\n", " [self.Jinv21, self.Jinv22, zero, zero],\n", " [zero, zero, self.Jinv11, self.Jinv12],\n", " [zero, zero, self.Jinv21, self.Jinv22]])\n", " \n", " Dmat = np.array([[1.,0.,0.,0.],[0.,0.,0.,1.],[0.,1.,1.,0.]])\n", " \n", " #B = D * J * N\n", " return np.einsum('ij,jk...,kl',Dmat,Jmat,Nmat)\n", " \n", " \n", " def compute_stiffness_integrand(self, xi, eta, nu, mu):\n", " \n", " Ey = 2 * mu * (1 + nu)\n", " \n", " c11 = Ey * (1 - nu * nu) / ((1 + nu) * (1 - nu - 2 * nu * nu))\n", " c12 = Ey * nu / (1 - nu - 2 * nu * nu)\n", " c66 = Ey / (2 * (1 + nu))\n", " \n", " Cmat = np.array([[c11, c12, 0], [c12, c11, 0], [0, 0, c66]]);\n", " \n", " self.Bmat = self.compute_B_matrix(xi, eta)\n", " \n", " #ke_{il} = B_{ji} C_{jk} B_{kl} \\det(J)\n", " return np.einsum('...ji,jk,...kl,...',self.Bmat,Cmat,self.Bmat,self.detJ)\n", " \n", " \n", " def compute_coupling_integrand(self, xi, eta, alpha):\n", " \n", " #ke = B^t * C * B\n", " m = np.array([1.0, 1.0, 0.0]) * alpha\n", " \n", " Np = self.Np(xi, eta)\n", " \n", " return np.einsum('...ij,i,k,...',self.Bmat,m,Np,self.detJ)\n", " \n", " \n", " def integrate_element_matrices(self):\n", " \n", " #Use 3 x 3 Gauss integration\n", " wts = [5 / 9., 8 / 9., 5 / 9.]\n", " pts = [-np.sqrt(3 / 5.), 0.0, np.sqrt(3 / 5.)]\n", " \n", " ke = np.zeros((self.num_elem, 18, 18))\n", " qe = np.zeros((self.num_elem, 18, 4))\n", " \n", " for i in range(3):\n", " for j in range(3):\n", " ke += wts[i] * wts[j] * self.compute_stiffness_integrand(pts[i], pts[j], self.nu, self.mu)\n", " qe += wts[i] * wts[j] * self.compute_coupling_integrand(pts[i], pts[j], self.alpha)\n", " \n", " return (ke,qe)\n", " \n", " \n", " def compute_stress_at_gauss_point(self, xi, eta, disp):\n", " \n", " mu = self.mu\n", " nu = self.nu\n", " \n", " Ey = 2 * mu * (1 + nu)\n", " \n", " c11 = Ey * (1 - nu * nu) / ((1 + nu) * (1 - nu - 2 * nu * nu))\n", " c12 = Ey * nu / (1 - nu - 2 * nu * nu)\n", " c66 = Ey / (2 * (1 + nu))\n", " \n", " Cmat = np.array([[c11, c12, 0], [c12, c11, 0], [0, 0, c66]]);\n", " \n", " Bmat = self.compute_B_matrix(xi, eta)\n", " \n", " elem_disp = disp[self.connect].reshape(-1,18)\n", " \n", " #stress_{i} = C_{ik} B_{kl} disp{l}\n", " return np.einsum('ik,...kl,...l',Cmat,Bmat,elem_disp).reshape(-1,3)\n", " \n", " \n", " def compute_stress(self, disp):\n", " \n", " #Gauss points\n", " pts = [-np.sqrt(3 / 5.), 0.0, np.sqrt(3 / 5.)]\n", " \n", " return np.array([[ self.compute_stress_at_gauss_point(i, j, disp) for i in pts ] for j in pts])\n", " \n", " \n", " def compute_gauss_point_locations(self, coords):\n", " \n", " #Gauss points\n", " pts = [-np.sqrt(3 / 5.), 0.0, np.sqrt(3 / 5.)]\n", " \n", " X = coords[:,0][self.connect]\n", " Y = coords[:,1][self.connect]\n", " \n", " xloc = np.array([[ np.dot(X, self.Nu(i, j)) for i in pts ] for j in pts]).flatten()\n", " yloc = np.array([[ np.dot(Y, self.Nu(i, j)) for i in pts ] for j in pts]).flatten()\n", " \n", " return (xloc, yloc)\n", " \n", " \n", " def assemble(self):\n", " \n", " #Construct a DOF map. We'll start by assuming that every node has 3 DOF\n", " #this is obviously not true, but we'll correct it.\n", " fake_dof_map = np.zeros(3*len(self.X), dtype=np.int64).reshape(-1, 3)\n", " \n", " #The nodes that actually have pressue DOF's are the \"corner\" nodes of the element\n", " #or the first 4 nodes in each row of the connectivity array, let's select the others\n", " no_pressure_dof_nodes = (self.connect[:,4:]).flatten()\n", " \n", " #Now for these nodes that do not have pressure DOF's, we'll \"flag\" those DOFs with a -1\n", " fake_dof_map[:,2][no_pressure_dof_nodes] = -1\n", " fake_dof_map = fake_dof_map.flatten()\n", " \n", " #Now the rest of the DOF indices are not monotonically increasing (we removed some of them\n", " #and replaced them with -1's), so now we need to replace the non -1 entries with a monotonically\n", " #increasing DOF map that corresponds to the total number of DOF's. First let's figure out\n", " #how many total DOF's ther are, this corresponds to wherever there are 0's in the fake_dof_map\n", " total_dof = (fake_dof_map == 0).sum()\n", " \n", " #Create a monotonically increasing range from 0 to the total_dof\n", " dof_range = np.arange(total_dof, dtype=np.int64)\n", " \n", " #Replace the 0's in the fake_dof_map with the monotonically increasing range\n", " fake_dof_map[np.where(fake_dof_map != -1)] = dof_range\n", " \n", " #Create the real dof_map, there will still be -1 \"flags\" in the third column\n", " self.dof_map = fake_dof_map.reshape(-1,3)\n", " \n", " #Allocate global stiffness matrix and r.h.s vector\n", " self.K = np.zeros((total_dof, total_dof), dtype=np.double)\n", " self.F = np.zeros(total_dof, dtype=np.double)\n", " \n", " #The DOF indices cooresponding to displacement\n", " idx_disp = (self.dof_map[:,:2][self.connect]).reshape(-1,18)\n", " \n", " #The DOF indices cooresponding to pressure, they should not have any -1's\n", " #because we only choose those that in the first 4 columns of each row in\n", " #the connectivity\n", " idx_pres = self.dof_map[:,-1][self.connect[:,:4]]\n", " \n", " #Integrate element stiffness matrices\n", " ke, qe = self.integrate_element_matrices()\n", " \n", " #Assemble into global stiffness matrix\n", " for i in range(self.num_elem):\n", " \n", " idx_grid_disp = np.ix_(idx_disp[i], idx_disp[i])\n", " self.K[idx_grid_disp] += ke[i]\n", " \n", " idx_grid_pres = np.ix_(idx_disp[i], idx_pres[i])\n", " self.K[idx_grid_pres] += qe[i]\n", " \n", " idx_grid_pres = np.ix_(idx_pres[i], idx_disp[i])\n", " self.K[idx_grid_pres] += qe[i].T\n", " \n", " \n", " def apply_essential_bc(self, nodes, values, dof=\"x\"):\n", " \n", " node_idx = nodes - 1\n", " \n", " if dof == \"x\":\n", " dof_idx = 0\n", " elif dof == \"y\":\n", " dof_idx = 1\n", " elif dof == \"p\":\n", " dof_idx = 2\n", " \n", " row_replace = np.zeros(len(self.K))\n", " \n", " for value_idx, node in enumerate(node_idx): \n", " \n", " row_idx = self.dof_map[node][dof_idx]\n", " \n", " self.K[row_idx] = row_replace\n", " self.K[row_idx,row_idx] = 1\n", " \n", " self.F[row_idx] = values[value_idx]\n", " \n", " \n", " def solve(self):\n", " \n", " self.K = scipy.sparse.csr_matrix(self.K)\n", " \n", " return scipy.sparse.linalg.spsolve(self.K,self.F)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "coords = np.loadtxt(\"coords.csv\", delimiter=',', dtype=np.double)\n", "connect = np.loadtxt(\"connect.csv\", delimiter=',', dtype=np.int64)\n", "ns1 = np.loadtxt(\"nodeset1.csv\", delimiter=',', dtype=np.int64)\n", "ns2 = np.loadtxt(\"nodeset2.csv\", delimiter=',', dtype=np.int64)\n", "ns3 = np.loadtxt(\"nodeset3.csv\", delimiter=',', dtype=np.int64)\n", "ns4 = np.loadtxt(\"nodeset4.csv\", delimiter=',', dtype=np.int64)\n", "\n", "problem = TwoDimCoupledFEM(coords, connect, nu=0.3, mu=1, alpha=1)\n", "\n", "problem.assemble()\n", "\n", "problem.apply_essential_bc(ns3,np.zeros(len(ns3)),dof=\"y\")\n", "problem.apply_essential_bc(ns4,np.zeros(len(ns4)),dof=\"x\")\n", "\n", "#ns1 includes displacement nodes on the interior, we can't apply pressure\n", "#to these, so first we modify ns1 to include only pressure nodes\n", "ns1_pres = np.intersect1d(ns1,connect[:,:4].flatten())\n", "problem.apply_essential_bc(ns1_pres,5*np.ones(len(ns1_pres)),dof=\"p\")\n", "#Same for ns2\n", "ns2_pres = np.intersect1d(ns2,connect[:,:4].flatten())\n", "problem.apply_essential_bc(ns2_pres,np.ones(len(ns2_pres)),dof=\"p\")\n", "\n", "x = problem.solve()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "displacement = x[problem.dof_map[:,:2].flatten()].reshape(-1,2)\n", "deformed_pos = coords + displacement\n", "\n", "pres_dof = problem.dof_map[:,-1][np.where(problem.dof_map[:,-1] != -1)]\n", "pressure = x[pres_dof]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "from matplotlib.patches import Polygon\n", "from matplotlib.collections import PatchCollection\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "import scipy.interpolate\n", "\n", "import warnings\n", "warnings.simplefilter(action = \"ignore\", category = FutureWarning)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nxT8kxUirAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "patches = []\n", "for coord in coords[connect[:,0:4]-1]:\n", " quad = Polygon(coord, facecolor='none', fill=False)\n", " patches.append(quad)\n", "\n", "pres_idx, = np.where(problem.dof_map[:,-1] != -1)\n", "X = coords[pres_idx,0]\n", "Y = coords[pres_idx,1]\n", "grid_x, grid_y = np.mgrid[0:11:700j, 0:11:700j]\n", "p = scipy.interpolate.griddata((X, Y), pressure, (grid_x, grid_y), method='cubic')\n", "\n", "interior = np.sqrt((grid_x**2 / 0.8**2) + (grid_y**2 / 1**2)) < 1\n", "p[interior] = np.nan\n", "\n", "fig, ax = plt.subplots()\n", "cs = ax.contourf(grid_x, grid_y, p, cmap=\"coolwarm\",levels=np.linspace(-2, 5, 50))\n", "fig.colorbar(cs, ax=ax);\n", "#colors = 100 * np.random.rand(len(patches))\n", "\n", "\n", "p = PatchCollection(patches, match_original=True)\n", "p.set_linewidth(0.1)\n", " \n", "#p.set_array(np.array(colors))\n", "ax.add_collection(p)\n", "ax.set_xlim([0, 10])\n", "ax.set_ylim([0, 10])\n", "ax.set_aspect('equal')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ntf8PIw8ujw6jGKgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X = coords[:,0]\n", "Y = coords[:,1]\n", "disp_x = scipy.interpolate.griddata((X, Y), displacement[:,0], (grid_x, grid_y), method='cubic')\n", "disp_x[interior] = np.nan\n", "plt.figure()\n", "plt.gca().set_aspect('equal')\n", "plt.contourf(grid_x, grid_y, disp_x, cmap=\"coolwarm\")\n", "plt.colorbar();\n", "plt.title(\"X displacment\");" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nVmoOOTMrtf8PN2/4cR/M9Q0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "disp_y = scipy.interpolate.griddata((X, Y), displacement[:,1], (grid_x, grid_y), method='cubic')\n", "disp_y[interior] = np.nan\n", "plt.figure()\n", "plt.gca().set_aspect('equal')\n", "plt.contourf(grid_x, grid_y, disp_y, cmap=\"coolwarm\")\n", "plt.colorbar();\n", "plt.title(\"Y displacment\");" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAATEAAAEKCAYAAAB62GIGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X20XHV97/H3xyAPkSIobZA8cFCQBPEhEUNq5MFe2uYi\ngte1LKUiXkVM1SiLq22wt7VYHwq1XVJNLxcQuCgiKFUbXFDQ6uFJDIkJkZATJGIgCRAQEUUBE/ne\nP/aek30mM3PmzOw5e++Zz2uts3Jmz29m/87JOZ/z/f32b++tiMDMrKqeV3QHzMy64RAzs0pziJlZ\npTnEzKzSHGJmVmkOMTOrNIfYOCRdKOlvu3yP4yRtzqtPlpD0UUmX5Ph+50r6Ul7vZ5NjoENM0iZJ\nv5H0S0lPSLpd0mJJqrWJiPdFxCeL7OdkkzQk6TlJTX8+0l/45yR9qG77Wen2v+91PyPiHyPizHb7\n3M5b5tQ1m0QDHWIkP7QnRsQ+wCzgPGApcGmhvSoPtXgugB8Dp9dtfydwL8UFQqs+Wx8a9BAbFRG/\niojrgFOAd0o6HEDS/5P0ifTz/SV9K63aHpd0S+31aVV3jqR7JP1c0mWS9mi0r7TdxrQCvEfSW+qe\nP1PS+szzr8ns4yOS1kp6StIXJE2TdEPa9tuS9s28zwJJ30/7e5ekYzPPDUv6B0m3pa+9UdKL06dr\nX9cvJP1K0lFNvm0rgamZ79UrgD2AVaRhImm/9Hv2aPp9uU7S9Ew/DpZ0S6b//1Yb0mWqq9MlPSDp\nMUl/k3ltdviX7fMv0699zPCwvlpL931z2v4mYP+6/4em3z8rD4dYnYhYCWwBjq5tYmdV8WFgM8kP\n+x8AH617+V8AfwK8DHg50GwubSPwhrQC/DhwpaRpAJLeBvw98I70+ZOAn2f68lbg+PT93wxcD5wD\n/D7J/+eH0veZDnwL+IeI2A/4CPDvmaACOBX4n+nXsnvahszX/sKI+L2IWNHk6wD4EjursXemj7NE\nUtnOSj+eBpZlnr8K+AHwIuBc4DR2reIWpl/vfwM+JumwzPejJtvnfSLiBw3ep95VJEH8YuATaf8D\nWn7/9m/yXlYQh1hjD5H8UtX7LfASYCgifhcRt2eeC2BZRGyNiCeAT5GExC4i4tqIeCT9/KvAfcD8\n9On3AOdHxA/T538SEQ9mXv75iHgsIh4CbgV+EBFrI+JZ4BvA3LTdacD1EfGf6ft8h6RCelOmv5dH\nxMaIeAb4KvCa9Ll2hmS1NlcCp0rajaSKvbLua/15RHwjIp6JiKeATwPHAkiaBRwJfCwidqTfz+UN\n9v/xiHg2In4ErAVe3aCfjfrc9OvI7PvvImJ7RNwKXJdp0uz7d0Kz97RiOMQam8HO6gd2/jJ8hqSK\nuknSTyQtrXtd9gjkg8CBjd48HR6tSYcpTwBHsHMoMwP4SYu+bct8/nTd42eAvdPPDwLeVttHup+F\nwAGZ9o/UvdfeTExExGaS78k/Aj+OiC3ZBpKmSrooHQo/CdwMvDA9eHIg8PM0RGsaHcXN9vM3HfSz\nkQOBJyLi6cy2B9j5f93O989KYLeiO1A2kl5H8gN+W/1zaSXxEeAj6fzPdyXdGRHfS5vMyjSfRVLR\n1b//QcDFwB8Bd0RESFrDzl+ezcAhE+lyk+0PAl+KiPdO4L1q2p2Ur+37i8BlJEPT+vf4MMlQcH5E\nPJrO761OX/sw8CJJe2XCZNYE9j9en58CpmYeZwPoYWA/SVMj4jfptoOA36Wfd/P9s0nkSmznBPQ+\nkk4EvkLyw3tP9vm0zYmSDkmriF+S/MA/l2n3fknTJb0I+N/A1Q329wKSX7ifAc+T9C6SSqzmCyQh\nOU+JQ9Khz0RdCbxZ0p9ImiJpTyXr1aZn2jQLwMfSr+tlbe7rGuCPga9l3rf23nuTVHlPpt+X0aUX\nEfEAyRDtXEnPl/SHwIl0FmKN+nwXcIykmZJeSGYOM7Pvj6f7fkO675p2vn9WAg4xuE7SL0n+8n4U\n+BfgXZnnsxP7hwDfBn4FfB/4t4i4OdPuKuAmkuHgfcAn696HiFif7uMOkmHSEWSqvoi4lmQ+7SqS\noPw6sF+L/kfd57X9bAFOBv4GeDT9+j7M2OBq9trfpH24PR1KzWdX2fbPRMR3M8PC7PfsAmAvktD+\nPnBD3X7fDvwh8DjJ5Po1JHOPjfrYqg+79Dmdx7oG+BHJBP51de/3F8BRJFMHHwOuGH3j5t8//86U\njHxRxHxI+ilwRkR8t+i+VJmka4D1EfHxovtinZO0iOQP2BTgCxFxft3zbwf+muSP6q+A96UHbmrP\nTyGplLdExJtb7ct/VaxQko6U9DJJz5P030mWlHyz6H5Z59IAWgYsAg4nOXo9p67Z/cAxEfEqkgr8\n4rrnzwLW08bUgkPMinYA8D2Sv8afBf4yItYW2yXr0nxgY0RsiojtJHPDJ2cbRMQdEfFk+nAFyVF5\nACTNIFnK8gXaWO7jo5M5iYiDi+5DFUXEt0gWlVr/mM7YpTJbSOYemzmDZNF2zWeBvwL2aWdnrsTM\nLG9tT7RLeiPwbpJzlklXCDwaEdllRy31rBKT5CMGZgWJiK5OhJ/o72/d/rYCMzOPZ5JUY/X7eBVw\nCbAoPcsF4PXASZJOAPYE9pH0xYiov9DAzvfp1dFJSVH2I5/nnnsu5557btHdaKrs/YPy97Hs/YP8\n+ygplxBbecyCttq+7pYfjNlfegravSTnuj4E3AmcGhEjmTazgO8Cp6XnuTbqw7HAR8Y7Ouk5MTPL\nVUTskLQEuJFkicWlETEiaXH6/EUk6/L2Ay5M1o6zPSKarUdsySFmZrmLiBtIFjZnt12U+fw9JBc7\naPUeN5Oca9vSQE/sH3fccUV3oaWy9w/K38ey9w+q0ccyG+g5MbN+VPSc2GQb6ErMzKrPIWZmleYQ\nM7NKc4iZWaU5xMys0hxiZlZpDjEzqzSHmJlVmkPMzCqtZYhJukzSNkl3Z7a9SMnt5n8s6SZJ+/a+\nm2ZmjY1XiV1Ocp3srHOAb0fEy4H/Sh+bmRWiZYilt3Z/om7zSey8tdUVwFt60C8zs7Z0Mic2LSK2\npZ9vA6bl2B8zswnpamI/vUyFL1VhZoXp5KKI2yQdEBGPSHoJyd2RG3rru0bvWM+cuccxZ+5xHexu\np9OOLuxqH2alNTw8zPDwcNHdKMy41xOTNARcFxGvTB//E/B4RJwv6Rxg34jYZXJfUiy9+OlxO3DE\n7D066HZjDjmzwbueWMtKTNJXgGOB/SVtJrku9nnAVyWdAWwC/qybDqzb8OyEX9Ms+K68tXEgO9zM\n+lfLEIuIU5s8dXwP+tK2VsHXKOAahZuDzax3JC0CLiC5UcgXIuL8uuffDvw1yb0lfwW8LyJ+lD53\nGfAmkvtPvnK8ffX0RiEjqx+YUPs58w7qep/NAq4+3BxsZr0haQqwjKTY2QqslLQ8e8s24H7gmIh4\nMg28i4Ha+PVy4PPAF9vZX6nudtRu6HUSdvXh1k7F5lAz68h8YGNEbAKQdDVwMjAaYhFxR6b9CmBG\n5rlb07n4tpQqxNrVKuzaDTiHmlnPTAc2Zx5vAY5q0f4M4PpOd1bJEGulWcCNF24TDTUHmllTba8d\nlfRG4N3Awk531nch1kx9uHUbaq7SrN8NHXt4w+23b3qY2x94uNVLtwIzM49nklRjY0h6FXAJsCgi\n6k9vbNvAhFi9XoaaA8362cKhl7Bw6CWjjz9zy131TVYBh6bzWg8BpwBjVjpImgV8HTgtIjZ205+B\nDbF63YSaA81sp4jYIWkJcCPJEotLI2JE0uL0+YtI1pzuB1woCWB7RMyHMetTX1xbnxoRlzfbX0/v\nAH7SX27oyXsXod0DBq3OQHCg2WTIa8X+Y3/37rba/v4nLivvin3bKVuptQq0dio0h5lZfhxiHWh3\n6Nks0DzcNMuPQywH7VRpDjSz3nCI5SyPQHOYmbXPIdZDEwk0V2dmnXGITZLxAs3VmVlnHGIFaDfQ\nHGZm4+tpiE3kahMjqx9gzryDJnz5nqqrfb3tVmcOM7OxSlOJ1X6JGwVZszDsp8CbaHXmMDNLlCbE\nOtFupVe1sGunOnOYmSUqd9pRHld/rVqotfqa688KcJiZTzsquU6vF9aqbdlDzZWZWXOVC7FmWv2i\nj6cqoeYwM9tV34RYTe0oZzfKHmqtDgI4zGzQPK/oDvTCyOoHcg2eOfMOGv0om2Zf57oNz45ZotHs\nnpxmVdeXIVbTiwqqjIHWKrTrg8xhZv2m74aT9bqZKxtP9j3LMORs9rV6iGn9rK8rsay8h5j1ylSh\nNftaPcS0fjQwIVbT6zADKhVmHmJa1Q1ciNUMWpg14vky6xVJiyRtkHSfpKUNnp8t6Q5Jz0j6cN1z\nZ0taJ+luSVdJan7jCgZgTmw8E73LUSfKMHc2kfkyz5VZNyRNAZYBx5Pcg3KlpOURMZJp9jjwQeAt\nda+dnm6fExHPSroG+HPgimb7G9hKrJlahdarsCm6Mms1xKxxVWZdmg9sjIhNEbEduBo4OdsgIh6L\niFXA9gav3w2YKmk3YCpJEDY18JVYK3mc4jTe64uszFyVWY9MBzZnHm8BjmrnhRGxVdK/AA8CTwM3\nRsR3Wr3GIdaBPMOtyGuotRpiejmGNXP7poe5/YGHWzXpuIyXtB9wEjAEPAl8TdLbI+LLzV7TcYhJ\nOhs4g6TDdwPviohnW7+qv7UKo6KHka00CjNXZbb3kfMabv/TI+FPM48/c8uS+iZbgZmZxzNJqrF2\nHA/8NCIeB5D0deD1QL4h1snk26Arw2LY8TQbYjrIbIJWAYdKGgIeAk4BTm3Stv4H6gFggaS9gGdI\nQu3OVjvrZjhZm3z7HW1Mvlk1jFeVeXhp44mIHZKWADcCU4BLI2JE0uL0+YskHQCsBPYBnpN0FnB4\nRNwp6VpgNbAj/ffiVvvr+KKI6U4/yc7Jt3fUPd+TiyLa5Gk0BM5ehNFBVk55XRTx6f9Y1lbbvU5e\nUr2LIrY7+bZh5edHP9//wPnsP72tAxRWEq7KqmF4eJjh4eGiu1GYjioxSW8D/jQi3pM+fgewICI+\nkGnjSqyPuCqrjkGrxDpd7Do6+SZJJJNv6/PrlpVNo0Wy9edgmhWho+Fku5NvE73vpJVfqyOYPnpp\nRejp3Y6WXvx0T947y+FXDA8vy2vQhpOVX7Hf6JfJwdZ77Uz6O8hsMvTlCeDZCxSWeaV8P2h1Mrnn\nyWwyVL4Sa0ezIHPFlo9WJ5NfyR6uyKynBiLEmin7rdmqpNXJ5OekK23OO3PPye6WDYC+HE52ykPQ\n7rX6Q3DOJc9MYk9sUDjEmnCgdc5BZpPJIdYGh9nEtbo6roPM8uQQmwCH2cQ1CzMHmeXFIdYBB9nE\nOcisVxxiHXKQTVyjqsxBZt1yiHXBQdYZB5nlySHWJQdZZ+qrMgeZdcohZoVykFm3HGI5cDXWHQeZ\ndcMhZqXgIOsvkhZJ2iDpPklLGzw/W9Idkp6R9OG65zZJ+pGkNZJa3ukIHGK5cTWWLwdZdUmaAiwD\nFgGHA6dKmlPX7HGS2z7+c4O3COC4iJgbEfPH259DLEcOsu74qGXfmA9sjIhNEbEduBo4OdsgIh6L\niFXA9ibv0falTxxiVioOsr4wHdicebwl3dauAL4jaZWkM8drPNCX4umFOfMO8iV9cnbOJc/4Mj4l\ncsvdP+aWdfe1atLt1TAXRsTDkn4f+LakDRFxa7PGDrEecJB1p9FFFh1kk+/XL53bcPtrXzqX12YG\nh5+6+ob6JluBmZnHM0mqsbZExMPpv49J+gbJ8LRpiHk42SOeH+uOz7WstFXAoZKGJO0OnAIsb9J2\nzNyXpKmSfi/9/AXAnwB3t9qZQ6yHHGTdcZBVU0TsAJYAN5Lcj/aaiBiRtFjSYgBJB0jaDJwN/K2k\nByXtDRwA3CrpLmAF8K2IuKnV/ip/y7Yq8NCyO/V/DI6Y7ev2t5LXLdt+dvftbbXd/5ULK3kHcLNJ\n44rMWnGITQIPK/PlW8JZlkNskjjIuuMhuTXjEJtEDrLu1AfZug3Puhozh5hVi4PM6jnEJpmrse45\nyCzLIVYAB1lvOMgGk0PMKqlRNQYOskHkECuIq7HuOcgMuggxSftKulbSiKT1khbk2TGzdjQLMhsc\n3VRi/wpcHxFzgFcBI/l0aXC4GsuHJ/oHW0chJumFwNERcRkkJ3xGxJO59sxsAhothnWQDYZOK7GD\ngcckXS5ptaRLJE3Ns2ODwtVYb3hYOTg6vSjibsA8YElErJR0AXAO8LFso9uWf3L081mHHcOsw47p\ntJ99zRdRzEf9xRTXbXiWK+n/K14MDw8zPDxcdDcK09GleCQdANwREQenj98AnBMRJ2ba+FI8E+AQ\ny082yI6YvQdA3wdZli/F04aIeATYLOnl6abjgXty69UA8rAyP9k/CF520f+6OTr5QeDLktaSHJ38\ndD5dMsuXg6y/dRxiEbE2Il4XEa+OiLf66GT3XI3lx+vHBodX7Fvf8rKLweAQKxlXY73jYeXkkbRI\n0gZJ90la2uD52ZLukPSMpA9nts+U9D1J90haJ+lD4+3LIWZ9zcPKySdpCrAMWAQcDpwqaU5ds8dJ\n5tX/uW77duDsiHgFsAD4QIPXjuEQKyFXY/nysHLSzQc2RsSmiNgOXA2cnG0QEY9FxCqS0MpufyQi\n7ko/f4rkdMYDW+3MIWYDodGyC+uZ6cDmzOMt6bYJkTQEzCW5/2RTna7Ytx7zKv7eGpTV/L1w28rV\n3L5yTasmXZe56Y10rwXOSiuyphxiNjDqT0uCZFjpIGts0+6zG26fsXA2pyz8i9HHn7nwsvomW4GZ\nmcczSaqxtkh6PvDvwJUR8c3x2ns4WWKeG8ufV/NPilXAoZKGJO0OnAIsb9J2zF8QSQIuBdZHxAXt\n7MwhZgPN82P5i4gdwBLgRmA9cE1EjEhaLGkxJOdfS9oMnA38raQH0yHkQuA04I2S1qQfi1rtr6MT\nwNvhE8Dz47mx/PXzSeJ5nQC+6t7H22p75GEvrt4J4Da5PKzsLVdj1eYQs4HktWP9wyFWEa7G8udJ\n/v7gEDNLeVhZTQ6xCnE1lj8PK6vPIWaW4WFl9TjEKsbVWP68hKXaHGJm+ATxKnOIVZCrscnhIWU1\nOMQqykGWP1dj1eQQM2vB1Vj5OcQqzNVY/rwAtnocYmYteFhZfg6xinM1lj8vgK0Wh1gfcJD1lqux\ncnOImTXgaqw6HGJ9wtVYb7kaKy+HmFkTrsaqwSHWR1yN2SByiPUZB1m+vG6sM5IWSdog6T5JS5u0\n+Vz6/FpJczPbz5J0t6R1ks4ab18OMTPLlaQpwDJgEXA4cKqkOXVtTgAOiYhDgfcCF6bbjwDeA7wO\neDVwoqSXtdpfVyEmaUp6S6Xrunkfy5ersXy5Gpuw+cDGiNgUEduBq4GT69qcBFwBEBErgH0lHQDM\nAVZExDMR8TvgZuCtrXbWbSV2Fsl95fw/WjIOMivQdGBz5vGWdNt4bQ4E7gaOlvQiSVOBNwEzWu1s\nt057KWkGcALwKeB/dfo+ZlUwsvqB0T8M6zY8O3qvykG0asVt/PDO21s1abeo2eVelRGxQdL5wE3A\nr4E1wHOt3qTjEAM+C/wVsE8X72E9NGfeQb5qaQ9deWv0zQ13GxnZtl/D7S8YejPHDL159PEly/6p\nvslWYGbm8UySSqtVmxnpNiLiMuAyAEmfBh5s1c+OhpOSTgQejYg1NEhTs37k6421bRVwqKQhSbsD\npwDL69osB04HkLQA+EVEbEsf/0H67yzgfwBXtdpZp5XY64GT0iMMewL7SPpiRJyebXTb8k+Ofj7r\nsGOYddgxHe7OOuVqrLfKUI0NDw8zPDxcaB+yImKHpCXAjcAU4NKIGJG0OH3+ooi4XtIJkjaSDBvf\nlXmLayW9GNgOvD8iftlqf4robk5e0rHARyLizXXbY+nFT3f13pYfB1l+sgdNjpi9R+EhVk8SEdFV\npyTFl25pORU16h3HPK/r/XUjr3ViPjppA8vLLYrVdYhFxM0RcVIenbHe8ZIL61desT9AHGT58OLX\nculmicW4Wq2l8dEdM8tDYZXYEbP32OXDes/VWD683KI8SjWcdKBZlXlIWYxShViWA613XI1ZPylt\niGU5zPLnIOueJ/jLoacT+3nLBpnnIcwMKlKJNeLqrHuuxrrnMyGKV9kQq3GYWVl4SFmMyodYjcOs\nM67GrOr6JsRqHGRWJM/VTr6+CzFwVTZRrsa64/tTFqsvQ6zGQWbW//o6xMBB1i5XY93xaUjF6fsQ\nAw8vrRgeUk6OgQixGgdZa67GrIoGKsTAQWa94yFlMQYuxMBB1oqrMcuDpEWSNki6T9LSJm0+lz6/\nVtLczPZ9JV0raUTS+vRuSE0NZIiBg8wmxyDOi0maAiwDFgGHA6dKmlPX5gTgkIg4FHgvcGHm6X8F\nro+IOcCrgJFW+xvYEAMHWTOuxqxL84GNEbEpIrYDVwMn17U5CbgCICJWAPtKmibphcDR6Q10iYgd\nEfFkq50NdIiBg8zy5XkxAKYDmzOPt6TbxmszAzgYeEzS5ZJWS7pE0tRWO6vUpXh65YjZewzyD1xD\nvulufspwg91ONPudePDeW3jw3ltavbTdMXT9NyVIMmkesCQiVkq6ADgH+FizN3GImdmEzDrsGGYd\ndszo49u/9an6JluBmZnHM0kqrVZtZqTbBGyJiJXp9mtJQqypgR9O1nhYaXnxkJJVwKGShiTtDpwC\nLK9rsxw4HSA9+viLiNgWEY8AmyW9PG13PHBPq531NMTmTHuil2+fOwfZWJ7gz88gHaWMiB3AEuBG\nYD1wTUSMSFosaXHa5nrgfkkbgYuA92fe4oPAlyWtJTk6+elW++v5cLJZkI1s26/Xu+6I58fMuhcR\nNwA31G27qO7xkiavXQu8rt19FTYnlg23sgaamZVfKebE5kx7olRDTw8rd/KQsjOeF5s8pQixmjKF\nmYPM8jZI82KTqVQhVlOWMHOQmZVfKUOsphZmZQi0QeYhZWe8WHhylDrEsooKM1djlgfPi/VORyEm\naaak70m6R9I6SR/Ku2PNuCqzKvO8WP46rcS2A2dHxCuABcAH6i+10UuTXZW5GvOQ0sqroxCLiEci\n4q7086dIrvdzYJ4da4erMis7z4v1XtdzYpKGgLnAim7fqxOTVZW5GrNueV6sN7pasS9pb5KzzM9K\nK7IxLvr8+aOfv3b+Qo486g3d7K6lOdOe8Mp/G0jDw8MMDw8X3Y3CKKKziUZJzwe+BdwQERc0eD5W\n3ft4l92buF4Gmf+SenjUiex8Yq2i7+X1xSQREV3tQFIsvfjpttqe/969ut5fNzo9OingUmB9owDr\nVx5SmpVPp3NiC4HTgDdKWpN+LMqxXx3zZL+Vjc+j7K2O5sQi4jbaCMCh324AYNPuszvZTcd6OT/m\nS/WYlcukXIqnFmZZkx1sZtafCrueWDbYHGhm1qmehtgL7l/TcPuvXzp3zONeDDu95KI3fBekfFT1\nDkhl1NMTwJ9atbrh9hfcv2b0I6vRsLOMfJTSJmrQJvclLZK0QdJ9kpY2afO59Pm1kuam2/aUtELS\nXel52eeOt6+eDycbBdneR84b/fwF968ZU5kVdTDAzPIhaQqwjORORVuBlZKWR8RIps0JwCERcaik\no4ALgQUR8YykN0bEbyTtBtwm6Yb0LuEN9bQS23TzejbdvH6X7U+tWj0m3KpclZnZLuYDGyNiU0Rs\nB64GTq5rcxJwBUAaUPtKmpY+/k3aZnfg+cBzrXY2KRP79UE2dOzhwM4qrVaZ1YKsVpkN/XZDaSsy\nL7Uwa2o6sDnzeAtwVBttZgDb0kruh8DLgGWZG+k2VMhFEesrtEaVWc3Qbze4KjOrlnbPZaw/shEA\nEfG7iHgNSagdJekVrd6ksCUWkIRZrSqDJMyyVVn9XFlZqzKzdoysfqBS12VrdhT6Z1tX8LOH7mz1\n0q3AzMzjmSSVVqs2M9JtoyLiSUnfAxbR4i7ghV+eulFVVlM/V+aKzPrFug3PVvYqr/tPP4rZr/vg\n6EcDq4BDJQ1J2h04BVhe12Y5cDqApAXALyJim6T9Je2bbt8L+GOS6xU2VXiI1UxkeFkWg7rUokrV\nhE2+iNgBLAFuBNYD10TEiKTFkhanba4H7pe0EbgIeH/68pcA35W0FrgTuClt21RPh5NDxx7e8Ohk\nM7W22Yn/7HKM0ff10NL6wLoNz8LRexbdjZ6IiBuAG+q2XVT3eEmD190N7PpL30JPK7G9j5zH0LGH\nj360q9Hw0kswrN8MaiWft55WYr9+6Vz00rmjATSUbm+nOquf9IddJ/vH41OPzPpfbxe77j6bTbvP\n5p7ZpyaB9mdnjKnOxn19GnbdzI/5+mJWVl5nmI+eVmJfu3kqkJbN05I5rKGXwt7p80O0V5VB8/mx\nonnRq3XKw8l89LQSO+/MPTnvzD352lU/5ms3T2Vk235jKrN2qrLx5sc8N2ZVMmgngk+GSVli8R8X\nHsZ5Z+7JaUdrTJjVggxoO8hqml3mx8wGy6Sv2D/vzOSQ8pW37gfTZk94eFnWYaVZJ3xdse4Vtti1\nVpXd8MQfjj29qElF1ircWg0pfXTSrL8VumL/vDP3ZN2GZ0eDrJ2hJTRfO1bPAWZl53mx7hV+2lEt\nyNqZI5vI6n8zGwyFhxgkQdZosr8dowtpfZTSKsjLLLpXihCDpKyuBVlNq2Fls+v3F8E/iGbFKU2I\n1YaVQMtqzENKM8sqTYjB2GFlzUROHDerGk/sd69UIQa0VY3V1B+l9LyY2eApXYi5GjOziShdiGVN\nZO2YWRX5oFD3ShliniewftbsBhzWmVKGGDRebd/oiheeFzMbbB2HmKRFkjZIuk/S0jw7VTtJvJPF\nrzY5fLMQa6WdfJD0ufT5tZLmTuS1WR2FWHqH3mUk94M7HDhV0pxO3quXxruq68ia4cnpSIcevPeW\norswrp9tXVF0F1oqe/8AhoeHi+5CrtrJB0knAIdExKHAe4EL231tvU4rsfnAxojYFBHbgauBkzt8\nr8I4xLo3zk1UC1f2/kH/hRjt5cNJwBUAEbEC2FfSAW2+doxOQ2w6sDnzeEu6LTee3DerrHbyoVmb\nA9t47RhlpfY4AAADW0lEQVSdhlg1b11sVjJ9+se63XzI52qQETHhD2AB8J+Zxx8Flta1CX/4wx/F\nfHTye93N728H+fB/gT/PPN4ATGvntfUfnV6eehVwqKQh4CHgFODUbIOI8DV3zSqqy9/fcfMBWA4s\nAa6WtAD4RURsk/R4G68do6MQi4gdkpYANwJTgEsjYqST9zKz/tIsHyQtTp+/KCKul3SCpI3Ar4F3\ntXptq/0pLdnMzCqpJyv2e7kQtluSZkr6nqR7JK2T9KGi+9SMpCmS1ki6rui+1JO0r6RrJY1IWp8O\nCUpF0tnp//Hdkq6SVPiJipIuk7RN0t2ZbS+S9G1JP5Z0k6R9i+xj1eQeYhVYCLsdODsiXkEyifiB\nkvUv6yxgPcnkadn8K3B9RMwBXgWUajpB0nTgg8BrI+KVJEOTPy+2VwBcTvK7kXUO8O2IeDnwX+lj\na1MvKrFSL4SNiEci4q7086dIfvkOLLZXu5I0AzgB+AJ5HYrOiaQXAkdHxGWQzGNExJMFd6uR3YCp\nknYDpgJbC+4PEXErUH8qyejCz/Tft0xqpyquFyHW84WweUmPgMwFynhuymeBvwKeK7ojDRwMPCbp\nckmrJV0iaWrRncqKiK3AvwAPkhzl+kVEfKfYXjU1LSK2pZ9vI1lqYG3qRYiVceizC0l7A9cCZ6UV\nWWlIOhF4NCLWULIqLLUbMA/4PxExj+ToUqmGQJL2I6lwhkgq7b0lvb3QTrUhkiNtlfgdKotehNhW\nYGbm8UySaqw0JD0f+Hfgyoj4ZtH9aeD1wEmSfgp8BfgjSV8suE9ZW4AtEbEyfXwtSaiVyfHATyPi\n8YjYAXyd5PtaRtvS8waR9BLg0YL7Uym9CLHRhW6SdidZrLa8B/vpiCQBlwLrI+KCovvTSET8TUTM\njIiDSSajvxsRpxfdr5qIeATYLOnl6abjgXsK7FIjDwALJO2V/p8fT3KQpIyWA+9MP38nUMY/rKXV\n6Yr9piqwEHYhcBrwI0lr0m0fjYj/LLBP4ynj8OKDwJfTP1Q/IV2sWBYRcaeka4HVwI7034uL7RVI\n+gpwLLC/pM3Ax4DzgK9KOgPYBPxZcT2sHi92NbNKK+3lqc3M2uEQM7NKc4iZWaU5xMys0hxiZlZp\nDjEzqzSHmJlVmkPMzCrt/wPB9qKkpE5ifwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "displacement_mag = np.sqrt(displacement[:,0] * displacement[:,0] + displacement[:,1] * displacement[:,1])\n", "disp_mag = scipy.interpolate.griddata((X, Y), displacement_mag, (grid_x, grid_y), method='cubic')\n", "disp_mag[interior] = np.nan\n", "plt.figure()\n", "plt.gca().set_aspect('equal')\n", "plt.contourf(grid_x, grid_y, disp_mag, cmap=\"coolwarm\")#,levels=np.linspace(0.0, 0.06, 50))\n", "plt.colorbar();\n", "plt.title(\"Displacment Magnitude\");" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "stress = problem.compute_stress(displacement).reshape(-1,3)\n", "x_gauss_pt, y_gauss_pt = problem.compute_gauss_point_locations(deformed_pos)\n", "\n", "\n", "stress_x = scipy.interpolate.griddata((x_gauss_pt, y_gauss_pt), stress[:,0], (grid_x, grid_y), method='cubic')\n", "stress_y = scipy.interpolate.griddata((x_gauss_pt, y_gauss_pt), stress[:,1], (grid_x, grid_y), method='cubic')\n", "stress_xy = scipy.interpolate.griddata((x_gauss_pt, y_gauss_pt), stress[:,2], (grid_x, grid_y), method='cubic')\n", "stress_x[interior] = np.nan\n", "stress_y[interior] = np.nan\n", "stress_xy[interior] = np.nan\n", "\n", "\n", "plt.figure()\n", "plt.gca().set_aspect('equal')\n", "plt.contourf(grid_x, grid_y, stress_x, cmap=\"coolwarm\",levels=np.linspace(-1, 2, 50))\n", "plt.colorbar();\n", "plt.title(\"$\\sigma_{xx}$\");" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.gca().set_aspect('equal')\n", "plt.contourf(grid_x, grid_y, stress_y, cmap=\"coolwarm\",levels=np.linspace(-1, 2, 50))\n", "plt.colorbar();\n", "plt.title(\"$\\sigma_{yy}$\");" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAT8AAAEICAYAAAAp2fO+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXm8XWV577+/MycMCflggZj4YRBkUiYlUWsNCjYXLbb1\naqVqrbV2cqC0VdC2gre1hVoHvA63Kg51QLlQvahAQeQAIoQpAQIJMZAoYYggkyE55+xzznP/WGvt\nrLPPWnuvPa+19/P9fNYne4372Tln/87zvs/7vj+ZGY7jOP3GQLcDcBzH6QYufo7j9CUufo7j9CUu\nfo7j9CUufo7j9CUufo7j9CUufo7j9CUufo7j9CUufn2MpMMkXSzpWkm/lvR9SX/R7bgcpxPIZ3j0\nJ5KWAJcAp5rZhKTvAW83s6e7HJrjdATP/PqXdwOfNbOJcH8U2NnFeByno7j49S97AfcCSDoKuMfM\nSt0NyXE6hzd7+xRJBwGnAduAZQRZ4LSkA4AjgVcD2wkE8kngDWb2QUnnAB83sx1dCt1xWsJQtwNw\nuoOZbQEuSDglM7tG0puAjwDTwG8Ai8LzB7nwOb2Ai59TyQ5J+wG/JOgHHAWeBX4laRjwprHTE3if\nn1PJPwCrCATvVWb2DDABDALvB+7oXmiO0zq8z8/JjKSPAv/HzB7sdiyO0yze7HVqIukdwA7gLhc+\np1fwzM9xnL6kbZmfJFdVx+kSZqZm7q/3+9vs+3WDthY8zCzX2znnnNP1GIocXxFizHt87YixVVyx\n1+GZtqLi1V7HcfoSFz/HcfqSvha/VatWdTuEquQ9Psh/jHmPD4oRYy/StmqvJGvXsx3HSUcS1oKC\nx4+f/6JM175q811Nv1836OvMz3Gc/sXFz3GcvsTFz3GcvsSntzmOk8iCJaPdDqGteObnOE5f4uLn\nOE5f4uLnOE5f4uLnOE7LkbRa0kZJP5N0VsL5RaFP9DpJ6yX9cXh8TNKa2PFzY/d8W9LacNsiaW0z\nMXrBw3GcREb2HGnoPkmDwGeAk4GHgFslXWZmG2KXvRtYb2a/I2lf4D5J37DAQ/okM9spaQj4iaQr\nzGyNmb059h7/DjzV6GeDGpmfpC9L2i7p7tixJZKulrRJ0lWSFjcTgOM4PceJwGYz22qBHeq3gddX\nXDML7B2+3hv4lZlNA5hZ5B89AgyH15aRJOBNwEXNBFmr2fsVYHXFsbOBq83sMOCacN9xHCfiuUB8\nxe9t4bE4nwGOlPQwcCdwRnRC0oCkdQTWqVeZ2a0V974C2G5m9zcTZFXxM7MbCDxb45wGfC18/TXg\nd5sJwHGcniPLpP7VwB1mthQ4FvispL0AzGzWzI4l8JNeIemointPB77VbJCN9PntZ2bbw9fbgf2a\nDcJxnPwxmtLnd8vjT3Lr41W72x4Clsf2lxNkf3H+GPhXADO7X9IW4AXAbdEFZva0pGsJhPIegLAf\n8PeA4+v4KIk0VfAwM/Pl6h2nvzhx3304cd99yvuf37S18pLbgEMlHQg8DPwBQbYW5xcEBZEbQ5/o\nFwAPhMWPaTN7StIC4BTgvNh9JwMbzOzhZj9HI+K3XdL+ZvaopAMIzK0TOffcc8uvV61a5euWOU4b\nGB8fZ3x8vNthlDGzaUnvAf6bwO/5QjPbIOnPw/P/AfwT8FVJdwECPmBmT0h6IfC1sGI8AHzHzC6P\nPf4PaLLQEVFzPb9Qvb9vZi8M9/+NoDJzvqSzgcVmNq/o4ev5OU53aNV6futPOynTtUdfdm0h1/Or\nmvlJugh4JbCvpAeBDxOkoBdLeiewlaDknMgD99cuxkyRPnn68EOW1bzfcRynEaqKn5lVttMjTm5V\nACNMAskiuPH+yj7S+bhAOk57GF7Y2CDnopCbGR7VRLAacYEs2fCccy98vheiHcdJJjfiFxGJINQv\nhMMqlV+XbJi7N2+fd40LouM4kEPxixMXwoisglgphBGVguhi6Dj9Sa7FL4lKQcwihmlCCC6GjpPG\nyB69vZJz4cSvknqzw2pCCHPFcGo2OH/CYUuaCdFxnBxSePFLImu/YVwIYb4YjgwE5+/evL0shOBi\n6Di9QE+KX5x6msnVssJICAFu3/RE+bULoeMUk54Xv0qyimEWIZyaHXYhdJyC0nfiV0kWMUwTwng2\n6ELo9BrDe4x1O4S2UljxG56dX+ioRWmgdvWqVn9hLSGM+gZdCB0n3xRS/BoRvrT7qgliViGslg2C\nC6Hj5JFCil9pYLRhAawk/pysQghzxTBrNgi7hdBF0HG6SyHFD1orgBGVz2skK0wSwmrZ4NRM8CN4\n6RF74zi9gqTVwKcI1vP7kpmdn3DNKuCTBCZFj5vZKkljwHXAKIE+XWJm54bX/xOBjcYswTqif2xm\njzQcY7vW3JNk92/e3JZnV9JqEUwiS39hWuU4aTB1PBsEF0GndbRqPb/tZ78t07X7nff1Oe8XLkR6\nHzHrSuD0uHVl6Pp4I/DbZrZN0r5m9nh4bmHcuhI4w8zWSNrLzH4dXvNe4Egz+8tGP2NhM7847cgC\nK8mSFaY1jatlg5EIjgxOA3DThmcAF0Gn0JStKyEwGyewroz79v4hcKmZbQOIhC98nWhdGQlfyJ5U\nWFrWSy3rysJQGhjNlJ21iuHZyfKWxgiT8wRxWKU5YjgyUJrTLB4ZnGZkcJqbNjxTFkLHKRhZrCsP\nBZZIulbSbZLKaWY160pJH5X0CwLx/HAzQfaM+EV0WgRhrhAmiWEkgnEhjEQwEsJIBCMhrBRBF0Kn\nQGTpSxsmcGA7Ffht4B8lHQrVrSvN7O/N7HnAN4H3NhNkTzR7k4gLYCf6BONUqyAnFUoqh8zEm8RR\nc3hqZsibxE5HGVyQPMj5J1se5satVesMWawrHyQocuwCdkm6HjgG+Fl0QZJ1ZYxvAT8Ezq35QVLo\nWfGLk3chdBF0isRvHrSU3zxoaXn/Y+N3VF6Sxbry/wGfCYsjo8AK4BPVrCslHWpmkThW9iHWTV+I\nX5xKAeqkGKYJYZoIQiCELoJOkchiXWlmGyVdCdxFULj4opndW8O68l8lvSC8fivwF83E2RNDXVpF\np7PCiKQ+ysphM/HhMvFhMtEQGXARdAJaNdTl8Y+8K9O1+57zxUJaV/ZcwaMZomJJtwomcdIKJEBi\nYQSCYTLj63d1KGrHKTZ91+zNSjeax0nN4mr9gpXN4amZIUYHS9y0ocTkzDCrjl7Q9pid3mVoQW8v\nY++ZX0Y6nRVWZoO1MkGYmwUGIujDYxwnDc/8GqCT1ePo+bUywejPWFJRxLNAx5mPi1+TdEoIK5vE\nSSKYVhkGvCnsOBW4+LWQTgthpQhm7Q/0qrCThcGFvf2H0sWvTURCmAcRTGsKA54JOn2LFzzaTCcK\nJfHiSLwwEhVFKofGQFAQGR0s+dAYp2/xzK+DtDsbHJ6dTCyMVPYHRkRN4fH1wb5ngU4/4ZlfF2hn\nNpg0RAaqD43xLNDpRzzz6zLtygZr9QdWDo2JZ4GeAToAA2O9bV3ZcOYn6UxJ6yXdLelbknp7OHib\naTYTHJ5JFs9q/YGQnAX6NDmnH2hI/CQ9l2AhwRPM7IUEKze8uZWB9SvNiODwzGRVEYzIWhBxAXR6\nmWb6/IaAhaHJyEKCBQydFlFvv2BpMDbGMEUEPQt0nN00JH5m9hDwceAXBIsVPmVmP2plYM5uGhFA\nqE8Es2SBLoL9hUbHMm2J90qrJW2U9DNJZ6W+h/QSSdOSfj/cXx76etwTdqu9L3btMZJuknSXpMsk\n7dXM52uo4CFpHwL/zAOBp4H/K+ktZvbN+HUXXHBB+fWKFStYuXJl45H2OVkLI5EAxkUvej1PHCuG\nxlQOi6kshkzODDO+fpcXRHLG+Pg44+Pj3Q6jTLgQ6WeIWVdKuixuXRm77nzgSiBaD7AEnGlm6yTt\nCdwu6Soz2wh8CfgbM7tB0juA99OEiVFDi5lKeiOB3+afhvtvA1aa2btj1xRuMdMikbU6nJT5VYog\nzM0uo/nC0QKq0eKp0cKpPkc437RqMdOdX/9opmsXvu3vK317XwqcY2arw/2zAczsvIr3+GtgCngJ\n8AMzuzQhju8B/9vMrpH0lJktDo8vB640s6Mq78lKo31+PwdWSlogSQQKf2+jQTj1k7U/MEno0prC\nEdX6AsGbwU5NalpXhkXT1wOfDw/Ny8JCD5DjgDXhoXskvT58/UbmmiTVTUPNXjO7RdIlwB3AdPjv\nF5oJxGmMLM3hrE3hpLGB5cZIwp9Jbwb3J9dveIDrN2ypdkmW5uSngLPNzMIEak6mGjZ5LwHOMLMd\n4eE/AT4t6R+BywiyxoZxD48eo1Zz2JvBvU+rmr27Lv73TNcueNPfVTZ7VwLnxpq9HwRmzez82DUP\nsFvw9gV2Au8ys8skDQM/AK4ws0+lxHcY8HUzW1H/pwvw6W09Rq2mcGlwNFNVuLIiDLWbwY4TUrau\nlDRCYF15WfwCMzvYzA4ys4MIMry/DIVPwIXAvZXCJ+k54b8DwD+wu8ncEC5+PUiW/sC0vsAkEYT0\nITHxMYHeD+hAYF0JRNaV9xLYT26Q9OeRfWUVXg68FThJ0tpwWx2eO13SfQR+vdvM7KvNxOnN3j6g\n1U1hbwbnm243e4uCL2zQB5QGRhsqiKSNC4yPCQRgIHmBBPBFEgpNygDmXsGbvX1C1qZwUsYXJ216\nXFIzGPBmsJNbXPz6jKxjA6uJYNZiiK8T6OQZF78+pFULqWYphoBXg5184uLXx7RCBGtlgZXVYMfJ\nC17wcGoWRLIQL4YAqTNDxtfD1MwgrzlmpKn3czrA2MJuR9BWPPNzgPZkgfOawmEGODI4w1V3NjUz\nyXGaxsXPmUOr+gKTmsIugE6ecPFz5tHKgsjw7OScLNAF0MkLLn5OKu2oCrsAOnnBCx5OTVpeEBHz\n/uxedeeUF0Fyho34DA/HaVlBBDwDdPKBi59TFy6ATq/g4ufUTdMG6zUE0AdDF59a7m2S3iLpztCJ\n7UZJLwqPp7q3xe79W0mzkpY0E6P3+TkN00xfYLU+QF8ePx/MjjT2By6je9sDwG+Z2dPhen1fAFaS\n7N52dXRvaFx0CoGPUFN45uc0RTNZYLUM0KfDFZoTgc1mttXMSsC3CcyKypjZTWb2dLi7BlgWHn/U\nzNaFr3cQLFy6NHbrJ4APtCJIFz+nJbRaAJ1CU9O9rYJ3ApdXHqx0bwud27aZ2V2tCNKbvU7LyGqs\nXkm1JvD4el8QtYBkXh5e0kkErmwvrzg+x71N0kLgQwRN3vJlzQTZVvHbdNzrOGztD9r5Fk4OaUQE\nIwGMiNYFBBfAvHH9Heu5Ye091S55iLmeussJsr85hEWOLwKrzezJ2PFh4FLgG2b2vfDwIcCBwJ2B\nxxHLCPoDTzSzXzbyOdrq4XHFXoe7+PU51QSw0js47hFSsuE53iDuC5KdVnl4PHPLDzNdu/eJr620\nrhwC7gNeDTwM3AKcHi94SHoe8GPgrWZ2c+y4gK8BvzKzM6vEtwU4wcyeqOuDxfA+P6crJJkmJfX/\nRXgBpDhkdG/7MLAP8PnQoe2W8Hg197Y5b9NsnG3N/HZd/O88fPzvtuX5TnFIyv4qxS++bH5pYHSO\nQ9zU7LA7w9VBtzO/otDezK/H3Z+cbCRVgpOM08uvZxPMkWIVYM8AnVbQ1oKH7d3UAGynxykNjiY2\nfyMii0yYWwDxQdCdYWbYV3JumEZHiDu9R9o4wDSXuMr+vwi3xXRahRc8nI5RTQCTRDCtABIXQMdp\nFBc/p6PUOxMkXixJEkDP/pxGcfFzOk4jU+EqCyARLoBOozQsfpIWS7pE0gZJ90pa2crAnN6mHgGs\nNEMCvALcAaaHRjNtRaWZzO8C4HIzOwJ4EcHqC46TmUYFsNIU3QsgTiM0NNRF0iLgFWb2diiP6H66\n+l2Ok534EJioGFK5AELJgulvUQY4OTPc+UCdwtJo5ncQ8Jikr0i6Q9IXw1UXHKcusgyBqRwAXX7t\nBRCnCRoVvyHgeOBzZnY88CxwdsuicvqKLM3fWjNAIlwAW8f00Fimrag0OsNjG8GigreG+5eQIH4f\nvfA7PLvHOAArVqxg5UqviTjJJC2JXzkDZHhmck5GmDQDJJoD3E8zQMbHxxkfH+92GIWj4YUNJF0P\n/KmZbZJ0LrDAzM6KnbcdN17K9v2OaU2kTl9QKYBJ09/SlsACyosg9PMCCK1a2OCRDXdkuvaAI47v\nu4UN3gt8U9KdBNXef2lNSI6zm7Tpb1B7Cpw3f51qNCx+Znanmb3EzI4xs9+PmZE4TsM0sgJM+bX3\n/+WGWtaV4TWfDs/fKem48FiqdaWkJZKulrRJ0lWSFjcTo8/wcHJHvQUQ8AHQ7SCac11rqyRmXbka\nOBI4XdIRFdecCjzfzA4F/gz4fPS2BNaVRxFYWb5b0uHhubOBq83sMOAamiyyuvg5hSBx4YNQALMM\ngHY6Sk3rSuA0guXqMbM1wGJJ+6VYVz638p7w36ZWSnbxc3JJluZvnMrmb4T3/3WFLNaVSdcsi19Q\naV0J7Gdm28PX24H9mgnSxc/JLT7+r7BkHUJSWSEu31dpXTnvDYJhKk15cLhvr5NrKsf/Ja3+XM/4\nPyc7aX98br75ZtasWZN4LiSLdWXlNcvCY2nWlQDbJe1vZo9KOgBoyLIyoq0GRj7Oz2kFjRggQf9a\nYLZqnN/9mzdnuvaQ5z+/EevKU4H3mNmp4YpQnzKzldWsKyX9W3j8fElnA4vNrOGihzd7ndzjw1+K\nRRbrSjO7HHhA0mbgP4C/Cm+vZl15HnCKpE3Aq8L9hvHMzykM9WSAtWZ/AD2bAXY78ysKnvk5haHZ\n9f/A/T+c3bRV/Aam0m0JHacVePO3fUwxmmkrKp75OYWi3vF/UH32h9O/uPg5haNW8zcp+/PFD5xK\nXPycnqBW9heR1Px1+hMXP6eQ1Gr+pmV/EfHmr2d//YmLn1NY6un/87m/9VOy4UxbUXHxc3qOsttb\nwirQldlfhDd/+w8XP6fQtGrsH3jzt99w8XN6krSFNuP42L/+xpe6cApPkvNbGnHj86SVX4Lmb29O\ne6uXaEGIXsUzP6cnqKf5G8ebv/2Li5/Td6QNfYnw4kd/4OLn9AyNFD/As79+xcXP6Ws8++ssWe0n\nJX1Z0nZJd1ccP1bSzeE6f7dKeknF+edJ2iHpb2vF4uLn9BSe/bWOqZmhTFudZLWf/AqB9WUl/wac\nY2bHAR8O9+N8AvhhlkBc/Jy+J8n0yNf9axuZ7CfN7AbgyYRTs8Ci8PViQt8PAEm/CzxAsHp0TVz8\nnJ6j0ewvIt78vWnDMy2JySnTrP3kXwMfk/QL4GPAh6Ds9vYB4NysD/Jxfo7Dbse3YZXK81VHBqfd\n9a0BJF0N7J9w6u/jO2Zmkur10fgr4K/N7LuS3ghcCJxCIHqfNLOdoQlSTfwn6/QkjQx8jjMyUCoP\n8r1pwzO89Ii9Wx5j3om8TipZd+v1rLv1+tT7zOyUtHNhEaMZ+8k/MrP3ha8vAb4Uvj4ReEPo8LYY\nmJW0y8w+l/YgFz/HCfHsLxvHvuS3OPYlv1Xe/9rn/6We2y8D3g6cH/77veqXz+NhSa80s+sIHNw2\nAZhZOSBJ5wC/riZ84H1+Tg/T6KyPCO/7awuJ9pOSlkoqV2klXQT8FDhM0oOS3hGeehfwcUnrgH8G\n/qzRQPxPmuMwf86vZ3/twcyeAE5OOP4w8NrY/ukp998IvLjGe3wkSyxtzfxmR4rr7OT0Bp79OWk0\n9edM0iBwG7DNzH6nNSE5Tnfw7G8uUzOD3Q6hrTSb+Z1BMKCw3nK143QMz/6cJBoWP0nLgFMJSs2Z\nxtU4Tt6pXPEladqb0xs0k/l9Eng/wXQTx8k1nv05lTTUiSHpdcAvzWytpFWtDclxukvSas8R/dT3\nNznd2yPhGv0pvgw4TdKpwBiwt6T/NLM/il/00Qu/w7N7jAOwYsUKVq5c2UysjtMU9cz6iBMVPuKz\nPvLE+Pg44+Pj3Q6jcMisuVqFpFcCf1dZ7ZVkO268lO37HdPU8x2nlWQVv3gzeYrRctU3Er+pmaHc\nTnmThJk11Q8vyS67LduqNqe9eLjp9+sGrcprvdrrFIKsfX+VIhkVPuJ9f06xaVr8zOw6MzutFcE4\nTlEYGZz2wkfB6Y+e2wTSmj/NVgWd3qHaoOd+wAseBafeDu7K610Me49GCx8RUeHDx/0Vm56U9uHZ\nyfLWyme14nlOMUka9Aw+5q/ItHdhg+Gxdj5+Hp0QKBfB3qDRwkdE3OvDKSY9kfl1Q5BcAPuPuM1l\nnF7N/iamlGmrhyzWlZLGJK2RtE7Seknnxs4lWldKGpb0NUl3SbpXUporXJnCil8emqLdfn+nM9Qa\n9uLZX13UtK40swngJDM7FjgWWC3pxPB0mnXlG4ERM3sRcALw55KeVy2QQopf3gQnb/E42fBiVlfI\nal25M3w5AgyzeyxxmnXlLLBHuMzeHsAUUDUlL5T45TnTynNsTuuoLHxE2d/tm57oWkwFI5N1paSB\ncKn67cBVZnZreCrRupLAzGgn8AiwFfiYmT1VLZDCDHUpirAkOYE5+SXrsBf/ue5mw9pxNqwdTz3f\nCutKM5sFjpW0CPiupKPM7B7SrStXANPAAcAS4AZJ15jZlrQ4CyF+RRE+x+klpkrJxYxDjj6JQ44+\nqbz/3a/+rznnW2ldaWZPS7oWWA3cQ7p15R8CV5rZDPCYpMjrI1X8ct/sLaLwFTFmJzve9G2KyLoS\nUqwrJe0bVYElLSDI7DaEpx8OF1OBmHUl8PNwH0l7ACtj9yTS1sxvZnhhOx+fa7yZVBy86dtRzgMu\nlvROgr65N0FgXQl80cxeCywFvhoWLwaA75jZ5eH97wIukDQE7GK3deVnga9IWk+wsvyXzWx9tUCa\nXtIq9cGSPbn2Wp7Ya3lTzyl6FuVflmLQ6FJXwLzlrk44bEmLo6uPVi1pdeE12bThna9u/v26Qe6b\nvY7TCfyPVP9RiIJHkfGmUm9R7eeZ15WeG2VyqtsRtJdcZ35Fb/I6vU3aYgde+CgGuRW/XhK+Xvos\nvYxn6P1FW8Vveqj+XyafKeHknWq/n77MfXFoq/jt+cAddV3voucUjbSmby8wOWWZtqLSVvErHXBQ\n5mt7Xfh6/fP1Cq1q+nq/X/5pq/hlHeTswuAUjaTfWXd4KxZtHepSq8/PRc/pBSKDI6dYdKXa60UN\nJ8+0ounr2V/+6fggZxc9p5eJ21vevumJrk91a4YiFzOy0NHMr9+Fr98/f68R/3mm+Xs4+aVj4udf\nfKdIeNO392nzIOfOWlc6Th6Ij/nzIS9zyeLeFl63NXRiWyvpltjxYyTdFJ67TNJe4fFTJN0WHr9N\n0klJz42T2+ltjlMEarVoipz9TUzMZNrqpKZ7W4gBq8zsODM7MXb8S8AHQpe27wLvD48/BrwuPP52\n4Ou1AumY+Pm8Sado1Ps76/1+mcjk3haStEbgoWZ2Q/j6R8AbAMxsnZk9Gh6/F1ggqeoSO575OU4b\n6MXpbi0ik3sbQeb3o7AJ+67Y8XskvT58/UYgabXkNwC3m1nVH0JHh7pkXS7ccXqJuzdv54XPT/uO\n9x6tcG8DXm5mj0h6DnC1pI1hxvcnwKcl/SOBH8icVQclHUWwVH6qiVJEQ+InaTnwn8BvECj0F8zs\n01nubUYAh2eS7ysNepPaaQ9Zfl/jC5z2w2yPLRuuY+uG61LPt8K9zcweCf99TNJ3gROBG8zsPuC3\nw2cdBrw29uxlwH8Bb6tmWRnRaOZXAs40s3WS9gRul3S1mVV1SyrfXKcApole0nkXQicvxAc8F5HJ\nydnE40sPfgVLD35Fef+67/5zPY+N3NvOJ929bSEwaGa/Dp3YXgN8JDz3nFAQB4B/AD4fHl8M/BA4\ny8xuyhJIQ31+Zvaoma0LX+8gsIhb2sizWs3wzGRNsXQcp2ucB5wiaROB1eR5ELi3SfpheM3+BKbj\n64A1wA/M7Krw3OmS7iPQnG1m9tXw+HuAQ4BzwuExayXtWy2Qpt3bJB0IXAccFQphdNx+semeqhWz\nrNlfo2KWxyzQq97FpNbvauXPtdLZDehYv1+r3Ns++KWJTNf+65+O9Z97W9jkvQQ4Iy58EbW+6KWB\n0baKgWeBTqdIE0ev+uaXhqu94RiaS4FvmNm8djvABRdcUH69YsUKVq5cmfisSADbVQmuFMA8ZoSO\n0yjj4+OMj4+3/LmTk9Mtf2aeaKjZK0kEAxR/ZWZnplxj92/eXPezExeJbGP21kkh9CZvsamn6Ruv\n+EZN36I1e//ms/Mac4l84t179lWz9+XAW4GTYp2LqysvaiSTSxKIdgqUN4udduCzPfJPQ81eM/sJ\nPjvEceaQZmgeDXnpt8HOeacjMzxa0ZdXGhz1LM1xnJbRdvHz6WxOr9Bv0zMnJ3q74NGZzK/OjK0X\nq7Fe7Og/4lPdij7boxdpf+YXCt/QdO0Bk9Hip968dYpKWr9fhPf75Ye2il+l8A1NZxe1WqtAx7ND\nF0unU/Rb07eXaXvmNzQ9MUf0Bks7E6+bGV5Yvm56aHROpphVCPMqgt7kdaB4Td+JXb09O6Wt4hcX\nvkj0BkrZ5gtGxIUwiwjmVQCd/qQflrgqKh0peAyWdpZFb2AquzhF2eD0UPDLMzQ9MadfMKkwkjcB\n9Kyv92hqTUqf65sb2pz5TSYKn6bmZ39pI6YrBTALeRFAF77exfv+ik/HZmkMTE2iqYlA+CZ2ztv0\nzBPl85FIDpQmGCztZLC0s9x8jvcFVhO40uBopiEzvTisxnHyShbrSkkviE2bXSvpaUnvC88lWleG\n514Unlsfnq/65W67+A2UJsrCBwRiBzA5MXeLzk3sRFMTDO54moGpyXLWmCaAtYhEMK2J3C486+t9\nsv6MK+f5brx/WzvCaTlTE6VMW53UtK40s/tCy8rjgBOAnQQ2lZBiXSlpiMCu8s/M7GjglQQrzqfS\n2fm5ceGrJC6EMRGsJYD1NG/jQujC5zhdoR7rSoCTgfvN7MFwP9G6kmCp+7vM7G4AM3vSzJLX4Q/p\n6uIENjmZuMVFsNUC6DitxP/Q1U1W68qINwPfiu2nWVceBpikKyXdLun91KCj1pXVsIRsULF/I5We\nHR4rD5swoFXDAAAI8UlEQVSJF0HSqr+dxr8MTr/TIutKJI0AvwOcFTucZl05BPwm8GJgF3CNpNvN\n7Mdpz2+r+E0PjTI4HAxNGYz6/GIip9HRINOrxcTOeQIYER/+0m1c+PqTeOW3H34HHt36U7b//Kep\n51thXRnyPwjMxx+LPTvNuvJB4HozeyI8dzlwPNAt8RuDBfswypMM8nTm+2xyAo2GgjY5AaPzxS1v\n2V8//NI76dT6+RdxsPPkrqnE4/vs92L22e/F5f27bvhEPY+taV0Z43TgoviBNOtK4L+BD0haQFDo\neCVQNbC29vk9NrSUxxcs59m9DqC0T9i0Hx2b278XotGx3YIXMicrTOj/i6in+tsOXPgcJzNZrCsJ\n/XpPJjAhj5NoXWlmTxGI3a3AWoKM8YpqgTRtXZn6YMmiZ1915xTP2/OX7LvrQfZ4fCtsC8zUo36+\nQPiSm8AaDYVldAzGFmIjY8yOjDI7PMbM8MJy5hdv+nYq+3PRc+ohnvkdfsiytr1Pqzw83vS3WzNd\ne/HHDyykh0dHCh6vOWYEWAYs48GfLWLxHosYfmQL9tgEsxMTMDHB4KLF2fsAQ5Kavp3Chc9xik3H\nq73LDz0SOJKn1o0zNhmKH/EscLcAlrO+iIIUPhwniaL1+01NJPf59QpdG+qy+NhVPD40yp6LNjL7\n4BZmJybKojZP9GB34WNiJ4x0V+Q863Oc4tPVcX77Hv1SHh0aY/HETvTM03PH+o2OJc8EIVwYYcSr\nuo7jNE7X7Sf3P/w4HjviJLT3IjQ6hk1O7O73Gx2buwGMLQRIrPo6Tt6J5vkWZX5vL9N18YOgH3DH\nwcfPPxEK3Rwm5q4EHZ/u1m4863Oc3iE309vumDmBl77gSYYf2bJ7bu/YwmCLC16SIFbB111znMaY\nmujt700uMj8IhsM8tuQFyeIWiWADwhf9G22N4lmf0yoql7hyukNuxA/g4EMOYcfSw2HRknIfn42M\nYRXV3cr9emhExFz4HKf3yJX4ATy+YDkzey4KdmLN3UgEmxG+iHqyQBc+px149td9ctPnF3H4Icv4\n9RN3MRg7NjsyOs/4aLbGUJcsouX9gY6TzuSzvT2aInfiB/DU4gNZUpqYI3hxAawmfK2c1+tZn+P0\nLrlr9gJsm15GaeGSYAGDmNDN2x9uTRO4nuOO4/QGucz8HnpmTw5atKi8cEFE0qDm+MoujeJC5zj9\nR8OZn6TVkjZK+pmks2rfkZ3/uWKAp4afw8zw3KEts8NjczbHcYqFpDdKukfSjKSEmQ3l6xL1pZr1\npaQPhtdvlPSaWrE0JH6SBoHPAKuBIwkWGDyikWelUbJhJsYWMblgH2aGF5a3iGg/aT2/ONVW0bj5\n5ptbGXLLyXt8kP8Y8x4fwPj4eLdDSGRqYiLTVid3A78HXJ92QQ19SbS+lHQk8Afh9auBz4WrPafS\naOZ3IrDZzLaaWQn4NvD6GvfUxdTsMKXBUaaHxpgeGi2LXFwEK4UvKnZkbcauWbOmlSG3nLzHB/mP\nMe/xQX7Frx2Y2UYz21Tjsmr6kmZ9+XrgIjMrmdlWYHP4nFQa7fN7LoFhSMQ2YEWDz0pkZKBEKWa4\nHqzXN1/UpofGysvYR/8uKN8zdxhLvA9xoDTBHs9u54AHbwHYbaoeJz6tLrbCTLTwwuTRL5v33DQa\nWYRhj2e3s9/2O+u+r/yeU40N46k1jChOPMakroj4547OV/5fDExN8sjyqr+nTn9RTV/SrC+XAjdX\n3PPcam/SqPi1Z+37FJKGr4xNBIZIkcANlnaWv1TRl74saAlm6TY5iZ58HLt/AwAzYfo+s3NX+Zrp\nXbvFY2ZXcL60M3TpenaCA9/6oeY+WA1GrrqLPV72+219j2ZpVYwHtyCWJPZZsoSDDzmkTU93kqhi\nXfkhM/t+hkdU6osSjtW0vky6p/IBdW/ASuDK2P4HgbMqrjHffPOtO1sj3+tmvr8NPP9a4Ph69QXY\nCOwfvj4A2Bi+Phs4O3bPlcCKajE0mvndBhwq6UDgYYKOxtPjFxTR0MRxnIAOfX/T3qOavqRZX14G\nfEvSJwiau4cCt1R784YKHmY2DbyHwCvzXuA7ZrahkWc5jtM/SPo9SQ8SZHc/lHRFeLxsXVlDXxKt\nL83sXuDi8PorgL8q20emxdIu60rHcZw805bpbe0cAN0skpZLujYcaLle0vu6HVMakgYlrZWUpZO4\no0haLOkSSRsk3StpZbdjqkTSmeHP+G5J35LU9ak8kr4sabuku2PHUgfuOu2j5eLXiQHQTVICzjSz\nowhS73fnLL44ZxCk8XlMzy8ALjezI4AXAbnq9pD0XOC9wAlm9kJgEHhzd6MC4CsE3404iQN3nfbS\njsyv7QOgm8HMHjWzdeHrHQRf2qXdjWo+kpYBpwJfIr1juCtIWgS8wsy+DEEfjZk93eWwkhgCFkoa\nAhYCD3U5HszsBuDJisNpA3edNtIO8UsaoFh1sGG3CKtJxwF5nAbwSeD9wGy3A0ngIOAxSV+RdIek\nL0qqz2OgzZjZQ8DHgV8QVAyfMrMfdTeqVNIG7jptpB3il8cm2jwk7QlcApwRZoC5QdLrgF+a2Vpy\nlvWFDAHHA58zs+OBZ8lZU03SPgQZ1YEEmf2ekt7S1aAyEFYoC/EdKjrtEL+HgOWx/eUE2V9ukDQM\nXAp8w8y+V+v6LvAy4DRJW4CLgFdJ+s8uxxRnG7DNzG4N9y8hEMM8cTKwxcx+FQ6d+C+C/9c8sl3S\n/gCSDgB+2eV4+oJ2iF95gKKkEYIBipe14X0aQpKAC4F7zexT3Y4nCTP7kJktN7ODCDrpf2xmf9Tt\nuCLM7FHgQUmHhYdOBu7pYkhJ/BxYKWlB+DM/maB4lEeigbswd+Cu00ZavpipmU1LigYoDgIX5mwA\n9MuBtwJ3SVobHvugmV3ZxZhqkcdm0HuBb4Z/4O4H3tHleOZgZrdIugS4A5gO//1Cd6MCSRcBrwT2\nDQf7fphgoO7Fkt4JbAXe1L0I+wcf5Ow4Tl+SSw8Px3GcduPi5zhOX+Li5zhOX+Li5zhOX+Li5zhO\nX+Li5zhOX+Li5zhOX+Li5zhOX/L/ARPILTIu+pK9AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.gca().set_aspect('equal')\n", "plt.contourf(grid_x, grid_y, stress_xy, cmap=\"coolwarm\",levels=np.linspace(-1, 1, 50))\n", "plt.colorbar();\n", "plt.title(\"$\\sigma_{xy}$\");" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.5.0" } }, "nbformat": 4, "nbformat_minor": 0 }