{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "autoscroll": false, "ein.hycell": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "import os\n", "import sys\n", "import numpy as np\n", "import itertools as it\n", "sys.path.append(os.path.join(os.getcwd(), \"language_bindings/python\"))\n", "import laminate_material as lam\n", "import muSpectre as msp\n", "import matplotlib.pyplot as plt\n", "#from IPython.core.debugger import set_trace;\n", "np.set_printoptions(linewidth=2000, precision=2)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "autoscroll": false, "ein.hycell": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "resolution_3D = [5, 5, 5]\n", "lengths_3D = [5., 5., 5.]\n", "resolution_2D = [5, 5]\n", "lengths_2D = [5., 5.]\n", "formulation = msp.Formulation.small_strain\n", "splitness = msp.SplitCell.split\n", "tol = 1e-5\n", "cg_tol = 1e-8\n", "maxiter = 500\n", "Del0 = np.array([[0.003, 0.001],\n", " [0.000, 0.003]])\n", "Del0 = .5*(Del0 + Del0.T)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def split_cell(con, E, noo):\n", " vertices = [[1.5, 1.5],\n", " [1.5, 3.5],\n", " [3.5, 3.5],\n", " [3.5, 1.5]]\n", " rve = msp.Cell(resolution_2D, lengths_2D, formulation, msp.SplitCell.split)\n", " hard = msp.material.MaterialLinearElastic1_2d.make(\n", " rve, \"hard\", con*E, noo)\n", " soft = msp.material.MaterialLinearElastic1_2d.make(\n", " rve, \"soft\", E, noo)\n", " rve.make_precipitate(hard, vertices)\n", " rve.complete_material_assignment(soft)\n", " rve.initialise()\n", "\n", " solver = msp.solvers.SolverCGEigen(rve, cg_tol, maxiter, verbose=True)\n", " result = msp.solvers.newton_cg(rve, Del0, solver, tol, 1)\n", " stress = result.stress\n", " strain = result.grad\n", " stress = stress.T.reshape(*resolution_2D, 2, 2)\n", " strain = strain.T.reshape(*resolution_2D, 2, 2)\n", " energy = np.einsum('ijkl,ijkl', stress, strain)\n", " return energy" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "autoscroll": false, "ein.hycell": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def laminate_cell(con, E, noo):\n", " lam1 = E*noo /((1+noo)*(1-2*noo)); lam2 = con* lam1;\n", " mu1 = E/(2*(1+noo)); mu2 = con* mu1;\n", " \n", " dummy_rve = msp.Cell(resolution_2D, lengths_2D, formulation)\n", " \n", " input_lam_fif = lam.C_laminate_to_ortho_inp_2D_maker(lam2, lam1, mu2, mu1 , 0.5)\n", " input_lam_quat = lam.C_laminate_to_ortho_inp_2D_maker(lam2, lam1, mu2, mu1 , 0.25)\n", " \n", " dummy_mat_fif = msp.material.MaterialOrthotropic_2d.make(dummy_rve, \"mat_1\", input_lam_fif)\n", " dummy_mat_quat = msp.material.MaterialOrthotropic_2d.make(dummy_rve, \"mat_2\", input_lam_quat)\n", " \n", "\n", " C_hor_fif = dummy_mat_fif.get_C()\n", " C_ver_fif = lam.rotate_stiffness_mat(C_hor_fif, lam.make_2D_roatation_matrix_xy(np.pi/2))\n", " C_hor_fif_v = msp.material.MaterialBase_2d.make_C_Voigt_from_col(C_hor_fif)\n", " C_ver_fif_v = msp.material.MaterialBase_2d.make_C_Voigt_from_col(C_ver_fif)\n", "\n", " C_hor_quat = dummy_mat_quat.get_C()\n", " C_top_right_quat = lam.rotate_stiffness_mat(C_hor_quat, lam.make_2D_roatation_matrix_xy(-np.pi/4))\n", " C_top_left_quat = lam.rotate_stiffness_mat(C_hor_quat, lam.make_2D_roatation_matrix_xy(-np.pi*3/4))\n", " C_top_right_quat_v = msp.material.MaterialBase_2d.make_C_Voigt_from_col(C_top_right_quat)\n", " C_top_left_quat_v = msp.material.MaterialBase_2d.make_C_Voigt_from_col(C_top_left_quat)\n", " \n", " del(dummy_rve)\n", " rve2 = msp.Cell(resolution_2D, lengths_2D, formulation)\n", " hard2 = msp.material.MaterialLinearElastic1_2d.make(\n", " rve2, \"hard\", con*E, noo)\n", " soft2 = msp.material.MaterialLinearElastic1_2d.make(\n", " rve2, \"soft\", E, noo)\n", "\n", " mat_hor_fif = msp.material.MaterialLinearElasticGeneric1_2d.make(rve2, \"mat_hor_fif\", C_hor_fif_v)\n", " mat_ver_fif = msp.material.MaterialLinearElasticGeneric1_2d.make(rve2, \"mat_ver_fif\", C_ver_fif_v)\n", " \n", " mat_top_left_quat = msp.material.MaterialLinearElasticGeneric1_2d.make(rve2,\n", " \"mat_top_left_fif\", C_top_left_quat_v)\n", " mat_top_right_quat = msp.material.MaterialLinearElasticGeneric1_2d.make(rve2,\n", " \"mat_top_right_fif\", C_top_right_quat_v)\n", " \n", " #print('soft2')\n", " #print(np.linalg.norm(soft2.get_C()))\n", " #\n", " #print('hard2')\n", " #print(np.linalg.norm(hard2.get_C()))\n", " #\n", " #print('top_right')\n", " #print(np.linalg.norm(mat_top_right_quat.get_C()))\n", " #\n", " #print('top_left')\n", " #print(np.linalg.norm(mat_top_left_quat.get_C()))\n", " #\n", " #print('hor')\n", " #print(mat_hor_fif.get_C())\n", " #print(C_hor_fif)\n", " #\n", " #print('ver')\n", " #print(np.linalg.norm(mat_ver_fif.get_C()))\n", " \n", " \n", " for i in range(0,4):\n", " for j in (0,4):\n", " if i!=j :\n", " soft2.add_pixel([i, j])\n", " soft2.add_pixel([j, i])\n", "\n", " soft2.add_pixel([0, 0])\n", " soft2.add_pixel([4, 4])\n", " hard2.add_pixel([2, 2])\n", "\n", " mat_hor_fif.add_pixel([3, 2])\n", " mat_hor_fif.add_pixel([1, 2])\n", "\n", " mat_ver_fif.add_pixel([2, 1])\n", " mat_ver_fif.add_pixel([2, 3])\n", "\n", " mat_top_left_quat.add_pixel([1, 3])\n", " mat_top_left_quat.add_pixel([3, 1])\n", "\n", " mat_top_right_quat.add_pixel([3, 3])\n", " mat_top_right_quat.add_pixel([1, 1])\n", "\n", " rve2.initialise()\n", " solver2 = msp.solvers.SolverCGEigen(rve2, cg_tol, maxiter, verbose=True)\n", " result2 = msp.solvers.newton_cg(rve2, Del0, solver2, tol, 1)\n", " stress2 = result2.stress\n", " strain2 = result2.grad\n", " stress2 = stress2.T.reshape(*resolution_2D, 2, 2)\n", " strain2 = strain2.T.reshape(*resolution_2D, 2, 2)\n", " energy2 = np.einsum('ijkl,ijkl', stress2, strain2)\n", " return energy2" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "autoscroll": false, "ein.hycell": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def simple_cell(cons, E, noo):\n", " rve3 = msp.Cell(resolution_2D, lengths_2D, formulation)\n", " hard3 = msp.material.MaterialLinearElastic1_2d.make(\n", " rve3, \"hard3\", con*E, noo)\n", " soft3 = msp.material.MaterialLinearElastic1_2d.make(\n", " rve3, \"soft3\", E, noo)\n", " for i in range(0, 5):\n", " for j in range(0, 5):\n", " if i>0 and j>0 and i<3 and j<3:\n", " hard3.add_pixel([i, j])\n", " else:\n", " soft3.add_pixel([i, j])\n", " rve3.initialise()\n", " solver3 = msp.solvers.SolverCGEigen(rve3, cg_tol, maxiter, verbose=True)\n", " result3 = msp.solvers.newton_cg(rve3, Del0, solver3, tol, 1)\n", " stress3 = result3.stress\n", " strain3 = result3.grad\n", " stress3 = stress3.T.reshape(*resolution_2D, 2, 2)\n", " strain3 = strain3.T.reshape(*resolution_2D, 2, 2)\n", " energy3 = np.einsum('ijkl,ijkl', stress3, strain3)\n", " #plt.figure()\n", " #plt.pcolormesh(stress3[:, :, 0, 0])\n", " #plt.colorbar()\n", " return energy3" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "autoscroll": false, "ein.hycell": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 44536.89 52818.14 62862.37 77209.16 81607.3 87500. 92940.66 96519.44 106719.71 113679.69 119966.35]]\n", "[[ 65633.2 67949.23 71616.92 79152.67 82299.68 87500. 93667.96 98624.72 116654.09 130356.23 141781.48]]\n", "[[ 53845.34 58180.6 64987.57 77391.78 81644.09 87500. 92905.42 96345.24 104729.7 108607.59 110893.48]]\n" ] } ], "source": [ "#%%debug\n", "cons = np.array([ 0.05, 0.1, 0.2, 0.5, 2/3 ,1, 1.5, 2, 5, 10, 20])\n", "noos = np.array([ 0.3])\n", "energy_split = np.zeros([noos.size,cons.size])\n", "energy_laminate = np.zeros([noos.size,cons.size])\n", "energy_simple = np.zeros([noos.size,cons.size])\n", "for j, noo in enumerate(noos):\n", " for i , con in enumerate(cons):\n", " energy_split [j, i] = split_cell(con, 10e7, noo)\n", " energy_laminate[j, i] = laminate_cell(con, 10e7, noo)\n", " energy_simple [j, i] = simple_cell(con, 10e7, noo)\n", "print(energy_laminate)\n", "print(energy_split)\n", "print(energy_simple)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "autoscroll": false, "ein.hycell": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEiCAYAAAD5+KUgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd4VNXWwOHfmhRCJ4ReAgSQLr0EBIKgFKkqoIAg0hTr1auf4FWD/XqtCBZAaQICgoANFSWASAsdpPdeQ28p+/tjTzCEkExgMjNJ1vs880zmzJ5z1hAya87ZZYkxBqWUUsrh7QCUUkr5Bk0ISimlAE0ISimlnDQhKKWUAjQhKKWUctKEoJRSCtCEoJRSykkTglI+SkQcIvKkiKwTkYsickxEpolIxXTsI0hEPhSRP0XkkIhcFpGDIvKHiNwnIpKR70FlLqIT05TyTSIyChgA/A38CBQFugOXgMbGmL9d2EchYC+wDNgGHAcKAx2c+xttjBmYIW9AZTqaEJTyQSLSAvgDWATcZYy57NzeEvgNWGSMae7CfhyAvzHmSrLtebBJoipQxRiz2c1vQWVCeslIZSoiEiEiRkQiRaSeiPwmImdF5LSIfCciZW/wui4issjZ9ryIRItI/xu0zSMib4rINucllmMiMkNEambke0tmgPP+P4nJAMAY8zswF2gmIreltRNjTELyZODcfg74xfmwvBviVVmAJgSVWdUHFgJXgC+AaKAzME9EgpI2FJEXgJlAJWC8s31hYLSIjEzWNicQBQwFTgAfYD84OwBLRKRZxr2la0QA54HFKTz3s/M+zTOEG3H+G90JJGAvSSmFv7cDUOomtQMeMMZMTdwgIhOAh7CJ4RvntgrAW8BBoK4x5rBz+6vAEmCwiEwzxixw7ub/gLrAV8aYfkn2PRaYB3wlIrcZYxJSC05EajnjcNUaY8ws52tzA8WBDcaY+BTabnPep6dzORfwAiBAEey/XyjwsjFmVzriVFmYJgSVWS1MmgycvsImhPo4EwLQE/AD3ktMBgDGmLMiEglMB/oAiQmhD/as46WkOzbG/C4iPwL3AHdgz05SUwt4NR3vZzwwy/lzfuf96Ru0PZ2snStyJYsnFngeeD8d+1BZnF4yUpnVyhS27XfeF0iyLfG6/wKuF5W0jYjkA8oCW5Imjxu1T40xZpwxRtJxezitfd4KY8xxY4xgvwSWBf4DvAFMFxG/jDy2yjw0IajM6kwK2+Kc90k/4PI5748kb2yMOe58Tb602jodTtYuo6R1BpDWGcQNGWPijTF7jDHvYs+C7gMeSX+IKivSS0Yqq0tMHEWBA0mfEJEQ7N/AmRTapqRosnY3dCt9CMaY8yJyCCgnIn4p9CMk9h1s49b85ryPAEbf4r5UFqAJQWV1a4AuQDNgVbLnmidpgzHmjIjsAm4TkaLGmORnCte0T8Ot9CGAvcT1ANCE6/sr2iZpcytKOO/jUm2lsg29ZKSyuslAPPBvESmSuNE5MSvS+XBCkvYTgBzA60l3IiIRQHtgBykPBb2GG/oQRjnv3xCRwCRxtATaYDvVtybZHiAilUXkmjkFIlLFOcKIZNuDgTedD+em9X5U9qBnCCpLM8ZsF5GhwH+BdSIyHTvCpgu2c/XTJENOcbZrDwwQkerYb+GlgG7YJSMeSWvIqZvini8iY4D+wGrnCKfEpSvOAI8le0lJYBOwB/u+EnUH/iUifwK7gXPY4ab3AHmBGfwzIktlc5oQVJZnjHlXRLYDzwJ9sWfGm4C3jDGjk7W96Fw2Ygg2CTwHnMWuJTTMGLPWg6EPAtY575/Cfph/D7yU9OwgDT9gk0Vj7OWn3EAM8Bf2bGiK0fVrlJPH1zJynnrPT+Gp08aYAknaBQP/w3bM5cROIvqXMWa9J+JUSqnsxptnCE8BK5I8vtqx5VyS93vsqe+T2G80Q4D5IlLLGLMfpZRSbuXNhLDJGLP0Bs91xJ7e3mmMmQ8gIkuAXdjp9095JkSllMo+fHWUUUfgYGIyADDGnMaeNXTyWlRKKZWFeTMhTBKReBE5ISKTRSQ0yXPVgA0pvGYjEOocMqiUUsqNvHHJ6DR2Qa0F2OFztbFLDS8RkdrGmKNAQewQueROOu+DsSMulFJKuYnHE4IxZjWwOsmmBSKyEFiO7Rv4z83uW0QGAgMBcubMWbd06dK3EqpXJSQk4HD46hU95Sr9PWZ+WeF3uHXr1uPGmMJptfOJeQjGmFUishW7bDHYUUXBKTQtmOT5lPYzCucMz3r16pno6Gh3h+oxUVFRREREeDsMdYv095j5ZYXfoYjscaWdr6W9xEkRG7H9CMlVBfY6y/8ppZRyI59ICCJSD1vecLlz0xygpIg0T9ImH7aM4RzPR6iUUlmfxy8Zicgk7HyCVcApbKfyEOzSxMOdzeZgZyZ/LSLP88/ENAHe9XTMSimVHXijD2ED8CB2BnIubNGRmcCrzoIlGGMSRKQ98B7wKRCETRAtjDH7vBCzUkpled4YZfQ28LYL7U5iKzlpNSellPIAn+hDUEop5X0+MexUKXVrzpw5w9GjR4mNjfV2KFlO/vz52bRpk7fDuI6/vz9BQUEULlyYoKAg9+zTLXtRSnnNmTNnOHLkCCVLliRnzpzYxYKVu5w9e5a8efN6O4xrGGOIi4vj3Llz7N27l6JFi5I/f/5b3q8mBKUyuaNHj1KyZEly5bquUqbKokSEgIAAgoODyZEjB4cPH/ZOQhCRgtiCNceNMZdvOQKl1C2JjY0lZ86c3g5DeUnOnDm5fNk9H8VpdiqLSDEReVFEokTkAnAM2AtcEJHdIjJBRNqKnqcq5TX655d9ufN3f8MzBBEpBbwO9MDWlF2CnRdwDLiIXVeoHNAQW7d1j4i8bIyZ5LbolFJKeUxql4y2AL9iaxr/aoyJv1FDZ/LoCbwrIiWMMf9zb5hKKaUyWmqXjJoYY7oYY35OLRkAGGP2G2P+C4Shaw0ppXyEiBAZGXn1cWRk5DWXWE6dOkVkZCSrVq3yQnS+54YJwRizJr07M8ZcNsZsubWQlFIqY/Tv358lS5ZcfXzq1CmGDRumCcHppoadikgw0Ai72NxS5zITSinl00qVKkWpUqW8HYbPSvfSFc4lqXcAE4GpwA4RaenuwJRS2dfWrVvp0qULRYoUISgoiNDQULp27UpcXBxRUVGICDNmzODhhx8mODiYfPny0bNnT06cOJHqfpNeMtq9ezflypUDYMCAAYgIIsK4ceMy+u35rJs5Q/gQeNYYM05E/LFLVn8E1HBrZEopr1q5J4alO0/QKCyEumVSKmCYce655x6Cg4P57LPPKFSoEAcOHOCnn34iISHhaptnnnmGVq1aMWXKFLZt28bQoUM5ePAg8+fPd+kYxYsXZ+bMmdx7770MGTKEjh07AlC+fPkMeU+ZQWrDTj8BhhpjziZ7qizwDYAxJk5EZgK9MixCpdRNGfb9Rv4+eOamXnv2UiybD58lwYBDoHKxvOQNCkj3fqqWyMerHVIqfnhjx48fZ/v27cyePfvqhzRAjx49rmlXrVo1xo4dC0CbNm0oWLAgvXr14vfff6dly7QvWuTIkYPatWsDEBYWRqNGjdIVZ1aU2iWjMGCLiPRItn0Z8KGIVBWRBsBQ5zalVBZx5lIcCc6CtgnGPvaUkJAQwsLCePHFFxk9ejTbtm1LsV23bt2uedy1a1ccDsc1ncYqfW54hmCMuUdEumA//PsBjxljtgKPApOxhW7Alr1MnjSUUl6W3m/mSa3cE0PPMUuJjUsgwN/Bxw/U9thlIxHht99+IzIykiFDhnDixAnKlSvH888/z2OPPXa1XdGiRa95XWBgIMHBwRw4cMAjcWZFqfYhGGO+E5G5wKtAtPMy0uvGmCYikgeQFC4pKaUyubplgpnUv5HX+hDCwsKYMGECxhjWrl3LiBEjGDx4MGXLlr26btORI0euec2VK1eIiYmhZMmSHo01K0lzlJEx5qIx5kXsEhUNgb9FpL0x5pwmA6Wyrrplgnm8RQWPJ4OkRIRatWrxwQcfALBhw4arz02bNu2attOnTychIYHw8HCX958jRw4ALl686IZoM79UzxBExAFUxNY03mKMaeXsU/hCRKKBJ7TGsVLKndatW8fTTz9N9+7dqVChAvHx8YwbNw5/f3/uvPNOzp6130M3btxI3759eeCBB9i6dSsvvfQSERERLnUoJypatCghISF888033H777eTOnZty5coREhKSUW/Pp93wDEFEbgc2A5uA1cB+EelijJkMVAZ2AetF5P+cw0+VUuqWFStWjNDQUD744AM6duzIgw8+yMGDB/nhhx+oW7fu1XYff/wxxhi6d+/O0KFDad++PdOnT0/XsRwOB2PGjCEmJoZWrVpRv359vv/+e3e/pUwjtQ/yUdhEcAd2ddPngAkiUsh5qegZERkLjAR6Azffg6WUUk5FihRh/PjxabbLly9fmpPIjDHXPI6MjLxmbSOAzp0707lz5/SGmSWl1odQFRhljDnqTAAfAbmBMokNjDFrjTF3YJfFVkoplYmldoawAnhRRE4Bl4AngBPAzuQNjTFjMyY8pZRSnpJaQugHTMAmBoBtwP3GGM/NUFFKqWQiIiKuuxSk3CO1iWm7gWYikgsINMac8lhUSimlPC7N0UHGmAvABQ/EopRSyotSG3b6rIgEpWdnIlJHRNrcelhKKaU8LbVRRg8Bu0TkHRGpeaNGIhIsIg+JyK/An0A+dweplFIq46V2yagONik8B7wgImeA9cAx4DIQjF0Rtbzz8VSgqrPvQSmlVCaTWk1lY4yZYIypCYRjC+OcxSaB2kBeYBHwCFDCGNP3ZpKBiMwVESMibyTbHiwiY0TkuIicF5F5IqJFeJRSKoO4tOSEMWYZGVDzQEQeBK67HCW2xt332GI8TwIxwBBgvojUMsbsd3csSimV3aW52qmIBIrIdyLSzJ0HFpFgnOU4U3i6I9AEeMgYM8UYM9e5zQG84M44lFK+J2nt46x0zMjISP74448MPcatcGX56ytAK1faptN/gQ3GmCkpPNcROGiMuVoc1RhzGnvW0MnNcSilFP3798/wamvDhg3z6YTg6iqli4FGQJQ7Dioid2AXxLvR6KVq/FORLamNQG8RyWOMOeeOWJRSCqBUqVKUKlXK22F4lavf+p8D+onIEyJSSkT8RMSR9ObqAUUkEPgCeM8Ys+UGzQpi+w2SO+m8917FDqWUx40YMYLw8HAKFixIgQIFaNSoET/++OM1bXbv3o2I8PnnnzNkyBCKFStG3rx56dWrFxcuXGD79u20bt2aPHnyUKFChetWVE3pkpGI8NprrzF8+HDKlStH3rx5ad68ORs3brym3a+//kq7du0oXrw4uXLlonr16rz//vvEx8dfsy+AN998ExFBRK5ZeXXBggW0bNmSvHnzkjt3blq3bn1NQSBPcPUMYb3z/mPnLTmTjn29AOQE3nSxvctEZCAwEGzhi6ioKHcfwmPOnTuXqeNXlid+j/nz579aNMadHAdX4r9vCXGlw0koUTftF7jR5cuXAa6+r61bt9KrVy9CQ0OJi4vj559/pn379syYMYO77roLsP/WAG+99RZ33HEHn332GZs3b+aVV14hPj6edevW0adPHwYPHsyXX35J3759qVKlClWqVEnxmImmTp1KxYoVeeedd7hy5Qovv/wyHTp0YOXKlfj724+9v//+mzvuuIN+/foRFBTE6tWriYyM5MCBAwwbNgyAefPm0apVK3r27Enfvn0BKFmyJGfPnmXu3Lk8+OCDtG7dmtGjRwPw4Ycf0rRpU/766680z1wuXbrklv9nrn6Iv4b90L8lIhIKvAT0B3KISI4kT+cQkQLYoa0xpHwWUNB5n9LZA8aYUdg6DtSrV89ERETcasheExUVRWaOX1me+D1u2rSJvHnzXv/Ezy/C4fXXb3fF5TNwZAOYBHKIA4pWhxw3Mee0WA1o+066X5ZY2jLxfQ0fPvzqcwkJCXTo0IHdu3czfvx47r33XgDy5MkDQIUKFZg8efLV9itWrOCbb75h4sSJ9OrVC4BmzZpRuHBhfv75Zxo0aJDiMRMFBAQwd+5cAgICAMiZMyddu3Zl06ZNNG7cGIBnnnnmantjDK1bt0ZEeO+993jvvfdwOBxXK7mVLVv2uqpuQ4YMoXnz5tec9bRr146wsDC++OILPvroo1T/vYKCgqhdu3aqbVzh6rDTyFs+khWGLcf5dQrP/dt5q43tK7g7hTZVgb3af6BUBrt0GkyC/dkk2Mc3kxDcZOXKlbz66qusWLGCY8eOXV3ttFKlSte1bdu27TWPK1euDEDr1q2vbgsODqZIkSLs25d2BeAWLVpcTQYANWrY6VB79+69mhAOHTpEZGQkc+fO5eDBg8TF/bMo9NGjRylWrNgN979t2zZ27NjB0KFDr3ldrly5CA8PZ+HChWnG6C7pLn0pInmw395jbuKDeQ3QIoXt87FJ4ktgOzAH6CsizY0xC5zHzQd0ACan8HqlVHI38c38qn3LYXxHiL8CfoFw3xgo3cB9saUnlH37aNmyJVWrVuWTTz4hNDQUf39/Xn75ZTZt2nRd++Dgay8uBAYG3nD7pUuX0jx+8tclnkkkvjYhIYGOHTty8OBBIiMjqVy5Mjlz5mTWrFm8+eabaR7j6NGjAPTr149+/fpd93xoaGiaMbqLywlBRFpjr/vXAgQwIrIKeMkY85sr+3AuoR2Vwr4B9hhjopyP5wBLgK9F5Hn+mZgmwLuuxqyUukmlG0CfObB7EZRt6rVkADB37lxOnz7NtGnTrrmWfuGCbyzCvGPHDqKjo6+5JAW4XJs5JCQEgLfffptWrVpd93xiQvMElxKCMxn8iP32/jpwGCgOdAd+EpF2riYFVxhjEkSkPbY056fYy0xLgBbGmLTP8ZRSt650A68mgkSJH/xJL9ts3bqVxYsX+8Qw0ZTii42NZdKkSde1DQwM5OLFi9dsq1SpEmXLlmXjxo28+OKLGRtsGlw9Q4gEfgXaG5N4YRFE5DXgB2AYcNMJwRhz3fRAY8xJ7DpJj9zsfpVSmV+rVq3w9/end+/ePPfccxw6dIhXX32V0NBQEhIS0t5BBqtSpQplypThpZdews/Pj4CAAD788MMU21atWpUff/yRNm3aEBwcTIkSJShRogQjR46kU6dOXLlyhW7dulGoUCGOHDnCX3/9RWhoKM8+m9KCDu7n6vyBmsDIpMkA7Dd57Df4Wu4OTCmlAKpVq8akSZPYs2cPHTt25N133+Wdd96hWTO3rqZz0wIDA5k1axbFihWjd+/ePP744zRr1izFb/sjRowgd+7cdOjQgfr16zNq1CjAjihauHAh58+fp3///rRu3ZoXXniBw4cPEx4e7rH3Iq7UJhWRGGBwSstMOBeo+9QY41OTxerVq2eio6O9HcZN02GnWYOnhp0mjqVX7nf27NmUh/X6kLT+D4jISmNMvbT24+oZQhTwuoiUS3aQUOzlpPkpvEYppVQm4mofwv9h1zPaIiJLgUNAMez6RqeczyullMrEXDpDMMZsBW4HhgM5sNXUgrDLWNQyxmzLsAiVUkp5RJpnCCLiB1THLkf974wPSSmllDe4coZggGjskhJKKR/kyuAQlTW583fvSoGcBGAfkNttR1VKuY2/v/81a+Co7CU2NhY/Pz+37MvVUUZfAM84axkopXxIUFDQ1aWfVfZz5swZtw2LdXWUUV6gPLBTROZiRxklPU8xxphX3RKRUipdChcuzN69e8mRIwc5c+b0eC1i5XnGGGJjYzlz5gwxMTFuWwDP1YQwNMnPKS0lYQBNCEp5QVBQEEWLFuXw4cNXi7wo97l06RJBQUHeDuM6fn5+5M2bl9DQ0KsrsN4qV+shuFwiUynlefnz5yd//vzeDiNLioqKckvxmcwgzQ96EQkUkadFpLonAlJKKeUdrowyugK8wz/lK5VSSmVBrl4K2oQtf6mUUiqLcjUhvAK8LCI1MjIYpZRS3pOexe3yAKtFZDcpDztt7ubYlFJKeZCrCSEe+DsjA1FKKeVdrg47jcjgOJRSSnmZzi9QSikFpJIQROQDESmdbNu9IpI/2bbbRGRORgWolFLKM1I7Q3gaKJ74wFkXYTp2TaOkgoF73B+aUkopT0otIaS0QpaumqWUUlmU9iEopZQCNCEopZRySishpFSbTWv1KaVUFpTWPIRRInI22bYvRSRpeSb3lOpRSinlVaklhIVcfzawIIV2p5xtlVJKZWI3TAg6O1kppbIXj3cqi0hrEflDRA6LyGUR2S8i00SkarJ2pUXkWxE5LSJnRGSmiLincKhSSqnruLq4nTsVBFYCnwLHgFDgRWCpiNQwxuwRkVzAH8BloA/20tUbwHwRud0Yc94LcSulVJbm8YRgjJkCTEm6TUSWA5uB+4H3gQHYgjyVjDHbnW3WAduAQcAHnoxZKaWyA1+Zh3DCeR/nvO8ILE1MBgDGmF3AYqCTh2NTSqlswWsJQUT8RCRQRCoCXwCH+efMoRqwIYWXbQSqprBdKaXULfJGH0KiZUBd58/bgTuNMUedjwsCMSm85iR2MT2llFJu5lJCEJG/gM+AacaYy2469kNAPmxfwb+B30TkDmPM7pvdoYgMBAYCFC1alKioKDeE6R3nzp3L1PErS3+PmV92+h2KMWmvRCEiUUAz7Lf28cAoY8xmtwUhUgDYDXxjjHlURI4As4wxg5K1+xToaowpnNY+69WrZ6Kjo90VosdFRUURERHh7TDULdLfY+aXFX6HIrLSGFMvrXYu9SE4J6lVxSaD3sBGEYkSke4iEnBLkdr9n8JeNqrg3LQR24+QXFW0trNSSmUIlzuVjTGbjTHPAiWBhwE/YDKwX0TeEZGwmw1CRIoClYEdzk1zgEZJ9ykiZYEmzueUUkq5WbpHGRljLhtjJmIrqi0CCgMvAFtFZLqIFEvt9SLynYi8LCKdRKSFiAzCrpEUh52DADAaewlptrNdR2A2sA87IkkppZSbpSshiEhOEXnEOZFsBVAEmxhKAI8BjYFJaexmKdAZe/npR+BZbEKoZYzZCuCciXwnsBWY6NznLuxIpHMp7VQppdStcXWUUQ3sDOGeQG7st/X/M8bMT9JstIgcxtZdviFjzH+B/6Z1TGPMXuA+V+JTSil161ydh7AWOAh8hB1hdOgG7bYDS9wRmFJKKSt690mW7TpJo7AQ6pbJuKlYriaE+4HZxpj41BoZYzYBLW45KqWUUgAs2XGcnmOWYQzkCHAwqX+jDEsKrg47nZlWMlBKKeVeF67E8eKM9SQYu+RzbFwCS3eeSPN1N8vVPoRXUnk6ATgNrDLGLHZLVEoplc2duxzHI2NXsPfkBQL8hIQEQ4C/g0ZhIRl2TFcvGUViE5Sk8FzidiMiS4B7jDGn3ROeUkplP6cvxvLw2OWs23+a4Q/WpkSBnCzdecJn+hCqYCeEfQ58CxwBigLdsGsH9QFKYecIvAU87vZIlVIqG4g5f4WHvlrGlsNn+bRnHVpXs1O7MjIRJHI1IYwEvjTGfJhk2z7gfRHxA940xrR0zix+Ek0ISimVbsfOXqbXmGXsPnGeUb3r0aJSEY8e39WJaeHYspcpWQU0cv4cjZ2sppRSKh0On75E91FL2HvyAmMfru/xZACuJ4TTQMsbPNfK+TxAEHDmVoNSSqnsZH/MBbp9sYSjZy4zoV8DGlco5JU4XL1k9BUwRETyYvsQjmLPBLoCjwJvO9s1JOVKZ0oppVKw+/h5eo5ZxtlLsXzdvyG1ShfwWiyuJoTEYadPA4OdPwtwHpsMEp//EZjqtuiUUioL2370HD1GLyU2PoHJAxpRvWR+r8bjUkIwxiQA/xGR94AaQHHgELDeWcsgsd3yDIlSKaWymE2HztBrzDJEhKmDwrmtaF5vh5R2QhCRQOy3/g+NMQuxS14rpZS6Sev3n+ahr5YR5O/H5AENCSucx9shAS50KhtjrmA7jtNdO0EppdS1Vu6JocfopeTJ4c+0QeE+kwzA9Q/5xfwztFQppdRNWLrzBA99uYyQPIFMGxROaEgub4d0DVc7lZ8DZonIOWAWtv/AJG3g7GdQSimVgoVbjzFwYjSlgnMxuX9DiuQL8nZI13H1DGE9UB74GNgDXAFik9yuZEh0SimVBfy+6Qj9x0dTNiQ33wxs5JPJAFw/Q3iNZGcESiml0vbz+kM8OWU1VUvkY8IjDSiQK9DbId2Qq8NOIzM4DqWUynJmrznAs9PWUqt0Acb2rU++oABvh5SqdI8cEpE8IlJGRHz7nSmllBdNW7GPZ6auoX7ZYCY80sDnkwGkIyGISHsRWYVdt2gndoIaIjJGRHpkUHxKKZXpTFyymxdmrOOOCoUY+3ADcudw9eq8d7mUEESkMzAbOA78H9cWytmFrYeglFLZ3phFO3l59kZaVSnCmD71yBno5+2QXObqGcKrwFhjzN3AR8me2wBUd2tUSimVCY34Yxtv/LiJdjWK8WnPuuTwzzzJAFxPCFX4Z9G65KONYoCMK/KplFI+zhjD+79u4b1ft9KldkmGP1CbQP/Mt7iDqxe2zgA3WqC7LHDMLdEopVQmY4zhrZ82MXrRLh6oX5o3u9TAz5FS+Xnf52oK+w1bDyHpQt1GRHIATwA/uz0yL1i5J4aR87ezck+Mt0NRSmUCCQmGV+dsZPSiXfQOL8NbmTgZgOtnCC8By4EtwE/Yy0YvArcD+YHOGRKdB63cE8ODo5ZyJT6BHP4OJg9o5JGi1kqpzCk+wTB05nqmRu9jYLMwhrStjEjmTQbg4hmCMWY3UAf4AbgLiAeaAUuBhsaYgxkVoKcs3XmC2Hi7HNPluAQ++X0bcfG6PJNS6npx8Qk8N20NU6P38dSdFbJEMoB0zEMwxuw3xvQzxpQyxgQaY4obY/oaY/ZlZICe0igshBwBDhwCDoGorcfoOGIxa/edSvvFSqls40pcAk99s5pZaw7yfOtKPHt3pSyRDMDDNQ5E5H4RmSEie0TkoohsEZG3nbWak7YLdk54Oy4i50VknojUyMjY6pYJZlL/Rjx3dyWmDwrn8151OHH+Ml0+XUzknI2cuxyXkYdXSmUCl2LjGTxpJT+tP8x/7qnC4y0qeDskt3J5+pwAPG1SAAAgAElEQVSINAceBEKB5Ev1GWNMSxd2829gLzAU2A/UBiKBFiLS2BiTIDbVfo8dvfQkdljrEGC+iNQyxux3Neb0qlsm+Jp+g8YVCvHeL1sYv2Q3v2w8zGudqnNX1aIZdXillA+7eCWegROjWbTtOK93rs5Djcp4OyS3cykhiMgg4DPgJLAVuJy8iYvH62CMSTpEdYGInATGAxHAH0BHoAlwpzFmvvP4S7Azol8AnnLxWLcsX1AAr3WqTufaJRk6cz0DJkTTploxIjtWo1h+31y+Vinlfucvx9Fv/AqW7TrJu/ffTrd6pb0dUoZIT4GcycAjzpKaNyVZMki0wnlf0nnfETiYmAycrzstIt8DnfBgQkhUJzSY75+8gzGLdvHRvK38+cFxXmhTiZ4Ny2TqIWZKqbRdiDU89OUy1u4/zUfda9GpVsm0X5RJudqHUBK7dEVGFMJp7rzf5Lyvhl0OI7mNQKiIeKUAaYCfg8ciyvPrv5pRO7QAr8zeyH2f/cWmQ2e8EY5SygMWbDnKS39eZO3+U4zsUTtLJwNwPSGsBMLcfXARKYktvjPPGBPt3FwQ22+Q3EnnvVcnB5QJyc2ERxrwUfda7Dt5gQ6f/Mk7P2/m4pV4b4allHKzBVuO8vDYFcRcNjhEKJw3618mdvWS0VPAJBHZYoxZ6I4DO7/pzwbigL5u2udAYCBA0aJFiYqKcsduU1QAGNbQn6lbEvh8wQ5mLN9Jn2qBVC/knmVuz507l6HxK8/Q32PmdCnOMGTRxasLt8XHG6bMW8HZ8r5b7cwdXP30+h7Ihx3pc4Hrv8EbY4zLXe4iktO5zzCgebKRQzGkfBZQMMnzKTLGjAJGAdSrV89ERES4GtJNa3+3ndQ29Lv1vBd9ns61QvhP+6oUypPjlvYbFRWFJ+JXGUt/j5nPpdh4+o1fwekrFwjwE+LjDYEBDh5sVT/Lr17gakL4HTfVVHZWWvsWqAfcZYxZn6zJRuDuFF5aFdhrjDnnjjjcqVFYCD8/3ZRP5+/g06jtRG09xtC2Vehar1SWmbCiVHYQF5/Ak1NWs3j7CT7oVpMyIbmZMm9FtkgG4HpN5YfdcTARcQCTgDuB9saYpSk0mwP0FZHmxpgFztflAzpgRzr5pBz+fvzrrtvoULM4Q2du4IUZ65ixaj9v3VuD8oW90g+ulEqHhATDC9+u47e/jzCsYzXurVMKgLPlA7NFMgAPz1QGRgJdgfeB8yLSKMmtlLPNHGAJ8LWIPCAirZ3bBHjXw/GmW4UieflmYCPeubcGmw6doe1Hi/h43jYux2mns1K+yhjDsO83MnP1Af599230aVzW2yF5xQ0TgojMFJEKybY9KyKFk22rISLrXDxeW+f9S9gP/aS3/gDGmASgPXbJ7U+B77CL6bXILOsmORzCAw1C+f25CNpUL8aH87bS7uNFLN91Mu0XK6U87oPftjJ+yR4GNgvLcstRpEdqZwid+acjFxHxA/4HJJ+ilws7dyBNxpiyxhi5wS0ySbuTxphHjDEFjTG5jDEtjTFrXX5XPqJw3hwMf7A24/rW53JcAt2+WMKLM9Zx+kKst0NTSjmNWriDT/7YzgP1S2eZVUtvVnovGWXff6lbEFGpCL/+qxmDmoUxfeV+Wn4QxZy1BzHGLf30SqmbNGX5Xt76aTP33F6cN7vUyNbJADzfh5Bt5Qr0Z0i7Ksx5ogklC+TkqSmreXjsCvadvODt0JTKlr5fe5Ch360nolJhPuxWS5ehQRPCtfYth0Xv2/sMUq1EfmYObkJkh6pE7z7JXR8u4IsFO64W51FKZbz5m4/yr6lrqF+mIJ/1rEugv34UQtoJIaVrGlnzOse+5TC+A/z+OozvmKFJwc8hPNykHPOea06zioV5++fNWoxHKQ9ZtvMEj369kirF8/Hlw/XIGejn7ZB8RloJ4XsR2Ssie7HLTwP8lLjNuX12xoboIbsXQdxlwEDcJfs4gxXPn5NRvevxea+6xJy/QmctxqNUhlq//zT9xkdTumAuxj/SgLxBAd4OyaekNjFtvMei8AVlm4J/EMRdBAycPuCxQ7epXowmFUKuFuOZs+YglfLHk7dcTLaZEKNURtt25Cy9v1pGgVwBfN2vIQVzZ+11iW7GDROCMcYtC85lGqUbQJ85sHMB7PkTor+E/KWg6bMeOXzeoACGdapO5eL5GDpzPUsuQLcvljBlQEMalAvxSAxKZVX7Tl6g15fL8Pdz8HW/hlrg6ga0JyWp0g2g+fPQcwZUvx9+H2Y7mT3o5PkrJI58i08wPD99HacuZEQZCqWyh6NnLtHry2Vcik1gYr8GlC2U29sh+SxNCCnx84cuX0CNrvD7a7DwPY8dulFYCIH+DhxAgJ9w4NRFOo5YzNYjZz0Wg1JZRcz5K/T6chnHzl5mXN/6VC6Wz9sh+TRNCDfi5w+dP7dJ4Y/XYeH/PHLYumWCmdS/EfdWDOCbgeFMHRTOxdh4uoxczC8bD3skBqWygnOX43h43Ap2n7jAmN71qB2q/XFp0YSQmsQzhdu7wx9vwALPJYX2zhUW65YJ5vsn7qBCkTwMmriSj+dtIyEha478VcpdLsXGM2B8NBsOnGZkjzo0rlDI2yFlCpoQ0uLwg86fwe0PwPw3IOq/Hg+hWP4gpg4K597aJflw3lYen7yK8zo0VakUxcYn8MTk1SzddYL3u9bkrqpFvR1SpuGeeo9ZncMPOn8KIhD1FmAg4kWPhhAU4Mf73WpStUQ+3vppE7uOn2d073qULpjLo3Eo5csSEgzPT1/LvE1HeL1TNTrXLuntkDIVl84QRKSviETe4LlIEenj1qh8kcMPOo2Emj0g6m2Y/7bHQxAR+jcNY/wjDTh0+hIdR/zJX9uPezwOpXyRMYZX52xk1pqDPN+6Eg+Fl/V2SJmOq5eMngZO3OC5o8Az7gnHxzn8oNMIqNUTFrzjlaQA0LRiYWY/3oSQPDl46KvljFu8S1dOVdne/37ZwsSlexjUPIzBEeW9HU6m5GpCqICtdZySTUD2+dd3+EHHT6BWL2dSeAu88GFctlBuvhvcmBaVihD5/d/834x1WpVNZVufRe3g06gdPNgglBfbZO+aBrfC1T6EOOBG3fSFb7A960pMCgAL/msTQouh4OH/hHmDAhj1UF0+mreV4X9sZ/vRc3zeqy5F8uksTJV9TFq2h//O3UyHmiV4o3N1TQa3wNUzhOXAozd47lFghXvCyUQcDpsUaveChe/C/De9cqbgcAjP3l2JT3vWYdOhs7pqqspWZq85wH9mbeDOykX4oFtNrWlwi1xNCG8CTUVkmYgMEJF2zvtlQFPg9YwL0Yc5HNDhE6j9kJ249scbXkkKAO1qFGfGY43x9xO6frGE71bv90ocSnnK75uO8Ny0tTQoW5BPe9YhwE9H0d8ql/4FjTELgPuBIsAXwA/O+8LAfcaYqIwK0Oc5HNBhONTpDYves7OavZQUqpbIx5wn7qBOaAH+NXUtb/20iXidxKayoCU7TjB40iqqlsjHmD71CArQmgbu4PI8BGPMbGC2iFQCQoDjxpitGRZZZuJwQPuPAbGL4RkDLV/xeJ8CQMHcgUzs15A3fvibUQt3sunQGUY8WIf8uXTdd5U1rN13iv7jVxBaMBfj+mpNA3dK98Q0Y8yWjAgk03M4oP1HNgn8+QFgoOWrXkkKAX4OhnWqTpXi+Xh59gY6jfyT0b3rUbFoXo/HopQ7bT1ylj5jl1Mwj/3iozUN3OuGCUFEegM/GmNOOH9OlTFmglsjy4wcDrjnQ0Dgzw/tmUKrSK8kBYAHGoRSoUgeHv16FV0+/YuPuteilU7jV5nU3hMX6DVmGYF+Dib1a6Q1DTJAamcI44BG2Alp49LYjwE0IYAzKXxgk8DijwADrYZ5LSnUK1uQOU80YdDElQyYGM1zd93G4y0q6NA8lakcOXOJnl8u5Up8AtMGhRMaoku2ZITUEkI54FCSn5WrEpMCAos/tmcKd73mtaRQokBOpj8azv/NWMd7v25l06Gz/K/r7eQK1KWslO+LOX+FXmOWcfLcFSYPaMRteukzw6RWQnNPSj8rF4nAPe/b+7+GAwbuet1rSSEowI+PuteiavF8vDN3MzuOndPF8ZTPO3splj5jl7Pn5AXG921AzdIFvB1Slubq4nbxItLgBs/VFRFdMyElItDuPag/AP76BH79j9eGpNpwhEHNyzP24focOHWRTiMXs3TnjZaoUsq7LsXG0398NH8fPMNnPesQXl5ri2c0V2dypPa11g/bh6BSIgLt/gcNBsKSEV5PCgARlYow+/EmBOcKoNeYZUxcslsXx1M+ZfmuE9wzfBHLdp3k/W41aVlFB0N4QqoXkUXEwT/JwOF8nFROoC2gazCnRgTavguITQrGQOs3vXb5CCCscB6+e7wJz3yzhpdnb+TvQ2cY1rE6gf4621N51/JdJ3hg1FISDAQ4hFLBelnTU2741y8irwKxwBXsGcBi5+OktzPAK8B0Vw8oIqVE5BMRWSIiF0TEiEjZFNoFicj/ROSQiFx0tm+WjvfmW0Sg7X+h4aOwdCT8MtTrZwr5ggIY3bsegyPKM2X5PnqMXsqxs5e9GpPK3k5fiOX56etInGCfYIxe1vSg1M4Qopz3gv3Q/xJIvkDOZeBv7FIWrqoAdANWAouAu2/Q7kvgHuB5YCfwOPCLiIQbY9ak43i+QwTavAMILP3UJoQ2b3v1TMHPIbzQpjJViufj+W/X0nHEn3zxUF1uL6Wdd8qzdh0/T79xK9h/6gIBfkJCgiHA30GjMO078JTURhktABYAiIgBxhhjDrjhmAuNMUWd++1PCglBRGoCPYBHjDFjndsWYGsyvAZ0dEMc3iHyTxJY+qnd5uWkANChZgnKFcrNoIkr6fr5Ev573+1aflB5zJIdJ3j065U4BKYMCMfPISzdeYJGYSHULRPs7fCyDZcGohtjhiXfJiJVgSrAEmPMQVcPaIxJcKFZR+wlqalJXhcnIt8AL4pIDmNM5r22IQKt38KeKYwEk2AvJ3k5KVQvmZ/ZTzRh8NereGbqGuZvOUrFInkIL19I/yhVhpm6Yi8vfbeBsoVy82WfepQJyQ2g/+e8wKWEICIjAH9jzKPOx/diP6z9gDMicpcxxp01EaoBu4wxF5Jt3wgEknoFt8xB5J+O5SUjAGM7nr2cFArlycHX/RvyxORVzF5j83wO/+1MHtBI/0CVW8UnGP47dzOjFu6kacVCjOxZh3y6UJ1XuTqkpC3wV5LHw7D9BjWxxXNedXNcBYGYFLafTPJ85icCd78B4U/A8lHw0/Ne72gGCPR3ULN0gavDyy7HJTBjpdZXUO5z/nIcgyauZNTCnfQOL8PYh+trMvABrq5dUBzYDXaUEPYbfD9jzHoRGY7tAPY6ERkIDAQoWrQoUVFR3g3IVYGtCCu9n9AVozlwYD/bKg7i3PnzXo0/x6l4AhwQm2CHmE1ZvpcrMYdoFxaAQ9dBctm5c+cyz/9DDzlxMYGPVl1m/9kEelUJ5M78x/lz0UJvh3VD2el36GpCuADkcf7cHDvcNNr5+Bzg7sVFYoAyKWxPPDM4mcJzGGNGAaMA6tWrZyIiItwcVgaKiIDfXqHkX8Mpmc+PnZcLEFazD5ROcYJ4xocD1K4Tw9KdJ7i9VH6mrtjHt+sOcYT8fNCtFoXz5vBKXJlNVFQUmer/YQZbs+8Uz0+I5tIVB+MeqUfz23y/JHt2+h26mhBWAY+LyF7s8M/fknQOJ10Ez102Al1EJFeyfoSq2HkR2918PO8TsQvgnT0M66fZ1QTHz4A+c7yWFOqWCb7ab3BHhUI0qVCIyDkbafvxIj7qXos7KhbySlwqc/ph3UGem7aWIvlyMLl/Q63P4YNc7UN4CbsU9lqgEtfWUO6M7Udwp++BAKBr4gYR8Qe6A79m6hFGqRGBwpUBsdfv4y7C5h+9HJQlIjzYIJTZTzShQK4AHvpqGe/9soW4eFcGjanszBjD8N+38cTk1dxeKj+zBjfRZOCjXB12ukJEQoHKwDZjzJkkT48CtqXnoCJyv/PHus77tiJyDDhmjFlgjFktIlOBj0QkANgFPIY9G+mZnmNlOuWagn8QJu4SgoEVX0JoOFRq4+3IAKhcLB9znmhC5JyNjJi/nWW7TvDxA7UpUSCnt0NTPuhSbDz/N2Mds9cc5N46JXn73hrk8Nf6x77K5YVrjDHnjTErkyUDjDE/3kRt5enO26POx586Hyed79AXGAu8AfwIlAbaGGNWpfNYmUvpBtBnDrvK9YL7xkLBsjClO/z8IsT5xolRrkB/3r2/Jh91r8XfB8/Qbvgi5v19xNthKR9z7OxlHhy9lNlrDvJCm0q837WmJgMfl64KKc4ZxJWA62rXpaeEpjEmzWEqxpiLwLPOW/ZSugF7y1wgrEYEVLkHfnsFln0GexZD13EQUt7bEQLQuXZJbi+Vnycmr6b/hGgeaVKOF9tW1gXyFJsPn6HfuGhOnL/M573q0KZ6cW+HlLntXAC7FsJtrTO0T9HViWkFsN/Sw7GjEBM/0JMOmtcSmhnBP4edxVyuOcweDF80s9XYanb3dmSAXTV15uDGvP3TJr5avIvoPSf55MHaV2ebquznj81HeHLyavIE+TN9UGNqlMrv7ZAyr1N74ffXYP107GrJIzN0oImrX+XeAkKApjYqugB3ApOwC895ZxhMdlK5HTy6GIrdDt8NhO8ehcvnvB0VYKuxDetUnc971WH38fPcM/xPvl/r8momKoswxjBm0U76j4+mXOHczH78Dk0GN8MY2L0Ypj4EH9eE9d8mPgHxV2D3ogw7tKsJoTU2KSx1Pt5vjIkyxvQG5gFPZ0RwKpn8JaHP99D8RVg3FUY1h0NrvR3VVW2qF+fHp5pSsWgenpyymiEz13MpVovpZQex8QkM/W4Db/y4iburFmPaoHCK5b/uyrJKTewlWD3JXgUY185eImr8JHSbCP45QfzALxDKNs2wENIzU3mnMSZeRC5x7US0mcA3bo9MpczPH1oMgbJ3wMwBMKaVXf6iwUCvr4MEULpgLqYNCue9X7fwxYKdrNoTw4getXWYYRZ2+kIsj01ayV87TjA4ojz/vrsSDof3/y9mGmcP29GE0V/BheN26Hn7D+H27hDovPSad449Myjb1Pt9CMBhIHGB/D3YvoQo5+MKbo5JuaJcU3sJadZj8PMLsDMKOo2EXN5f5inAz8GQtlUIDwvhuWlr6ThiMcM6VaNr3VKIDyQt5T6JNQz2xVzg/a41ua9uKW+HlHkcWAlLP4eN30FCnO0wbvgohEVc/+WudAOPTFB1NSH8iZ2Y9gMwEXjVWeUsDugDzMmI4FQacodAj6mw9DM7EunzO+C+MVCmsbcjA2zt5p+ebsrT36zmhW/X8df247zRpQZ5cqRrcJvyUYk1DPwcwuQBjahf1vtfRnxefCxsmmMTwf7lEJgX6vezZ/g+MHrQ1b/MYUAJ58//w3YwdwdyYZPBk+4PTblEBMIHQ5lw+PYRGHcPRAyBps+Bw/tjvovmC2JS/0aM+GM7H/++lbX7TzOiR22qldDOxszsm+V7+c8sW8Pgqz71CQ3RusepOn8CVo2D5WPg7EEILmerJ9bqCUH5vB3dVa7OVN4B7HD+HAs857wpX1GiNgxaCD88C/PftB1S946CfCXSfm0G83MIT7eqSMOwgjz9zWq6jPyL/7SvwkONyuglpEwmPsHwzs+bGL1ol9YwcMWRjfYMfv10iLtkh4+3/wAq3u0TX9iSu+UZRCLSSUTOpN1SZbgceW0S6PyZvT75WRPY+ou3o7qqUVgIPz3VlMYVQnhl9kYe/Xolpy/Eejss5SJbwyCa0Yt20UdrGNxYQrxdg2xce/issU0Gt3eHx5bYOQSV2vpkMgA3JATsWYbOQvIVIlCrhz1byFcSJneDuUN9ZtmLkDw5+KpPfYa2q8zvm47SbvgiVu1NqRaS8iUHTl3k/s+XMH/LMV7rVI1hnarj76cz0q9x6bSdOPZJHfimB5zcCa0i4dlN0HE4FK3q7QjTpL17WVWhitB/nu1sXjrSLntx/1c+0XHlcAgDm5WnftmCPDllNd0+X8K/W1diYNMwHa7og1bvjWHAhJVcjo3nq4frZ4oaBh51fDss/wLWTIYr56B0I5sIKneww8QzEU3xWVlAELR7Fx6YDDG77YSXddO8HdVVtUOD+fGpptxVtSjv/LyZvuNWcOKcb5zJKOv7tQd5YNRScgY6mDm4sSaDRMbA9nnw9f0woi5Ej4XK7WFgFPT7Bap1yXTJADQhZA+V74HHFkOxGnYy26zBPrPsRf6cAXzasw6vd6rGkp0naPvxIpbsOOHtsLI9Ywwfz9vGk1O0hsE1rpyHFWNgZAP4+j44tMauHPCvjXDvF3ZwRyZ2wxQmIne6uI8abopFZaT8paDPD7DwXVjwLuxbDl3H2iThZSLCQ+FlqVMmmCcnr6bnmKU8eWdFnmpZET+9hORxl2LjeeHbdcxZqzUM2Lec0D3fwt9n7LyBVRNsX0HxmtD5c6h+r12AMotI7ZxmHteubJqSxOdNKm2Ur/DzhxZDncteDITRLaH1m1C/v08se1GtRH6+f/IOXp69gY9/38bSnbb4jq6J4znHzl5m4MRoVu89xQttKvFY8/LZd2jwnqUwoQPl4q/AromAA6p2hEaPQemGPvE3426pJYQWHotCeVa5ZvDon3bZi5/+bZe96PiJTyx7kTuHPx90q0Xj8oV4edYG2g1fxPvdatKiUhFvh5blaQ0DbN/AgZWwYQasmgjxV5zfiMUuNHf3a14OMGPdMCEYYxZ4MhDlYbkLwYNTbeGd316Fz5s6l70I93ZkANxftxS1Shfgicmr6Dt2BYOahfHv1pUI0KGOGeL3TUd4ako2rWFgDBxeBxtmwsaZtgaBXyCUrAsHokmIj8fhnwOqtPd2pBnulrvBRcQBFDDGnHRDPMqTHA4If9zWbP72EbvkbsRQaPqsT0ycqVAkD7Meb8LrP/zNFwt3smyXLb5TuqAuk+Auxhi+/HMXb/60iWol8jGmd/3sc4nu6GZ7JrBxJpzYbpeXLt/CLv1SqR3kLAD7lrP7jwmE3dnbI4vLeVtqncongVaJNYzFXkicDTxjjNmZpGl94C/A+58g6uaUrGMnsv34LMx/A3YtgHtHQz7vXzIICvDjzS41aFy+EC/OWEe74Yt4977baVvD+7FldrHxCbwyewNTlu+jTbVifNC9JrkCM99QyXQ5scMmgA0z4ejfgNiVg8OfgCod7YKRSSWWs80GyQBSP0MokOx5B9AeiMzIgJSXBOWzSSCshe1X+LwJNPkXJFzJ8DXYXXHP7cWpUTI/T05ZxWOTVvFQozK8dE8VggL0e8jNOHXhCoMnrcoeNQxO7bVLTG+YaYeJgp081vZ/ULUT5C3q3fh8SBb/OqDSRQRq94RS9WFyd/jtP4CAf6AdsurlpBAakovpjzbmf79sZvSiXUTviWFkj9qEFc7j1bgym53HztFvfDT7s3INg7OHYeMse0lo/3K7rUQdW0yqWhc7DFtdRxOCul7h26DmAxD1NmDsOkiTu0GNblChlR22Guid6/iB/g5euqcq4eVt8Z32n/zJG52rc28d/QN3xV87jvPY16uyZg2D88fh79n2bGD3n4CBotWh5Ss2CRQM83aEPk8TgkpZ+Rbw54e2qLc4IKSinZSz/AvwywFlm0CFu2yCKFTR42Oy76xc1BbfmbKGZ6et5a8dJ3itU7Wsfw38FiTWMChXKDdfZpUaBhdPweYf7JnAzgVg4u3/1eb/ZyeNFa7k7QgzlbT+ekqKSGJa9Uuy7VSSNvrVLCsq3cAu1Zu0jmvsJbtI3vbfYftv8MsQeysQahNDhbvsHIccnrmEUzx/TiYPaMjw37fxyfztrN4bw4gedahS3HcKjviCFbtP8u7czazYHUOz2wozokftzL1s9eWzsOVn2yewfR4kxEKBMtDkaZsEilbPkpPGPCGthPBtCttmJXusM5WzquR1XAOCoEJLe+MtiNlj/yC3z4O1U22RcEeAncuQePZQpEqG/nH6+zl49u5KNAwL4Zmpa+g44k8iKhVhULMw6mWlyyE3ac6aAzwzdQ0JxhYqeqJF+cyZDK5cgG2/2jOBbb/aYjP5SkLDQTYJlKijScANUksIfT0WhcqcgsvYerD1+0HcFdi75J8E8dvL9pavpDOJ3AVhzSEoYyY8NalQiHfurcGACdH89vcR5v19hP5Ny/Gvu27LlpeRonef5PMFO5m36cg/G41hxe4YGpQLufELfcW+5XYGvV8gHNkAm3+C2POQuzDU6Q3V7rXLRzh0oqI7pTZTebwnA1GZnH+g/cAPaw53vw6nD/yTHDbOsv0PDn/7R5yYIIrVcOu3us2Hz1792QCjF+1i6op9PNgwlN7hZSlZIKfbjuWLEhIMv206wqiFO1m5J4YCuQLoWq8Uc9YcJC4+gQB/B43CfDQZJMTbJdqPb4Vt82DlWNsfALYQfY37ofp9dkCDD0yazKqy31cn5Rn5S0LdPvYWHwv7V8C232yC+P01e8tT1Nn30NLOf7jFtZQahYUQ6O8gNs5++L3SviqLt59g9MKdjFm0izbVi/FIk3LUCS2QpRZsuxQbz6zVBxi1aCc7j52nVHBOhnWsRtd6pcgV6M8D9UNZuvMEjcJCqFsm2LvBxl6ys4KPb4FjW/+5P7Ed4lOohSEO2zfQ/HnPx5oNaUJQGc8vAMo0trdWr9ox4jv+sAli84+wZpL9wy9ZDyreZRNE8drpvhxQt0wwk/o3uubDr0fDMuyPucDEJXuYsnwvP647RM3SBXikSVna1SieqddGOn0hlq+X7WHs4t0cP3eZ6iXz8cmDtWlbvdg15S3rlgn2fCK4dMZ+2z+25doP/5jdYBKcjcRedixUCSrcae8LV4LLZ+CbXnaEm5/zzFN5hBjjm/3BIlIa+BC4C9txPQ+7bIFrl54AAA8DSURBVMZeV15fr149Ex0dnYERZqyoqCgiIiK8HUbGS4i3q0tun2cTxMHVgIFcIVC+pU0Q5e+0i/HdovOX45i5aj9jF+9m5/HzFMsXxEPhZejRIJTg3IG3/l5SkBG/xwOnLvLVn7v4//bOPbiu6rrD3+9almxLMn5IlsA8jLElTxw7PAoxtBjc0qRDAxQmydCmJIYACaSPNJ4mbvoIpUwghWZCM0AMjGOaBNpiSJtCIAUbHGziGjvEdqCWjLGLDUj4bcmyLdla/WPvi66vdaWri67ulbS+mTNHd5919llnL529zn6cvf51zVscbD/G3LpqvjB3KhedNXFgWz5mcHBnSqUft12N0PJul1xiJEycFr5vSVb61fUhbWSGbrzta46f4VZAhsKzKGmdmf1Gb3JF2UKQNAZYDhwBPkfoEr4DeEHSbDM7WEj9nH4kMaJrNtO8r4ePi7Ysj+MPy2DjvwMKkaimXRYcxOTzcupHLi8r4boLp/CZj57BisadLF61lbt/1sB3l2/m6nNOZc6ZE9ix71BxdK2kYWY88csdLF65jYamAyBxxeyTuXnuWXzolDxPs+3shP1vpXTxNHS9/R9OmYFeWgFVdTD10rCvrg8OYPyUvoeTTJ/h5gwIRekQgJuAqUC9mb0BIGkDsBn4AvDtAurm5JPyKpj96bB1doa1Z5KD0y/dEyK+jRoXWg3TLgtbH9eiSSTEvBmTmDdjEg1NLSx5eStL123nsTWh8ZkQXD7rZC6eXsX0mkrqaiqpKBu4R2XvwXY2NbXQ2NxCQ3MLDU0t/O87B2jrCIOsIxLivj86p//jFRxthz1vpvXvN8CuzXD0UJfcmKpQ2c+8Olb6sfIfO9mnfg5yitUhXAmsTjoDADPbKmkVcBXuEIYHiURYiXXyuXDJV6FtT5iK+P7spSeDXO2sru8epDD9NcuuhvraSu68ZjYTy8u474U3MKDT4NlfN/HUhq5uj8njRlNXU0FdTSXTayqpr6lk2qQKRpfmPuOlrf0om5tbaWjqqvgbmlvY2dI1uHrS6JHU11ZSV1vJ+u37wgc/ZmzZ2YdGcnr3y5HW8Ib/fh9/3O/dCp1Hu8476fTQzTPl4uO7e4ogkJKTH4rVIcwkLLWdzmvApwZYF6dYGDMhfIT04WtiUJONXc5h1b2wMuU9QSPCNMXq+vDtQ1kllI0N+1FxXxbTS0qZN2MSa1c+y3n2Gus0kwWfv47qijIam1vY/F6otBubW1j1xm7aj4VBUQlOGz+GuppK6moqqK+tZPqkSqZWlzNq5Ag2vfI8ba8+weujOyiZMie89adU/tv3tpEcwhs1MkFdTSWX1FVTX1NJfW3YJlWWIYl1/7eXux/+l/f1mzP1olAGxzrC/Pz2NuhoC0HgO9q6fjdtDEuQdB4NCo+pgoPvdZVToiSs8VNdH8JDVtXHyr8OSssH0LhOMVCUg8qS2oFvm9nCtPQ7gIVm1qsj80HlYcbh/fD0Atj4eFeaRnTNZe+JklFQMgo7vJ9kmHCNPzMswaFEGK9QAjQCkzh8FA52GG0dnbS2G63tYX/MxDESGKKq5BDndr6G6MRIsKazngOUk5BRUZqgsixBRekIKkoTlJeKUSOEsDADp7vtSAu2ewvJRQE0ckxYdDCb+0ulZhbMvKrrbX/C1DALzMnIUHgWB/Wgcq5Iuhm4Of5sldQQ/z4J2J9lNtnI9iaT6Xhf0quAXb3oMRD0pezynV+P51aWUj59QqIOkcDo3Lyns7GlnUx9Kyl5HWBypWprKzQZwMCaWtfveafFtvVBj+PSJk8cM72m9MhYYRiiuX3jgbd3t23O5ia7I12/5taWd95usabezjuxTFY1trSv6o9JGbnacSCfxVyODdVn8YyspMys6DagGVjUTfr9wM4c8nuwP2V7k8l0vC/pwNpC26GvZZfv/LI9N5827MFemWzrdszxvA9qx1yODadnsbutWL/KeY0wjpDOh4DXc8jvv/pZtjeZTMf7ml4M9LduHyS/bM/Npw0zHStmG0Lx2HEgn8VcjhWzHfOuW7GOIXwZuAeosxi/WdIUwrTThWb2T4XTbmCQtNay6PNzihu34+BnONmwWFsIDwHbgP+UdJWkKwmzjrYDiwqp2ADyYKEVcPoFt+PgZ9jYsChbCACSTuf4pSuWEZau2FZIvRzHcYYqResQHMdxnIGlWLuMHMdxnAHGHcIQQdLfSmqU1CnpDwqtj9M7ks6StDLa7VVJw2Lgcigx1J47dwhDh+eA3wN+XmhFnKz5HvCImdUBXwV+pKEUuWd4MKSeO3cIeUDSqZK+K+kXktokWZw2253saZKWStov6YCkJ+OAep8ws9XJKbpOfuhPu0qqBuYASwDM7DnC5Inz8n4jw5j+fjaH2nPnDiE/TAM+DewFXsoklBL3YQYh7sN1wHRC3AdfWaz46E+7ng68a2YdKadui+lO/vBnsweG1FpGRcTPzawGQNKNwMcyyGUV90HS88DZGfK4ysxW9aPuTmb61a5OQXAb9oC3EPKA2ftBY3uj27gPQDLuQzLtMjOryrC5Mxgg+tmubwEnS0pdanRKTHfyRH8/m0MNdwiFZSbw627SXyOs2+QMTnq1q5ntBNYA8wEkJT/AXDcwKjq9MCyfTXcIhWUCoS8znT1An4L6SrpN0g7gQuBhSTskndoPOjp9J1u7fhG4XlIjcDfwGfMvRYuFrGw41J47H0MYIpjZbcBtBVbD6QNmthm4qNB6OLkz1J47byEUlr103xLI9HbiDA7croOfYWlDdwiFpb/jPjjFgdt18DMsbegOobD8BJgjaWoyIX4k85vxmDM4cbsOfoalDX210zwh6ZPxz98hDB7eCuwkhABdEWXKgfXAIeBvCBHU/wGoBGabWetA6+30jNt18OM2zIw7hDwhKVPBrjCzS1PkPO7DIMLtOvhxG2bGHYLjOI4D+BiC4ziOE3GH4DiO4wDuEBzHcZyIOwTHcRwHcIfgOI7jRNwhOI7jOIA7BMdxHCfiDsEZVEgaF5ccPjcPeU+JMXbn53Dui5Je7G+dPiiSLo3lNeDPuqSz47UnDPS1ndxwh+AMNsYB3wD63SEA7xLWtX86D3kXiksJ5VWIZ/3seG13CIMEj4fgDHskCRhpZkeA1YXWp1DEcJ5HPUjP8MVbCE6/EbsHTNIMST+TdFDSW5Kuj8evk7RJUqukFySdlXb+tZKWS9oZZV6V9LmU41OArfHnQ/Fax3XxSLpG0mpJbZL2SXo8rkmTep1tkn4o6QZJm4B24Pe76zKSdL6kpTES1iFJDZK+KWl0jmVULukuSVskHZHUJOkJSTUpMhdIej6WwUFJyyRdkJbPkqjTOZJeive7WdIXU+1BeEMH6EiWV7Is4+9bJf2jpHeAI8A4SdWSFklqjPlul/SopMlpOtRJ+rGk9yQdjrZ+XFJJLMPvR9HNKbaakku5OQODtxCcfPA48BBwD2ElycWSphO6LxYCI4F7gUeBj6acNxVYCtwFdAJzCWEJR5vZ9whdOtcATwJ30rUM8RaAWBk+QKiIbiesTHkbsELSbDNrSbnWPEKXxt8D7wHbMtzL6cCvgCVAC2GN/L+Lul7bhzJBUinwHPCReI+rgZOAjxOCsTRLmg2sIKy5P5+wyubCeA9zzGx9SpZjCWX4nXi/1wMPSGowsxeAh4FTgc8DvwUc60atvwZeAW4GRgCH4z0fBv6KsAroKcACYJWkGWZ2OJ77NCFYzC3ALmAycDnhRfNp4A7CSqGfAnbEc97tS5k5A4yZ+eZbv2yEyteAz6akjQeOAruBsSnpfxZlz8iQV4LwwvIQsD4lfUo878Y0+QpgP7A4Lf1MQgvgyylp24A2oDZNNpn3/Aw6Ker0xwSHNTHl2IvAi72Uzw0x/yt7kFkK7APGpaSNJcTyfTIlbUnMa15KWlks5we7sUlJhnv9JXGRyx50GgGcFuWvjmlVWdzL/CgzrdD/m75lt3mXkZMPnkn+YWZ7CW/gq83sQIrMprg/LZkgabqkxyS9DXTE7UagPotrXkioOH8UuyxKJJUA2+O15qbJrzazpt4ylTRW0rckbSF0qXQAPyA4h+lZ6JXKx4AmM+spwMpc4Ckz25dMiOX2E+CSNNk2Cy2BpNwRoJHwhp8t/2Gx9k5F0i2S1ktqJTj0t+KhpC12A28Cd0m6KbYAnUGOOwQnH6THnG3PkAYwCkBSBV3dKQuBi4HzgcWEN9/emBT3z9PlTJLbLGBimny2XRffJwRR+WfCuvjnA19K1b0PTATe7kVmQgbdmjgxxm93sX2P9FGvE64l6U+B+wlleQ1wATAnHh4FEJ3I7wJrCd13jZLelHRLH67tFBk+huAUCxcCZwAXm9nKZGJ8y8+G3XE/nxAPN52WtN+9zqSRNAq4CrjNzO5NSZ+VpU7p7AI+3IvMHqC2m/Ra8hPcvbtyuBZYZmYLkgmSzjzhRLM3gc/GWVofAf4EuF/SNjN7Jl3eKX68heAUC2PiviOZIGk8oUJO5Ujcp8/yeZlQ6U8zs7XdbA056FRG6D/vSEufn0NeAP8N1Eq6ogeZFcDlkiqTCfHvKwjjFH0lU3n1xBhOvOfrMwlb4FfAV2JS0unlcm2ngHgLwSkWXgYOAPdJ+gZQTpihsoswEydJM6E1cK2kDcBBYKuZ7Zb0l/H8asI4xn7CzJdLCAO+j/ZFITPbL2k1sEDSu1GXG2KeufBD4CbgMUl3Av9DmAn1ceA7ZraJELf3E8AySd8ivMF/jVBJ357DNV+P+wWSngGOmdnaXs55FviapK8Da4DfBj6ZKhBnQ90L/BvwBsFxzieMNyxPu/aXJD1CcDIbzKwdpyjxFoJTFJjZTuBqQsWylNAv/TChEk2V6yQMNI8n9HG/Qnh7xswWAVcSBj5/APyUMMumhDB1NBf+EFgH3EeY2dME/HkuGZlZB2Fg+QHCNM+fEvrqqwhdRZjZBsL03APAI/E+WoFL7Pgpp9nyVLzGrcAvCOXVG7cDi4C/AH4MzCY4rVSaCAPNXyEMeD9GmJ76CTNbF+9lPaH8rwBWxmufksM9OAOEx1R2HMdxAG8hOI7jOBF3CI7jOA7gDsFxHMeJuENwHMdxAHcIjuM4TsQdguM4jgO4Q3Acx3Ei7hAcx3EcwB2C4ziOE/l/oc/+DPr2vgwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#energy_split[2, 7] = float('nan')\n", "for j, noo in enumerate(noos):\n", " font = {'family' : 'DejaVu Sans',\n", " 'size' : 16}\n", " plt.rc('font', **font)\n", " fig = plt.figure() \n", " plt.tight_layout()\n", " plt.semilogx(cons, 100*abs(energy_split[j]-energy_simple[j])/energy_simple[j], '.-')\n", " plt.semilogx(cons, 100*abs(energy_laminate[j]-energy_simple[j])/energy_simple[j], '.-')\n", " plt.legend([\"split\", \"laminate\"])\n", " plt.xlabel(\"material contrast\")\n", " plt.ylabel(\"ELastic Energy Error(%)\")\n", " plt.gcf().subplots_adjust(bottom=0.15)\n", " plt.gcf().subplots_adjust(left=0.15)\n", " plt.grid(True)\n", " plt.title('noo ={0}'.format(noo))\n", " plt.ylim([0, 50])\n", " #plt.grid(True, which='minor', color='g', linestyle='-')\n", " fig.savefig('error_comparison_split_laminate_semi_log_x_noo_{0}.jpg'.format(noo))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "autoscroll": false, "ein.hycell": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for j,noo in enumerate(noos):\n", " font = {'family' : 'DejaVu Sans',\n", " 'size' : 16}\n", " plt.rc('font', **font)\n", " fig = plt.figure()\n", " plt.tight_layout()\n", " plt.loglog(cons, 100*abs(energy_split[j]-energy_simple[j])/energy_simple[j], '.-')\n", " plt.loglog(cons, 100*abs(energy_laminate[j]-energy_simple[j])/energy_simple[j], '.-')\n", " plt.legend([\"split\", \"laminate\"])\n", " plt.xlabel(\"material contrast\")\n", " plt.ylabel(\"ELastic Energy Error(%)\")\n", " plt.gcf().subplots_adjust(bottom=0.15)\n", " plt.gcf().subplots_adjust(left=0.15)\n", " plt.grid(True)\n", " plt.gcf().subplots_adjust(bottom=0.15)\n", " plt.gcf().subplots_adjust(left=0.2)\n", " plt.title('noo ={0}'.format(noo))\n", " plt.ylim([1e-2, 1e2])\n", " #plt.grid(True, which='minor', color='g', linestyle='-')\n", " fig.savefig('error_comparison_split_laminate_log_log_noo_{0}.jpg'.format(noo))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.7.2" }, "name": "contrast_laminate_split_compariosn-checkpoint.ipynb" }, "nbformat": 4, "nbformat_minor": 2 }