From c0296bca1d981b439323e7555e993aa85b20186f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikkel=20Friis-M=C3=B8ller?= <mikf@dtu.dk> Date: Mon, 28 Feb 2022 08:21:28 +0000 Subject: [PATCH] excusion_zones --- _notebooks/elements/bathymetry.ipynb | 340 ----- _notebooks/elements/constraints.ipynb | 554 -------- _notebooks/elements/cost_models.ipynb | 917 ------------- _notebooks/elements/drivers.ipynb | 573 -------- _notebooks/elements/layout_and_loads.ipynb | 619 --------- _notebooks/elements/loads.ipynb | 250 ---- _notebooks/elements/problems.ipynb | 269 ---- _notebooks/elements/roads_and_cables.ipynb | 478 ------- .../elements/wake_steering_and_loads.ipynb | 576 -------- _notebooks/make_notebooks.py | 101 -- _notebooks/notebook.py | 24 - docker/Dockerfile_simple | 18 +- docker/howto_docker.txt | 4 +- .../Do_not_add_notebooks_here_manually.txt | 5 - docs/notebooks/bathymetry.ipynb | 16 +- docs/notebooks/constraints.ipynb | 1130 ++++++++-------- docs/notebooks/cost_models.ipynb | 16 +- docs/notebooks/drivers.ipynb | 1161 ++++++++--------- docs/notebooks/exclusion_zones.ipynb | 374 ++++++ docs/notebooks/layout_and_loads.ipynb | 22 +- docs/notebooks/problems.ipynb | 31 +- docs/notebooks/roads_and_cables.ipynb | 985 +++++++------- docs/notebooks/wake_steering_and_loads.ipynb | 22 +- docs/source/examples.rst | 1 + .../exclusion_zones_nb.nblink | 3 + examples/docs/example_2_wake_comparison.py | 7 +- ...irr_opt_with_capacityconst_turbine_type.py | 8 +- ...mple_1_constrained_layout_optimization.png | Bin 30088 -> 30777 bytes .../figures/example_2_wake_comparison.png | Bin 8247 -> 8476 bytes .../optimization_course/exclusion_zones.py | 198 +++ setup.py | 2 + topfarm/constraint_components/boundary.py | 396 +++++- topfarm/cost_models/cost_model_wrappers.py | 28 +- topfarm/tests/notebook.py | 178 +++ topfarm/tests/test_notebooks.py | 42 +- topfarm/utils.py | 41 + 36 files changed, 2869 insertions(+), 6520 deletions(-) delete mode 100644 _notebooks/elements/bathymetry.ipynb delete mode 100644 _notebooks/elements/constraints.ipynb delete mode 100644 _notebooks/elements/cost_models.ipynb delete mode 100644 _notebooks/elements/drivers.ipynb delete mode 100644 _notebooks/elements/layout_and_loads.ipynb delete mode 100644 _notebooks/elements/loads.ipynb delete mode 100644 _notebooks/elements/problems.ipynb delete mode 100644 _notebooks/elements/roads_and_cables.ipynb delete mode 100644 _notebooks/elements/wake_steering_and_loads.ipynb delete mode 100644 _notebooks/make_notebooks.py delete mode 100644 _notebooks/notebook.py delete mode 100644 docs/notebooks/Do_not_add_notebooks_here_manually.txt create mode 100644 docs/notebooks/exclusion_zones.ipynb create mode 100644 docs/source/examples_nblinks/exclusion_zones_nb.nblink create mode 100644 examples/optimization_course/exclusion_zones.py create mode 100644 topfarm/tests/notebook.py diff --git a/_notebooks/elements/bathymetry.ipynb b/_notebooks/elements/bathymetry.ipynb deleted file mode 100644 index 063ba1f0..00000000 --- a/_notebooks/elements/bathymetry.ipynb +++ /dev/null @@ -1,340 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optimization with bathymetry and max water depth constraint" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Install packages if running in Colab" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "id": "3yhWisczHKap" - }, - "outputs": [], - "source": [ - "try:\n", - " RunningInCOLAB = 'google.colab' in str(get_ipython())\n", - "except NameError:\n", - " RunningInCOLAB = False" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "id": "mGJDyPJrHQzm" - }, - "outputs": [], - "source": [ - "%%capture\n", - "if RunningInCOLAB:\n", - " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git\n", - " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git\n", - " !pip install scipy==1.6.3 # constraint is not continuous which trips vers. 1.4.1 which presently is the default version\n", - " import os\n", - " os.kill(os.getpid(), 9)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Import section" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "id": "0tTJQPtBHbXU" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import time\n", - "\n", - "from topfarm.cost_models.cost_model_wrappers import CostModelComponent\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "from topfarm import TopFarmProblem\n", - "from topfarm.plotting import NoPlot, XYPlotComp\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.examples.data.parque_ficticio_offshore import ParqueFicticioOffshore\n", - "\n", - "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian\n", - "from py_wake.examples.data.iea37._iea37 import IEA37_WindTurbines" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Set up site and optimization problem" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "id": "2vx4s8huHfXq" - }, - "outputs": [], - "source": [ - "site = ParqueFicticioOffshore()\n", - "site.bounds = 'ignore'\n", - "x_init, y_init = site.initial_position[:,0], site.initial_position[:,1]\n", - "boundary = site.boundary\n", - "# # # Wind turbines and wind farm model definition\n", - "windTurbines = IEA37_WindTurbines() \n", - "wfm = IEA37SimpleBastankhahGaussian(site, windTurbines)\n", - "\n", - "wsp = np.asarray([10, 15])\n", - "wdir = np.arange(0,360,45)\n", - "maximum_water_depth = -52\n", - "n_wt = x_init.size\n", - "maxiter = 10\n", - "\n", - "def aep_func(x, y, **kwargs):\n", - " simres = wfm(x, y, wd=wdir, ws=wsp)\n", - " aep = simres.aep().values.sum()\n", - " water_depth = np.diag(wfm.site.ds.interp(x=x, y=y)['water_depth'])\n", - " return [aep, water_depth]\n", - " \n", - "tol = 1e-8\n", - "ec = 1e-2\n", - "min_spacing = 260\n", - "\n", - "cost_comp = CostModelComponent(input_keys=[('x', x_init),('y', y_init)],\n", - " n_wt=n_wt,\n", - " cost_function=aep_func,\n", - " objective=True,\n", - " maximize=True,\n", - " output_keys=[('AEP', 0), ('water_depth', np.zeros(n_wt))]\n", - " )\n", - "problem = TopFarmProblem(design_vars={'x': x_init, 'y': y_init},\n", - " constraints=[XYBoundaryConstraint(boundary),\n", - " SpacingConstraint(min_spacing)],\n", - " post_constraints=[('water_depth', {'lower': maximum_water_depth})],\n", - " cost_comp=cost_comp,\n", - " driver=EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol),\n", - " plot_comp=XYPlotComp(),\n", - " expected_cost=ec)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimize" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 696 - }, - "id": "K2ch8htcRrf_", - "outputId": "4392438c-6533-4336-fbe2-acc698ed84f6" - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration limit reached (Exit mode 9)\n", - " Current function value: [-20412.33040188]\n", - " Iterations: 10\n", - " Function evaluations: 10\n", - " Gradient evaluations: 10\n", - "Optimization FAILED.\n", - "Iteration limit reached\n", - "-----------------------------------\n", - "Optimization took: 20s\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "tic = time.time()\n", - "\n", - "cost, state, recorder = problem.optimize()\n", - "toc = time.time()\n", - "print('Optimization took: {:.0f}s'.format(toc-tic))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Check the max water depth" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "kcPpUlrD2uZv", - "outputId": "b911777b-260f-4cec-e279-1dd2ec84b580" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEGCAYAAACO8lkDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcfklEQVR4nO3de5BcZ3nn8e9vZnT3RZJHYNmyNMYxeDEQGQawuS0Xh00cgqNkwzWGhdTaZFfAUqRYk6SCsrBVlGMwyS7rLRlMWHBM7ZoAxhh7MRsgC4RYNrIsY7IBu1uWLMOoJctSty6jmWf/6NOj1tzU1vTp93TP71PVNX3e0+ec5+gyT7/nvSkiMDMza9aXOgAzMyseJwczM5vCycHMzKZwcjAzsymcHMzMbIqB1AG0w+DgYAwNDaUOw8ysq9x33317ImLVdPt6IjkMDQ2xZcuW1GGYmXUVSeWZ9vmxkpmZTeHkYGZmUzg5mJnZFE4OZmY2hZODmZlNkSQ5SNokaZekrdnriqz81yTdJ+nB7OdrU8RnZjbfpezKekNEXD+pbA/wWxHxuKTnAXcD53Y+NDOz+a1Q4xwi4sdNmw8BSyQtiogjuV30m9fCEw/mdvoiC4IIGI8g4Pj7pp9BMB4Qcfznicc0yutlRaY8Pvw0bjnPP5123Jsm7ZQm72su14n7NP2ppclnbdqIE37U30/6NxRNb0743KSCE8/B5E9mlz35vaFp/hyaNlu9v8Fli+iYs58Pv/Hxtp82ZXLYKOkdwBbggxGxb9L+3wXunykxSLoauBpg7dq1uQbarUqVKvsPjZ74CzxLCBGR6y8rs/ls8PwOJoecKK/FfiTdA5w9za4/Af6B+iOkAD4KrI6IdzcdezFwO/D6iPj5ya41PDwcHiF9oojg4o/czTnLl3DxOWewsL+PBQN9LOzvY+FAHwv6xYLs/cL+von3C/rr+xZNvD9ePvnYic9MnEMT36SKZrp/5zP905+uOCJmvLfpSmf6Y8jjz2em/8PTFc/0v725phjZF4kpNcvx6WubjS8ax88B4+MxEcP45P0RE7WPPtX/TPpU/2Yvkb3q3/P7lJWRlSkro+lz2f6+pv1k+xufba4ZT46r8eWJSTXlRsyNSkqr9wfBrzzj9Jb//lKSdF9EDE+3L7eaQ0Rc3srnJN0E3NG0vQb4CvCOVhKDTW/k4BFqR8d4x2XreMdlQ6nDSW66X8pP7/d0MZMezJxwns799Rf4/iyNVL2VVjdtbgC2Z+XLgW8A10bE9xOE1jPKlRoA685aljgSM+tGqcY5XJd1V90GvAb4QFa+EfgV4M+aurk+I1GMXa20pwrA0FlLE0diZt0oSYN0RFw1Q/nHgI91OJyeVK7UGOgT5y5fkjoUM+tCHiHdo0qVKmtWLGGg33/FZvb0+TdHjypXam5vMLNT5uTQgyKCUqXq9gYzO2VODj1oX22UA4ePueZgZqfMyaEHlSpZT6VB1xzM7NQ4OfSgcpYcXHMws1Pl5NCDSntq9AnWrHA3VjM7NU4OPahcqXLO8iUsGuhPHYqZdSknhx5UqtQY8iMlM5sDJ4ceVK5UWedurGY2B04OPWZ/bZR9tVHXHMxsTpwcekx5b6OnkmsOZnbqnBx6TCmbqnto0DUHMzt1Tg49ppxN1b12pWsOZnbqnBx6TKlSY/WZi1m8wN1YzezUOTn0GPdUMrN2cHLoMR7jYGbt4OTQQw4eOcaeg0dY65qDmc2Rk0MPaUy455qDmc2Vk0MPKWfdWN3mYGZz5eTQQ0qeqtvM2sTJoYfsqNQYPG0Rpy0aSB2KmXW5JMlB0iZJuyRtzV5XZOUvaSp7QNKGFPF1K68bbWbtkvIr5g0Rcf2ksu3AcEQck7QaeEDS1yPiWIL4uk65UuNlFwymDsPMekChnj9ERK1pczEQqWLpNodHx9i9/7BrDmbWFinbHDZK2ibpZkkrGoWSXirpIeBB4D0z1RokXS1pi6QtIyMjnYq5sHbszXoqecI9M2uD3JKDpHskbZ/mdSVwI3ABsB7YDXyicVxE/CgiLgZeDHxY0uLpzh8RmyNiOCKGV61alddtdI3SnsYYB9cczGzucnusFBGXt/I5STcBd0xz/MOSDgLPA7a0ObyeMzHGYaVrDmY2d6l6K61u2txAvSEaSedLGsjerwMuAkodD7ALlSpVVixdwJlLF6QOxcx6QKoG6eskrafe4FwCrsnKXwFcK2kUGAf+XUTsSRJhlylXah78ZmZtkyQ5RMRVM5R/AfhCh8PpCaVKleF1K07+QTOzFniEdA84cmyMx5885JqDmbWNk0MP2LnvEOMBQ4PuqWRm7eHk0APKnnDPzNrMyaEHlPbUu7F6HQczaxcnhx5QrlQ5ffEAK9yN1czaxMmhBzTWjZaUOhQz6xFODj2gXKl69Tczaysnhy43OjbOzn2H3N5gZm3l5NDlHn/yEMfGg7WuOZhZGzk5dLlSxT2VzKz9nBy6XGOMg6fqNrN2cnLocqU9NZYs6GfV6YtSh2JmPcTJocs1eiq5G6uZtZOTQ5crVapubzCztnNy6GJj48Fjew+xzhPumVmbOTl0sSeeOszRsXHXHMys7Zwculh5T2M2VtcczKy9nBy6mMc4mFlenBy6WLlSZeFAH2efsTh1KGbWY5wculipUmXdyqX09bkbq5m1l5NDFytXal79zcxykSQ5SNokaZekrdnrikn710o6KOmPUsTXDSIiG+Pgxmgza7+BhNe+ISKun2HfJ4FvdjKYbvPLA0c4PDrOukHXHMys/VImh2lJ+m3gUaCaOJRCK+3xhHtmlp+UbQ4bJW2TdLOkFQCSTgP+I/DnCePqCmV3YzWzHOWWHCTdI2n7NK8rgRuBC4D1wG7gE9lhm6g/bjrYwvmvlrRF0paRkZGc7qK4SpUqC/rF6jPdjdXM2i+3x0oRcXkrn5N0E3BHtvlS4F9Lug5YDoxLOhwR/3Wa828GNgMMDw9HW4LuIuVKjfNWLGWg3x3OzKz9krQ5SFodEbuzzQ3AdoCIeGXTZzYBB6dLDJaNcXB7g5nlZMbkIOmvWjj+qYj401O47nWS1gMBlIBrTuEc81ZEUK7UePHQytShmFmPmq3mcCXwZyc5/lrgaSeHiLiqhc9serrnnS8q1aMcPHLMPZXMLDezJYcbIuLzsx3c6GVkndVYN9pjHMwsLzO2ZkbEp052cCufsfYr7al3Y1230jUHM8vHSRukJZ0PvBcYav58RLwxv7BsNuVKlT7BmhVODmaWj1Z6K30V+CzwdWA812isJaVKjXNXLGHhgLuxmlk+WkkOhyOilZ5L1iHlStUjo80sV6189fxLSR+RdJmkFzZeuUdmMypVah7jYGa5aqXm8HzgKuC1HH+sFNm2ddiTtaPsPzTqmoOZ5aqV5PB7wLMi4mjewdjJNdaN9iI/ZpanVh4rbac+z5EVQGOMgwfAmVmeWqk5LAd+Kule4Eij0F1Z0yhXakhwnsc4mFmOWkkOH8k9CmtZqVJl9RmLWbygP3UoZtbDTpocIuK7nQjEWlOu1NzeYGa5m7HNQdIdM+17Op+x9ipXqgwN+pGSmeVrtprDKyTdPst+Ac9tczw2iwOHR9lz8KhrDmaWu5NN2X0y7t7aQcfXjXbNwczyNWNycFtD8ZQ9xsHMOsQzt3WRUmMdB9cczCxnTg5dpFyp8ozTF7F0YZKlv81sHnFy6CKlSs1zKplZR5w0OUh6uaRvSfp/kh6R9KikRzoRnJ2oXKn6kZKZdUQrzyc+C3wAuA8Yyzccm0nt6DF+8dQRhrxutJl1QCvJYX9EfDP3SGxWO/Y2eiq55mBm+ZtthHRjUZ+/k/QX7VzsR9ImSbskbc1eV2TlQ5IONZX/97lcp5eU9jTGOLjmYGb5m63m8IlJ28NN79ux2M8NEXH9NOU/j4j1czx3z2lM1b3WNQcz64DZBsG9BkDSsyLihAZoSc/KOzA7UalSY+WyhZyxeEHqUMxsHmilK+tt05T9rzZce6OkbZJulrSiqfx8ST+W9F1Jr5zpYElXS9oiacvIyEgbwik291Qys06aseYg6SLgYuBMSb/TtOsMYPHJTizpHuDsaXb9CXAj8FHqj6c+Sv0R1ruB3cDaiKhIehHwVUkXR8RTk08SEZuBzQDDw8Nxsni6XblS4yXnr0wdhpnNE7O1OTwHeAP1leB+q6n8APBvT3biiLi8lQAk3QTckR1zhGy1uYi4T9LPgWcDW1o5V686PDrG4/sPueZgZh0zW5vD14CvSbosIn7YzotKWh0Ru7PNDdTXqUbSKmBvRIxl7RoXAvN+wN3OfTUi3FPJzDqnlXEOv5D0deBS6o+Bfgh8YHIj9dN0naT12flKwDVZ+auA/yRpFBgH3hMRe+dwnZ7Q6MbqmoOZdUoryeFvgE9T/4YP8BbgVuClp3rRiLhqhvIvA18+1fP2qsZsrK45mFmntNJbaWlEfCEijmWvL9JCg7S1T7lS44zFAyxf6m6sZtYZrdQcvinpWuBL1B8DvRm4U9JKAD/2yV95b42hwWVISh2Kmc0TrSSHN2U/r5lU/hbqycID4nJWrlR5wZrlqcMws3nkpMkhIs7vRCA2vdGxcXbuO8Qbf/Wc1KGY2TzSynoOSyX9qaTN2faFkt6Qf2gGsGvfIcbGw+tGm1lHtdIg/TngKPCybHsX8LHcIrITHO+p5G6sZtY5rSSHCyLiOmAUICJqgFtGO6RcaYxxcM3BzDqnleRwVNIS6o3PSLqAbIoLy1+pUmXZwn4GT1uYOhQzm0da6a30EeAu4DxJtwAvB/5NnkHZceVKjXVnuRurmXVWK72VviXpfurTZwh4f0TsyT0yA+o1h4vOPj11GGY2z8w2ZffkpUAbE+WtlbQ2Iu7PLywDGBsPHttb419dPN3M52Zm+WllmdDF1JcIfYB6zeEF1KfQvizf0OzxJw8xOhbuqWRmHTdjg3REvCZbKnQ38MKIGI6IFwGXUO/OajlzTyUzS6WV3krPiYgHGxsRsR34F/mFZA2ejdXMUmmlt9I2SZ8Bvphtvx3Yll9I1lCuVFm8oI9nnL4odShmNs+0khzeBfwh8P5s+3vU14C2nJUqNdatXEZfn7uxmllntdKV9TBwQ/ayDipXqm5vMLMkWmlzsATGx4NypeaeSmaWhJNDQf3iwGGOHBt3zcHMkmhlyu4pS4JKGswnHGso7al3Y3VPJTNLoZWaw72SLm1sSPpd4Af5hWRQb28AWOfHSmaWQCu9ld4G3CzpO8A5wFnAa/MMyuo9lRb0i3OWL0kdipnNQyetOWQD4P4z8B7gNcDGiNg5l4tK2iRpl6St2euKpn0vkPRDSQ9JenC6x1rzQblS5byVS+l3N1YzS+CkNQdJnwUuoD6n0rOBOyT9l4j49ByvfUNEXD/pWgPUB9tdFREPSDqLbJGh+aZUqbm9wcySaaXN4UHgNRHxaETcDbwUmDxja7u8HtgWEQ8AREQlIsZyulZhRUQ2xsHtDWaWRiuPlT4VEdG0vT8i/qAN194oaZukmyWtyMqeDYSkuyXdL+lDMx0s6WpJWyRtGRkZaUM4xTFy8Ai1o2OuOZhZMq10Zb1Q0m2SfiLpkcarhePukbR9mteV1KffuABYT33W18b04APAK6jP3/QKYIOk1013/ojYnM0UO7xq1aqWbrZb7JiYjdU1BzNLo5XeSp+jvlToDdQbpN9FazWOy1sJQNJNwB3Z5k7ge42V5iTdSf0R1rdbOVevKFU8xsHM0mqlzWFJRHwbUESUI2IT8Jtzuaik1U2bG4Dt2fu7gedLWpo1Tv9L4CdzuVY3Kleq9PeJc1e4G6uZpdFKzeGIpD7gnyVtpL7Qz2lzvO51ktYDAZSAawAiYp+kTwL3ZvvujIhvzPFaXadUqbFmxRIW9Ht2EzNLo5Xk8H5gKfA+4KPUB8C9cy4XjYirZtn3RY6vHTEveTZWM0utlSm7783eHqTe3mA5igge3VNlwyXLU4diZvPYjMlB0u2zHRgRb2x/OPZkbZQDh4+55mBmSc1Wc7gMeAy4FfgR4HkcOuD4utHuxmpm6cyWHM4Gfg14K/XJ974B3BoRD3UisPmqPDHGwTUHM0tnxu4wETEWEXdFxDuBS4GfAd/JeixZTkqVKhKct9LdWM0snVkbpCUtoj6m4a3AEPBXwFfyD2v+KldqnHPmEhYN9KcOxczmsdkapP8H8DzgTuDPI2L7TJ+19ilVqgwNur3BzNKabZTV7wMXUh/n8ANJT2WvA5Ke6kx480+5UmPtSrc3mFlaM9YcIsLDczts/6FR9laPuqeSmSXnBFAgO9xTycwKwsmhQCbGOLjNwcwSc3IokHKWHNaudHIws7ScHAqkVKnxzDMWsXRhK/Mhmpnlx8mhQDwbq5kVhZNDgZQqNfdUMrNCcHIoiOqRY4wcOOKag5kVgpNDQZS9brSZFYiTQ0E0eiqt82MlMysAJ4eCKE0MgHNyMLP0nBwKYsfeKoOnLeT0xQtSh2Jm5uRQFKU9NTdGm1lhJEkOkjZJ2iVpa/a6Iit/e1PZVknjktaniLHT6mMc/EjJzIoh5VDcGyLi+uaCiLgFuAVA0vOBr0bE1gSxddTh0TEe33/YPZXMrDCK/FjprcCXUgfRCY/tdWO0mRVLyuSwUdI2STdLWjHN/jcDt850sKSrJW2RtGVkZCS/KDug5DEOZlYwuSUHSfdI2j7N60rgRuACYD2wG/jEpGNfCtRmW5o0IjZHxHBEDK9atSqv2+iIxhgHJwczK4rc2hwi4vJWPifpJuCOScVvYZZaQ68pVaosX7qAM5e6G6uZFUOq3kqrmzY3ANub9vUBb2KetDdAfeoMd2M1syJJ1VvpuqyLagAl4Jqmfa8CHouIRxLElUSpUuWFa6drdjEzSyNJcoiIq2bZ9x3g0s5Fk9bRY+Ps2neIDZesSR2KmdmEIndlnRd27qsxHrDOS4OaWYE4OSQ2MVX3oJODmRWHk0NipYmput0gbWbF4eSQWLlS47RFA5y1bGHqUMzMJjg5JFbKJtyTlDoUM7MJTg6JlSs1j4w2s8Jxckjo2Ng4j+2tecI9MyscJ4eEHn/yMMfGwzUHMyscJ4eEjvdUcs3BzIrFySGhidlYB11zMLNicXJIqFSpsXhBH884fVHqUMzMTuDkkFC5UmXorGXuxmpmhePkkFCp4p5KZlZMTg6JjI8HO/Z6jIOZFZOTQyJPPHWYo8fGPaeSmRWSk0MipYl1o/1YycyKx8khkcZU3evcjdXMCsjJIZFSpcrCgT5Wn7E4dShmZlM4OSRS3lNj7cql9PW5G6uZFY+TQyKlStXtDWZWWE4OCUQE5UrNPZXMrLCcHBIYOXCEQ6NjrjmYWWElSQ6SNknaJWlr9roiK18g6fOSHpT0sKQPp4gvb6VGTyXXHMysoAYSXvuGiLh+UtnvAYsi4vmSlgI/kXRrRJQ6H15+PFW3mRVd0R4rBbBM0gCwBDgKPJU2pPYrV6oM9Ilzly9JHYqZ2bRSJoeNkrZJulnSiqzsNqAK7AZ2ANdHxN7pDpZ0taQtkraMjIx0KOT2KFVqrFmxhIH+ouVmM7O63H47SbpH0vZpXlcCNwIXAOupJ4JPZIe9BBgDzgHOBz4o6VnTnT8iNkfEcEQMr1q1Kq/byEW5UnV7g5kVWm5tDhFxeSufk3QTcEe2+TbgrogYBX4p6fvAMPBIPlF2XkRQ3lPjRWtXnPzDZmaJpOqttLppcwOwPXu/A3ht9pllwKXATzsbXb72Vo9y4Mgx1xzMrNBS9Va6TtJ66g3QJeCarPzTwOckPQQI+FxEbEsSYU4a3ViHBt1TycyKK0lyiIirZig/SL07a88qT3Rjdc3BzIrL3WU6rFSp0SdYs8LdWM2suJwcOqxcqXLO8iUsGuhPHYqZ2YycHDqsVPG60WZWfE4OHVYf4+DGaDMrNieHDnqydpQna6OuOZhZ4Tk5dNDEutGuOZhZwTk5dFBjNtahQdcczKzYUk7ZndxPn3iK9/7Njzt2vX21UQDWrnTNwcyKbV4nh8UD/Vz4zNM6es2Lzj6DxQvcjdXMim1eJ4ehwWX8t7e/KHUYZmaF4zYHMzObwsnBzMymcHIwM7MpnBzMzGwKJwczM5vCycHMzKZwcjAzsymcHMzMbApFROoY5kzSCFCewykGgT1tCqdofG/dq5fvz/dWDOsiYtV0O3oiOcyVpC0RMZw6jjz43rpXL9+f7634/FjJzMymcHIwM7MpnBzqNqcOIEe+t+7Vy/fneys4tzmYmdkUrjmYmdkUTg5mZjbFvE4Okn5d0j9J+pmka1PH0y6SzpP0d5J+IukhSe9PHVMeJPVL+rGkO1LH0k6Slku6TdJPJT0s6bLUMbWLpA9k/ya3S7pV0uLUMc2FpJsl/VLS9qaylZK+Jemfs58rUsZ4quZtcpDUD3wa+A3gucBbJT03bVRtcwz4YEQ8F7gU+Pc9dG/N3g88nDqIHPwlcFdEXAT8Kj1yj5LOBd4HDEfE84B+4C1po5qzvwZ+fVLZtcC3I+JC4NvZdteZt8kBeAnws4h4JCKOAl8CrkwcU1tExO6IuD97f4D6L5dz00bVXpLWAL8JfCZ1LO0k6UzgVcBnASLiaEQ8mTSo9hoAlkgaAJYCjyeOZ04i4nvA3knFVwKfz95/HvjtTsbULvM5OZwLPNa0vZMe+wUKIGkIuAT4UeJQ2u1TwIeA8cRxtNv5wAjwueyR2WckLUsdVDtExC7gemAHsBvYHxH/O21UuXhmROzO3j8BPDNlMKdqPieHnifpNODLwH+IiKdSx9Mukt4A/DIi7ksdSw4GgBcCN0bEJUCVLn0sMVn27P1K6gnwHGCZpN9PG1W+oj5WoCvHC8zn5LALOK9pe01W1hMkLaCeGG6JiL9NHU+bvRx4o6QS9ceBr5X0xbQhtc1OYGdENGp6t1FPFr3gcuDRiBiJiFHgb4GXJY4pD7+QtBog+/nLxPGckvmcHO4FLpR0vqSF1BvGbk8cU1tIEvVn1g9HxCdTx9NuEfHhiFgTEUPU/97+T0T0xDfQiHgCeEzSc7Ki1wE/SRhSO+0ALpW0NPs3+jp6pLF9ktuBd2bv3wl8LWEsp2wgdQCpRMQxSRuBu6n3mrg5Ih5KHFa7vBy4CnhQ0tas7I8j4s50IdnT8F7gluxLyyPAuxLH0xYR8SNJtwH3U+9R92O6fKoJSbcCrwYGJe0EPgJ8HPifkv6A+lICb0oX4anz9BlmZjbFfH6sZGZmM3ByMDOzKZwczMxsCicHMzObwsnBzMymcHIwm0TSweznkKS3tfncfzxp+wftPL9Zuzg5mM1sCHhaySGbUG42JySHiOjFEcLWA5wczGb2ceCVkrZm6xD0S/oLSfdK2ibpGgBJr5b095JuJxvNLOmrku7L1i64Oiv7OPUZSbdKuiUra9RSlJ17u6QHJb256dzfaVrf4ZZsdLFZrubtCGmzFlwL/FFEvAEg+yW/PyJeLGkR8H1JjVlFXwg8LyIezbbfHRF7JS0B7pX05Yi4VtLGiFg/zbV+B1hPff2GweyY72X7LgEupj699fepj4D/v+2+WbNmrjmYte71wDuyKUl+BJwFXJjt+8emxADwPkkPAP9AfYLHC5ndK4BbI2IsIn4BfBd4cdO5d0bEOLCV+uMus1y55mDWOgHvjYi7TyiUXk19au3m7cuByyKiJuk7wFyWwzzS9H4M/7+1DnDNwWxmB4DTm7bvBv4wmw4dSc+eYSGeM4F9WWK4iPpSrQ2jjeMn+XvgzVm7xirqq8H9Y1vuwuwU+BuI2cy2AWPZ46G/pr628xBwf9YoPML0S0DeBbxH0sPAP1F/tNSwGdgm6f6IeHtT+VeAy4AHqC8O86GIeCJLLmYd51lZzcxsCj9WMjOzKZwczMxsCicHMzObwsnBzMymcHIwM7MpnBzMzGwKJwczM5vi/wPpvvybz2wnBQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# plt.plot(recorder['water_depth'].min((1)))\n", - "# plt.plot([0,recorder['water_depth'].shape[0]],[maximum_water_depth, maximum_water_depth])\n", - "# plt.xlabel('Iteration')\n", - "# plt.ylabel('Max depth [m]')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Check the initial- and optimized layout wrt. the water depth boundary " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 312 - }, - "id": "RNHPmnZN4MpG", - "outputId": "dbd9f647-0aab-4d12-c4e4-b02996779c64" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Max Water Depth Boundary: -52 m')" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# values = site.ds.water_depth.values\n", - "# x = site.ds.x.values\n", - "# y = site.ds.y.values\n", - "# levels = np.arange(int(values.min()), int(values.max()))\n", - "# max_wd_index = int(np.argwhere(levels==maximum_water_depth))\n", - "# Y, X = np.meshgrid(y, x)\n", - "# cs = plt.contour(x, y , values.T, levels)\n", - "# plt.close()\n", - "# lines = []\n", - "# for line in cs.collections[max_wd_index].get_paths():\n", - "# lines.append(line.vertices)\n", - "# fig2, ax2 = plt.subplots(1)\n", - "\n", - "# site.ds.water_depth.plot(ax=ax2, levels=100)\n", - "# for line in lines:\n", - "# ax2.plot(line[:, 0], line[:,1], 'r')\n", - "# problem.model.plot_comp.plot_initial2current(x_init, y_init, state['x'], state['y'])\n", - "# ax2.set_title(f'Max Water Depth Boundary: {maximum_water_depth} m')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rjnIvqaY7jcz" - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "name": "bathymetry.ipynb", - "provenance": [] - }, - "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.9.5" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/_notebooks/elements/constraints.ipynb b/_notebooks/elements/constraints.ipynb deleted file mode 100644 index 0655106a..00000000 --- a/_notebooks/elements/constraints.ipynb +++ /dev/null @@ -1,554 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Constraints" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Constraints are the second key element of a an optimization problem formulation. They ensure that the optimization results conforms to feasible / realistic solutions. There are three types of constraints in optimization:\n", - "* Variable bounds - upper and lower boundary values for design variables\n", - "* inequality constraints - constraint function values must be less or more than a given threshold\n", - "* equality constraints - constraint function must be exactly equal to a value (not as commonly used)\n", - "\n", - "This notebook walks through a process to set up typical constraints in Topfarm for wind farm design problems including:\n", - "* boundary constraints - these tell Topfarm within a region where the perimeter of the site is that turbines must be sited within and also any exclusion zones that must be avoided\n", - "* spacing constraints - these tell Topfarm the minimum allowable inter-turbine spacing in the farm" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**First we import supporting libraries in Python numpy and matplotlib**" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "# Import numpy and matplotlib files\n", - "import numpy as np\n", - "%matplotlib inline\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we import and initialize several functions and classes from Topfarm to set up the problem including:**\n", - "* **TopFarmProblem - overall topfarm problem class to which the objectives, design variables, and constraints are added**\n", - "* **XYBoundaryConstraint - for a boundary specified as a series of connected perimeter vertices**\n", - "* **CircleBoundaryConstraint - for a circular boundary with a central location and a radius**\n", - "* **SpacingConstraint - for the inter-turbine spacing distance constraints**\n", - "* **CostModelComponent - a generic class for setting up a problem objective function**\n", - "\n", - "**We also import a helper function to plot**\n", - "\n", - "**For documentation on Topfarm see:**\n", - "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/user_guide.html#" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "# Import topfarm problem, plotting support, constraint classes and generic cost model component\n", - "from topfarm import TopFarmProblem\n", - "from topfarm.plotting import XYPlotComp\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint, CircleBoundaryConstraint\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.cost_models.cost_model_wrappers import CostModelComponent" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Boundary constraints\n", - "\n", - "**Next we are going to demonstrate the use of the XYBoundaryConstraint to set up site boundaries of a variety of types including square, rectangle and an arbitrary polygon. Additionally, a \"convex hull\" example is provided which is a commonly used boundary type for wind farm design optimization problems.**\n", - "\n", - "**(From wikipedia) In mathematics, the convex hull or convex envelope or convex closure of a set X of points in the Euclidean plane or in a Euclidean space (or, more generally, in an affine space over the reals) is the smallest convex set that contains X. For instance, when X is a bounded subset of the plane, the convex hull may be visualized as the shape enclosed by a rubber band stretched around X.**" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "# set up a \"boundary\" arry with arbitrary points for use in the example\n", - "boundary = np.array([(0, 0), (1, 1), (3, 0), (3, 2), (0, 2)])\n", - "\n", - "# set up dummy design variables and cost model component. \n", - "# This example includes 2 turbines (n_wt=2) located at x,y=0.5,0.5 and 1.5,1.5 respectively\n", - "x = [0.5,1.5]\n", - "y = [.5,1.5]\n", - "dummy_cost = CostModelComponent(input_keys=[],\n", - " n_wt=2,\n", - " cost_function=lambda : 1) \n", - "\n", - "# We introduce a simple plotting function so we can quickly plot different types of site boundaries\n", - "def plot_boundary(name, constraint_comp):\n", - " tf = TopFarmProblem(\n", - " design_vars={'x':x, 'y':y}, # setting up our two turbines as design variables\n", - " cost_comp=dummy_cost, # using dummy cost model\n", - " constraints=[constraint_comp], # constraint set up for the boundary type provided\n", - " plot_comp=XYPlotComp()) # support plotting function\n", - " \n", - " plt.figure()\n", - " plt.title(name)\n", - " tf.plot_comp.plot_constraints() # plot constraints is a helper function in topfarm to plot constraints\n", - " plt.plot(boundary[:,0], boundary[:,1],'.r', label='Boundary points') # plot the boundary points\n", - " plt.axis('equal')\n", - " plt.legend() # add the legend\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Now that we have set up our dummy problem, we can illustrate how different boundary types can be created from our boundary vertices**\n", - "\n", - "**First we show a convex hull type as described above. Note that for the convex hull, all boundary points are contained within a convex perimeter but one of the boundary points on the interior is not used.**" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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IqIWOB54IC0bAtwXEQ/1yUjMzCyTLHP8RMQ6YF2HsqUFr68BrulkvReBiR3Lzcxs4Pibu2ZmOePgNzPLGQe/mVnOOPjNzHIm08lds+7s37+f5uZm3n///YHuipXIsGHDGDNmDEOHDh3orlgfcPBbrzU3NzNixAiqq6tJL921MhYR7N27l+bmZsaOHTvQ3bE+4Kke67X333+fUaNGOfSPEJIYNWqUP8EdwRz8VhIO/SOL9+eRzcFvZpYzDn47IlRUVFBTU8PEiROZPHkyTzzxRJ+/Z3V1Na+/PvD3F1q6dCn33ntvt22amppYt25dt20sP3xy1wZGQwPU10NdHUyf3uvNDR8+nKamJgDWr1/PzTffzGOPPdbr7ZbSgQMHqKioKPl2r7322qJtmpqaaGxs5MILLyz5+1v58RG/9b+GBpg1C265JXluaCjp5t9++22OO+44ILlC5YYbbuDMM8/krLPOYs2aNQDU19fzmc985tA6CxcuZMWKFUByJL948WImT57MWWedxY4dOwDYu3cv559/PpMmTeJrX/saEX+8bcTnPvc5zj77bM444wyWLVt2qPzYY49l0aJFTJ06ldtuu41LLrnkUN0jjzzC5z//+T/pf3V1NTfeeCNTpkxhypQp7Ny5E4BXXnmFWbNmMWHCBGbNmsWrr74KwLe//W3uvPNOAOrq6g6t+4lPfILHH3+cffv2sWjRItasWUNNTQ1r1qzhscceo6amhpqaGiZNmsQ777zT67+7lQ8Hv/W/+nrYtw8OHEie6+t7vcn33nuPmpoaTjvtNK655hpuueUWAO6//36ampp49tlnefTRR7nhhht47bXXim5v9OjRPPPMM1x33XWHQvXWW29lxowZ/PKXv+Szn/3soeAFWL58OVu2bKGxsZElS5awd29yS4p3332XM888k6eeeopFixaxfft22u8wd8899zB//vxO3/+jH/0oTz/9NAsXLuSb3/wmkPzndOWVV7J161Yuv/xyvvGNb3S6bltbG08//TQ/+MEPuPXWW6msrOQ73/kOl156KU1NTVx66aXceeed3H333TQ1NfH4448zfPjwjH9pOxI4+K3/1dVBZSVUVCTPdXW93mT7VM+OHTt46KGHuPLKK4kINm3axLx586ioqOD4449n5syZbN68uej22o/Ezz77bF5++WUANm7cyFe+8hUALrrookOf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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Now we use our boundary defined above to plot different types of boundary constraints on the problem\n", - "plot_boundary('convex_hull', XYBoundaryConstraint(boundary, 'convex_hull'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we show a square type of boundary. In this case the maximum distance between the x and y elements of the vertices is used to establish the perimeter.**" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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B+c9/fTTfPWrX/1Y/ZWVldx0001MnDiRiRMnsmXLFgDeeOMNpk6dytixY5k6dSpvvvkmAD/84Q+58847Aairqzu47Oc+9zmee+459u7dy4IFC1i5ciVVVVWsXLmSNWvWUFVVRVVVFdXV1bz77rvd3+Cf4nNplppMjgAiYq2kyk9ocimwPCICeF7SSZJOj4htWfT/iRoaYOpU2LsXBgyA1auhtrakVe7evZuqqir27NnDtm3b+PWvfw3Aww8/TFNTExs3bmT79u2cd955TJky5ZDrGzJkCBs2bOBnP/sZd955J/feey+33norF1xwAQsWLODxxx//yI5+6dKlnHLKKezevZvzzjuPyy+/nMGDB/OXv/yFc889l9tuu42I4Oyzz6alpYWKigp++ctfMnfu3E77P+GEE3jhhRdYvnw5N9xwA4899hjz589nzpw5XHXVVSxdupTvfve7PPLIIx9btq2tjRdeeIFVq1Zx66238swzz3DbbbfR2NjIokWLAPjyl7/MPffcw+TJk3nvvfcYOHBgdzb7p/JcmqWsp94DOAPY2m68uTjtYyTNk9QoqbGlpaX0nuvrCzuMffsKP+vrS17lgVNAmzdv5sknn2TOnDlEBOvWrWPmzJmUlZVx6qmncuGFF/Liiy8ecn0H/jOfMGECr7/+OgBr167lm9/8JgBf+tKXOPHEEw+2v/vuuxk3bhyTJk1i69at/P73vwcK701cfvnlQOHqmtmzZ3P//fezc+dOGhoamD59eqf9z5w58+DPhuJ/1g0NDcyaNQuA2bNns27dusOuvaPJkydz4403cvfdd7Nz50769+/m/x2fwnNplrKeCoDOrvWLzhpGxJKIqImImoqKitJ7rqsr/LdYVlb4WVdX+jrbqa2tZfv27bS0tFA4wPm4/v37s3///oPjHa97P+aYY4DCDrytre3g9M4ukayvr+eZZ56hoaGBjRs3Ul1dfXB9AwcO/Mh5/7lz53L//fezYsUKvv71r3e5423fT1eXZXY1vava27v55pu599572b17N5MmTTp4muuIfcrPpVlqeioAmoEz240PA97qkZ5rawunCv7+7z+VUwabN29m3759DB48mClTprBy5Ur27dtHS0sLa9euZeLEiQwfPpxXXnmFDz74gNbWVlavXn3I9U6ZMoUHHngAgCeeeILW1lYAWltbOfnkkznuuOPY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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('square', XYBoundaryConstraint(boundary, 'square'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Now a rectangle boundary. Here we use the maximum distance on both x and y axes of the boundary coordinates to establish the perimeter.**" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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FQBLly5l8uTJzJgxg507d/KHP/wByL338KUvfQnIXSlzySWX8Ktf/Yq9e/fS2NjIOeecU/D5FyxYcPC2MXlF1NjYyEUXXQTAJZdcwvr161P3vbMzzjiDq6++mqVLl7J3716GDfOsb5b4aFv/mzkT1q4t6Rz/B3c/k1dffZXW1tYPTMfkGzZsGAcOHDj4uPM164cffjiQC+729vaD5YUuc2xoaODhhx+msbGRI444grq6uoP7GzFixAfm9S+77DLOP/98RowYwVe+8pUuAzf/ebq6tLKr8q76nu+6667jvPPOo76+nhkzZvDwww9z8sknF2xrQ4/P+G1gzJwJ119f8tAH2LZtG/v372fMmDGceeaZrF69mv3799Pa2sq6deuYNm0aJ510Elu2bOG9996jra2NtWvXFt3vmWeeycqVKwG47777eP311wFoa2vjqKOO4ogjjmDbtm088cQTXe7juOOO47jjjuOmm27i61//epftOt6LWL16NTOT39FnPvMZVq1aBcDKlSuZNWtWl9t3NmrUqA/M47/wwgucdtppXHvttdTW1h58H8OyIdUZv6S5wD+RW4HrFxHxo071SurPBd4Gvh4RT6fZ1qwUOub4IfeG7i9/+UsqKiq44IILaGxsZPLkyUjixz/+MccccwwAX/3qV5k0aRITJkxgypQpRZ9jyZIlLFiwgKlTpzJ79mxOPPFEAObOncuyZcuYNGkSn/rUp5gxY0a3+7n44otpbW1l4sSJXbZ57733mD59OgcOHOCuu+4CctNJ3/jGN7j55pupqqritttuS/W7ATjrrLP40Y9+RE1NDddffz3r16/nkUceoaKigokTJ3Y55WRDk7p6KXywgVQB/B74LLmF1zcACyJiS16bc4G/JRf804F/iojpabYtpLa2Npqamg55MHXJXHFDCd4stPS2bt3Kpz/96YHuRtlYtGgRU6ZM4Zvf/GbB+urqapqamhg7dmw/9+yDfFz7V2/zS9LGZMnbotJM9UwDtkfEjojYB6wC5nVqMw+4I3KeAD4m6diU25bMxLY2LvrjH0t+eaBZqZx++uls3rz54JvEZh36M7/STPUcD+zMe9xC7qy+WJvjU25bGo2N3NLcTCXw7qxZXD1pEltGj+6Tp7IPWrJkCYcd5reL0rjzzjsBurzaBnIfQNuzZ8/BS0IHyp/+9CeuvPLKAe1DVkxsa+OW5mYOh9xnW9au7ZP3vzqk+WstdOlA5/mhrtqk2Ta3A2mhpCZJTR3XOR+ShgYqyf0nG3bgADVtbYe+D+uRiOjy6hkrTz6m/aumrY3Dyb0RWqrPtnQnzRl/C3BC3uNxwK6UbSpTbAtARCwHlkNujj9Fvz6oro5hI0fCvn0Mq6xk4cqVLOzD/5j2Fy+++CKjRo3yVzMPER3fx3/44Yf7/bL+0vFp9n37SvbZlu6kCf4NwARJ44H/AOYDF3VqswZYJGkVuamctoh4RVJrim1Lo4+vDbeujRs3jpaWFnr0Ss0GpY4VuKyf9HN+FQ3+iGiXtAh4gNwrkRUR8ZykK5L6ZUA9uSt6tpO7nPOy7rbtk5FA7pflwO93w4cP90pNZr3Vj/lV9HLOgdDTyznNzLKq1JdzmpnZEOLgNzPLmEE51ZO8KfxyDzcfCwz8skilMVTGMlTGAR7LYDRUxgG9G8tJEVGVpuGgDP7ekNSUdp5rsBsqYxkq4wCPZTAaKuOA/huLp3rMzDLGwW9mljFDMfiXF29SNobKWIbKOMBjGYyGyjign8Yy5Ob4zcyse0PxjN/MzLrh4Dczy5iyDH5JcyU9L2m7pOsK1EvS0qR+s6SpA9HPNFKMpU5Sm6Tm5GfxQPSzGEkrJO2W9GwX9eV0TIqNpVyOyQmSHpG0VdJzkv6uQJuyOC4px1Iux2WEpKckbUrGcmOBNn17XDq+d7tcfsh92dsLwF+R+9rnTcDETm3OBe4jtx7ADODJge53L8ZSB/xmoPuaYixnAlOBZ7uoL4tjknIs5XJMjgWmJvdHkVsGtVz/VtKMpVyOi4Ajk/vDgSeBGf15XMrxjL83S0EONv26NGVfioh1wGvdNCmXY5JmLGUhIl6JiKeT+28CW8mtipevLI5LyrGUheR3/efk4fDkp/NVNn16XMox+Lta5vFQ2wwGafs5M3lZeJ+kU/qnayVXLsckrbI6JpKqgSnkzi7zld1x6WYsUCbHRVKFpGZgN/BQRPTrcUmzEMtg05ulIAebNP18mtx3cPxZ0rnAr4EJfd6z0iuXY5JGWR0TSUcCdwNXRcQbnasLbDJoj0uRsZTNcYmI/UCNpI8B90o6NSLy31Pq0+NSjmf8vVkKcrAp2s+IeKPjZWFE1APDJY3tvy6WTLkck6LK6ZhIGk4uKFdGxD0FmpTNcSk2lnI6Lh0iYi/QAMztVNWnx6Ucg//gUpCSKskt57imU5s1wKXJO+MzSJaC7O+OplB0LJKOkXIL2UqaRu6Y7en3nvZeuRyTosrlmCR9/Fdga0T8pItmZXFc0oyljI5LVXKmj6SRwF8D2zo169PjUnZTPdGLpSAHm5Rj+TJwpaR24B1gfiRv+w8mku4id1XFWEktwBJyb1qV1TGBVGMpi2MCnAFcAjyTzCcDfBc4EcruuKQZS7kcl2OBX0qqIPfP6d8i4jf9mWH+ygYzs4wpx6keMzPrBQe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxj/j8XvLkpRpmQcAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('rectangle', XYBoundaryConstraint(boundary, 'rectangle'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Now a polygon boundary. This connects all the points in sequence. Note that this results in a nonconvex boundary. Nonconvex functions in optimization problems introduce complexity that can be challenging to handle and often require more sophisticated algorithms and higher computational expense.**" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEICAYAAABYoZ8gAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHxZJREFUeJzt3XuYFPWd7/H3x+GqsokLLF5AcT1qRGEGmIMQfRTjiQcSozE3IQSe+MRFjCSbxMcoORHjJevZxGejbHQ5xHiLRPCJl/UkeCUh6IqXwYAXQEMUZYI5jih4iYKQ7/mja7Ade6aLme6Z7q7P63n66e5f/ar6V1Pw+VZXV3cpIjAzs+zYo6cHYGZm3cvBb2aWMQ5+M7OMcfCbmWWMg9/MLGMc/GZmGePgN0tICkn/rafHYVZuDn4zs4xx8JuZZYyD32qOpA2S5khaI+l1SddL6pdM+ydJ6yW9JukuSfsXmP+/S/p/knrltX1e0qrkcX9JNybLXivpu5Ka8/oeIWmZpC2SnpF0St60GyRdLek3kt6U9KikQ8r7FzH7IAe/1appwP8EDgEOA74v6RPA5cCXgP2AF4FFbWeMiMeBzcAn85q/AvwieXwRMBz4x6TPV1o7SeoN/F/gPuAfgG8ACyUdnresqcDFwD7AeuCHXVpTs93k4Lda9dOI2BgRr5EL1qnkisF1EfFERGwD5gATJA0vMP+NJIEu6e/JFZFfJtO+BPxLRLweEc3AvLz5xgN7A/87IrZHxG+BXyev3+r2iHgsInYAC4GGkqyxWUoOfqtVG/Mevwjsn9xebG2MiLfI7dkfUGD+m4HPSNqbXNA/GBEvJ9P2b7P8/Mf7Axsj4m9tXj//Nf6S9/iv5AqFWbdx8FutGpb3+EBgU3I7qLVR0l7AQODPbWeOiD8DK4DTgOm8f5gH4GVgaDuvtQkYJin//9aBhV7DrKc4+K1WnSNpaHKY5nvAYnKHas6Q1CCpL/AvwKMRsaGdZdwEfBcYCdyR134rMEfSPpIOAGbnTXsUeBv4rqTekiYCn6HAZwlmPcXBb7Xql+Q+YH0+uV0WEUuBC4HbyO21HwJM6WAZd5B7h3BHRLyd134J0Ay8ADwA/ArYBhAR24FTgMnAq8A1wIyIWFeyNTPrIvlCLFZrJG0AzoyIB0qwrD8BZ3W0LElnA1Mi4viuvp5Zd/Aev1k7JH0eCOC3bdr3k3SMpD2S0zTP5YOHgswqWq/iXcyyR9IyYAQwvc0ZOgB9gP8DHAxsIXf8/ppuHaBZF/hQj5lZxvhQj5lZxlTkoZ5BgwbF8OHDe3oYZmZVY+XKla9GxOA0fSsy+IcPH05TU1NPD8PMrGpIerF4rxwf6jEzyxgHv5lZxhQNfknDJP0u+d3xZyT9c4E+kjQv+Z3zJyWNyZs2SdKzybQLSr0CZma2e9Ls8e8Azo2II8j95Ow5kka06TMZODS5zQT+A0BSHXB1Mn0EMLXAvGZm1o2Kfrib/BTty8njNyWtJfcTs2vyup0K3BS5LwU8IumjkvYjd7GK9RHxPICkRUnf/HlL5q9Ll7Lt3nt5d/x4to0ZU3wGM7MK0feJJxj41FP0OekkmDChrK+1W2f1JBesGE3uFwjzHcAHf5O8OWkr1H707g4ylRUr0Cc/yYAI+gInAo+U5YXMzEprPLCU5BDMv/4rLF1a1vBPHfzJBSluA74VEW+0nVxgluigvdDyZ5I7TMSBBx6YdljvW7aM3hH0AvbYYw9+etppPHXyybu/HDOzbjby17+m7223UQewfTssW9bzwZ9cR/Q2YGFE3F6gSzMfvBjFUHIXpOjTTvuHRMQCYAFAY2Pj7v+OxMSJbM+Nlbq+fRl77rmMLfPbJTOzkjj8cLbfeSd/27mT3n36wMSJZX25NGf1CPg5sDYi/q2dbncBM5Kze8YDW5PPBh4HDpV0sKQ+5H77/K4Sjf2DJkzg0337cu+xx5b9bZKZWUlNmMBPTj6ZH+29d7fkV5o9/mPIXXruKUmrkrbvkbucHBExH1gCfApYT+4aomck03ZImg3cC9SRu9D1MyVdgzyP1dXxu6OP5lMOfTOrMi/suy937rUX/6sb8ivNWT0PUfhYfX6fAM5pZ9oScoXBzMwqgL+5a2aWMQ5+M7OMcfCbmWWMg9/MLGMc/GZmGePgNzPLGAe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxRa/AJek64GTglYg4qsD084Bpecs7AhgcEa9J2gC8CewEdkREY6kGbmZmnZNmj/8GYFJ7EyPixxHREBENwBzg9xHxWl6XE5LpDn0zswpQNPgjYjnwWrF+ianALV0akZmZlVXJjvFL2pPcO4Pb8poDuE/SSkkzi8w/U1KTpKaWlpZSDcvMzNoo5Ye7nwH+q81hnmMiYgwwGThH0nHtzRwRCyKiMSIaBw8eXMJhmZlZvlIG/xTaHOaJiE3J/SvAHcC4Er6emZl1QkmCX9JHgOOB/8xr20vSgNbHwEnA06V4PTMz67w0p3PeAkwEBklqBi4CegNExPyk22nAfRHxdt6sQ4A7JLW+zi8j4p7SDd3MzDqjaPBHxNQUfW4gd9pnftvzQH1nB2ZmZuXhb+6amWWMg9/MLGMc/GZmGePgNzPLGAe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxDn4zs4wpGvySrpP0iqSCl02UNFHSVkmrktvcvGmTJD0rab2kC0o5cDMz65w0e/w3AJOK9HkwIhqS2yUAkuqAq4HJwAhgqqQRXRmsmZl1XdHgj4jlwGudWPY4YH1EPB8R24FFwKmdWI6ZmZVQqY7xT5C0WtLdko5M2g4ANub1aU7aCpI0U1KTpKaWlpYSDcvMzNoqRfA/ARwUEfXAvwN3Ju0q0DfaW0hELIiIxohoHDx4cAmGZWZmhXQ5+CPijYh4K3m8BOgtaRC5PfxheV2HApu6+npmZtY1XQ5+SftKUvJ4XLLMzcDjwKGSDpbUB5gC3NXV1zMzs67pVayDpFuAicAgSc3ARUBvgIiYD3wBOFvSDuAdYEpEBLBD0mzgXqAOuC4ininLWpiZWWpFgz8iphaZ/lPgp+1MWwIs6dzQzMysHPzNXTOzjHHwm5lljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxDn4zs4xx8JuZZYyD38wsYxz8ZmYZ4+A3M8sYB7+ZWcY4+M3MMsbBb2aWMQ5+M7OMKRr8kq6T9Iqkp9uZPk3Sk8ntYUn1edM2SHpK0ipJTaUcuJmZdU6aPf4bgEkdTH8BOD4iRgGXAgvaTD8hIhoiorFzQzQzs1JKc83d5ZKGdzD94bynjwBDuz4sMzMrl1If4/8acHfe8wDuk7RS0syOZpQ0U1KTpKaWlpYSD8vMzFoV3eNPS9IJ5IL/2LzmYyJik6R/AO6XtC4ilheaPyIWkBwmamxsjFKNy8zMPqgke/ySRgHXAqdGxObW9ojYlNy/AtwBjCvF65mZWed1OfglHQjcDkyPiOfy2veSNKD1MXASUPDMIDMz6z5FD/VIugWYCAyS1AxcBPQGiIj5wFxgIHCNJIAdyRk8Q4A7krZewC8j4p4yrIOZme2GNGf1TC0y/UzgzALtzwP1H57DzMx6kr+5a2aWMQ5+M7OMcfCbmWWMg9/MLGMc/GZmGePgNzPLGAe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwypmjwS7pO0iuSCl42UTnzJK2X9KSkMXnTJkl6Npl2QSkHbmZmnZNmj/8GYFIH0ycDhya3mcB/AEiqA65Opo8Apkoa0ZXBWhVasQIuvzx3b2YVIc2lF5dLGt5Bl1OBmyIigEckfVTSfsBwYH1yCUYkLUr6runqoK1KrFjBzhNOgO3bUd++7PHb38KECT09KrPMK8Ux/gOAjXnPm5O29toLkjRTUpOkppaWlhIMy3raH3/2M2LbNuoi2Pnuu9z69a/z3HPP9fSwzDKvFMGvAm3RQXtBEbEgIhojonHw4MElGJb1pPvvv59/WriQ9ySiro7o1Ytr1qzhiCOOYMaMGS4AZj2oFMHfDAzLez4U2NRBu9W4+++/n1NOOYUtRxzBtt/8Bl16KX2WL2fxSy/x7W9/m1/96lcuAGY9qBTBfxcwIzm7ZzywNSJeBh4HDpV0sKQ+wJSkr9Ww1tA//PDDeeCBB/jo5MkwZw5MmMCQIUO44ooreOGFF1wAzHpQmtM5bwFWAIdLapb0NUmzJM1KuiwBngfWAz8Dvg4QETuA2cC9wFrg1oh4pgzrYBWibegPGjSoYD8XALOeVTT4I2JqROwXEb0jYmhE/Dwi5kfE/GR6RMQ5EXFIRIyMiKa8eZdExGHJtB+Wc0WsZ6UN/XwuAGY9w9/ctS7rTOjncwEw614OfuuSroZ+PhcAs+7h4LdOK2Xo53MBMCsvB791SrlCP58LgFl5OPhtt3VH6OdzATArLQe/7ZbuDv18LgBmpeHgt9R6MvTzuQCYdY2D31KplNDP5wJg1jkOfiuqEkM/nwuA2e5x8FuHKj3087kAmKXj4Ld2VVPo53MBMOuYg98KqtbQz+cCYFaYg98+pBZCP58LgNkHOfjtA2ot9PO5AJjlOPhtl1oO/XwuAJZ1Dn4DshP6+VwALKtSBb+kSZKelbRe0gUFpp8naVVye1rSTkl/n0zbIOmpZFrTh5duPS2LoZ/PBcCyJs2lF+uAq4HJwAhgqqQR+X0i4scR0RARDcAc4PcR8VpelxOS6Y0lHLuVQNZDP58LgGVFmj3+ccD6iHg+IrYDi4BTO+g/FbilFIOz8nLoF+YCYLUuTfAfAGzMe96ctH2IpD2BScBtec0B3CdppaSZ7b2IpJmSmiQ1tbS0pBiWdYVDvzgXAKtVaYJfBdqinb6fAf6rzWGeYyJiDLlDRedIOq7QjBGxICIaI6Jx8ODBKYZlneXQ3z0uAFZr0gR/MzAs7/lQYFM7fafQ5jBPRGxK7l8B7iB36Mh6iEO/81wArFakCf7HgUMlHSypD7lwv6ttJ0kfAY4H/jOvbS9JA1ofAycBT5di4Lb7HPql4QJg1a5o8EfEDmA2cC+wFrg1Ip6RNEvSrLyupwH3RcTbeW1DgIckrQYeA34TEfeUbviWlkO/9FwArFqlOo8/IpZExGERcUhE/DBpmx8R8/P63BARU9rM93xE1Ce3I1vnte7l0C8vFwCrNv7mbo1z6HcfFwCrFg7+GubQ7xkuAFbpHPw1yqHf81wArFI5+GuQQ7+yuABYpXHw1xiHfuVyAbBK4eCvIQ796uACYD3NwV8jHPrVxwXAeoqDvwY49KubC4B1Nwd/lXPo1w4XAOsuDv4q5tCvTS4AVm4O/irl0K99LgBWLg7+KuTQzxYXACs1B3+VcehnlwuAlYqDv4o49A1cAKzrHPxVwqFvbbkAWGc5+KuAQ9864gJgu8vBX+Ec+paWC4CllSr4JU2S9Kyk9ZIuKDB9oqStklYlt7lp57X2OfStM1wArJiiwS+pDrgamAyMAKZKGlGg64MR0ZDcLtnNea0Nh751lQuAtSfNHv84YH1y/dztwCLg1JTL78q8meXQt1JyAbC20gT/AcDGvOfNSVtbEyStlnS3pCN3c14kzZTUJKmppaUlxbBqk0PfysUFwFqlCX4VaIs2z58ADoqIeuDfgTt3Y95cY8SCiGiMiMbBgwenGFbtcehbd3ABsDTB3wwMy3s+FNiU3yEi3oiIt5LHS4DekgalmddyHPrW3VwAsitN8D8OHCrpYEl9gCnAXfkdJO0rScnjcclyN6eZ1xz61rNcALKnaPBHxA5gNnAvsBa4NSKekTRL0qyk2xeApyWtBuYBUyKn4LzlWJFq5dC3SuECkB2pzuOPiCURcVhEHBIRP0za5kfE/OTxTyPiyIioj4jxEfFwR/NajkPfKpELQO3zN3d7iEPfKp0LQO1y8PcAh75VExeA2uPg72YOfatWLgC1w8HfjRz6VgtcAKqfg7+bOPSt1rgAVC8Hfzdw6FstcwGoPg7+MnPoW1a4AFQPB38ZOfQti1wAKp+Dv0wc+pZ1LgCVy8FfBg59s/e5AFQeB3+JOfTNCnMBqBwO/hJy6JsV5wLQ8xz8JeLQN9s9LgA9x8FfAg59s85zAeh+Dv4ucuiblYYLQPdx8HeBQ9+s9FwAyi9V8EuaJOlZSeslXVBg+jRJTya3hyXV503bIOkpSaskNZVy8D3JoW9WXi4A5VM0+CXVAVcDk4ERwFRJI9p0ewE4PiJGAZcCC9pMPyEiGiKisQRj7nEOfbPu4wJQemn2+McB6yPi+YjYDiwCTs3vEBEPR8TrydNHgKGlHWblcOib9QwXgNJJE/wHABvznjcnbe35GnB33vMA7pO0UtLM9maSNFNSk6SmlpaWFMPqfg59s57nAtB1aYJfBdqiYEfpBHLBf35e8zERMYbcoaJzJB1XaN6IWBARjRHROHjw4BTD6l4OfbPK4gLQeWmCvxkYlvd8KLCpbSdJo4BrgVMjYnNre0RsSu5fAe4gd+ioqjj0zSqXC8DuSxP8jwOHSjpYUh9gCnBXfgdJBwK3A9Mj4rm89r0kDWh9DJwEPF2qwXcHh75ZdXABSK9o8EfEDmA2cC+wFrg1Ip6RNEvSrKTbXGAgcE2b0zaHAA9JWg08BvwmIu4p+VqUiUPfrPq4ABSX6jz+iFgSEYdFxCER8cOkbX5EzE8enxkR+ySnbO46bTM5E6g+uR3ZOm81cOibVTcXgPb5m7sFOPTNaocLwIc5+Ntw6JvVJheA9zn48zj0zWqfC4CDfxeHvlm2ZLkA9OrpAVQCh37XvPfeezQ3N/Puu+/29FCsRPr168fQoUPp3bt3Tw+l7FoLwHnnncePf/xjrrnmGhYuXMi0adP4/ve/z2GHHdbTQyy5zAe/Q7/rmpubGTBgAMOHD0cq9EVvqyYRwebNm2lububggw/u6eF0mywVgEwf6nHol8a7777LwIEDHfo1QhIDBw7M7Du4LBwCymzwO/RLy6FfW7w9a7sAZDL4HfpmllYtFoDMBb9DvzbV1dXR0NBAfX09Y8aM4eGHHy77aw4fPpxXX3217K9TzPz587nppps67LNq1SqWLFnSTSOqTbVUADIV/A79CrJiBVx+ee6+BPr378+qVatYvXo1l19+OXPmzCnJcktp586dZVnurFmzmDFjRod9HPylUwsFIDPB79CvICtWwIknwoUX5u5LFP6t3njjDfbZZx8gd4bKeeedx1FHHcXIkSNZvHgxAMuWLePkk0/eNc/s2bO54YYbgNye/EUXXcSYMWMYOXIk69atA2Dz5s2cdNJJjB49mrPOOouI9y9L8dnPfpaxY8dy5JFHsmDB+1ce3XvvvZk7dy5HH300l112Gaeddtquaffffz+f+9znPjT+4cOHc/755zNu3DjGjRvH+vXrAXjxxRc58cQTGTVqFCeeeCIvvfQSAD/4wQ+44oorAJg4ceKueQ877DAefPBBtm/fzty5c1m8eDENDQ0sXryY3//+9zQ0NNDQ0MDo0aN58803u/x3z5pqLgCZCH6HfoVZtgy2b4edO3P3y5Z1eZHvvPMODQ0NfOxjH+PMM8/kwgsvBOD222/f9U7ggQce4LzzzuPll18uurxBgwbxxBNPcPbZZ+8K1Ysvvphjjz2WP/zhD5xyyim7ghfguuuuY+XKlTQ1NTFv3jw2b85dkuLtt9/mqKOO4tFHH2Xu3LmsXbuW1ivMXX/99ZxxxhkFX//v/u7veOyxx5g9ezbf+ta3gFxxmjFjBk8++STTpk3jm9/8ZsF5d+zYwWOPPcaVV17JxRdfTJ8+fbjkkks4/fTTWbVqFaeffjpXXHEFV199NatWreLBBx+kf//+Kf/S1lY1FoCaD36HfgWaOBH69IG6utz9xIldXmTroZ5169Zxzz33MGPGDCKChx56iKlTp1JXV8eQIUM4/vjjefzxx4sur3VPfOzYsWzYsAGA5cuX85WvfAWAT3/607veVQDMmzeP+vp6xo8fz8aNG/njH/8I5D57+PznPw/kzpSZPn06N998M1u2bGHFihVMnjy54OtPnTp11/2K5B3RihUr+PKXvwzA9OnTeeihh1KPva1jjjmG73znO8ybN48tW7bQq1fmv9LTZdVUAGo6+B36FWrCBFi6FC69NHc/YUKJFz+BV199lZaWlg8cjsnXq1cv/va3v+163vac9b59+wK54N6xY8eu9kKnOS5btowHHniAFStWsHr1akaPHr1ref369aOurm5X3zPOOIObb76ZW265hS9+8YvtBm7+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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('polygon', XYBoundaryConstraint(boundary, 'polygon'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Finally a circular boundary. For this we have to specify the midpoint of the circle and the radius.**" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('Circle',CircleBoundaryConstraint((1.5,1),1)) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**You can also quickly plot all boundary types using some quick python tricks**" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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IqIWOB54IC0bAtwXEQ/1yUjMzCyTLHP8RMQ6YF2HsqUFr68BrulkvReBiR3Lzcxs4Pibu2ZmOePgNzPLGQe/mVnOOPjNzHIm08lds+7s37+f5uZm3n///YHuipXIsGHDGDNmDEOHDh3orlgfcPBbrzU3NzNixAiqq6tJL921MhYR7N27l+bmZsaOHTvQ3bE+4Kke67X333+fUaNGOfSPEJIYNWqUP8EdwRz8VhIO/SOL9+eRzcFvZpYzDn47IlRUVFBTU8PEiROZPHkyTzzxRJ+/Z3V1Na+/PvD3F1q6dCn33ntvt22amppYt25dt20sP3xy1wZGQwPU10NdHUyf3uvNDR8+nKamJgDWr1/PzTffzGOPPdbr7ZbSgQMHqKioKPl2r7322qJtmpqaaGxs5MILLyz5+1v58RG/9b+GBpg1C265JXluaCjp5t9++22OO+44ILlC5YYbbuDMM8/krLPOYs2aNQDU19fzmc985tA6CxcuZMWKFUByJL948WImT57MWWedxY4dOwDYu3cv559/PpMmTeJrX/saEX+8bcTnPvc5zj77bM444wyWLVt2qPzYY49l0aJFTJ06ldtuu41LLrnkUN0jjzzC5z//+T/pf3V1NTfeeCNTpkxhypQp7Ny5E4BXXnmFWbNmMWHCBGbNmsWrr74KwLe//W3uvPNOAOrq6g6t+4lPfILHH3+cffv2sWjRItasWUNNTQ1r1qzhscceo6amhpqaGiZNmsQ777zT67+7lQ8Hv/W/+nrYtw8OHEie6+t7vcn33nuPmpoaTjvtNK655hpuueUWAO6//36ampp49tlnefTRR7nhhht47bXXim5v9OjRPPPMM1x33XWHQvXWW29lxowZ/PKXv+Szn/3soeAFWL58OVu2bKGxsZElS5awd29yS4p3332XM888k6eeeopFixaxfft22u8wd8899zB//vxO3/+jH/0oTz/9NAsXLuSb3/wmkPzndOWVV7J161Yuv/xyvvGNb3S6bltbG08//TQ/+MEPuPXWW6msrOQ73/kOl156KU1NTVx66aXceeed3H333TQ1NfH4448zfPjwjH9pOxI4+K3/1dVBZSVUVCTPdXW93mT7VM+OHTt46KGHuPLKK4kINm3axLx586ioqOD4449n5syZbN68uej22o/Ezz77bF5++WUANm7cyFe+8hUALrrookOf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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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B+c9/fTTfPWrX/1Y/ZWVldx0001MnDiRiRMnsmXLFgDeeOMNpk6dytixY5k6dSpvvvkmAD/84Q+58847Aairqzu47Oc+9zmee+459u7dy4IFC1i5ciVVVVWsXLmSNWvWUFVVRVVVFdXV1bz77rvd3+Cf4nNplppMjgAiYq2kyk9ocimwPCICeF7SSZJOj4htWfT/iRoaYOpU2LsXBgyA1auhtrakVe7evZuqqir27NnDtm3b+PWvfw3Aww8/TFNTExs3bmT79u2cd955TJky5ZDrGzJkCBs2bOBnP/sZd955J/feey+33norF1xwAQsWLODxxx//yI5+6dKlnHLKKezevZvzzjuPyy+/nMGDB/OXv/yFc889l9tuu42I4Oyzz6alpYWKigp++ctfMnfu3E77P+GEE3jhhRdYvnw5N9xwA4899hjz589nzpw5XHXVVSxdupTvfve7PPLIIx9btq2tjRdeeIFVq1Zx66238swzz3DbbbfR2NjIokWLAPjyl7/MPffcw+TJk3nvvfcYOHBgdzb7p/JcmqWsp94DOAPY2m68uTjtYyTNk9QoqbGlpaX0nuvrCzuMffsKP+vrS17lgVNAmzdv5sknn2TOnDlEBOvWrWPmzJmUlZVx6qmncuGFF/Liiy8ecn0H/jOfMGECr7/+OgBr167lm9/8JgBf+tKXOPHEEw+2v/vuuxk3bhyTJk1i69at/P73vwcK701cfvnlQOHqmtmzZ3P//fezc+dOGhoamD59eqf9z5w58+DPhuJ/1g0NDcyaNQuA2bNns27dusOuvaPJkydz4403cvfdd7Nz50769+/m/x2fwnNplrKeCoDOrvWLzhpGxJKIqImImoqKitJ7rqsr/LdYVlb4WVdX+jrbqa2tZfv27bS0tFA4wPm4/v37s3///oPjHa97P+aYY4DCDrytre3g9M4ukayvr+eZZ56hoaGBjRs3Ul1dfXB9AwcO/Mh5/7lz53L//fezYsUKvv71r3e5423fT1eXZXY1vava27v55pu599572b17N5MmTTp4muuIfcrPpVlqeioAmoEz240PA97qkZ5rawunCv7+7z+VUwabN29m3759DB48mClTprBy5Ur27dtHS0sLa9euZeLEiQwfPpxXXnmFDz74gNbWVlavXn3I9U6ZMoUHHngAgCeeeILW1lYAWltbOfnkkznuuOPYvHkzzz//fJfrGDp0KEOHDuX222/nW9/6VpftDrxXsXLlSmqL2+fzn/88Dz30EAAPPPAAF1xwwWFtD4BBgwZ95Dz/H/7wB8aMGcNNN91ETU1N9wPgU34uzVLTU18F8SgwX9JDwPlAa4+c/z+gtjbTncWB9wCg8MbvfffdR1lZGZdddhkNDQ2MGzcOSfz4xz/mtNNOA+CKK65g7NixjBw5kurq6kP2sXDhQmbOnMn48eO58MILGTp0KADTpk1j8eLFjB07llGjRjFp0qRPXM83vvENWlpaGD16dJdtPvjgA84//3z279/PihUrgMJppm9/+9v85Cc/OfgewuH6whe+wB133EFVVRW33HIL69at49lnn6WsrIzRo0d3eSrqsGT8XJqlTF2dtjiilUgrgDpgCPDvwEKgHCAiFhcvA11E4Uqh94G5EdF4qPXW1NREY+NHm23atImzzz675Jr7mldffRU48u8Cmj9/PtXV1Vx99dWdzq+srKSxsZEhQ4aUXGN3pfqcWunqiqcB6/1+0EGS1kdEzeG0zeoqoJmHmB/AdVn0ZYdvwoQJfOYzn+GnP/1p3qWYWS/U574N1A7f+vXrD9mmqyt3zOzo1ye/CiKL01bWO/i5NMtPnwuAgQMHsmPHDu84jgIH7gfQ7Q+GmVlJ+twpoGHDhtHc3EwmHxLrQ/70pz8BfOTzBEeDA3cEM7Oe1+cCoLy8PMm7R1177bWAr3Yws+z0uVNAZmaWDQeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZonKJAAkTZP0qqQtkm7uZH6dpFZJTcXHgiz6NTOz7iv5pvCSyoB7gC8CzcCLkh6NiFc6NH0uIi4ptT8zM8tGFkcAE4EtEfHHiNgLPARcmsF6zczsU5RFAJwBbG033lyc1lGtpI2SnpB0TlcrkzRPUqOkxpaWlgzKMzOzzmQRAOpkWnQY3wAMj4hxwD8Bj3S1sohYEhE1EVFTUVGRQXlmZtaZLAKgGTiz3fgw4K32DSJiV0S8VxxeBZRLGpJB32Zm1k1ZBMCLwEhJIyQNAK4EHm3fQNJpklQcnljsd0cGfZuZWTeVfBVQRLRJmg88BZQBSyPiZUnXFOcvBr4GXCupDdgNXBkRHU8TmZlZDyo5AODgaZ1VHaYtbje8CFiURV9mZpYNfxLYzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEuUAMDNLVCYBIGmapFclbZF0cyfzJenu4vyXJI3Pol8zM+u+kgNAUhlwDzAdGA3MlDS6Q7PpwMjiYx7w81L7Tc3o1lZmvfkmNDTkXYpZr+HXRWmyOAKYCGyJiD9GxF7gIeDSDm0uBZZHwfPASZJOz6DvNDQ0cNdLL3H1a6/B1Kn+YzcDvy4ykEUAnAFsbTfeXJx2pG0AkDRPUqOkxpaWlgzKOwrU11O+fz9lAHv3Qn19zgWZ9QJ+XZQsiwBQJ9OiG20KEyOWRERNRNRUVFSUXNxRoa6OD/v1ow1gwACoq8u5ILNewK+LkmURAM3Ame3GhwFvdaONdaW2lhvHjmXpiBGwejXU1uZdkVn+/LooWRYB8CIwUtIISQOAK4FHO7R5FJhTvBpoEtAaEdsy6DsZr5x4Ig+edZb/yM3a8euiNP1LXUFEtEmaDzwFlAFLI+JlSdcU5y8GVgEzgC3A+8DcUvs1M7PSlBwAABGxisJOvv20xe2GA7gui77MzCwb/iSwmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWKAeAmVmiHABmZolyAJiZJcoBYGaWqP6lLCzpFGAlUAm8DlwREe900u514F1gH9AWETWl9GtmZqUr9QjgZmB1RIwEVhfHu/KFiKjyzt/MrHco6QgAuBSoKw7fB9QDN5W4TuvEmjVrAKirq8u3ELNepKmpiaqqqrzL6LNKPQI4NSK2ARR/fraLdgH8q6T1kuZ90golzZPUKKmxpaWlxPLM7GhWVVXFrFmz8i6jzzrkEYCkZ4DTOpn1X46gn8kR8ZakzwJPS9ocEWs7axgRS4AlADU1NXEEfRzVIrwpzCxbhwyAiPibruZJ+ndJp0fENkmnA293sY63ij/flvQ/gYlApwFgZmY9o9RTQI8CVxWHrwL+V8cGkj4jadCBYeBi4Hcl9mtmZiUqNQDuAL4o6ffAF4vjSBoqaVWxzanAOkkbgReAxyPiyRL7NTOzEpV0FVBE7ACmdjL9LWBGcfiPwLhS+jEzs+z5k8BmZolyAJiZJcoBYGaWKAeAmVmi1Js/YCSpBXgDGAJsz7mc3sDbocDbocDbocDboeDAdhgeERWHs0CvDoADJDX6S+S8HQ7wdijwdijwdijoznbwKSAzs0Q5AMzMEtVXAmBJ3gX0Et4OBd4OBd4OBd4OBUe8HfrEewBmZpa9vnIEYGZmGXMAmJklqs8EgKSvS3pZ0n5JyV3yJWmapFclbZH0SfdePmpJWirpbUnJfp24pDMlPStpU/H1cH3eNeVB0kBJL0jaWNwOt+ZdU54klUn6P5IeO5Ll+kwAULiHwFdJ8EYyksqAe4DpwGhgpqTR+VaVi2XAtLyLyFkb8L2IOBuYBFyX6N/CB8BFETEOqAKmSZqUc015uh7YdKQL9ZkAiIhNEfFq3nXkZCKwJSL+GBF7gYeAS3OuqccVbyP657zryFNEbIuIDcXhdym86M/It6qeFwXvFUfLi48kr2iRNAz4EnDvkS7bZwIgcWcAW9uNN5Pgi94+SlIlUA38Nt9K8lE87dFE4Va0T0dEktsB+EfgPwP7j3TBXhUAkp6R9LtOHsn9t9uBOpmW5H87ViDpeOBXwA0RsSvvevIQEfsiogoYBkyUdG7eNfU0SZcAb0fE+u4sX9IdwbL2STegT1wzcGa78WHAWznVYjmTVE5h5/9ARDycdz15i4idkuopvD+U2gUCk4G/kzQDGAicIOn+iPjm4Szcq44ArEsvAiMljZA0ALgSeDTnmiwHkgT8AtgUEXflXU9eJFVIOqk4fCzwN8DmfKvqeRFxS0QMi4hKCvuFXx/uzh/6UABIukxSM1ALPC7pqbxr6ikR0QbMB56i8Kbfv0TEy/lW1fMkrQAagFGSmiVdnXdNOZgMzAYuktRUfMzIu6gcnA48K+klCv8gPR0RR3QJpPmrIMzMktVnjgDMzCxbDgAzs0Q5AMzMEuUAMDNLlAPAzCxRDgAzs0Q5AMzMEvX/AH5MDs6Zv9yCAAAAAElFTkSuQmCC\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEICAYAAABYoZ8gAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHHpJREFUeJzt3X+QVeWd5/H3x4YWjIQY6PgLtZldEoMKDfbyI1LSFhMHNYaYX4JGKyYu0QqTcZ2x1NQKMXEqqWhlM0zMUGwGjRsUplbNsNn2J2WLxFZpTIMKmCBq6MEsLUpr/IUN3/3jnibX9nbfQ/ftH7fP51XVde99nuec+zx9qj997nPPvY8iAjMzy47DBroDZmbWvxz8ZmYZ4+A3M8sYB7+ZWcY4+M3MMsbBb2aWMQ5+swEg6XuSfjXQ/bBscvCbJSSFpP880P0w62sOfhtSJA0b6D6YDXYOfit7kl6SdK2kzcBbkk6UdLekVkkvSvpOXtsKSd+V9IKkNyVtlHSCpHVJk02S/izpQklHSfpNsp/Xk/vj8vbVIOkHkn6b7OtBSWPz6i+V9LKkPZJuSPr5112MYYakxyXtlbRJUl0f/brMHPw2ZCwAzgM+DtwLbAKOB+YAV0n6m6Td1Unbc4GPAt8A3o6IM5P6yRFxZESsJvf3cRtwEnAi8A7ws07PexFwGfAJoBL4BwBJE4GfAxcDxwKjk/58iKTjgf8L3JT0/x+AuyVV9fB3YdYtB78NFUsjYidwKlAVEd+PiH0RsQP4n8D8pN3lwH+PiOcjZ1NE7Cm0w4jYExF3R8TbEfEm8I/A7E7NbouI30fEO8C/ATVJ+ZeB/xMR6yNiH7AY6OqLsb4G1EdEfUQciIiHgCZy/5zMSs7zoTZU7ExuTwKOk7Q3r64CeCy5fwLwQpodSjoC+B/AXOCopHiUpIqI2J88/lPeJm8DRyb3j8vrExHxtqSC/2CSPn9F0vl5ZcOBR9L00+xQOfhtqOg4m94JvBgRE7potxP4T8CzKfb598CngOkR8SdJNcDvAKXY9pVkWwAkjQTGdNOn/xUR/zXFfs16zVM9NtQ8BbyRvNk7Mnkz91RJ/yWp/wXwA0kTlDNJUkcg/z/gr/L2NYrcvP5eSR8HlhxCP/43cL6kz0iqBG6k638Yv0ra/k3S3xGS6vLfSDYrJQe/DSnJFMz55ObaXwReJRf2o5MmPyE3F/8g8Abwr8DIpO57wC+TK2u+Cvw0qXsVeAK4/xD68Rzwt8Aqcmf/bwK7gfcKtN0JzAO+C7SSewVwDf77tD4iL8Ri1vckHQnsBSZExIsD3R/LNp9RmPURSedLOkLSR4BbgGeAlwa2V2YOfrO+NA/YlfxMAOaHX2LbIOCpHjOzjPEZv5lZxgzK6/jHjh0b1dXVA90NM7OysXHjxlcjItXXfAzK4K+urqapqWmgu2FmVjYkvZy2rad6zMwyxsFvZpYxRYM/+a7yRyRtlfScpL8r0EaSlkraLmmzpKl5dXMlPZ/UXVfqAZiZ2aFJc8bfDvx9RHwamAF8O/mu8XznkLtOeQKwEPgXyC16Adya1E8EFhTY1szM+lHR4I+IVyLi6eT+m8BWPrygxDzgjuT7zZ8APibpWGAasD0idiTfSb4qads3Ghvhhz/M3ZqZlZN+zK9DuqpHUjUwBXiyU9Xx5H33ONCSlBUqn36onUylsZH22bPR++/z/mGHcfWkSWwZPbr4dmZmA2xiWxs/2byZyggOGzEC1q6FmTP77PlSv7mbfMnU3cBVEfFG5+oCm0Q35YX2v1BSk6Sm1tbWtN36i4YG9P77VADDDhygpq3t0PdhZjYAatraGHbgAIdFwL590NDQp8+X6oxf0nByob8yIu4p0KSF3MpGHcaR+36Syi7KPyQilgPLAWpraw/9eyTq6nj/sMOIAwcYNnIkC1euZGEf/sc0MyuZxkbenTULDhxgWGUl1NX16dOluapH5L6zfGtE/KSLZmuAS5Ore2YAbRHxCrABmCBpfLIYxfykbenNnMnVkyaxYvz4Pn+ZZGZWUv2cX2nO+M8ALgGekdSclH0XOBEgIpYB9eQWht5Obt3Ry5K6dkmLgAfIrXu6Ilmgok9sGT2aLaNH+0zfzMpOf+ZX0eCPiPUUWWM0+arZb3dRV0/uH4OZmQ0C/uSumVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxDn4zs4xx8JuZZYyD38wsYxz8ZmYZ4+A3M8sYB7+ZWcYUXYFL0grgc8DuiDi1QP01wMV5+/s0UBURr0l6CXgT2A+0R0RtqTpuZmY9k+aM/3ZgbleVEXFzRNRERA1wPfBoRLyW1+SspN6hb2Y2CBQN/ohYB7xWrF1iAXBXr3pkZmZ9qmRz/JKOIPfK4O684gAelLRR0sIi2y+U1CSpqbW1tVTdMjOzTkr55u75wG87TfOcERFTgXOAb0s6s6uNI2J5RNRGRG1VVVUJu2VmZvlKGfzz6TTNExG7ktvdwL3AtBI+n5mZ9UBJgl/SaGA28O95ZR+RNKrjPnA28Gwpns/MzHouzeWcdwF1wFhJLcASYDhARCxLml0APBgRb+VtejRwr6SO57kzIu4vXdfNzKwnigZ/RCxI0eZ2cpd95pftACb3tGNmZtY3/MldM7OMcfCbmWWMg9/MLGMc/GZmGePgNzPLGAe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxRYNf0gpJuyUVXDZRUp2kNknNyc/ivLq5kp6XtF3SdaXsuJmZ9UyaM/7bgblF2jwWETXJz/cBJFUAtwLnABOBBZIm9qazZmbWe0WDPyLWAa/1YN/TgO0RsSMi9gGrgHk92I+ZmZVQqeb4Z0raJOk+SackZccDO/PatCRlBUlaKKlJUlNra2uJumVmZp2VIvifBk6KiMnAPwO/TspVoG10tZOIWB4RtRFRW1VVVYJumZlZIb0O/oh4IyL+nNyvB4ZLGkvuDP+EvKbjgF29fT4zM+udXge/pGMkKbk/LdnnHmADMEHSeEmVwHxgTW+fz8zMemdYsQaS7gLqgLGSWoAlwHCAiFgGfBm4UlI78A4wPyICaJe0CHgAqABWRMRzfTIKMzNLrWjwR8SCIvU/A37WRV09UN+zrpmZWV/wJ3fNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxDn4zs4xx8JuZZYyD38wsYxz8ZmYZ4+A3M8sYB7+ZWcY4+M3MMqZo8EtaIWm3pGe7qL9Y0ubk53FJk/PqXpL0jKRmSU2l7LiZmfVMmjP+24G53dS/CMyOiEnAD4DlnerPioiaiKjtWRfNzKyU0qy5u05SdTf1j+c9fAIY1/tumZlZXyn1HP83gfvyHgfwoKSNkhZ2t6GkhZKaJDW1traWuFtmZtah6Bl/WpLOIhf8s/KKz4iIXZI+ATwkaVtErCu0fUQsJ5kmqq2tjVL1y8zMPqgkZ/ySJgG/AOZFxJ6O8ojYldzuBu4FppXi+czMrOd6HfySTgTuAS6JiN/nlX9E0qiO+8DZQMErg8zMrP8UneqRdBdQB4yV1AIsAYYDRMQyYDEwBvi5JID25Aqeo4F7k7JhwJ0RcX8fjMHMzA5Bmqt6FhSpvxy4vED5DmDyh7cwM7OB5E/umplljIPfzCxjHPxmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxDn4zs4xx8JuZZYyD38wsYxz8ZmYZ4+A3M8sYB7+ZWcY4+M3MMsbBb2aWMQ5+M7OMKRr8klZI2i2p4LKJylkqabukzZKm5tXNlfR8UnddKTtuZmY9k+aM/3Zgbjf15wATkp+FwL8ASKoAbk3qJwILJE3sTWetDDU2wg9/mLs1s0EhzdKL6yRVd9NkHnBHRATwhKSPSToWqAa2J0swImlV0nZLbzttZaKxEebMgX37oLIS1q6FmTMHuldmmVeKOf7jgZ15j1uSsq7KC5K0UFKTpKbW1tYSdMsGXENDLvT378/dNjQMdI/MjNIEvwqURTflBUXE8oiojYjaqqqqEnTLBlxdXe5Mv6Iid1tXN9A9MjNSTPWk0AKckPd4HLALqOyi3LJi5szc9E5DQy70Pc1jNiiUIvjXAIuSOfzpQFtEvCKpFZggaTzwH8B84KISPJ+Vk5kzHfhmg0zR4Jd0F1AHjJXUAiwBhgNExDKgHjgX2A68DVyW1LVLWgQ8AFQAKyLiuT4Yg5mZHYI0V/UsKFIfwLe7qKsn94/BzMwGCX9y18wsYxz8ZmYZ4+A3M8sYB7+ZWcY4+M3MMsbBb2aWMQ5+M7OMcfCbmWWMg9/MLGMc/GZmGePgNzPLGAe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5llTKrglzRX0vOStku6rkD9NZKak59nJe2X9PGk7iVJzyR1TaUegJmZHZo0Sy9WALcCnyW3sPoGSWsiYktHm4i4Gbg5aX8+8N8i4rW83ZwVEa+WtOdmZtYjac74pwHbI2JHROwDVgHzumm/ALirFJ0zM7PSSxP8xwM78x63JGUfIukIYC5wd15xAA9K2ihpYVdPImmhpCZJTa2trSm6ZWZmPZEm+FWgLLpoez7w207TPGdExFTgHODbks4stGFELI+I2oioraqqStEtMzPriTTB3wKckPd4HLCri7bz6TTNExG7ktvdwL3kpo7MzGyApAn+DcAESeMlVZIL9zWdG0kaDcwG/j2v7COSRnXcB84Gni1Fx83MrGeKXtUTEe2SFgEPABXAioh4TtIVSf2ypOkFwIMR8Vbe5kcD90rqeK47I+L+Ug7AzMwOTdHgB4iIeqC+U9myTo9vB27vVLYDmNyrHpqZWUn5k7tmZhnj4DczyxgHv5lZxjj4zcwyxsFvZpYxDn4zs4xx8JuZZYyD38wsYxz8ZmYZ4+A3M8sYB7+ZWcY4+M3MMsbBb2aWMQ5+M7OMcfCbmWWMg9/MLGMc/GZmGZMq+CXNlfS8pO2SritQXyepTVJz8rM47bZmZta/ii69KKkCuBX4LNACbJC0JiK2dGr6WER8rofbmplZP0lzxj8N2B4ROyJiH7AKmJdy/73Z1szM+kCa4D8e2Jn3uCUp62ympE2S7pN0yiFui6SFkpokNbW2tqbolpmZ9USa4FeBsuj0+GngpIiYDPwz8OtD2DZXGLE8ImojoraqqipFt8zMrCfSBH8LcELe43HArvwGEfFGRPw5uV8PDJc0Ns22ZmbWv9IE/wZggqTxkiqB+cCa/AaSjpGk5P60ZL970mxrZmb9q+hVPRHRLmkR8ABQAayIiOckXZHULwO+DFwpqR14B5gfEQEU3LaPxmJmZikUDX44OH1T36lsWd79nwE/S7utmZkNHH9y18wsYxz8ZmYZ4+A3M8sYB7+ZWcY4+M3MMsbBb2aWMQ5+M7OMcfCbmWWMg9/MLGMc/GZmGePgNzPLGAe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5llTKrglzRX0vOStku6rkD9xZI2Jz+PS5qcV/eSpGckNUtqKmXnzczs0BVdgUtSBXAr8Flyi6dvkLQmIrbkNXsRmB0Rr0s6B1gOTM+rPysiXi1hv83MrIfSnPFPA7ZHxI6I2AesAublN4iIxyPi9eThE8C40nbTzMxKJU3wHw/szHvckpR15ZvAfXmPA3hQ0kZJC7vaSNJCSU2SmlpbW1N0y8zMeiLNYusqUBYFG0pnkQv+WXnFZ0TELkmfAB6StC0i1n1ohxHLyU0RUVtbW3D/ZmbWe2nO+FuAE/IejwN2dW4kaRLwC2BeROzpKI+IXcntbuBeclNHZmY2QNIE/wZggqTxkiqB+cCa/AaSTgTuAS6JiN/nlX9E0qiO+8DZwLOl6ryZmR26olM9EdEuaRHwAFABrIiI5yRdkdQvAxYDY4CfSwJoj4ha4Gjg3qRsGHBnRNzfJyMxM7NU0szxExH1QH2nsmV59y8HLi+w3Q5gcudyMzMbOP7krplZxjj4zcwyxsFvZpYxDn4zs4xJ9eauWXfef/99WlpaePfddwe6K1YiI0aMYNy4cQwfPnygu2J9wMFvvdbS0sKoUaOorq4muXTXylhEsGfPHlpaWhg/fvxAd8f6gKd6rNfeffddxowZ49AfIiQxZswYv4Ibwhz8VhIO/aHFx3Noc/CbmWWMg9+GhIqKCmpqapg8eTJTp07l8ccf7/PnrK6u5tVXB359oWXLlnHHHXd026a5uZn6+vpu21h2+M1dGxiNjdDQAHV1MHNmr3c3cuRImpubAXjggQe4/vrrefTRR3u931Lav38/FRUVJd/vFVdcUbRNc3MzTU1NnHvuuSV/fis/PuO3/tfYCHPmwA035G4bG0u6+zfeeIOjjjoKyF2hcs0113Dqqady2mmnsXr1agAaGhr43Oc+d3CbRYsWcfvttwO5M/klS5YwdepUTjvtNLZt2wbAnj17OPvss5kyZQrf+ta3iPjLshFf+MIXOP300znllFNYvnz5wfIjjzySxYsXM336dG666SYuuOCCg3UPPfQQX/ziFz/U/+rqaq699lqmTZvGtGnT2L59OwAvv/wyc+bMYdKkScyZM4c//vGPAHzve9/jlltuAaCuru7gtp/85Cd57LHH2LdvH4sXL2b16tXU1NSwevVqHn30UWpqaqipqWHKlCm8+eabvf69W/lw8Fv/a2iAfftg//7cbUNDr3f5zjvvUFNTw8knn8zll1/ODTfcAMA999xDc3MzmzZt4uGHH+aaa67hlVdeKbq/sWPH8vTTT3PllVceDNUbb7yRWbNm8bvf/Y7Pf/7zB4MXYMWKFWzcuJGmpiaWLl3Knj25JSneeustTj31VJ588kkWL17M1q1b6Vhh7rbbbuOyyy4r+Pwf/ehHeeqpp1i0aBFXXXUVkPvndOmll7J582YuvvhivvOd7xTctr29naeeeoqf/vSn3HjjjVRWVvL973+fCy+8kObmZi688EJuueUWbr31Vpqbm3nssccYOXJkyt+0DQUOfut/dXVQWQkVFbnburpe77Jjqmfbtm3cf//9XHrppUQE69evZ8GCBVRUVHD00Ucze/ZsNmzYUHR/HWfip59+Oi+99BIA69at42tf+xoA55133sFXFQBLly5l8uTJzJgxg507d/KHP/wByL338KUvfQnIXSlzySWX8Ktf/Yq9e/fS2NjIOeecU/D5FyxYcPC2MXlF1NjYyEUXXQTAJZdcwvr161P3vbMzzjiDq6++mqVLl7J3716GDfOsb5b4aFv/mzkT1q4t6Rz/B3c/k1dffZXW1tYPTMfkGzZsGAcOHDj4uPM164cffjiQC+729vaD5YUuc2xoaODhhx+msbGRI444grq6uoP7GzFixAfm9S+77DLOP/98RowYwVe+8pUuAzf/ebq6tLKr8q76nu+6667jvPPOo76+nhkzZvDwww9z8sknF2xrQ4/P+G1gzJwJ119f8tAH2LZtG/v372fMmDGceeaZrF69mv3799Pa2sq6deuYNm0aJ510Elu2bOG9996jra2NtWvXFt3vmWeeycqVKwG47777eP311wFoa2vjqKOO4ogjjmDbtm088cQTXe7juOOO47jjjuOmm27i61//epftOt6LWL16NTOT39FnPvMZVq1aBcDKlSuZNWtWl9t3NmrUqA/M47/wwgucdtppXHvttdTW1h58H8OyIdUZv6S5wD+RW4HrFxHxo071SurPBd4Gvh4RT6fZ1qwUOub4IfeG7i9/+UsqKiq44IILaGxsZPLkyUjixz/+MccccwwAX/3qV5k0aRITJkxgypQpRZ9jyZIlLFiwgKlTpzJ79mxOPPFEAObOncuyZcuYNGkSn/rUp5gxY0a3+7n44otpbW1l4sSJXbZ57733mD59OgcOHOCuu+4CctNJ3/jGN7j55pupqqritttuS/W7ATjrrLP40Y9+RE1NDddffz3r16/nkUceoaKigokTJ3Y55WRDk7p6KXywgVQB/B74LLmF1zcACyJiS16bc4G/JRf804F/iojpabYtpLa2Npqamg55MHXJXHFDCd4stPS2bt3Kpz/96YHuRtlYtGgRU6ZM4Zvf/GbB+urqapqamhg7dmw/9+yDfFz7V2/zS9LGZMnbotJM9UwDtkfEjojYB6wC5nVqMw+4I3KeAD4m6diU25bMxLY2LvrjH0t+eaBZqZx++uls3rz54JvEZh36M7/STPUcD+zMe9xC7qy+WJvjU25bGo2N3NLcTCXw7qxZXD1pEltGj+6Tp7IPWrJkCYcd5reL0rjzzjsBurzaBnIfQNuzZ8/BS0IHyp/+9CeuvPLKAe1DVkxsa+OW5mYOh9xnW9au7ZP3vzqk+WstdOlA5/mhrtqk2Ta3A2mhpCZJTR3XOR+ShgYqyf0nG3bgADVtbYe+D+uRiOjy6hkrTz6m/aumrY3Dyb0RWqrPtnQnzRl/C3BC3uNxwK6UbSpTbAtARCwHlkNujj9Fvz6oro5hI0fCvn0Mq6xk4cqVLOzD/5j2Fy+++CKjRo3yVzMPER3fx3/44Yf7/bL+0vFp9n37SvbZlu6kCf4NwARJ44H/AOYDF3VqswZYJGkVuamctoh4RVJrim1Lo4+vDbeujRs3jpaWFnr0Ss0GpY4VuKyf9HN+FQ3+iGiXtAh4gNwrkRUR8ZykK5L6ZUA9uSt6tpO7nPOy7rbtk5FA7pflwO93w4cP90pNZr3Vj/lV9HLOgdDTyznNzLKq1JdzmpnZEOLgNzPLmEE51ZO8KfxyDzcfCwz8skilMVTGMlTGAR7LYDRUxgG9G8tJEVGVpuGgDP7ekNSUdp5rsBsqYxkq4wCPZTAaKuOA/huLp3rMzDLGwW9mljFDMfiXF29SNobKWIbKOMBjGYyGyjign8Yy5Ob4zcyse0PxjN/MzLrh4Dczy5iyDH5JcyU9L2m7pOsK1EvS0qR+s6SpA9HPNFKMpU5Sm6Tm5GfxQPSzGEkrJO2W9GwX9eV0TIqNpVyOyQmSHpG0VdJzkv6uQJuyOC4px1Iux2WEpKckbUrGcmOBNn17XDq+d7tcfsh92dsLwF+R+9rnTcDETm3OBe4jtx7ADODJge53L8ZSB/xmoPuaYixnAlOBZ7uoL4tjknIs5XJMjgWmJvdHkVsGtVz/VtKMpVyOi4Ajk/vDgSeBGf15XMrxjL83S0EONv26NGVfioh1wGvdNCmXY5JmLGUhIl6JiKeT+28CW8mtipevLI5LyrGUheR3/efk4fDkp/NVNn16XMox+Lta5vFQ2wwGafs5M3lZeJ+kU/qnayVXLsckrbI6JpKqgSnkzi7zld1x6WYsUCbHRVKFpGZgN/BQRPTrcUmzEMtg05ulIAebNP18mtx3cPxZ0rnAr4EJfd6z0iuXY5JGWR0TSUcCdwNXRcQbnasLbDJoj0uRsZTNcYmI/UCNpI8B90o6NSLy31Pq0+NSjmf8vVkKcrAp2s+IeKPjZWFE1APDJY3tvy6WTLkck6LK6ZhIGk4uKFdGxD0FmpTNcSk2lnI6Lh0iYi/QAMztVNWnx6Ucg//gUpCSKskt57imU5s1wKXJO+MzSJaC7O+OplB0LJKOkXIL2UqaRu6Y7en3nvZeuRyTosrlmCR9/Fdga0T8pItmZXFc0oyljI5LVXKmj6SRwF8D2zo169PjUnZTPdGLpSAHm5Rj+TJwpaR24B1gfiRv+w8mku4id1XFWEktwBJyb1qV1TGBVGMpi2MCnAFcAjyTzCcDfBc4EcruuKQZS7kcl2OBX0qqIPfP6d8i4jf9mWH+ygYzs4wpx6keMzPrBQe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxj/j8XvLkpRpmQcAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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pps67LNq1SqWLFnSTSOqTbVUADIV/A79CrJiBVx+ee6+BPr378+qVatYvXo1l19+OXPmzCnJcktp586dZVnurFmzmDFjRod9HPylUwsFIDPB79CvICtWwIknwoUX5u5LFP6t3njjDfbZZx8gd4bKeeedx1FHHcXIkSNZvHgxAMuWLePkk0/eNc/s2bO54YYbgNye/EUXXcSYMWMYOXIk69atA2Dz5s2cdNJJjB49mrPOOouI9y9L8dnPfpaxY8dy5JFHsmDB+1ce3XvvvZk7dy5HH300l112Gaeddtquaffffz+f+9znPjT+4cOHc/755zNu3DjGjRvH+vXrAXjxxRc58cQTGTVqFCeeeCIvvfQSAD/4wQ+44oorAJg4ceKueQ877DAefPBBtm/fzty5c1m8eDENDQ0sXryY3//+9zQ0NNDQ0MDo0aN58803u/x3z5pqLgCZCH6HfoVZtgy2b4edO3P3y5Z1eZHvvPMODQ0NfOxjH+PMM8/kwgsvBOD222/f9U7ggQce4LzzzuPll18uurxBgwbxxBNPcPbZZ+8K1Ysvvphjjz2WP/zhD5xyyim7ghfguuuuY+XKlTQ1NTFv3jw2b85dkuLtt9/mqKOO4tFHH2Xu3LmsXbuW1ivMXX/99ZxxxhkFX//v/u7veOyxx5g9ezbf+ta3gFxxmjFjBk8++STTpk3jm9/8ZsF5d+zYwWOPPcaVV17JxRdfTJ8+fbjkkks4/fTTWbVqFaeffjpXXHEFV199NatWreLBBx+kf//+Kf/S1lY1FoCaD36HfgWaOBH69IG6utz9xIldXmTroZ5169Zxzz33MGPGDCKChx56iKlTp1JXV8eQIUM4/vjjefzxx4sur3VPfOzYsWzYsAGA5cuX85WvfAWAT3/607veVQDMmzeP+vp6xo8fz8aNG/njH/8I5D57+PznPw/kzpSZPn06N998M1u2bGHFihVMnjy54OtPnTp11/2K5B3RihUr+PKXvwzA9OnTeeihh1KPva1jjjmG73znO8ybN48tW7bQq1fmv9LTZdVUAGo6+B36FWrCBFi6FC69NHc/YUKJFz+BV199lZaWlg8cjsnXq1cv/va3v+163vac9b59+wK54N6xY8eu9kKnOS5btowHHniAFStWsHr1akaPHr1ref369aOurm5X3zPOOIObb76ZW265hS9+8YvtBm7+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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# plot all boundary types using our dummy problem and boundaries\n", - "for boundary_type in ['convex_hull','square','rectangle','polygon']:\n", - " plot_boundary(boundary_type, XYBoundaryConstraint(boundary, boundary_type))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise!!\n", - "\n", - "**Now play around with a new set of boundary vertices and construct different perimeters to explore the functionality. See if you can make even more complex polygon shapes.**" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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0aPda2pyn597rrSfL2LYsGE+efJknzhxoh9wwAHe1dXl7u5Lly71k08+2Xfs2OFvvvmmH3bYYb5x40Zfvny5n3766bt/fu7cub5o0SJ3d58wYYIvWLDA3d1vv/12nz17tru7X3bZZX7ttde6u/ujjz7qgPf09Li7++bNm93d/f333/djjz3WN23a5O7ugC9ZssTd3Xft2uUTJ070t956y93dZ82a5Y888she+zJhwgS/7rrr3N39vvvu213nzJkz/d5773V397vvvtvPOOMMd3e/5ppr/KabbnJ39xNPPNGvuOIKd3f/+c9/7m1tbe7uvmjRIp87d+7u95g5c6avWLHC3d3fffdd//DDDz9SQ8l/U4ncSy+95Pvtt5+Tu1my/iYZBnR5yH4casVtZvsCfwf8LJ7/fRTR3p7L6nbujCyzC6KSdevW8cQTT3DBBRfg7qxYsYJZs2ZRU1PDwQcfzIknnsgLL7ww4OsFK+Fp06bx6quvAvDss8/yla98BYDTTz9996oeYMGCBUyePJnjjz+e119/nT/84Q9ALnv/0pe+BOSO1jj//PN54IEH2Lp1K52dnZx66qkUM2vWrN2fO/P/Kuns7OTcc88F4Pzzz2fFiuJ30SpW+55mzJjBFVdcwYIFC9i6dSvDh+vy7WmyZcsWzjzzTMaMGcMRRxxBfX09Rx99dNJlSRmEatzu/r67j3X3t+MuaLfWVhg5Empqcp8jzuyam5vZtGkTPT09H4kzCg0fPpxdu3btfrznccv77JO7OXhNTQ07dvzH/W2LHSrX3t7O008/TWdnJy+++CJTpkzZ/XqjRo36SK598cUX88ADD/Dggw9y9tln99kwC9+nr8Pz+nq+r9oLXXXVVdx1111s27aN448/fnccJMnbuXMn5513HuvXr2fBggX8+c9/5uyzz066LCmT9F6rpLk5l9V997uxZHbr1q1j586djB07lpaWFpYsWcLOnTvp6enh2WefZfr06UyYMIE1a9bwwQcf8Pbbb/PMM88M+LotLS0sXrwYgMcff5wtW7YA8Pbbb3PQQQex7777sm7dOp5//vk+X2PcuHGMGzeO6667josuuqjP7YIsfsmSJTTnfz+f+cxneOihhwBYvHgxn/3sZ0P9PgDGjBnzkRz7j3/8I8cddxxXXnkljY2NatwpMm/ePB5//HEWLFjAm2++iburcVeRdP/bt7k50oa9bds2GhoagFy2f99991FTU8NZZ51FZ2cnkydPxsz43ve+xyc+8QkAzjnnHCZNmsRRRx3FlClTBnyPa665hlmzZjF16lROPPFExo8fD8App5zCnXfeyaRJk5g4cSLHH398v69z3nnn0dPTwzHHHNPnNh988AFNTU3s2rWLBx/MHaW5YMECLrnkEm666SZqa2tZtGhRqN8NwEknncSNN95IQ0MDV199NStWrGD58uXU1NRwzDHH9BnZSHktW7aM66+/nq9+9atceumltLS0KCapNmHD8FI+IhlOVrm5c+f6XXfd1ef3J0yYsHvomRT9TcsvGEY2NTV5b2+vv/HGG25muwfikl2UMJxM94q7Sk2bNo399tuPW265JelSJEUKh5HLli1jn332YdmyZYpJqpAadwqtXLlywG36OhJEKlPhMHL58uUccsghAPzkJz9RTFKFyjqcdN1RvmLob1lehcPIGTNmALBx40Z+/etfa7VdhcrWuEeNGsXmzZv1H3wF8Pz1uEeNGpV0KVVhz2Fk4fOKSaqTxdFIGxsbfc+7vOsOOJVFd8Apj+7ubpqamqivr6ejo2P38fcAJ5xwAlu3bmX16tUJVihRMbOV7t4YZtuyZdwjRozQ3VJESlBsGBkIYpL58+cnV6AkRsNJkRTqaxgZUExS3dS4RVIoGEbecccdu4eRhXQ0SXVL7ynvIlWqr2FkQEeTiBq3SIp0d3dz4YUX0tTUxG233Vb0ImGKSUSNWyQl+htGFlJMImrcIilQOIxcunTpXsPIgGISAQ0nRVJhoGFkQDGJgFbcIokbaBhZSDGJgBq3SKLCDCMDikkkoMYtkpCww8iAYhIJhL1Z8IFmttTM1pnZWjOL9j5iIlUm7DCykGISCYRdcf8AeMLdPw1MBtbGV5JI5St2mdb+KCaRQgMeVWJmBwAtwEUA7r4d2B5vWSKVq5RhZOHPKCaRwICXdTWzBmAhsIbcanslcLm7v7fHdnOAOQDjx4+ftn79+lgKFsmy/i7T2h9dwrXylXJZ1zBRyXBgKnCHu08B3gOu2nMjd1/o7o3u3lhbW1tSwSLVoNRhZEAxiewpTOPeAGxw99/kHy8l18hFJKTBDCMDiklkTwM2bnd/E3jdzCbmn2ojF5uISEilDiML6WgS2VPYo0ouAxab2e+BBuD6+EoSqSyDGUYGFJNIMaGuVeLuq4BQobmI/IdSzowsRjGJFKMzJ0ViMthhZCHFJFKMGrdIDIYyjAwoJpG+6LKuIjEIe5nW/igmkb5oxS0SsaEMIwspJpG+qHGLRGiow8iAYhLpjxq3SESiGEYGFJNIf5Rxi0SgcBi5fPnyQQ0jCykmkf5oxS0SgaGcGbknxSQyEDVukSGKahhZ+HqKSaQ/atwiQxDVMLKQYhIZiBq3yCBFOYwMKCaRMDScFBmEqIeRAcUkEoYat8ggRHFmZDGKSSQMRSUiJYp6GBlQTCJhqXGLlCCOYWRAMYmEpcYtElIcw8hCikkkLDVukRCiuExrfxSTSCk0nBQJIa5hZEAxiZRCK26RAcQ1jCykmERKocYt0o84h5EBxSRSqlBRiZm9CrwL7AR2uLtuHCwVL+5hZEAxiZSqlIz7JHffFFslIikS15mRxSgmkVIpKhEpIsrLtPZHMYkMRtjG7cAvzGylmc0ptoGZzTGzLjPr6unpia5CkTIrxzCy8L0Uk0ipzN0H3shsnLtvNLP/DDwFXObuz/a1fWNjo3d1dUVYpkh5dHd309TURH19PR0dHbHl2oETTjiBrVu3snr16ljfR9LPzFaGnR+GWnG7+8b857eAh4Hpgy9PJJ3KNYwMKCaRwRqwcZvZfmY2Jvga+DzwUtyFiZRT3GdGFqOYRAYrzFElBwMP549fHQ782N2fiLUqkTKL+8zIYnQ0iQzWgI3b3f8ETC5DLSKJKOcwMhDEJPPnzy/L+0ll0eGAUtXKcWZkMYpJZCjUuKVqlXsYWUgxiQyFGrdUpSSGkQEdTSJDpcu6SlVKYhgZUEwiQ6UVt1SdJIaRhRSTyFCpcUtVSWoYGVBMIlFQ45aqkeQwMqCYRKKgjFuqQjkv09ofxSQSBa24pSqU6zKt/VFMIlFR45aKl/QwsrAOxSQSBTVuqWhJDyMLKSaRqKhxS8VKwzAyoJhEoqThpFSktAwjA4pJJEpq3FKRkjwzshjFJBIlRSVScYJh5OzZsxMdRgYUk0jU1LilohQOI2+//fZEh5EBxSQSNTVuqRhpGkYWUkwiUVPjloqQ5GVa+6OYROKg4aRUhLQNIwOKSSQOoVfcZlZjZv9qZo/GWZBIqdI2jCykmETiUEpUcjmwNq5CRAYjjcPIgGISiUuoxm1mhwKnA3fFW45IeGkdRgYUk0hcwmbc/wz8AzCmrw3MbA4wB2D8+PFDr0ykH2k7M7IYxSQSlwFX3GY2E3jL3Vf2t527L3T3RndvrK2tjaxAkWLScJnW/igmkTiFiUpmAF8ws1eBh4DPmdkDsVYl0o80DyMDikkkTubu4Tc2awX+h7vP7G+7xsZG7+rqGmJpInvr7u6mqamJ+vp6Ojo6UpdrB1paWtiyZQurV69OuhTJCDNb6e6NYbbVCTiSGWkfRgY2btzIihUrtNqW2JR0Ao67twPtsVQi0o8sDCMDikkkbjpzUjIhrWdGFvPTn/5UR5NIrBSVSOplYRgZUEwi5aDGLamW5jMji1FMIuWgxi2plZVhZCHFJFIOatySSmm9TGt/FJNIuWg4KamUpWFkQDGJlItW3JI6WRpGFlJMIuWixi2pkrVhZEAxiZSTGrekRhaHkQHFJFJOyrglFbJ0ZmQxikmknLTillRI+2Va+6OYRMpNjVsSl9VhZEAxiZSbGrckKqvDyEKKSaTc1LglMVkeRgYUk0gSNJyURGR9GBlQTCJJUOOWRGTxzMhiFJNIEhSVSNllfRgZUEwiSVHjlrKqhGFkQDGJJEWNW8qmEoaRhRSTSFIGbNxmNsrMfmtmL5pZt5ldW47CpLJk8TKt/VFMIkkKM5z8APicu//NzEYAK8zscXd/PubapIJUyjAyoJhEkjRg43Z3B/6Wfzgi/+FxFiWVpVKGkYUUk0iSQmXcZlZjZquAt4Cn3P03RbaZY2ZdZtbV09MTdZ2SUZU0jAwoJpGkhWrc7r7T3RuAQ4HpZlZfZJuF7t7o7o21tbVR1ykZVGnDyIBiEklaSSfguPtWM2sHTgFeiqUiqQiVcmZkMYpJJGlhjiqpNbMD81+PBk4G1sVdmGRbli/T2h/FJJIGYVbc/wW4z8xqyDX6n7j7o/GWJVlWicPIgGISSQPLHTQSrcbGRu/q6or8dSX9uru7aWpqor6+no6OjorJtQMtLS1s2bKF1atXJ12KVBgzW+nujWG21ZmTEplKHUYGFJNIWujqgBKJSh5GBhSTSFqocUskKu3MyGJ0NImkhaISGbJKHkYGFJNImqhxy5BU4pmRxSgmkTRR45ZBq/RhZCHFJJImatwyKJV2mdb+KCaRtNFwUgalGoaRAcUkkjZacUvJqmEYWUgxiaSNGreUpFqGkQHFJJJGatwSWjUNIwOKSSSNlHFLKNVwZmQxikkkjbTillAq9TKt/VFMImmlxi0DqrZhZEAxiaSVGrf0q9qGkYUUk0haqXFLn6pxGBlQTCJppuGkFFWtw8iAYhJJMzVuKaqazowsRjGJpJmiEtlLtQ4jA4pJJO3C3OX9MDNbbmZrzazbzC4vR2GSjGoeRgYUk0jahYlKdgB/7+6/M7MxwEoze8rd18Rcm5RTZyfbHn+c+ffcU5XDyEKKSSTtBmzc7v4X4C/5r981s7XAIYAad6Xo7MTb2hi5bRv3Aa/ceWfVDSMDQUwyf/78pEsR6VNJGbeZ1QFTgN8U+d4cM+sys66enp5oqpPyaG+HDz6gBhhlxqS//jXpihKjmESyIHTjNrP9gWXAN939nT2/7+4L3b3R3Rtra2ujrFHi1trKrhEj+BDwkSOhtTXpihKjmESyIFTjNrMR5Jr2Ynf/WbwlSdk1N7Pq5puZB/z+1luhuTnpihKho0kkK8IcVWLA3cBad781/pIkCe8ceyw35j9XK8UkkhVhVtwzgPOBz5nZqvzHaTHXJVJ2ikkkK8IcVbICqL6DeaWq6GgSyRKdOSmCYhLJFjVuERSTSLaocUvV09EkkjVq3FL1FJNI1qhxS9VTTCJZo8YtVU0xiWSRGrdUNcUkkkVq3FLVFJNIFqlxS9VSTCJZpcYtVUsxiWSVGrdULcUkklVq3FKVFJNIlqlxS1VSTCJZpsYtVUkxiWSZGrdUHcUkknVq3FJ1FJNI1qlxS9VRTCJZp8YtVUUxiVQCNW6pKopJpBKocUtVUUwilWDAxm1m95jZW2b2UjkKEomLYhKpFGFW3PcCp8Rch1Sjzk644Ybc5zL49c03c6U7Fxx1VFneTyQuwwfawN2fNbO6+EuRqtLZCW1tsH07jBwJzzwDzc2xvFVvby//8p3vMPP73+csYPjs2VBXF9v7icQtsozbzOaYWZeZdfX09ET1slKp2ttzTXvnztzn9vbI36K3t5cf/vCHfPKTn+R33/8+I8ivVGJ6P5Fyiaxxu/tCd29098ba2tqoXlYqVWtrbqVdU5P73Noa2UsXNuxvfOMbHHnkkZx9220MHz06lvcTKbcBoxKRWDQ35+KR9vZcE40gtujt7eVHP/oRN954Ixs3bqSlpYXFixfTGjTpqVMjfT+RpKhxS3Kam8vTsCN+P5GkhTkc8EGgE5hoZhvMbHb8ZYkMrFgksnz5cjo6OvZu2iIVJMxRJbPKUYhIWKFX2CIVSlGJZIYatkiOGreknhq2yEepcUtqqWGLFKfGLamjhi3SPzVuSQ01bJFw1LglcWrYIqVR45bEqGGLDI4at5SdGrbI0KhxS9moYYtEQ41bYqeGLRItNW6JjRq2SDzUuCVyatgi8VLjlsioYYuUhxq3DJkatkh5qXHLoKlhiyRDjVtKpoYtkiw1bglNDVskHdS4ZUBq2CLposYtfVLDFkmnAW8WDGBmp5jZv5nZK2Z2VdxFSbJ0E16RdBtwxW1mNcDtwN8BG4AXzOwRd18Td3FSPgd0d3MV8OT8+Zz78staYYukWJioZDrwirv/CcDMHgLOANS4K0VnJ5O+9S0mA9vb29na0MA5atgiqRWmcR8CvF7weAPQtOdGZjYHmAMwfvz4SIqTMmlvp2bXLoYBw4YN4/+ccw6oaYukVpiM24o853s94b7Q3RvdvbG2tnbolUn5tLYybJ99oKYm91lNWyTVwqy4NwCHFTw+FNgYTzmSiOZmeOYZaG/PNe3m5qQrEpF+hGncLwBHmdnhwBvAl4FzY61Kyq+5WQ1bJCMGbNzuvsPMvg48CdQA97h7d+yViYhIUaFOwHH3x4DHYq5FRERCCHUCjoiIpIcat4hIxqhxi4hkjBq3iEjGmPte59IM/UXNeoD1kb9w8j4ObEq6iBhV+v5B5e9jpe8fVO4+TnD3UGcvxtK4K5WZdbl7Y9J1xKXS9w8qfx8rff+gOvZxIIpKREQyRo1bRCRj1LhLszDpAmJW6fsHlb+Plb5/UB372C9l3CIiGaMVt4hIxqhxi4hkjBp3iczsJjNbZ2a/N7OHzezApGuKQqXfENrMDjOz5Wa21sy6zezypGuKg5nVmNm/mtmjSdcSNTM70MyW5v/7W2tmVXsdYjXu0j0F1Lv7JOBl4OqE6xmyghtCnwocA8wys2OSrSpyO4C/d/ejgeOBuRW4jwCXA2uTLiImPwCecPdPA5Op3P0ckBp3idz9F+6+I//weXJ3BMq63TeEdvftQHBD6Irh7n9x99/lv36X3H/0hyRbVbTM7FDgdOCupGuJmpkdALQAdwO4+3Z335psVclR4x6aS4DHky4iAsVuCF1RTa2QmdUBU4DfJFtJ5P4Z+AdgV9KFxOAIoAdYlI+C7jKz/ZIuKilq3EWY2dNm9lKRjzMKtvlHcv/8XpxcpZEJdUPoSmBm+wPLgG+6+ztJ1xMVM5sJvOXuK5OuJSbDganAHe4+BXgPqLhZTFih7oBTbdz95P6+b2YXAjOBNq+MA+Gr4obQZjaCXNNe7O4/S7qeiM0AvmBmpwGjgAPM7AF3/0rCdUVlA7DB3YN/JS2lihu3VtwlMrNTgCuBL7j7+0nXE5HdN4Q2s5Hkbgj9SMI1RcrMjFw+utbdb026nqi5+9Xufqi715H7+/2ygpo27v4m8LqZTcw/1QasSbCkRGnFXbrbgH2Ap3K9gOfd/WvJljQ0VXJD6BnA+cBqM1uVf+47+fupSjZcBizOLy7+BFyccD2J0SnvIiIZo6hERCRj1LhFRDJGjVtEJGPUuEVEMkaNW0QkY9S4RUQyRo1bRCRj/j889muB06AFKQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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3+Soo47ijDPOYOLEibz++uscdthhXH755WQmhxxyCAMDA7S2tnLDDTdw7rnnbnP7++yzD48++ig333wz559/PnfeeSfz5s3j7LPP5pxzzuH666/na1/7Gj/96U/f9dx169bx6KOPctddd3HZZZdx//33c/nll9PX18c111wDwKmnnsoPf/hDZs2axWuvvcb48ePfy699WB5xS82mp6dS2uvXVy57enZodRuHSlasWME999zD2WefTWayZMkS5syZQ0tLC+973/s47rjj+PWvfz3i+jYeCR966KE888wzADz88MN87nOVb9I4+eSTNx3VA1x99dVMnz6dY445hueee47f//73QGXs/YwzzgAqZ2qcddZZ3HLLLbz88sv09vZy4oknbnP7c+bM2XTZO/iKpLe3lzPPPBOAs846iyVLlgyb/cgjj9yUfWuzZs3iggsu4Oqrr+bll19mzJjaHx9b3FKz6eqqHGm3tFQuu7pqturOzk5WrVrFwMDAFsMZmxszZgwbNvz7N0Bvfc7y7rvvDlQ+hLNu3bpN92/rNLmenh7uv/9+ent7eeyxx5gxY8am9Y0fP36Lce1zzz2XW265hVtvvZVPfepTQxbm5tsZ6tS8oe7fmL2lpWWL7Ju76KKLuO6663jzzTc55phjNg0H1ZLFLTWbzs7K8Mg//dMOD5NsbcWKFaxfv56JEycye/ZsFi1axPr16xkYGODhhx9m5syZHHzwwSxbtoy3336bNWvWsHjx4hHXO3v2bBYsWADA3XffzUsvvQTAmjVr2H///dlzzz1ZsWIFjzzyyJDrOPDAAznwwAO54oor+PznPz/kchvH4hctWkTn4O/mox/9KLfddhsACxYs4Nhjj63q9wEwYcKELcaxn376aQ4//HAuvPBCOjo66lLcjnFLzaizs2aFvXGMGypvSN500020tLRw2mmn0dvby/Tp04kIvvOd7/D+978fgE9/+tNMmzaND3/4w8yYMWPEbVx66aXMmTOHI444guOOO46DDjoIgBNOOIFrr72WadOmMWXKFI455phh1/PZz36WgYEBpk6dOuQyb7/9NkcffTQbNmzg1ltvBSrDMV/4whf47ne/u2mMvFof+9jH+Pa3v017ezsXX3wxS5Ys4cEHH6SlpYWpU6cOOWSzI2Kolzs7oqOjI/v6+mq+3hJ1Db5M7dnBcUbtupYvX84h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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAEICAYAAAB/Dx7IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAFnlJREFUeJzt3X2Q3FW95/H3l0lieBaTWb0YYXAXIxGSSRhCxlBhNK6XRxW5ugYFRXejlqgUXi/i7oIgW1qKrJdSL5VFUJYguaVo7WJEITJg1kEcdOAqCVdRILnCZZIy4THEJN/9ozu5AeahJ+mezum8X1VT/fA7/ft9fz2ZT06fPt0nMhNJUjn2aXYBkqSxMbglqTAGtyQVxuCWpMIY3JJUGINbkgpjcEu7ICI+FxE3NLsO7Z0MbrWMiMiI+A/NrkNqNINbe5SImNDsGqQ9ncGtpouIhyPiwoi4H3gmIg6LiO9FxGBE/DEiPrFT27aI+GxEPBQRT0XEvRHxmoi4q9rkvoh4OiL+U0QcEhG3VPfz5+r1aTvtqzciPh8R/6+6r59ExNSdtp8TEY9ExPqI+O/VOt8yzDnMi4ifR8SGiLgvInoa9HRJBrf2GIuAU4FXAN8H7gNeDSwEzo+Iv662u6Da9hTgIOCDwLOZuaC6fVZmHpCZy6j8+74OOBw4DHgO+NqLjnsWcC7w74BJwN8CRMQM4BvAe4G/Ag6u1vMSEfFq4IfA5dX6/xb4XkS07+JzIY3I4Nae4qrMXAMcDbRn5mWZuTkz/wD8L+A91Xb/GfhvmflgVtyXmeuH2mFmrs/M72Xms5n5FPA/gBNf1Oy6zPznzHwO+Eegs3r/3wD/NzNXZuZm4GJguC/2eR+wPDOXZ+a2zLwN6Kfyn4tUd44nak+xpnp5OHBoRGzYaVsb8LPq9dcAD9Wyw4jYD/ifwEnAIdW7D4yItszcWr39+E4PeRY4oHr90J1qIjOfjYgh/4Oo1vyuiDh9p/smAnfUUqc0Vga39hTbe7NrgD9m5pHDtFsD/HvgNzXs81PAdOD4zHw8IjqBXwNRw2Mfqz4WgIjYF5gyQk3/OzP/Sw37lXabQyXa09wDPFl9s3Lf6puRR0fEcdXt1wCfj4gjo2JmRGwP1H8FXrvTvg6kMq69ISJeAVwyhjq+C5weEW+MiEnApQwf+DdU2/51td7JEdGz8xuhUj0Z3NqjVIcwTqcy1vxHYB2VsD642uRKKmPRPwGeBL4J7Fvd9jng29WZHe8Gvlrdtg64G7h1DHX8Fvg4cBOV3vdTwBPA80O0XQO8HfgsMEilB/5p/PtSg4QLKUiji4gDgA3AkZn5x2bXo72bPQJpGBFxekTsFxH7A1cA/wQ83NyqJINbGsnbgT9Vf44E3pO+RNUewKESSSqMPW5JKkxD5nFPnTo1Ozo6GrFrSWpJ995777rMrOlrEhoS3B0dHfT39zdi15LUkiLikVrbOlQiSYUxuCWpMAa3JBXG4JakwhjcklSYUYM7IqZHxMBOP09GxPnjUZwk6aVGnQ6YmQ9SXRUkItqAf6GytJSkPUlfH/T2Qk8PdHc3uxo10FjncS8EHsrMmucbqgxLlizhxhtvbHYZ2kUzNm7kyvvvZ1Im+0yeDCtWGN4tbKxj3O8BvjPUhohYHBH9EdE/ODi4+5VpXN14440MDAw0uwztos6NG5mwbRv7ZMLmzZWet1pWzT3u6iogbwMuGmp7Zi4BlgB0dXX5zVUF6uzspNc/+DL19bHphBNg2zYmTJpUGS5RyxpLj/tk4FeZ+a+NKkbSLuru5oKZM7n2iCMcJtkLjCW4FzHMMImk5nvg4IO58bDDDO29QE3BHRH7Af8RuLmx5UiSRlPTGHdmPgtMGbWhJKnh/OSkJBXG4JakwhjcklQYg1uSCmNwS1JhDG5JKozBLUmFMbglqTAGtyQVxuCWpMIY3JJUGINbkgpjcEtSYQxuSSqMwS1JhTG4JakwBrckFcbglqTCGNySVJhaFwt+eUR8NyJWR8SqiHAZaUlqkpoWCwb+Hrg1M/8mIiYB+zWwJknSCEYN7og4CFgAfAAgMzcDmxtbliRpOLUMlbwWGASui4hfR8Q1EbH/ixtFxOKI6I+I/sHBwboXKkmqqCW4JwBzgH/IzNnAM8BnXtwoM5dkZldmdrW3t9e5TEnSdrUE91pgbWb+onr7u1SCXJLUBKMGd2Y+DqyJiOnVuxYCDzS0KknSsGqdVfJxYGl1RskfgHMbV5IkaSQ1BXdmDgBdDa5FklQDPzkpSYUxuCWpMAa3JBXG4JakwhjcklQYg1uSCmNwS1JhDG5JKozBLUmFMbglqTAGtyQVxuCWpMIY3JJUGINbkgpjcEtSYQxuSSqMwS1JhTG4JakwBrckFcbglqTC1LRYcEQ8DDwFbAW2ZKYLB0tSk9QU3FVvysx1DatEklQTh0okqTC1BncCP4mIeyNi8VANImJxRPRHRP/g4GD9KpQkvUCtwT0/M+cAJwMfi4gFL26QmUsysyszu9rb2+tapCTp39QU3Jn5p+rlE8D3gbmNLEqSNLxRgzsi9o+IA7dfB94K/KbRhUmShlbLrJJXAt+PiO3tb8zMWxtalSRpWKMGd2b+AZg1DrVIkmrgdEBJKozBLUmFMbglqTAGtyQVxuCWpMIY3JJUGINbkgpjcEtSYQxuSSqMwS1JhTG4JakwBrckFcbglqTCGNySVBiDW5IKY3BLUmEMbkkqjMEtSYUxuCWpMDUHd0S0RcSvI+KWRhYkSRrZWHrcnwRWNaoQSVJtagruiJgGnApc09hyJEmjqbXH/VXg74BtwzWIiMUR0R8R/YODg3UpTpL0UqMGd0ScBjyRmfeO1C4zl2RmV2Z2tbe3161ASdIL1dLjng+8LSIeBm4C3hwRNzS0KknSsEYN7sy8KDOnZWYH8B7gp5n5voZXJkkakvO4JakwE8bSODN7gd6GVCJpSH/5y19Yu3YtmzZtGrHdJZdcAsCqVc7a3ZNNnjyZadOmMXHixF3ex5iCW9L4W7t2LQceeCAdHR1ExLDt9tmn8gJ6+vTp41WaxigzWb9+PWvXruWII47Y5f04VCLt4TZt2sSUKVNGDG2VISKYMmXKqK+eRmNwSwUwtFtHPX6XBrckFcbgljSitrY2Ojs7mTVrFnPmzOHnP/95w4/Z0dHBunXrGn6c0Vx99dVcf/31I7YZGBhg+fLl41RRhW9OShrRvvvuy8DAAAA//vGPueiii7jzzjubXNULbd26lba2trrv9yMf+ciobQYGBujv7+eUU06p+/GHY49bakV9ffCFL1Qu6+jJJ5/kkEMOASozJD796U9z9NFHc8wxx7Bs2TIAent7Oe2003Y85rzzzuNb3/oWUOlJX3LJJcyZM4djjjmG1atXA7B+/Xre+ta3Mnv2bD784Q+TmTse/453vINjjz2WN7zhDSxZsmTH/QcccAAXX3wxxx9/PJdffjlnnHHGjm233XYb73znO19Sf0dHBxdeeCFz585l7ty5/P73vwfgkUceYeHChcycOZOFCxfy6KOPAvC5z32OK664AoCenp4dj33d617Hz372MzZv3szFF1/MsmXL6OzsZNmyZdx55510dnbS2dnJ7Nmzeeqpp3b7eX8xe9xSq+nrg4ULYfNmmDQJVqyA7u5d3t1zzz1HZ2cnmzZt4rHHHuOnP/0pADfffDMDAwPcd999rFu3juOOO44FCxaMur+pU6fyq1/9im984xtcccUVXHPNNVx66aWccMIJXHzxxfzwhz98QUBfe+21vOIVr+C5557juOOO48wzz2TKlCk888wzHH300Vx22WVkJkcddRSDg4O0t7dz3XXXce655w55/IMOOoh77rmH66+/nvPPP59bbrmF8847j3POOYf3v//9XHvttXziE5/gBz/4wUseu2XLFu655x6WL1/OpZdeyu23385ll11Gf38/X/va1wA4/fTT+frXv878+fN5+umnmTx58q487SOyxy21mt7eSmhv3Vq57O3drd1tHypZvXo1t956K+eccw6ZycqVK1m0aBFtbW288pWv5MQTT+SXv/zlqPvb3hM+9thjefjhhwG46667eN/7Kt+kceqpp+7o1QNcddVVzJo1i3nz5rFmzRp+97vfAZWx9zPPPBOozNQ4++yzueGGG9iwYQN9fX2cfPLJQx5/0aJFOy77qq9I+vr6OOusswA4++yzWblyZc21v9j8+fO54IILuOqqq9iwYQMTJtS/f2yPW2o1PT2Vnvb2HndPT9123d3dzbp16xgcHHzBcMbOJkyYwLZt//YN0C+es/yyl70MqATvli1bdtw/1DS53t5ebr/9dvr6+thvv/3o6enZsb/Jkye/YFz73HPP5fTTT2fy5Mm8613vGjYwdz7OcFPzhrt/uNp39pnPfIZTTz2V5cuXM2/ePG6//XZe//rXD9l2V9njllpNd3dleOTzn9/tYZIXW716NVu3bmXKlCksWLCAZcuWsXXrVgYHB7nrrruYO3cuhx9+OA888ADPP/88GzduZMWKFaPud8GCBSxduhSAH/3oR/z5z38GYOPGjRxyyCHst99+rF69mrvvvnvYfRx66KEceuihXH755XzgAx8Ytt32sfhly5bRXX1u3vjGN3LTTTcBsHTpUk444YSang+AAw888AXj2A899BDHHHMMF154IV1dXTvG8evJHrfUirq76xbY28e4ofKG5Le//W3a2to444wz6OvrY9asWUQEX/rSl3jVq14FwLvf/W5mzpzJkUceyezZs0c9xiWXXMKiRYuYM2cO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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Make your own set of vertices - anything you would like!\n", - "boundary = np.array([(0, 0), (2, 1), (4, 7), (1, 1), (0, 2)])\n", - "\n", - "# Then see what types of perimeters they generate\n", - "for boundary_type in ['convex_hull','square','rectangle','polygon']:\n", - " plot_boundary(boundary_type, XYBoundaryConstraint(boundary, boundary_type))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Spacing constraints\n", - "\n", - "The next most common constraint in a wind farm design optimization problem is on the allowable inter-turbine spacing in the farm. Losses due to wakes should ensure that turbines do spread out but a minimum constraint can also help to ensure that turbines do not get placed too close together.\n", - "\n", - "The following provides a simple example of implementation of a minimum spacing constraint." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Implement a minimum spacing constraint example**" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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jfHz8/vN9OIU/mL16lFKlZ/4+HimTJnC119/zcGDB3nttdfK5X0TEhIIDAykadOml3r8lEZmZiaJiYmkpKTQsGFDGjRo4JLtVkTGGE6ePElCQgJXX311ibejH79KuaEVK1YQGhrKVVddxb59+6hSpUq5vXd6ejp16tRxWXH29/enadOmtGjRAmMMIsKFCxf0O4ASEBHq1KlT6r/GtMWvlBv54osvaNKkCT179uSHH36gQYMGVnKURYu8SpUqVKlSBWMMhw8fRkRo2rSpdgUtJlccG23xK+UGUlNTGTNmDPfffz8pKSnUqlXLWtEvayJCs2bNqF69Oj/88AOpqam2I1U4WviVsswYQ79+/fDx8SE2NpYbbrjBdqQyV6lSJYKDg2nevDlVqlQhMzOTrKwsHn/8cd56661Ly918882MGTPm0usnnniCN954g8TERAYPHlys95w/fz7jxo373fSNGzeydevWYu9DfHx8oddGjBkzhh9+cN8hybTwK2WJMYbPPvuM3Nxc1qxZw3/+8x9q1KhhO1a5qlq1Kv7+/qSlpbF//346dux4qQjn5uby66+/sm/fvkvLb926la5duxIcHMynn37qkgwlKfw5OTl/OH/u3LmEhISUJlaZ0sKvlAUZGRncd999PP/885w8eZLatYt1My+3ExUFr7yS91gSderUoXHjxjRo0IDNmzcDsG/fPlq3bk1gYCCnT58mIyOD/fv306FDh9+0tufPn8+dd95J//79adasGRMmTLi03ffff5/mzZvTs2dPtmzZ8rv3jY+PZ/bs2bz55pu0b9+eb7/9lr/+9a+/+VCpXr06kPcB0bt3b+6++27atGkDQHZ2NqNGjaJt27YMHjyY8+fPA9CrVy8udkmvXr06zz77LO3ataNLly4cP34cgOTkZO666y46depEp06dLuXbtGkT7du3p3379nTo0IG0tLSS/aP+AS38SpWz8+fP07dvX06dOsXWrVupX7++7UilEhUFffvCpEl5jyUt/rVr16Zbt274+vpy+PBhtmzZQkREBJ07dyYqKoro6Gjatm1b4JfBu3fvZsmSJXz//fcsWbKEI0eOkJSUxJQpU9iyZQtfffVVgademjZtygMPPMDjjz/O7t276d69+x9m3LFjB1OnTr20rQMHDjB27FhiY2OpUaMGs2bN+t06586do0uXLuzZs4cePXrw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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# set up dummy design variables and cost model component. \n", - "# This example includes 2 turbines (n_wt=2) located at x,y=0.5,0.5 and 1.5,1.5 respectively\n", - "x = [0.5,1.5]\n", - "y = [.5,1.5]\n", - "dummy_cost = CostModelComponent(input_keys=[],\n", - " n_wt=2,\n", - " cost_function=lambda : 1) \n", - "\n", - "# a function to plot a spacing constraint for a Topfarm problem\n", - "def plot_spacing(name, constraint_comp):\n", - " tf = TopFarmProblem(\n", - " design_vars={'x':x, 'y':y}, # setting up our two turbines as design variables\n", - " cost_comp=dummy_cost, # using dummy cost model\n", - " constraints=[constraint_comp], # constraint set up for the boundary type provided\n", - " plot_comp=XYPlotComp()) # support plotting function\n", - " tf.evaluate()\n", - " plt.figure()\n", - " plt.title(name)\n", - " tf.plot_comp.plot_constraints() # plot constraints is a helper function in topfarm to plot constraints\n", - " plt.plot(x,y,'.b', label='Wind turbines') # plot the turbine locations\n", - " plt.axis('equal')\n", - " plt.legend() # add the legend\n", - " plt.ylim([0,2]) \n", - " \n", - "plot_spacing('spacing', SpacingConstraint(1))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise!!\n", - "\n", - "**Play around with the spacing constraint size**" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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dGDr1q0MHDiQnTt3Mnr0aGrVqnVR64yPjycuLq54g5pSV7FixbP7MTY2lmnTptG0aVPee+89Z4OVkLg4CAwEf//c16L+L3ymn//777+nZcuWdOjQgdWrV5/t389P+fLlz7739/cnKysLuLhLHwMCAsjJyQFye0Ty3stRqVKlP7Q9d/35fV+5cuXOTs+bLScnh9WrV5OYmEhiYiK//PILISEhjBo1ismTJ3PixAk6dOjADz/8UOhtKIgV/ouwZcsWWrRowdixYxk5ciTNmjUjODi4yGPmx8bGMmzYsGJKaTxB586d+eabb5g5c+bZ+zE+/fRTDh065HCy4hMTA998A889l/saE1O09cXGxjJv3jyqV69+9rzYoUOHWL16NTGFWPmVV15JfHw8Bw4cIDMzk5kzZ+bbLiQk5A/96I0bNyYhIQGAzz///IJ/rf3888+sdp3YmD59Op06dXI733XXXcebb7559vOZK8R27tzJ5ZdfzsiRI4mOjrbC76SsrCwmT57MqlWraNSoEW+88QZr166lT58+xTL4WXZ2NpGRkVxxxRXFkNZ4mvbt23P77beTnZ3NggULaNKkCU899RRHjpz7aAvvFBMDo0cXvegDXH755fz222906NDhD9OqVKlSqGcw1K1bl2eeeYaYmBi6du1K27Zt8213ww03MHv27LMnd++55x6WLl1K+/btWbt27Z+O8vNq1qwZH3zwAa1ateLgwYPcd999bucbP348GzZsoFWrVjRv3pwJEyYA8Nprr9GyZUtat25NxYoV6dmzp9vrdJu7JwNK88eTTu7m5OToZ599ppGRkRoXF6ebNm0qke9JSEg4e7LKlH27d+/WIUOG6Ouvv66qqqdOnXI40f9X2JO7pvTZyd0SdOjQITIzM/nvf//La6+9xrfffkurVq1K5LvWrl37hyMcU7Y1btyYKVOm8H//93989913hIeHM2XKlAKvDzemOFjhz8fGjRvp3r07d9xxB4GBgcyZM4cePXqU6E1VGzZsICoqqsTWbzzXFVdcwccff8z7779Pq1atzl71YUxJscJ/jmeffZa//OUv3HjjjcV2Z6A7oqKi7IoeHxYbG8uyZct49dVXqV+/PsuXL2fLli2O5VEPHK7d5CqOfWOFn9wTt++//z6nTp3illtuISkpifvvv79UR8W8//77adasWal9n/E8IsJ1111H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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_spacing('spacing', SpacingConstraint(3))" - ] - }, - { - "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.6.7" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/_notebooks/elements/cost_models.ipynb b/_notebooks/elements/cost_models.ipynb deleted file mode 100644 index 7ce23953..00000000 --- a/_notebooks/elements/cost_models.ipynb +++ /dev/null @@ -1,917 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Cost Models\n", - "\n", - "Topfarm now comes with two built-in cost models. Additional user-defined cost models can easily be integrated as well. In this example, the ability to switch from using each of the two models is demonstrated." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Cost Model 1: DTU implementation of the NREL Cost and Scaling Model\n", - "\n", - "The first cost model in Topfarm is a python implementation of the National Renewable Energy Laboratory (NREL) Cost and Scaling Model. The report on which the model is based can be found here:\n", - "https://www.nrel.gov/docs/fy07osti/40566.pdf\n", - "\n", - "The model was developed from the early to mid-2000s as part of the Wind Partnership for Advanced Component Technology (WindPACT) which explored innovative turbine design (at that time) as well as innovations on the balance of plant and operations. Several detailed design studies on the turbine and plant design can cost were made. For publications associated with the WindPACT program, see: [WindPACT publication list](http://nrel-primo.hosted.exlibrisgroup.com/primo_library/libweb/action/search.do;jsessionid=00F1EA4B14428BED000D0D1E7C0E2C46?fn=search&ct=search&initialSearch=true&mode=Basic&tab=default_tab&indx=1&dum=true&srt=rank&vid=Pubs&frbg=&vl%28freeText0%29=windpact&scp.scps=scope%3A%28PUBS%29%2Cscope%3A%28NREL_INTERNAL%29&vl%28870446075UI1%29=all_items)\n", - "\n", - "From the WindPACT studies, the NREL cost and scaling model was developed as a set of curve-fits to the underlying detailed design data and includes:\n", - "* Turbine component masses and costs\n", - "* Balance of system costs\n", - "* Operational expenditures\n", - "* Financing and other costs\n", - "\n", - "Over time, changes in turbine and plant technology have rendered the NREL cost and scaling model obselete, but it is still useful as a publicly available, full levelized cost of energy (LCOE) model for wind energy." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Import Topfarm models to set up an LCOE workflow including the cost model**" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Import numerical python\n", - "import numpy as np\n", - "# Import pywake models including the IEA Wind Task 37 case study site, the Gaussian wake model and the AEP calculator\n", - "from py_wake.examples.data.iea37._iea37 import IEA37_WindTurbines, IEA37Site\n", - "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian\n", - "# Import Topfarm implementation of NREL Cost and Scaling model\n", - "from topfarm.cost_models.economic_models.turbine_cost import economic_evaluation as ee_1\n", - "# Import Topfarm constraints for site boundary and spacing\n", - "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", - "from topfarm.constraint_components.boundary import CircleBoundaryConstraint\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "# Import Topfarm support classes for setting up problem and workflow\n", - "from topfarm.cost_models.cost_model_wrappers import CostModelComponent, AEPCostModelComponent\n", - "from topfarm.cost_models.py_wake_wrapper import PyWakeAEPCostModelComponent\n", - "from topfarm import TopFarmGroup, TopFarmProblem\n", - "from topfarm.plotting import XYPlotComp, NoPlot\n", - "# Import Topfarm implementation of Random Search or Scipy drivers \n", - "from topfarm.easy_drivers import EasyRandomSearchDriver\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "from topfarm.easy_drivers import EasySimpleGADriver" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up plotting capability**" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<Figure size 432x288 with 0 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "try:\n", - " import matplotlib.pyplot as plt\n", - " plt.gcf()\n", - " plot_comp = XYPlotComp()\n", - " plot = True\n", - "except RuntimeError:\n", - " plot_comp = NoPlot()\n", - " plot = False\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up IEA Wind Task 37 case study site with 16 turbines.**" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# site set up\n", - "n_wt = 16 # number of wind turbines\n", - "site = IEA37Site(n_wt) # site is the IEA Wind Task 37 site with a circle boundary\n", - "windTurbines = IEA37_WindTurbines() # wind turbines are the IEA Wind Task 37 3.4 MW reference turbine\n", - "wake_model = IEA37SimpleBastankhahGaussian(site, windTurbines) # select the Gaussian wake model\n", - "\n", - "# vectors for turbine properties: diameter, rated power and hub height\n", - "# these are inputs to the cost model\n", - "Drotor_vector = [windTurbines.diameter()] * n_wt \n", - "power_rated_vector = [float(windTurbines.power(20)/1000)] * n_wt \n", - "hub_height_vector = [windTurbines.hub_height()] * n_wt " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up functions for the AEP and cost calculations. Here we are using the internal rate of return (IRR) as our financial metric of interest.**" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# function for calculating aep as a function of x,y positions of the wind turbiens\n", - "def aep_func(x, y, **kwargs):\n", - " return wake_model(x, y).aep().sum(['wd','ws']).values*10**6\n", - "\n", - "# function for calculating overall internal rate of return (IRR)\n", - "def irr_func(aep, **kwargs):\n", - " my_irr = ee_1(Drotor_vector, power_rated_vector, hub_height_vector, aep).calculate_irr()\n", - " print(my_irr)\n", - " return my_irr" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Now set up a problem to run an optimization using IRR as the objective function. Note that the turbines are fixed so the main driver changing the IRR will be the AEP as the turbine positions change.**" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "59.15317035889765\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "59.15317035889765\n", - "59.15317035889765\n", - "59.14310441797548\n", - "59.15317035889765\n", - "59.15317035889765\n", - "59.15317035889765\n", - "59.15317035889765\n", - "59.15317035889765\n", - "58.29211938020884\n", - "59.15317035889765\n", - "59.15317035889765\n", - "58.306611078551015\n", - "59.15317035889765\n", - "58.65177988998911\n", - "59.15317035889765\n", - "59.15317035889765\n", - "59.15317035889765\n", - "59.15317035889765\n", - "59.15317035889765\n", - "58.59176040816389\n", - "59.15317035889765\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "58.66292698793363\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.303257188319215\n", - "59.31620110565699\n", - "59.31620110565699\n", - "57.47298599965627\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "57.6380941604278\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "58.43798216603633\n", - "59.31620110565699\n", - "57.50524264369579\n", - "59.31620110565699\n", - "58.82976209996185\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "57.70824040792708\n", - "59.31620110565699\n", - "59.31620110565699\n", - "58.590114202784505\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.31620110565699\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.406299153034944\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.37976410053296\n", - "59.726153083156255\n", - "59.552670809081754\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.32561802599095\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.27489893145545\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.95636326531617\n", - "59.726153083156255\n", - "58.578302590782606\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.6548498707578\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.64491622007393\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.087380184410264\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.89200916787394\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.465669464734574\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "58.64173080326604\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.726153083156255\n", - "59.82344544880953\n", - "59.82344544880953\n", - "59.82344544880953\n", - "59.82344544880953\n", - "59.82344544880953\n", - "59.82344544880953\n", - "59.82344544880953\n", - "58.90464363372247\n", - "59.82344544880953\n", - "58.88967957072477\n", - "59.82344544880953\n", - "59.82344544880953\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.37873069716875\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.15816420672304\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.641800244598016\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "59.832213357205674\n", - "58.47211418414566\n", - "59.832213357205674\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.12846366971658\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.32547979740623\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.48567409483194\n", - "59.89894655634669\n", - "58.77730766731513\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "57.81442561305228\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "58.89618064107394\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "58.98923004229027\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.20273938936526\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.885485187420294\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "59.89894655634669\n", - "58.82856639362857\n", - "59.89894655634669\n", - "59.06568394785339\n", - "59.89894655634669\n", - "59.87507845753805\n", - "59.89894655634669\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# create an openmdao component for aep and irr to add to the problem\n", - "aep_comp = CostModelComponent(input_keys=['x','y'], n_wt=n_wt, cost_function=aep_func, output_key=\"aep\", output_unit=\"GWh\", objective=False, output_val=np.zeros(n_wt))\n", - "irr_comp = CostModelComponent(input_keys=['aep'], n_wt=n_wt, cost_function=irr_func, output_key=\"irr\", output_unit=\"%\", objective=True, income_model=True)\n", - "\n", - "# create a group for the aep and irr components that links their common input/output (aep) \n", - "irr_group = TopFarmGroup([aep_comp, irr_comp])\n", - "\n", - "# add the group to an optimization problem and specify the design variables (turbine positions), \n", - "# cost function (irr_group), driver (random search), and constraints (circular boundary and spacing)\n", - "problem = TopFarmProblem(\n", - " design_vars=dict(zip('xy', site.initial_position.T)),\n", - " cost_comp=irr_group,\n", - " driver=EasyRandomSearchDriver(randomize_func=RandomizeTurbinePosition_Circle(), max_iter=50),\n", - " #driver=EasyScipyOptimizeDriver(optimizer='COBYLA', maxiter=200, tol=1e-6, disp=False),\n", - " #driver=EasySimpleGADriver(max_gen=100, pop_size=5, Pm=None, Pc=.5, elitism=True, bits={}),\n", - " constraints=[SpacingConstraint(200),\n", - " CircleBoundaryConstraint([0, 0], 1300.1)],\n", - " plot_comp=plot_comp)\n", - "\n", - "# assign data from optimizationn to a set of accessible variables and run the optimization\n", - "cost, state, recorder = problem.optimize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise!!\n", - "\n", - "**Play with the driver above to see if an improved objective function can be obtained.**" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### DTU Cost Model\n", - "\n", - "The DTU Cost Model is based on more recent industry data. It has a similar structure to the NREL cost and scaling model and contains the major elements to calculate LCOE, IRR etc. One key innovation of the DTU Cost model compared to the NREL cost and scaling model is the use of a detailed financial cash flow analysis. This is not yet implemented but will be implemented in a future version.\n", - "\n", - "For more information on the DTU Cost model see its background here:\n", - "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/user_guide.html#dtu-cost-model\n", - "and the source code documentation here:\n", - "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/api_reference/dtucost.html" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Import the new DTU Cost model**" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "#import the DTU cost model\n", - "from topfarm.cost_models.economic_models.dtu_wind_cm_main import economic_evaluation as ee_2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up the site and inputs as before but with additional cost variables.**" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# site set up\n", - "n_wt = 16 # number of wind turbines\n", - "site = IEA37Site(n_wt) # site is the IEA Wind Task 37 site with a circle boundary\n", - "windTurbines = IEA37_WindTurbines() # wind turbines are the IEA Wind Task 37 3.4 MW reference turbine\n", - "wake_model = IEA37SimpleBastankhahGaussian(site, windTurbines) # select the Gaussian wake model\n", - "AEPComp = PyWakeAEPCostModelComponent(wake_model, n_wt) # set up AEP caculator to use Gaussiann model\n", - "\n", - "# vectors for turbine properties: diameter, rated power and hub height\n", - "# these are inputs to the cost model\n", - "Drotor_vector = [windTurbines.diameter()] * n_wt \n", - "power_rated_vector = [float(windTurbines.power(20))*1e-6] * n_wt \n", - "hub_height_vector = [windTurbines.hub_height()] * n_wt \n", - "\n", - "# add additional cost model inputs for shore distance, energy price, project lifetime, rated rotor speed and water depth\n", - "distance_from_shore = 30 # [km]\n", - "energy_price = 0.1 # [Euro/kWh] What we get per kWh\n", - "project_duration = 20 # [years] \n", - "rated_rpm_array = [12] * n_wt # [rpm]\n", - "water_depth_array = [15] * n_wt # [m]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up the cost function to use the new DTU cost model.**" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "# set up function for new cost model with initial inputs as set above\n", - "eco_eval = ee_2(distance_from_shore, energy_price, project_duration)\n", - "\n", - "# function for calculating aep as a function of x,y positions of the wind turbiens\n", - "def aep_func(x, y, **kwargs):\n", - " return wake_model(x, y).aep().sum(['wd','ws']).values*10**6\n", - "\n", - "# function for calculating overall internal rate of return (IRR)\n", - "def irr_func(aep, **kwargs):\n", - " eco_eval.calculate_irr(rated_rpm_array, Drotor_vector, power_rated_vector, hub_height_vector, water_depth_array, aep)\n", - " print(eco_eval.IRR)\n", - " return eco_eval.IRR" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up rest of problem just as in prior example and run optimization with new model.**" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.17893667262343\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.437270403804053\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.03553821343114\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "20.992255096835912\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.363733476893998\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.446512022323127\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.281585607342723\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.25922672347491\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.00257651418671\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.263403230547297\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.48852558866341\n", - "21.456301805729705\n", - "21.48852558866341\n", - "21.277472110151873\n", - "21.48852558866341\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "20.992957850395257\n", - "21.577302623117035\n", - "21.290930849806333\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.462797679778454\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.43515397737461\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.57196544375224\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.538581645219246\n", - "21.577302623117035\n", - "21.100004439465756\n", - "21.577302623117035\n", - "21.466435149229703\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.06296472635949\n", - "21.577302623117035\n", - "21.55833401755942\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.470572287468848\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.50161511285176\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.570150836228173\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.35153427253387\n", - "21.577302623117035\n", - "21.501613537685117\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.130918497068162\n", - "21.577302623117035\n", - "21.57438356618886\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.558036556377314\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.45434911494344\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.22252856494111\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.37875444182682\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.502203177340306\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.577302623117035\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.500772093175048\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.565941646924557\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.58873526794094\n", - "21.652427276781584\n", - "21.313762796093584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.191123490112407\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.45933698990017\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.172905361146952\n", - "21.652427276781584\n", - "21.52339463106443\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.257246752291238\n", - "21.652427276781584\n", - "21.50614430327602\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.391320185168716\n", - "21.652427276781584\n", - "21.647446945777894\n", - "21.652427276781584\n", - "21.43411865417406\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.652427276781584\n", - "21.144746997831287\n", - "21.652427276781584\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# create an openmdao component for aep and irr to add to the problem\n", - "aep_comp = CostModelComponent(input_keys=['x','y'], n_wt=n_wt, cost_function=aep_func, output_key=\"aep\", output_unit=\"kWh\", objective=False, output_val=np.zeros(n_wt))\n", - "irr_comp = CostModelComponent(input_keys=['aep'], n_wt=n_wt, cost_function=irr_func, output_key=\"irr\", output_unit=\"%\", objective=True, income_model=True)\n", - "\n", - "# create a group for the aep and irr components that links their common input/output (aep) \n", - "irr_group = TopFarmGroup([aep_comp, irr_comp])\n", - "\n", - "# add the group to an optimization problem and specify the design variables (turbine positions), \n", - "# cost function (irr_group), driver (random search), and constraints (circular boundary and spacing)\n", - "problem = TopFarmProblem(\n", - " design_vars=dict(zip('xy', site.initial_position.T)),\n", - " cost_comp=irr_group,\n", - " driver=EasyRandomSearchDriver(randomize_func=RandomizeTurbinePosition_Circle(), max_iter=50),\n", - " constraints=[SpacingConstraint(200),\n", - " CircleBoundaryConstraint([0, 0], 1300.1)],\n", - " plot_comp=plot_comp)\n", - " \n", - "# assign data from optimizationn to a set of accessible variables and run the optimization\n", - "cost, state, recorder = problem.optimize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note how the IRR results with the new cost model are quite different (lower) than the old NREL cost and scaling model.\n", - "\n", - "### Exercise!!\n", - "\n", - "Manipulate the cost inputs to the DTU cost model to see the impact on IRR." - ] - }, - { - "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.6.7" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/_notebooks/elements/drivers.ipynb b/_notebooks/elements/drivers.ipynb deleted file mode 100644 index 21cfee9a..00000000 --- a/_notebooks/elements/drivers.ipynb +++ /dev/null @@ -1,573 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Drivers\n", - "\n", - "The word \"driver\" is an OpenMDAO specific term that refers to something that operates on a workflow. The most simple driver is something that simply executes an entire workflow once. For optimization, a driver is usually an optimization algorithm that iterates over the workflow until (ideally) an optimal solution is found. In a very complex workflow and problem formulation, there may be multiple drivers acting on sub-groups of a workflow. For instance, in an optimization under uncertainty (OUU) problem, there is usually an uncertainty quantification / analysis driver operating on a workflow nested within a larger optimization workflow.\n", - "\n", - "In this tutorial, a basic introduction to drivers is provided that focuses on some of the most commonly used drivers in Topfarm. These include examples of four types of drivers:\n", - "* Design of Experiments (DoE) - these drivers sample across a set of input parameters and execute the workflow for each input set. Such drivers can be parallelized easily since each workflow execution is independent from the next.\n", - "* Gradient-based or local search optimizers - these drivers use information about the gradients of the objective function for the problem with respect to the design variables in order to move through the design space systematically to find an improved design. This class of optimization algorithms are efficient but are challenged problems that contain significant nonconvexity, objective functions that are relatively insensitive to the design variables, and other issues.\n", - "* Gradient-free metaheuristic optimizers - these drivers typically use \"nature-inspired\" algorithms to search the design space more globally. They use multiple instances of designs at once and compare performance to make decisions about how to generate new designs that hopefully improve the objective function performance. A clasic example of this type of optimizer is a genetic algorithm.\n", - "* Gradient-free heuristic optimizers - these drivers use some sort of heuristic to search through the design space that is informed by domain knowledge and experience with some element of randomness as well. Random search algorithms fall into this category and are widely used in commercial wind farm optimization.\n", - "\n", - "We will introduce a specific example of each of the above driver types applied to a Topfarm problem in the next sequence of examples." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**First we import supporting libraries in Python numpy and matplotlib**" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.easy_drivers import EasyDriverBase\n", - "EasyDriverBase.max_iter = 1" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "%matplotlib inline\n", - "# uncomment to update plot during optimization\n", - "# %matplotlib qt\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we import and initialize several functions and classes from Topfarm to set up the problem including:**\n", - "* **TopFarmProblem - overall topfarm problem class to which the objectives, design variables, and constraints are added**\n", - "* **XYBoundaryConstraint - for a boundary specified as a series of connected perimeter vertices**\n", - "* **CircleBoundaryConstraint - for a circular boundary with a central location and a radius**\n", - "* **SpacingConstraint - for the inter-turbine spacing distance constraints**\n", - "\n", - "**We also import some dummy models (DummyCost, NoPlot, DummyCostPlotComp) as stand-ins for what would be the actual models used in a real wind farm design problem. The dummy cost model takes user defined input for an initial and optimal state and computes the sum of squared error between the two.**\n", - "\n", - "**For documentation on Topfarm see:**\n", - "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/user_guide.html#" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.cost_models.dummy import DummyCost\n", - "from topfarm.plotting import NoPlot\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", - "from topfarm._topfarm import TopFarmProblem\n", - "from topfarm.cost_models.dummy import DummyCostPlotComp" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we do some problem set up to provide an initial and optimal turbine layout as well as the overall turbine location boundary.**\n", - "\n", - "**We also configure initalize the plotting component for use in the optimization.**" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "initial = np.array([[6, 0, 0], [6, -8, 0], [1, 1, 0]]) # user-defined initial turbine layouts\n", - "boundary = np.array([(0, 0), (6, 0), (6, -10), (0, -10)]) # user-defined site boundary vertices\n", - "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "plot_comp = DummyCostPlotComp(optimal, delay=0.1, plot_improvements_only=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**A function is introduced below that will allow us to quickly reconfigure the example for the different drivers.**" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def optimize(driver):\n", - " tf = TopFarmProblem(\n", - " dict(zip('xy', (initial[:, :2]).T)), # setting up the turbines as design variables\n", - " DummyCost(optimal[:, :2]), # using dummy cost model\n", - " constraints=[SpacingConstraint(2), # spacing constraint set up for minimum inter-turbine spacing\n", - " XYBoundaryConstraint(boundary)], # constraint set up for the boundary type provided\n", - " driver=driver, # driver is specified for the example\n", - " plot_comp=plot_comp) # support plotting function\n", - " tf.optimize() # run the DoE analysis or optimization\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## DOE (Design Of Experiment) Driver\n", - "\n", - "The first driver example executes a design of experiments looking at how different sets of inputs for the turbine positions affect the cost function. In the first case, a user-defined set of inputs is provided, while in the second a \"full-factorial\" sampling approach is used.\n", - "\n", - "(Wikipedia) \"In statistics, a full factorial experiment is an experiment whose design consists of two or more factors, each with discrete possible values or \"levels\", and whose experimental units take on all possible combinations of these levels across all such factors. A full factorial design may also be called a fully crossed design. Such an experiment allows the investigator to study the effect of each factor on the response variable, as well as the effects of interactions between factors on the response variable.\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up a DoE experiment example using a user-defined set up input combinations of the 3 turbine positions**" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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ZvyR7FeuXEn37t257bbbaN68OcOGDcsew6V79+7ExcUxYcIEUlJSiIqKYtiwYcAfR+lnz56lZ8+etG3bloiICD7++ON8t7dv3z6aN2/O8OHDiYyM5Lbbbssebvirr76iTZs2REREMGLECM6ds64XmDBhAi1btiQyMpJHHnkE+OMmIx9++CFxcXEMGzaMqKgoUlJSsuMGa6jmiIgIwsPDefzxx7PjqFChAjExMbRu3ZpOnTrZMuBYUWmSV0oBMGPGjOzRGv2R7H/66Sf++c9/sm3bNvbu3Zv9xZLlhRdeoFy5cmzcuPGi8WZCQ0NZsmQJP/74I7GxsTz88MN5Dh6WZefOnYwePZrNmzdTqVIlXn31VVJTU4mOjmbRokX8/PPPpKenM3v2bBITE1myZAlbt25l8+bNPPXUUznquu2222jfvj0LFixg48aNOUadPHz4MI8//jhff/01GzduZP369SxduhSA33//nU6dOrFp0yauu+465s2b58su9IomeaVUtjp16jBjxgy++uor3nrrrewbftihY8eO1K9fH5fLRVRUVPawwIVhjOHJJ58kMjKSXr16cejQoQKPihs0aECXLl0A+POf/8zq1avZuXMnV1xxBVdddRUAw4cP55tvvqFSpUqEhoYyatQoPvroo+wB1Apj/fr1dO/enRo1ahAcHMywYcP45ptvAChTpkz2zULatWtXpNdsF03ySqlsR44c4aGHHqJXr15ER0fbeiWoL8PoLliwgOPHj7NhwwY2btxIrVq1Chw+uChDBwcHB/PDDz9w6623snTpUvr06VPo2PL7RRESEpIdh11DBxeVJnllq4Y/zKDhDzMKXrC0efKINQWQoIQgghL+GNrgoYceIjw8HBFh69atvPTSS9SuXbtYYwoJCSEtLe2i55OSkqhZsyYhISHExsayf//+Aus6cOAAa9euBaw2865du9K8eXP27dvHL79YYxG98847dOvWjbNnz5KUlETfvn355z//ycaNGy+qL6/hg6+++mpWrVrFiRMnyMjIYOHChXTr1q2oL91vArRTs3JKRpmKTofgH6cPWX+rN3U2Djt5HOJ16dIlO7kXd2L3NHr0aCIjI2nbtm2Odvlhw4bRv39/2rdvT1RUVKGGD27RogVvvfUWY8aMoWnTptxzzz2Ehoby5ptvMnjwYNLT0+nQoQNjx44lMTGRgQMH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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from openmdao.drivers.doe_generators import ListGenerator\n", - "from openmdao.drivers.doe_driver import DOEDriver\n", - "\n", - "optimize(DOEDriver(ListGenerator([[('x', [0., 3., 6.]), ('y', [-10., -10., -10.])],\n", - " [('x', [0., 3., 6.]), ('y', [-5., -5., -5.])],\n", - " [('x', [0., 3., 6.]), ('y', [-0., -0., -0.])],\n", - " ])))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Run a full factorial experiment for two inputs using OpenMDAO's built-in FullFactorialGenerator class. The input value of 2 is \"the number of evenly spaced levels between each design variable lower and upper bound.\"**\n", - "\n", - "**See: http://openmdao.org/twodocs/versions/latest/_srcdocs/packages/drivers/doe_generators.html**\n", - "**for more information on the various built-in DoE drivers for OpenMDAO.**" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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5ppr+Omnn1i7di0HDx4kMTGx0O2OD/mGDRvy3nvvlamWivLFF18AJ4Z8fHw806ZNC0lNCnkR4a233iIxMZFnnnmGI0eO8Mwzz5CYmFimoF+4cCFRUVHcfPPNAISHhzN16lRefvll0tPTmTVrFgMHDuSqq66iZcuWPPTQQwCMHTuW9evXExcXx5gxY9i4cSNt27YFYNasWVxzzTX079+fJk2aMH36dJ588knat29P586d2bNnDwAvvPACHTt25IILLmDQoEGkp6cXWuuwYcMYMWIEl1xyCS1atODvf/874Dt5ffPNN9OuXTvat29PcnIyACtXrqRTp07ExcURGxvLTz/9BECNGjXyXsO//vUv4uLimDp1KosWLaJfv34A7Nmzh2uuuYbY2Fg6d+7MihUrAN+7jFtuuYUePXrQtGnT8vujEOqvpsp/69ChgxOR8rFq1apir9umTRu3cOHCY55buHCha9OmTan7f/rpp93dd999wvNxcXHuu+++c6+88opr0KCB27Vrl0tPT3dt2rRxy5Ytcxs2bDim3/yPX3nlFdesWTO3f/9+t3PnTlerVi03Y8YM55xzd999t5s6dapzzrldu3blbZ+YmOimTZvmnHNuwoQJbsqUKSfUdNNNN7krr7zSZWdnu7Vr17pzzjnHHT582P3tb39zw4YNc845t3r1ate4cWN3+PBhN2rUKPfGG28455w7evSoS09Pd845V716deecc8nJya5v37557ed/PGrUKDdx4kTnnHMLFixwF1xwQV5tXbp0cUeOHHFpaWmuTp06LiMj44RaA/1egRRXQK7qSF5EWL16Nd26dTvmuW7durF69epSt+mcC3g1SP7ne/fuTd26dalWrRrXXnstS5cuLbLdnj17UrNmTc4880xq165N//79AWjXrh0bN24E4IcffuCSSy6hXbt2JCUlsXLlyiLbHTJkCGFhYTRv3pymTZvy448/snTpUv7whz8A0KpVK84991zWrl1Lly5dePTRR3n88cf55ZdfqFatWnF3yzFtXnbZZezevZt9+/YB0LdvXyIjI6lXrx7169dnx44dxW63IAp5EeH8888/IWCXLl3K+eefX+o227Rpc8Kssvv37+fXX3+lWbNmwImXBBbnEsHIyMi8+2FhYXmPw8LCyMrKAnzDL9OnT+f7779nwoQJxbq2PFAtroCvR/3973/P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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from openmdao.drivers.doe_generators import FullFactorialGenerator, ListGenerator\n", - "from openmdao.drivers.doe_driver import DOEDriver\n", - "\n", - "optimize(DOEDriver(FullFactorialGenerator(3))) # full factorial sampling with 2 levels (2 is the default)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise\n", - "\n", - "**Update the number of levels of the full factorial to see how it affects the sampling of the design space.**" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "optimize(DOEDriver(FullFactorialGenerator(2)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Gradient-Based Optimization with ScipyOptimizeDriver\n", - "\n", - "In the next example we introduce gradient-based optimization using a common open-source algorithm \"sequential least squares quadratic programming\" or SLSQP. OpenMDAO has several built-in drivers that leverage libraries of opensource optimization algorithms including those from SciPy and PyOptSparse. For more information on the optimization drivers available in OpenMDAO, see: http://openmdao.org/twodocs/versions/latest/_srcdocs/packages/openmdao.drivers.html\n", - "\n", - "Note that in Topfarm, the OpenMDAO drivers are wrapped so that you can more easily use them on Topfarm wind farm design optimization probblems." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Import the Topfarm implementation of the Scipy optimizer and execute a gradient-based optimization.**" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization FAILED.\n", - "Iteration limit exceeded\n", - "-----------------------------------\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "# Choose optimization driver SLSQP and set up key parameters for the optimization\n", - "# Maximum iterations maxiter sets the maximum number of iterations before stopping (unless an optimum is found prior)\n", - "# Tolerance tol sets the required tolerance for establishing convergence criteria of the optimziation\n", - "optimize(EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=200, tol=1e-6, disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Note that the optimization converges much sooner than the maximum iterations of 200.**\n", - "\n", - "### Exercise!!\n", - "\n", - "**Adjust the optimal positions of the turbines and see how the optimization performs.**" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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nDnD9OnTmT59Onv27KFly5bExcX59anKW0FBAdnZ2bRs2ZJOnTrVUsSmOlSVI0eOsG/fPrp06VLl/axP3tS6efPm0b1798o3DLAPP/yQH/zgB8EOo06sXr2aO++8kzZt2iAiiAhnz56lbdu2NU7wABEREfTo0YO2bdt6T0Rm6pCI0LZtW86ePVut/SzJm1p39uxZevTowbFjwb0XRFZWFj/5yU+CGkNd2LlzJ5MmTeLdd99l6NCh55XVRoIvERoaStOmTdm/fz/791d0AzETKP68n5bkTa2LjIxk8ODBvPnmm0GNY8mSJQwePDioMdSFpk2b8vrrr9doVFN1xMTEkJuby5kzZ+qkPVMzluRNQNx777385je/4fTp03XetsvlYsKECY3ii3WrVq0iIiKCcePG1VmbTZo0oVOnTnzzzTe4XK4Kt923bx/jx4+ne/fudOvWjQceeIDCwsIK9zl27Bivvvpq6XJOTg633nprrcS+YMGC0mGlgVDSPbhnzx7efvvt0vXp6encf//9AWu3IpbkTUBcddVVPPDAA0E52/uf//kfcnJyuPzyy+u87bq0f/9+pk2bVmv/SJctW0a/fv0IDQ2lX79+LFu2rNxt27ZtS8eOHSvsPlBVJkyYwE033cSuXbvIysri1KlTpKSkVBhH2SR/ySWX8N5771X/BQXBv/71L+DCJJ+UlMTLL78cnKCCfdcS78eAAQPUOMv333+vX375ZZ21l52drTExMbp9+/Y6azNYnnzySZ01a1a55V999VWV63r77be1S5cuunr1ai0sLNTVq1drly5d9O233y53H5fLpXl5eepyuXyWf/TRRzps2LDz1h0/flzbtGmjp0+f1tTUVB03bpyOGTNGe/TooQsWLFBV1dtvv10jIyO1f//++vDDD+s333yjffv2VVXV1NRUHT9+vN5www0aFxenv/3tb/XXv/61JiYm6uDBg/XIkSOqqrp48WJNSkrShIQEnTBhgp4+fVpVVR9//HF97rnnLoh1ypQpOmvWLB06dKh2795d//KXv6iqan5+vk6dOlX79euniYmJunr1alVVzczM1IEDB2r//v01Pj5es7KyVFW1efPmqqo6ePBgjYqK0v79++sLL7yga9as0euvv15VVY8cOaLjx4/X+Ph4HTx4sG7evLk0tmnTpmlycrJ26dJFX3rpJZ/H1df7ivse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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization FAILED.\n", - "Iteration limit exceeded\n", - "-----------------------------------\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "optimal = np.array([[6, -3, 1], [5, -6, 2], [4, -2, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "plot_comp = DummyCostPlotComp(optimal, delay=0.5, plot_improvements_only=True)\n", - "\n", - "optimize(EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=200, tol=1e-6, disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Another popular optimization method in SciPy is COBYLA which is also a local-search method but not a gradient-based search since it does not assume the derivative is known. Instead approximates the constrained optimization problem iteratively as a linear programming problem." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Repeat the original optimization problem with the COBYLA optimization driver. Note how it does not respect the constraints of the boundary on every iteration.**" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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mzalffv2NRSxqQpV5dixYxw8eJCOHTtWejvrkzc1bs6cOXTt2rXiFQPs448/5kc/+lGww6gVa9eu5e6776Zly5aICCLC+fPnadWqVbUTPEBERATdunWjVatW3hORmVokIrRq1Yrz589XaTtL8qbGnT9/nm7dunHiRHDvBZGens5Pf/rToMZQG3bv3s3EiRN5//33GTJkSImymkjwRUJDQ2nYsCGHDh3i0KHybiBmAsWfz9OSvKlxkZGRDBo0iHfeeSeocbz55psMGjQoqDHUhoYNG/LWW29Va1RTVURHR5OVlcW5c+dqpT1TPZbkTUA89NBD/Pa3v+Xs2bO13rbL5WL8+PGXxIV1a9asISIigrFjx9Zamw0aNKB9+/bs27cPl8vXLXn/7eDBg4wbN46uXbvSuXNnZs+ezYULF8rd5sSJE7z++uvFrzMzM7n99rLu9lg18+fPLx5WGghF3YP79+/nvffeK16ekpLCI488ErB2y2NJ3gTEtddey+zZs4NytPdf//VfZGZmctVVV9V627Xp0KFD3HfffTX2j3T58uX06dOH0NBQ+vTpw/Lly8tct1WrVrRr167c7gNVZfz48fzkJz9hz549pKenc+bMGZKSksqNo3SSv+KKK/jggw+q/oaC4J///CdwcZJPSEjgtddeC05Qwb5rifejf//+apzlhx9+0G+++abW2svIyNDo6GjduXNnrbUZLM8++6xOnz69zPIdO3ZUuq733ntPO3bsqGvXrtULFy7o2rVrtWPHjvree++VuY3L5dKcnBx1uVw+yz/55BMdOnRoiWUnT57Uli1b6tmzZzU5OVnHjh2ro0eP1m7duun8+fNVVfXOO+/UyMhI7devn86dO1f37dunvXv3VlXV5ORkHTdunN5yyy0aGxurv/vd7/Q3v/mNxsfH66BBg/TYsWOqqrpkyRJNSEjQvn376vjx4/Xs2bOqqvr000/rwoULL4p18uTJOn36dB0yZIh27dpV//rXv6qqam5urk6ZMkX79Omj8fHxunbtWlVVTUtL0wEDBmi/fv00Li5O09PTVVW1cePGqqo6aNAgjYqK0n79+unLL7+s69at05tvvllVVY8dO6bjxo3TuLg4HTRokG7ZsqU4tvvuu08TExO1Y8eO+uqrr/rcr74+V9z30PWZV4Oe2L0fluSdZ82aNRoTE6PfffddrbSXmZmpf/7zn2ulrWByuVzarVs3TU1NLXOdqiT53r17FyewImvXri1OrmXFsH37dj1x4oTP8ldffVUfffTRi5bHx8frli1bNDk5Wdu2batHjx7Vc+fOae/evXXTpk0lkrqqXpTkO3furKdOndKsrCyNiorSN954Q1VVH330UX3llVdUVfXo0aPF2yclJelrr72mquUn+dGjR2thYaGmp6dru3btNDc3V1966SWdMmWKqqru3LlTO3TooLm5uTpr1ix99913VVU1Ly9Pz507p6r/TvLeSb3061mzZhX/Q/v000+1X79+xbFdc801ev78ec3OztaWLVvqhQsXLoq1qkneumtMQP34xz/m0UcfZeTIkRw8eDBg7Zw+fZqHH36Yxo0bc+uttwasnbpCREhJSaFfv341Ut/OnTsvGpkzZMgQdu7cWW4Mbdq0ITs722e5qvrszvFefsMNN9CqVSsaNmzI+PHj2bhxY4WxDh8+nKZNm9K6dWuaNWvGj3/8YwDi4uLYv38/AGlpaQwdOpS4uDiWLVvG9u3bK6x3woQJhISE0LVrVzp16sSuXbvYuHEj99xzDwA9evTgyiuvJD09nWuuuYbnn3+eF154ge+++46GDRtWWH8R7zqvv/56jh07xsmTJwG4+eabiYiIIDo6mjZt2nDkyJFK11sWS/Im4B577DGmT59OWlpaQOo/cOAAI0aM4MKFCzRu3DggbdQ1q1evJiMjo8bq69mz50UJduPGjfTsWf4Uz82aNePMmTM+x8337t37opPfp06d4vvvv6dz587AxUMCKzNEMCIiovh5SEhI8euQkJDii/CmTJnCokWL2LZtG08//XSlxpb7isXX+wK4++67WbNmDQ0bNmT06NGsXbu2wvqL+KqzqG3v9xYaGlqtiwqLWJI3tWLOnDmMGTOGl19+mWeeeYb8/Pwaqff48eMMHDiQ8ePHs3jxYkJDL435bV577bUaHauelJTE/fffz7p168jPz2fdunXcf//9FZ4kDQ8PL/PCtxEjRnDu3Dl+//vfA+75cObMmcOUKVNo1KgR4L5gLScnh9zcXFavXs21115L06ZNOX36dLXez+nTp7n88svJz89n2bJlldrm/fffx+VysXfvXjIyMujevTvXXXdd8fbp6ekcOHCA7t27k5GRQadOnXjkkUcYO3YsW7duLVFXee/Bu87169cTHR0d0Oki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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization FAILED.\n", - "Did not converge to a solution satisfying the constraints. See `maxcv` for magnitude of violation.\n", - "-----------------------------------\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#set optimal back to original optimal\n", - "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "plot_comp = DummyCostPlotComp(optimal, delay=0.5, plot_improvements_only=True)\n", - "\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "# Choose optimization driver COBYLA and set up key parameters for the optimization\n", - "# Maximum iterations maxiter sets the maximum number of iterations before stopping (unless an optimum is found prior)\n", - "# Tolerance tol sets the required tolerance for establishing convergence criteria of the optimziation\n", - "optimize(EasyScipyOptimizeDriver(optimizer='COBYLA', maxiter=200, tol=1e-6, disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Genetic algorithm driver\n", - "\n", - "The next examples uses a simple genetic algorithm metaheuristic optimization approach. Note how the global design space is more exhaustively explored by the GA. This more comprehensive exploration of the search space comes at the cost of much slower convergence to an optimal solution." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Import the Topfarm implmentation of the GA driver and execute an optimization.**" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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MWmSV0qxaNEioqOjeeedd0hLS+Odd94hOjq6SIl+zZo1BAQE8OCDDwLg4+PD9OnT+eCDDzh//jzz58+nb9++9OrVi2bNmvHCCy8AMGHCBPbu3Ut4eDjjx49n//79tG7dGoD58+fTr18/7rrrLho1asTMmTN58803adeuHR07diQ5ORmA999/nw4dOtC2bVvuuecezp8/n2+sw4YNY8SIEdx00000bdqUr776CrBevH7wwQdp06YN7dq1IzY2FoAdO3Zw/fXXEx4eTlhYGHv27AGgQoUKOa/hhx9+IDw8nOnTp7N27VruvPNOAJKTk+nXrx9hYWF07NiRbdu2AdZ3GQ899BCRkZE0bty4+P4puHtqqtzLddddZ5RSxSMhIcHhbVu1amXWrFlz2XNr1qwxrVq1crr/t99+24wdO/aq58PDw83WrVvNvHnzTK1atUxSUpI5f/68adWqldm8ebP5888/L+s39+N58+aZJk2amLNnz5rjx4+bSpUqmdmzZxtjjBk7dqyZPn26McaYpKSknP2jo6PNjBkzjDHGPP/88+a11167KqahQ4ea2267zWRlZZndu3ebunXrmgsXLpjXX3/dDBs2zBhjTGJioqlfv765cOGCGTVqlPnoo4+MMcakp6eb8+fPG2OMKV++vDHGmNjYWNO7d++c9nM/HjVqlJkyZYoxxpjVq1ebtm3b5sTWqVMnk5aWZk6cOGGCgoLMxYsXr4rV3s8ViDN55FU9k1dKkZiYSJcuXS57rkuXLiQmJjrdpjHG7t0guZ/v2bMn1apVIzAwkLvvvpsNGzYU2G63bt2oWLEiNWrUoHLlytx1110AtGnThv379wOwfft2brrpJtq0aUNMTAw7duwosN2BAwdisVgIDQ2lcePG7Ny5kw0bNjBkyBAAmjdvTsOGDdm9ezedOnVi2rRpvPLKK/z1118EBgY6elgua7N79+6cPHmSM2fOANC7d2/8/f2pXr06wcHBHDt2zOF286JJXilFixYtrkqwGzZsoEWLFk632apVq6uqyp49e5a///6bJk2aAFffEujILYL+/v4531sslpzHFouFzMxMwDr8MnPmTH7//Xeef/55h+4ttxeLyWN61Pvvv58vv/ySwMBAbrvtNtasWVNg+5fYa/NS37lfm4+PT87rKQpN8kopoqOjefjhh4mNjSUjI4PY2FgefvjhAi+S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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", - "from topfarm.easy_drivers import EasySimpleGADriver\n", - "# Choose optimization driver GA and set up key parameters for the optimization\n", - "# Maximum generations max_gen sets the number of iterations for the optimization\n", - "# Population size pop_size sets the number of individuals in the population within each iteration\n", - "optimize(EasySimpleGADriver(max_gen=100, pop_size=5, Pm=None, Pc=.5, elitism=True, bits={}))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Even after 100 generations, there is a lack of convergence. This shows clearly the advantages of gradient-based methods for smartly probing the design space. However, gradient-based methods will often end up in \"local optima\" because their final converged solution depends heavily on their intial starting point in the design space." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Random search driver\n", - "\n", - "An example of a heuristic method (somewhere between gradient-based and metaheuristic methods) is random search. Topfarm has implemented the Random Search algorithm based on the one developed at DTU Wind Energy by Ju Feng. \n", - "\n", - "More information about the method can be found here: https://www.sciencedirect.com/science/article/pii/S0960148115000129?via%3Dihub\n", - "\n", - "In this case, the algorithm repositions turbines using a vector defined by an angle and amplitude that are randomly set at each iteration and the solution tested for improvement against the objective function." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up optimization using Topfarm implementation of random search with turbine position circle method.**" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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VK9eHU9PT0JDQzl8+HCubR05coQ//vgDsMyZd+vWjRYtWhAVFcWBAwcA+Pzzz+nevTsXL14kLi6Ovn378tZbbxEeHp6lveyWD77++uvZsGEDsbGxpKamsmjRIrp3757fl+4wmuSVQx07doxOnTqxbds2u9tycxNC+rbkeNwVPt70j80yiYmJ1K1bl2nTptndX2nStWtXpyb3q4YOHUpAQED6F69XDR8+nLCwMIKCgli4cGGelg9u2bIln376KQEBAZw9e5ZHHnkEHx8f5s+fz1133YW/vz9ubm6MGzeO+Ph4br/9dgICAujevXuW5YHh3/vAXv3i9apatWrx3//+lx49etC2bVvat29P//797T8YhcShSw3nly41XDDBwcEAxXbtmu+++45HH32UNWvW0Lp1a7vbG/NZGL8diGX95B5UK//vFMCyZcto164dDRo0sLsPV1DclxrO7OraNYWx3k5UVBS33347u3btsrut4ia/Sw3rSF453KBBg3jjjTeYNWtWobQ39bYWJKakMXvNPsAyRfPBBx/w6KOP2n1HIaVcjSZ5VSTuvfdePvnkE6KionjhhRfSz00uiEbVynFf5wYs/usI+07F88ADDzBnzhw2bNhAmzZtCjFqVVL5+fm55Ci+IDTJqyIjIvj6+rJz5046dOjA6tWrczwzISdju9XH283wyooIHn/8ccLCwmjSpEkhR6xUyadJXhWpGjVq8N133/H888/z/PPPExcXx5EjRzhz5kye6kdFRTFlyhQCmjei3JHfWL/vNBfL1b3m9Dyl1L80yasiJyIMGzaMzZs3U6lSJZYtW0aDBg1o0qQJw4YN4+zZs0RFRfHJJ58wd+5cXnjhBe68806SkpIIDw8nLS2NP/74g03zX6ZeZV9mrIggNQ8XSClVGmmSV043ceJE4uLiWL58ObfffjsVKlQgJiaGjRs3sn37dowxjB49GoABAwYwa9YsmjRpgreHO8/c2oLIk/F8s/VoLr0oVTppklfFgru7O61atWLEiBF4eHjQqVMn5s+fz4cffsj06dMZMGCAzfvG9vOvRfv6lZj1yz4uJRb91YQqZydPnuTuu++mcePGtGrVir59+7Jv374ijeH8+fPMmTPHoX0U5yWJNcmrEk1ECOnXitPxiXz4a+FcWVsavf7664SGhl6zLTQ0lNdff73AbRpjGDhwIMHBwRw8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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "initial = np.array([[8, -9, 0], [7, -2, 0], [5, -5, 0]]) # user-defined initial turbine layouts\n", - "boundary = np.array([(0, 0), (10, 0), (10, -10), (0, -10)]) # user-defined site boundary vertices\n", - "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "\n", - "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", - "from topfarm.easy_drivers import EasyRandomSearchDriver\n", - "\n", - "# Set up key parameters of random search\n", - "# Maximum iterations max_iter sets the maximum number of iterations of the optimization\n", - "# Maximum time max_time limits execution time (so also limits the overall number of iterations)\n", - "# Maximum step max_step limits how much the design can change on a given iteration\n", - "optimize(EasyRandomSearchDriver(\n", - " randomize_func=RandomizeTurbinePosition_Circle(max_step=5), \n", - " max_iter=100, \n", - " max_time=1000, \n", - " disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that the random search in this case is also slower to converge than the gradient-based solution. Random search and other heuristic methods, like metaheuristic methods, are more powerful with complex optimization problems with many local minima, concavities, flatness or other challenging features." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Raw Cell Format", - "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.6.7" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/_notebooks/elements/layout_and_loads.ipynb b/_notebooks/elements/layout_and_loads.ipynb deleted file mode 100644 index 5b336ad2..00000000 --- a/_notebooks/elements/layout_and_loads.ipynb +++ /dev/null @@ -1,619 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Load Constrained Layout Optimization" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Nv2ihk66SNgi" - }, - "source": [ - "## Install TopFarm and PyWake" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "executionInfo": { - "elapsed": 124309, - "status": "ok", - "timestamp": 1623707966633, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "HP8XVx4URYcr" - }, - "outputs": [], - "source": [ - "%%capture\n", - "try:\n", - " import py_wake\n", - "except:\n", - " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git\n", - "try:\n", - " import topfarm\n", - "except:\n", - " !pip install topfarm" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TbtAki7QSZG4" - }, - "source": [ - "## Import section" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "executionInfo": { - "elapsed": 244, - "status": "ok", - "timestamp": 1623708396211, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "5YqUNim5R3JG" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "from numpy import newaxis as na\n", - "import time\n", - "\n", - "from topfarm.cost_models.cost_model_wrappers import AEPMaxLoadCostModelComponent\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "from topfarm import TopFarmProblem\n", - "from topfarm.plotting import NoPlot\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "\n", - "from py_wake.examples.data.lillgrund import LillgrundSite\n", - "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian, NiayifarGaussian\n", - "from py_wake.turbulence_models.stf import STF2017TurbulenceModel\n", - "from py_wake.examples.data.iea34_130rwt import IEA34_130_1WT_Surrogate \n", - "from py_wake.superposition_models import MaxSum\n", - "from py_wake.wind_turbines.power_ct_functions import SimpleYawModel" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WjnaXixxSdZL" - }, - "source": [ - "## Select site, turbines, wake model and additional models and set up PyWake objects" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "executionInfo": { - "elapsed": 1294, - "status": "ok", - "timestamp": 1623707974928, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "E-TFCSUSSt5e" - }, - "outputs": [], - "source": [ - "site = LillgrundSite()\n", - "windTurbines = IEA34_130_1WT_Surrogate()\n", - "wfm = IEA37SimpleBastankhahGaussian(site, windTurbines, turbulenceModel=STF2017TurbulenceModel(addedTurbulenceSuperpositionModel=MaxSum()))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EL9C3JtZTNU_" - }, - "source": [ - "## Choose flow cases \n", - " (this will determine the speed and accuracy of the simulation). In this example we will focus on only a few flow cases." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "executionInfo": { - "elapsed": 257, - "status": "ok", - "timestamp": 1623707977665, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "DyMkzkpAS2JC" - }, - "outputs": [], - "source": [ - "wsp = np.asarray([10, 15])\n", - "wdir = np.arange(0,360,45)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kC7blGu9h-hR" - }, - "source": [ - "## Constrain loads\n", - " In this example we will calculate nominal loads and use this as a basis for the load constraint." - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": { - "executionInfo": { - "elapsed": 1584, - "status": "ok", - "timestamp": 1623709946254, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "hjG7faI1iZBh" - }, - "outputs": [], - "source": [ - "x, y = site.initial_position.T\n", - "#keeping only every second turbine as lillegrund turbines are approx. half the size of the iea 3.4MW\n", - "x = x[::2]\n", - "y = y[::2]\n", - "x_init = x\n", - "y_init = y\n", - "n_wt = x.size\n", - "i = n_wt\n", - "k = wsp.size\n", - "l = wdir.size\n", - "load_fact = 1.002\n", - "simulationResult = wfm(x,y,wd=wdir, ws=wsp)\n", - "nom_loads = simulationResult.loads('OneWT')['LDEL'].values\n", - "max_loads = nom_loads * load_fact\n", - "s = nom_loads.shape[0]\n", - "load_signals = ['del_blade_flap', 'del_blade_edge', 'del_tower_bottom_fa',\n", - " 'del_tower_bottom_ss', 'del_tower_top_torsion']" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0v7KeHZvinpG" - }, - "source": [ - "## Configure the optimization\n", - " this includes e.g. selection of maximum number of iterations, convergence tolerance, optimizer algorithm and design variable boundaries" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": { - "executionInfo": { - "elapsed": 235, - "status": "ok", - "timestamp": 1623709951830, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "VXXj960rjJt4" - }, - "outputs": [], - "source": [ - "maxiter = 5\n", - "tol = 1e-8\n", - "driver = EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol)\n", - "ec = 1e-2\n", - "step = 1e-4\n", - "min_spacing = 260\n", - "xi, xa = x_init.min()-min_spacing, x_init.max()+min_spacing\n", - "yi, ya = y_init.min()-min_spacing, y_init.max()+min_spacing\n", - "boundary = np.asarray([[xi, ya], [xa, ya], [xa, yi], [xi, yi]])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mU8x9QQjjL-H" - }, - "source": [ - "## Setup cost function" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": { - "executionInfo": { - "elapsed": 2, - "status": "ok", - "timestamp": 1623709952518, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "XXOT6g3PjRlY" - }, - "outputs": [], - "source": [ - "def aep_load_func(x, y):\n", - " simres = wfm(x, y, wd=wdir, ws=wsp)\n", - " aep = simres.aep().sum()\n", - " loads = simres.loads('OneWT')['LDEL'].values\n", - " return aep, loads" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S3Eq4hVNjWai" - }, - "source": [ - "## Setup gradient function\n", - " In this example we will rely on the automatic finite difference, so no need to specify gradients" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TfbCb-z2j6nd" - }, - "source": [ - "## Wrap your pure python cost and gradient functions in a topfarm component" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": { - "executionInfo": { - "elapsed": 360, - "status": "ok", - "timestamp": 1623709954013, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "5nqGrkbukCfd" - }, - "outputs": [], - "source": [ - "cost_comp = AEPMaxLoadCostModelComponent(input_keys=[('x', x_init),('y', y_init)],\n", - " n_wt = n_wt,\n", - " aep_load_function = aep_load_func,\n", - " max_loads = max_loads, \n", - " objective=True,\n", - " step={'x': step, 'y': step},\n", - " output_keys=[('AEP', 0), ('loads', np.zeros((s, i)))]\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uw1IhQi1kDzb" - }, - "source": [ - "## Set up the TopFarm problem" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": { - "executionInfo": { - "elapsed": 240, - "status": "ok", - "timestamp": 1623709956100, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "N_3ydRZdkOFL" - }, - "outputs": [], - "source": [ - "problem = TopFarmProblem(design_vars={'x': x_init, 'y': y_init},\n", - " constraints=[XYBoundaryConstraint(boundary),\n", - " SpacingConstraint(min_spacing)],\n", - " cost_comp=cost_comp,\n", - " driver=driver,\n", - " plot_comp=NoPlot(),\n", - " expected_cost=ec)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Jt_GXqoHkV_W" - }, - "source": [ - "## Optimize" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "executionInfo": { - "elapsed": 398160, - "status": "ok", - "timestamp": 1623710355821, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "kOQhnRLUSGIz", - "outputId": "1ef8833f-41cb-48f9-c72c-a7c04c9a7376" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration limit exceeded (Exit mode 9)\n", - " Current function value: -36978.307022695444\n", - " Iterations: 6\n", - " Function evaluations: 6\n", - " Gradient evaluations: 6\n", - "Optimization FAILED.\n", - "Iteration limit exceeded\n", - "-----------------------------------\n" - ] - } - ], - "source": [ - "cost, state, recorder = problem.optimize()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vZecAwKRh0QK" - }, - "source": [ - "## Plot results\n", - " Try to run the commands below to watch the resulting wake map for different flow cases" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "executionInfo": { - "elapsed": 269, - "status": "ok", - "timestamp": 1623710386579, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "miJIu_aMtvwy", - "outputId": "60fd88b8-a1ca-4b83-d395-a72cd5a13bd8" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[<matplotlib.lines.Line2D at 0x7f330e4166d0>]" - ] - }, - "execution_count": 45, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "# import matplotlib.pyplot as plt\n", - "# plt.plot(recorder['AEP'])" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "executionInfo": { - "elapsed": 1248, - "status": "ok", - "timestamp": 1623710388991, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "ByIaS1WJ7C2T", - "outputId": "1e6f6299-af70-4b21-fa8a-98ce810373e1" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEICAYAAACzliQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAfo0lEQVR4nO3dfXQd9X3n8ffHkmzJTxK2ZGwsG/OcBD8IuAskaUIOhK5JQhLoZgtpktO01MluKJDtwgnZPduS0zbJYU9C95A+UEhKF2LyAITUCQnswUBxeJLxMybEgEEyD5YxEpawhSx9948ZiWshXV3Jkq+k+bzOuUf3zsxv5jsX85mZ38ydUURgZmbZMKXUBZiZ2ZHj0DczyxCHvplZhjj0zcwyxKFvZpYhDn0zswxx6FvRJP2LpL8uctqdkj46xDR/Jem2w5lHgbYPSrpsJG3z5vFBSb+T1C7p06Mxz7EkKSSdOMi4P5J035GuycYfh77Z4L4B3BgRMyPiZ2O1EEl/LOmRsZo/QETcHhG/PxbzltQgab2kt9K/DWOxHBsdDn2zwR0LbCt1EUORVF7CZU8F7gFuA44CbgXuSYfbOOTQt0FJOk3SU5L2SfoRUNlv/CckbZTUKuk3kpaPYDGVkn6ULuMpSSsGqeVMSY+my3pF0o35wSLpfEnPSGqTdCOgfu3/RNJ2SW9I+rWkY4dY9+eA44F/S7t3pvUbf4KkByS9LmmPpNsl1eSN3ynpWklPp8v8gaTKAZbzXuAfgfeny2lNhx/SldT/aCDtyvmKpN8Bv8ub5cckPZ/WdL2kKQXafzntvmqV9D1Jyhtf7Pf1EaAcuCEiOiPi/5B89+cW+n6tdBz6NqA0UH8G/F9gDvAT4A/yxp8GfB/4EjAX+Cfg5/3DsQifSuc9B/gh8DNJFQNM1w18FagF3g+cB/zXtJZa4C7gf6bjnwM+mFfrp4CvAxcDdcC/A6sLFRURJwAvARem3Tud/SYR8E3gGOC9wCLgr/pN80fAfwROAE5O6+u/nO3Al4FH0+XU9J+mgE8DZwHvyxt2EZADTif5bv+kQPtPAP8BWA7857TW4X5fpwKb49D7uWxOh9s45NC3wZwNVJDswXVFxE+BJ/PGrwL+KSIej4juiLgV6EzbDcf6iPhpRHQB3yE5mnjXPCJifUQ8FhEHI2InyUbmnHT0x4BtefO5AXg1r/mXgW9GxPaIOAj8LdAw1N5+IRGxIyLuT/duW9Laz+k32Y0R0RQRe4G/AS4d6fIG8c2I2BsR+/OGfTsd9hLJ91Bomd+KiNZ02rVAb1/8cL6vmUBbv2FtwKyRrJCNPYe+DeYYYFe/PbgX894fC/xF2jXQmnZLLErbDUdT75uI6AGaB5qHpJMlrZH0qqQ3SYKoNq/W/PlE/ue01r/Lq3MvyZ76wmHWml/P0ZLukLQrree2vHretW4k391wv5uhNA0xbKhl5m8Y3yIJcBje99UOzO43bDawr8ByrYQc+jaYV4CF+f28wOK8903A30RETd5rekQU7DYZwKLeN2n/cz3w8gDT/QPwDHBSRMwm6X7ore2VfvNR/ue01i/1q7UqIn4zzFrz/S0QwLK0ns/R7zxCvxoWD7JepPPprwOYnvd5fpHtil1mIcP5vrYBy/v9O1nOBDgBnlUOfRvMo8BB4ApJFZIuBs7MG//PwJclnaXEDEkflzTcw/ozJF2cXoFyFUkX0WMDTDcLeBNol/Qe4L/kjfsFcGrefK7g0JD8R+BaSacCSKqW9Jlh1jlQPe1Am6SFwNUDTPMVSfWS5gD/A/jRIPN6Dajvd8XLRuBiSdOVXHv/p0XWdbWkoyQtAq4ssMxChvN9PUhyvuUKSdMkXZ4Of2AEy7UjwKFvA4qIt0lO5P0xyeH9H5KcLO0d3wj8GXAj8AawI512uO5J5/0G8Hng4rRfvr//DnyWpNvgn8kLs4jYA3wG+BbwOnASsC5v/N3At4E70q6YrcAFI6g133UkJ0vbSDY6dw0wzQ+B+4DnSU4uD/bDtgdI9oxflbQnHfZd4G2SDcKtwO1F1nUPsJ5ko/EL4JYi2/UZzveV/jv5NPAFoJXkxPGn0+E2DskPUTEbfZJ2ApdFxP8rdS1m+bynb2aWIQ59G1OS7k1/dNT/9fVxUNuHBqmtvdS1mY0Vd++YmWWI9/TNzDKkZDdqKlZtbW0sWbKk1GWYmU0Y69ev3xMRdQONG/ehv2TJEhobG0tdhpnZhCHpxcHGuXvHzCxDHPpmZhni0DczyxCHvplZhjj0zcwyxKFvZpYhDn0zswwZ99fpj9i9X4NXt5S6CjOzkZm/DC741qjP1nv6ZmYZMnn39MdgC2lmNtENuacvqVLSE5I2Sdom6bp0+OWSdkgKSbV5018taWP62iqpO31cXO/4MkkbJK0Zm1UyM7PBFNO90wmcGxErgAZgpaSzSR5H91HgkHs8RMT1EdEQEQ3AtcBDEbE3b5Irge2jUr2ZmQ3LkKEfid6HSlSkr4iIDRGxc4jmlwKrez9Iqgc+Dtw8snLNzOxwFHUiN+2S2QjsBu6PiMeLaDMdWAncmTf4BuAaoGcEtZqZ2WEqKvQjojvtrqkHzpS0tIhmFwLrert2JH0C2B0R64dqKGmVpEZJjS0tLcWUaGZmRRjWJZsR0QqsJdmDH8ol5HXtAB8EPilpJ3AHcK6k2wZZzk0RkYuIXF3dgM8BMDOzESjm6p06STXp+yrgfOCZIdpUA+cA9/QOi4hrI6I+IpaQbBAeiIjPHUbtZmY2TMXs6S8A1kraDDxJ0qe/RtIVkppJunw2S8o/OXsRcF9EdIx+yWZmNlKKiFLXUFAulws/LtHMrHiS1kdEbqBxvg2DmVmGOPTNzDLEoW9mliEOfTOzDHHom5lliEPfzCxDHPpmZhni0DczyxCHvplZhjj0zcwyxKFvZpYhDn0zswxx6JuZZYhD38wsQxz6ZmYZ4tA3M8sQh76ZWYY49M3MMqSYB6NXSnpC0iZJ2yRdlw6/XNIOSSGpNm/6qyVtTF9bJXVLmjPYfMzM7MgpL2KaTuDciGiXVAE8IuleYB2wBngwf+KIuB64HkDShcBXI2KvJA00n4h4bBTXx8zMChgy9CN5cnp7+rEifUVEbABIsnxQlwKrC81nRFWbmdmIFNWnL6lM0kZgN3B/RDxeRJvpwErgzuHOR9IqSY2SGltaWoop0czMilBU6EdEd0Q0APXAmZKWFtHsQmBdROwd7nwi4qaIyEVErq6urpgSzcysCMO6eiciWoG1JHvwQ7mEtGvnMOdjZmajpJird+ok1aTvq4DzgWeGaFMNnAPcczjzMTOz0VXMnv4CYK2kzcCTJH3xayRdIamZpKtms6Sb89pcBNwXER1DzWd0VsPMzIqh5KKa8SuXy0VjY2OpyzAzmzAkrY+I3EDj/ItcM7MMceibmWWIQ9/MLEMc+mZmGeLQNzPLEIe+mVmGOPTNzDLEoW9mliEOfTOzDHHom5lliEPfzCxDHPpmZhni0DczyxCHvplZhjj0zcwyxKFvZpYhDn0zswwp5hm5lZKekLRJ0jZJ16XDL5e0Q1JIqs2b/mpJG9PXVkndkuZIWiRpraSn0/lcOZYrZmZm71ZexDSdwLkR0S6pAnhE0r3AOmAN8GD+xBFxPXA9gKQLga9GxF5J04C/iIinJM0C1ku6PyKeHsX1MTOzAoYM/UgeotuefqxIXxERGwAkFWp+KbA6nc8rwCvp+32StgMLAYe+mdkRUlSfvqQySRuB3cD9EfF4EW2mAyuBOwcYtwQ4DRhwPpJWSWqU1NjS0lJMiWZmVoSiQj8iuiOiAagHzpS0tIhmFwLrImJv/kBJM0k2BFdFxJuDLO+miMhFRK6urq6YEs3MrAjDunonIlqBtSR78EO5hLRrp1d6TuBO4PaIuGs4yzYzs8NXzNU7dZJq0vdVwPnAM0O0qQbOAe7JGybgFmB7RHzncIo2M7ORKWZPfwGwVtJm4EmSPv01kq6Q1EzS5bNZ0s15bS4C7ouIjrxhHwQ+D5ybd0nnx0ZpPczMrAhKLs4Zv3K5XDQ2Npa6DDOzCUPS+ojIDTTOv8g1M8sQh76ZWYY49M3MMsShb2aWIQ59M7MMceibmWWIQ9/MLEMc+mZmGeLQNzPLEIe+mVmGOPTNzDLEoW9mliEOfTOzDHHom5lliEPfzCxDHPpmZhni0Dczy5BinpFbKekJSZskbZN0XTr8ckk7JIWk2rzpr857HOJWSd2S5qTjvi9pt6StY7dKZmY2mGL29DuBcyNiBdAArJR0NrAO+CjwYv7EEXF9RDRERANwLfBQROxNR/8LsHK0ijczs+EpH2qCSB6i255+rEhfEREbACQVan4psDpvXg9LWjLCWs3M7DAV1acvqUzSRmA3cH9EPF5Em+kke/V3DrcoSaskNUpqbGlpGW5zMzMbRFGhHxHdaXdNPXCmpKVFNLsQWJfXtVO0iLgpInIRkaurqxtuczMzG8Swrt6JiFZgLcX1y19CXteOmZmVXjFX79RJqknfVwHnA88M0aYaOAe4ZzSKNDOz0VHMnv4CYK2kzcCTJH36ayRdIamZpMtns6Sb89pcBNwXER35M5K0GngUOEVSs6Q/HZ3VMDOzYii5OGf8yuVy0djYWOoyzMwmDEnrIyI30Dj/ItfMLEMc+mZmGeLQNzPLEIe+mVmGOPTNzDLEoW9mliEOfTOzDHHom5lliEPfzCxDHPpmZhni0DczyxCHvplZhjj0zcwyxKFvZpYhDn0zswxx6JuZZYhD38wsQ4p5Rm6lpCckbZK0TdJ16fDLJe2QFJJq86a/WtLG9LVVUrekOem4lZJ+m7b72titlpmZDaSYPf1O4NyIWAE0ACslnQ2sAz4KvJg/cURcHxENEdEAXAs8FBF7JZUB3wMuAN4HXCrpfaO4LmZmNoQhQz8S7enHivQVEbEhInYO0fxSYHX6/kxgR0Q8HxFvA3cAnxpZ2WZmNhJF9elLKpO0EdgN3B8RjxfRZjqwErgzHbQQaMqbpDkdNlDbVZIaJTW2tLQUU6KZmRWhqNCPiO60u6YeOFPS0iKaXQisi4i9wy0qIm6KiFxE5Orq6obb3MzMBjGsq3ciohVYS7IHP5RLeKdrB2AXsCjvc306zMzMjpBirt6pk1STvq8CzgeeGaJNNXAOcE/e4CeBkyQdJ2kqyUbh5yMt3MzMhq+YPf0FwFpJm0mC+/6IWCPpCknNJHvsmyXdnNfmIuC+iOjoHRARB4HLgV8D24EfR8S20VoRMzMbmiKi1DUUlMvlorGxsdRlmJlNGJLWR0RuoHH+Ra6ZWYY49M3MMsShb2aWIQ59M7MMceibmWWIQ9/MLEMc+mZmGeLQNzPLEIe+mVmGOPTNzDLEoW9mliEOfTOzDHHom5lliEPfzCxDHPpmZhni0DczyxCHvplZhhTzjNxKSU9I2iRpm6Tr0uGXS9ohKSTV9mvzEUkb0+kfyht+paSt6fCrRn91zMyskPIipukEzo2IdkkVwCOS7gXWAWuAB/MnTh+i/vfAyoh4SdK8dPhS4M+AM4G3gV9JWhMRO0ZtbczMrKAh9/Qj0Z5+rEhfEREbImLnAE0+C9wVES+l7Xenw98LPB4Rb6UPSX8IuPhwV8DMzIpXVJ++pDJJG4HdwP0R8XiByU8GjpL0oKT1kr6QDt8KfEjSXEnTgY8Biw6neDMzG55iuneIiG6gIe26uVvS0ojYWmCeZwDnAVXAo5Iei4jtkr4N3Ad0ABuB7oFmIGkVsApg8eLFw1kfMzMrYFhX70REK7AWWFlgsmbg1xHRERF7gIeBFWn7WyLijIj4MPAG8Owgy7kpInIRkaurqxtOiWZmVkAxV+/UpXv4SKoCzgeeKdDkHuD3JJWn3ThnAdvT9r0ndReT9Of/8PDKNzOz4Sime2cBcKukMpKNxI8jYo2kK4BrgPnAZkm/jIjL0m6cXwGbgR7g5ryuoDslzQW6gK+kRw5mZnaEKCJKXUNBuVwuGhsbS12GmdmEIWl9ROQGGudf5JqZZYhD38wsQxz6ZmYZ4tA3M8sQh76ZWYY49M3MMsShb2aWIQ59M7MMceibmWWIQ9/MLEMc+mZmGeLQNzPLEIe+mVmGOPTNzDLEoW9mliEOfTOzDHHom5lliEPfzCxDinkweqWkJyRtkrRN0nXp8Msl7ZAUkmr7tfmIpI3p9A/lDf9qOmyrpNWSKkd/lczMbDDF7Ol3AudGxAqgAVgp6WxgHfBR4MX8iSXVAH8PfDIiTgU+kw5fCFwB5CJiKVAGXDJaK2JmZkMrH2qCSJ6c3p5+rEhfEREbACT1b/JZ4K6IeCltv7vf8qokdQHTgZcPq3ozMxuWovr0JZVJ2gjsBu6PiMcLTH4ycJSkByWtl/QFgIjYBfxv4CXgFaAtIu4bZHmrJDVKamxpaRnO+tgY6eruYd+BLlr2ddL8xlt0HuwudUlmNgJD7ukDREQ30JB23dwtaWlEbC0wzzOA84Aq4FFJjwEtwKeA44BW4CeSPhcRtw2wvJuAmwByuVwMc50mvYigqzs4cLCbA13ddHb1sL8reX+gqyf9282Bgz3p+LzhB7vZ/3bPIW17hx/StquHznTY/q5uunsO/c9QUSZOmT+LZQurWbqwmmULqzll/iymlZeV6Fsxs2IUFfq9IqJV0lpgJTBY6DcDr0dEB9Ah6WFgRTruhYhoAZB0F/AB4F2hPxqu+7dtdHX3jMWsx0R3D0k454Xv/t7w7RfiB7q66RnhprB8iqisKKOyYgrTypO/yefkfU1VBZVTy6g8ZNyU9HPyvqJsCjtff4utu9r45ZZXWf1EE5BsCE4++p0NwfJ6bwjMxpshQ19SHdCVBn4VcD7w7QJN7gFulFQOTAXOAr4LzADOljQd2E9yJNB4mPUP6r5tr3Gga+J0QUh6V8jOnFbO3BmDh29lRRnTKsqoGmTcO8H+zrCKstG9SjciaNq7ny272tiyq42tu9q4d+ur3PHkwBuCZQurec8CbwjMSkXJedoCE0jLgVtJrraZAvw4Ir4h6QrgGmA+SV//LyPisrTN1cAXgR7g5oi4IR1+HfCHwEFgA3BZRHQWWn4ul4vGxjHbNtgYiAia3zh0Q7BlVxutb3UBydHGyUfPYnn9oV1DlRXeEJiNBknrIyI34LihQr/UHPqTQ7EbgmULq1lanx4ReENgNiIOfRuXejcEvRuA3o3BG3kbgpOOnsVybwjMhsWhbxNGRLCrdT9bmgtvCJYtnN13nuC9C2Z7Q2CWx6FvE1rvhuCdI4I32bqrjb0dbwNQNkWcNG8my9OjAW8ILOsc+jbpRAQvtx1gS3NyJLA5PSLovyFYll46ury+xlcNWWYUCv1hXadvNl5IYmFNFQtrqli5dD7w7g3Bll1tPPDMbn6yvhmAqWVTeO+CWSyvr2HFohpW1FdzfN1Myqa861YiZpOW9/RtUuvdEGxuamVjcyubm5KNQXvnQQBmTC1jWX01K9INwfL6ahbWVA10TymzCcN7+pZZ+UcEFyxbAEBPT/D8nnY2NbWxqbmVTc1t/GDdTt5Of8E9d8bUvg1AckRQw5wZU0u5GmajxqFvmTNlijhx3ixOnDeLPzijHoC3D/bwzKtvsqm5jU1NrWxubmXtb3fTeyBcf1RVX5fQ8voali2sZsY0/+9jE4+7d8wG0d55MDlJ3Nzad1TQ/MZ+AKYITpw3kxX1NSxfVENDfQ2nzJ/F1HI/jM5Kz907ZiMwc1o5Zx8/l7OPn9s37PX2TjY3p91CTa3vPlF8zGwa0qOBFYtqOL52BlN8otjGEe/pmx2G3l8V528Itu5qo+Pt5GZ/s6aVs3RhdV/X0IpFNSyorvSJYhtT3tM3GyOSWDRnOovmTOfjy5MTxd09wXMt7em5gWRjcMsjz9PVnexg1c6c1rcBWJ5eOXSUTxTbEeLQNxtlZenN404+ehafyS0CoPNgN9tf2XfI+YEH8k4UL54zvW8DcNLRMzm+dibH1FRSPsq3wjZz6JsdAdPKy2hYVEPDohp4fzJs34EutuxqS44GmlrZ8FIraza/0temoiw5ijhu7gyW1Cav49O/C2ZX+lyBjYhD36xEZlVW8IETavnACbV9w/a0d/J8Swc793Twwuvp3z0drHtuDwe63nkS3LTyKRw7dzpL5s7guNrktST9O2/WNJ8zsEE59M3GkdqZ06idOY0zj5tzyPCenuC1fQd4YU8HO/e8xc7XO3i+pYPn93Tw4G9b+n5YBjB9ahnHzp3BcbXTk43B3Hc2CnNnTPUGIeMc+mYTwJQpYkF1FQuqq/jACYeO6+4JXm7dz870yOD5Pcnf7a/s475tr3Ew74HKs6aV9x0RJH/fOVqome6TyVlQzDNyK4GHgWnp9D+NiL+UdDlwFXACUBcRe/LafAS4AagA9kTEOZJOAX6UN+vjgf/V+yhFMxuZsinvXEH0oZPqDhnX1d3Drjf280LaTbTz9eTvhqY3WLP5ZfK2B9RMr0i6ivLOISTvpzOrsuIIr5WNlWKekStgRkS0S6oAHgGuBDqBN4AHgVxv6EuqAX4DrIyIlyTNi4jd/eZZBuwCzoqIFwst39fpm42NzoPdNO19ixf2vHXIOYSdezp4ue3AIdPWzpzWd1TQd6SQHiFUTfXtqsebw7pOP5KtQnv6sSJ9RURsSGfev8lngbsi4qW0/e7+EwDnAc8NFfhmNnamlZf13YOov/1vd/Pi3t4Tye9sFB58toWW9BfI8M7lqcmVSclvD06aN8u3qx7HiurTT/fM1wMnAt+LiMcLTH4yUCHpQWAW8HcR8a/9prkEWF1geauAVQCLFy8upkQzG0VVU8t4z/zZvGf+7HeNa+88mBwRvN7Bb1/dx8amVn6x+WVWP/ESkJxIXrawuu8SVf8KeXwZ1m0Y0q6bu4E/j4it6bCdHNq9cyOQI9mbrwIeBT4eEc+m46cCLwOnRsRrQy3T3Ttm419E8MKejvRWFG1saGpl+8tv9l1VNG/WNFakG4GGRTUsq69mts8TjJlRuw1DRLRKWgusBLYOMlkz8HpEdAAdkh4GVgDPpuMvAJ4qJvDNbGKQxPF1Mzm+biYXnZbcrrr3V8ibmpJ7Em1sauX+p19Lp4cT6pK7lDYsqqZh0VG+S+kRUszVO3VAVxr4VcD5wLcLNLkHuFFSOTAVOAv4bt74SynQtWNmk8Mhv0JOtb3V1Xdjuk3NrTz07G7ufCq9S2n5FJYeM/uQI4LFc6a7W2iUFXP1znLgVqAMmAL8OCK+IekK4BpgPrAb+GVEXJa2uRr4ItAD3Nx7WaakGcBLwPER0VZMge7eMZu8IoJdrfvZ1NTGxqY32JQ+znJ/V3KX0prpFenRwDvnB/wUs6EV6t7xrZXNbFw52N3Ds6+1s6m5lY0vJUcEz762r+83BYvnTM87Gqjm1GOqqazwZaP5HPpmNqF1dB5ky662vnMDm5pa+35LUD5FvGfBrEOOCE6om5npG9I59M1s0tn95oFkA9B7u+qmVvZ1HgSSp571Pti+d0Nw9OzKEld85Dj0zWzS6+kJnt/T0XcksKm5le2vvNn38Jr5syu5ZuUpXHx6fYkrHXt+cpaZTXpTpogT583kxHkz+U9nJMF+oKubp195s69baN6s7OztD8ahb2aTVmVFGacvPorTFx9V6lLGDf8SwswsQxz6ZmYZ4tA3M8sQh76ZWYY49M3MMsShb2aWIQ59M7MMceibmWXIuL8Ng6QWYKTP0q0F9oxiOWNpItUKE6veiVQrTKx6J1KtMLHqPZxaj42IuoFGjPvQPxySGge7/8R4M5FqhYlV70SqFSZWvROpVphY9Y5Vre7eMTPLEIe+mVmGTPbQv6nUBQzDRKoVJla9E6lWmFj1TqRaYWLVOya1Tuo+fTMzO9Rk39M3M7M8Dn0zswyZlKEvaaWk30raIelrpa6nEEnfl7Rb0tZS1zIUSYskrZX0tKRtkq4sdU2FSKqU9ISkTWm915W6pqFIKpO0QdKaUtcyFEk7JW2RtFHSuH6mqaQaST+V9Iyk7ZLeX+qaBiPplPQ77X29KemqUZv/ZOvTl1QGPAucDzQDTwKXRsTTJS1sEJI+DLQD/xoRS0tdTyGSFgALIuIpSbOA9cCnx/F3K2BGRLRLqgAeAa6MiMdKXNqgJP03IAfMjohPlLqeQiTtBHIRMe5/7CTpVuDfI+JmSVOB6RHRWuq6hpLm2S7grIgY6Y9UDzEZ9/TPBHZExPMR8TZwB/CpEtc0qIh4GNhb6jqKERGvRMRT6ft9wHZgYWmrGlwk2tOPFelr3O7lSKoHPg7cXOpaJhNJ1cCHgVsAIuLtiRD4qfOA50Yr8GFyhv5CoCnvczPjOJgmKklLgNOAx0tbSWFpd8lGYDdwf0SM53pvAK4BekpdSJECuE/SekmrSl1MAccBLcAP0q6zmyXNKHVRRboEWD2aM5yMoW9jTNJM4E7gqoh4s9T1FBIR3RHRANQDZ0oal11okj4B7I6I9aWuZRh+LyJOBy4AvpJ2VY5H5cDpwD9ExGlABzCuz/UBpN1QnwR+MprznYyhvwtYlPe5Ph1moyDtG78TuD0i7ip1PcVKD+fXAitLXcsgPgh8Mu0nvwM4V9JtpS2psIjYlf7dDdxN0rU6HjUDzXlHeT8l2QiMdxcAT0XEa6M508kY+k8CJ0k6Lt1SXgL8vMQ1TQrpidFbgO0R8Z1S1zMUSXWSatL3VSQn958pbVUDi4hrI6I+IpaQ/Jt9ICI+V+KyBiVpRnoyn7Sr5PeBcXkFWkS8CjRJOiUddB4wLi8+6OdSRrlrB5LDnkklIg5Kuhz4NVAGfD8itpW4rEFJWg18BKiV1Az8ZUTcUtqqBvVB4PPAlrSfHODrEfHLEtZUyALg1vQKiCnAjyNi3F8KOUEcDdyd7AdQDvwwIn5V2pIK+nPg9nRH8HngiyWup6B0Q3o+8KVRn/dku2TTzMwGNxm7d8zMbBAOfTOzDHHom5lliEPfzCxDHPpmZhni0DczyxCHvplZhvx//QwjPmVSsOcAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "# n_i = recorder['counter'].size\n", - "# loads = recorder['loads'].reshape((n_i,s,n_wt))\n", - "# wt = 0\n", - "# for n, ls in enumerate(load_signals):\n", - "# plt.plot(loads[:,n,wt])\n", - "# plt.title(ls+f' turbine {wt}')\n", - "# plt.plot([0, n_i], [max_loads[n, wt], max_loads[n, wt]])\n", - "# plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ElK3XMkzrkxk" - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "colab": { - "name": "layout_and_loads.ipynb", - "provenance": [] - }, - "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.9.5" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/_notebooks/elements/loads.ipynb b/_notebooks/elements/loads.ipynb deleted file mode 100644 index 26332fe3..00000000 --- a/_notebooks/elements/loads.ipynb +++ /dev/null @@ -1,250 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Loads\n", - "Topfarm supports load constraints by evaluating a trained surrogate model at each iteration. There are currently two different high-level load workflows implemented, namely the Dynamic Wake Meandering (DWM) and the Frandsen approach.\n", - "### DWM\n", - "In DWM the loads are calculated for all turbines for all flowcases and for all turbine interactions. This means that for each turbine it will look at the wakes coming from all other turbines (individually). The results are subsequently reduced to only one load per turbine by applying a soft max. This is done to create a differentiable expression for the max load instead of just taking the max load, which would not work well in a gradient-based optimization.\n", - "### Frandsen\n", - "In the Frandsen implementation, the turbulence is aggregated from different sectors with the Wöhler exponent as described in the IEC. Loads are then calculated based on the effective turbulence. Alternatively, if one would like to improve the fidelity by trading off some memory consumption the loads could be calculated based on the all wind direction sectors and subsequently aggregated with the Wöhler exponent.\n", - "\n", - "## Load Surrogates\n", - "Topfarm can utilize surrogates trained with a range of different algorithms and softwares, namely scikit-learn, OpenTURNS, TensorFlow and the artificial neural networks code (wind2loads ANN) developed at DTU. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Install wind2loads\n", - "In this exercisw we will use the wind2loads artificial neural networks code to predict the turbine loads of the DTU 10MW reference turbine." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "try:\n", - " import w2l\n", - "except:\n", - " !pip install --upgrade git+https://gitlab.windenergy.dtu.dk/TOPFARM/wind2loads.git \n", - "try:\n", - " import workshop\n", - "except:\n", - " try:\n", - " !git clone https://gitlab.windenergy.dtu.dk/TOPFARM/workshop-december-2019.git\n", - " except:\n", - " pass\n", - " import sys\n", - " !pip install -e ./workshop-december-2019\n", - " sys.path.append('./workshop-december-2019')\n", - "try:\n", - " import topfarm\n", - "except:\n", - " !pip install topfarm" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Import dependencies" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import topfarm\n", - "from topfarm import TopFarmProblem\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", - "from topfarm.plotting import XYPlotComp" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "ename": "IndexError", - "evalue": "list index out of range", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-3-a907fd2189f9>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mworkshop\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mw2l_path\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'workshop-december-2019/workshop/wind2loads_ann'\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mworkshop\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mworkflow\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mwf\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32mc:\\mmpe\\programming\\python\\topfarm\\topfarm2\\docs\\notebooks\\workshop-december-2019\\workshop\\workflow.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 42\u001b[0m \u001b[1;31m# %% Load the surrogates made with wind2loads.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 43\u001b[0m \u001b[0mpath\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mworkshop\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mw2l_path\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 44\u001b[1;33m \u001b[0mfile_list\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwalk\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 45\u001b[0m \u001b[1;31m# file_list.pop(0)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 46\u001b[0m \u001b[1;31m#load_types = dict.fromkeys([os.path.basename(n) for n in file_list])\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mIndexError\u001b[0m: list index out of range" - ] - } - ], - "source": [ - "import workshop\n", - "import os\n", - "workshop.w2l_path = 'workshop-december-2019/workshop/wind2loads_ann'\n", - "import workshop.workflow as wf" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Set up the problem\n", - "In this example we will import most of the code for setting up the workflow." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_problem(maxiter=10, allowable_load=1.0, tol=1e-2):\n", - " problem = TopFarmProblem(\n", - " design_vars={topfarm.x_key: wf.site.initial_position[:, 0],\n", - " topfarm.y_key: wf.site.initial_position[:, 1]},\n", - " cost_comp=wf.get_load_cost_comp(),\n", - " driver=EasyScipyOptimizeDriver(maxiter=maxiter, tol=tol),\n", - " constraints=[SpacingConstraint(wf.min_spacing),\n", - " XYBoundaryConstraint(wf.boundary),],\n", - " post_constraints=[(ls, allowable_load) for ls in wf.load_signals],\n", - " plot_comp=XYPlotComp(),\n", - " approx_totals={'step':10},\n", - " expected_cost=1e-6,)\n", - " cost, state = problem.evaluate()\n", - " max_load = {ls: np.array([problem[ls+'_abs'].max()]) for ls in wf.load_signals}\n", - " problem.cost_comp.analytical_group.lifetime_comp.options['max_load'] = max_load\n", - " return problem" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Run the optimization\n", - "In this example there is the option to change the maximum number of iterations, the tolerance of the optimization as well as the maximum allowable load. The maximum allowable load is set as a percentage of the loads calculated for the initial layout, meaning e.g. that allowable_load=1.0 is 100% of the initial loads. We will optimize on AEP of the wind farm." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "problem = get_problem(5, 1.0)\n", - "cost, state, recorder = problem.optimize(disp=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Post Process\n", - "During the optimization all variable are recorded. After it is finished one can see all the recorded variables by typing `recorder.keys()` and plot them by writing `plt.plot([your variable],'.')`. We can use this procedure to examine how the load constraint has developed during the optimization:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First we show the relative loads meaning the ratio between the load at each iteration and the initial loads:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.figure()\n", - "for ls in wf.load_signals:\n", - " plt.plot(np.max(recorder[ls], axis=1),'.',label=ls)\n", - "plt.grid()\n", - "plt.title('Load constraints')\n", - "plt.legend()\n", - "plt.ylabel('Load / Initial Load')\n", - "plt.xlabel('iteration')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Secondly we can also plot the absolute magnitude of the loads as a function of the iterations:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.figure()\n", - "for ls in wf.load_signals:\n", - " ls += '_abs'\n", - " plt.plot(np.max(recorder[ls], axis=1),'.',label=ls)\n", - "plt.grid()\n", - "plt.title('Load constraints')\n", - "plt.legend()\n", - "plt.ylabel('Load [kNm]')\n", - "plt.xlabel('iteration')\n", - "plt.show()" - ] - }, - { - "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.6.7" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/_notebooks/elements/problems.ipynb b/_notebooks/elements/problems.ipynb deleted file mode 100644 index 9d1e19a8..00000000 --- a/_notebooks/elements/problems.ipynb +++ /dev/null @@ -1,269 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Problems\n", - "In Topfarm the problem is the collection/container of components and drivers. Optimizing a problem is executing a workflow - finding the best feasible solution under a series of constraints using a specific driver, and initial conditions. To the problem is also attached a plotting routine so one can follow the optimization path as well as a recorder so that intermediate variable values are accessible after the optimization is finished. The Topfarm Problem inherits its fundamental nature from the OpenMDAO problem, and is being adapted so it can connect the given workflow with the driver. For example if the user specifies a boundary constraint and this is not supported by the driver, the Problem is equipped with a penalty component that will deter the driver giving unfeasible solutions. Or if your workflow does not have gradients for all components and a gradient based driver is specified, finite differencing is applied to obtain the gradients. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Jump to example in this notebook**:\n", - "\n", - "* [Turbine location optimization](#Turbine-location-optimization)\n", - "\n", - "Make sure you first run the code below in order to set up and initialize needed variables." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**First we install topfarm and import supporting libraries in Python numpy and matplotlib**" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "try: # install Topfarm if needed\n", - " import topfarm\n", - "except ModuleNotFoundError:\n", - " !pip install topfarm\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# non-updating, inline plots\n", - "#%matplotlib inline\n", - "# ...or updating plots in new window\n", - "# %matplotlib qt" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we import and initialize several functions and classes from Topfarm to set up the problem including:**\n", - "* **TopFarmProblem - overall topfarm problem class to which the objectives, design variables, and constraints are added**\n", - "* **EasyScipyOptimizeDriver - a subclass of ScipyOptimizeDriver which is configured for the given workflow**\n", - "* **get_iea37_initial, get_iea37_constraints, get_iea37_cost - functions to get the initial layout, the constraints and the cost function for the IEA task 37 benchmark example**\n", - "* **NoPlot, XYPlotComp - plotting components to visualize the results**" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm import TopFarmProblem\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "from topfarm.examples.iea37 import get_iea37_initial, get_iea37_constraints, get_iea37_cost\n", - "from topfarm.plotting import NoPlot, XYPlotComp" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Turbine location optimization\n", - "\n", - "This example optimizes the locations of the 9-turbine benchmark wind farm from IEA Task 37 using the provided initial locations and the `EasyScipyOptimizeDriver`. Details on the benchmark can be found in the following reference: \n", - "\n", - "* Baker et al. (2019) \"Best Practices for Wake Model and Optimization Algorithm Selection in Wind Farm Layout Optimization\". AIAA 2019." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian\n", - "from py_wake.examples.data.iea37 import IEA37_WindTurbines, IEA37Site\n", - "from topfarm.cost_models.py_wake_wrapper import PyWakeAEPCostModelComponent\n", - "def get_iea37_cost(n_wt=9, n_wd=16):\n", - " \"\"\"Cost component that wraps the IEA 37 AEP calculator\"\"\"\n", - " wd = np.linspace(0., 360., n_wd, endpoint=False)\n", - " site = IEA37Site(n_wt)\n", - " wind_turbines = IEA37_WindTurbines()\n", - " wake_model = IEA37SimpleBastankhahGaussian(site, wind_turbines) \n", - " return PyWakeAEPCostModelComponent(wake_model, n_wt, wd=wd)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "def optimize_iea37_locs(n_wt, n_wd, driver, state=None):\n", - " \"\"\"\n", - " Parameters\n", - " ----------\n", - " - n_wt: int\n", - " Number of wind turbines\n", - "\n", - " - n_wd: int\n", - " Number of wind directions to consider for the AEP\n", - " \n", - " - driver: TopfarmDriver instance\n", - " The optimization algorithm to use\n", - " \n", - " - state: dict(x=[], y=[]) [default=None]\n", - " State to start from the optimization\n", - " \n", - " Returns\n", - " -------\n", - " - state: The state after the optimization\n", - "\n", - " \"\"\"\n", - " \n", - " initial = get_iea37_initial(n_wt)\n", - " design_vars = dict(zip('xy', (initial[:, :2]).T))\n", - " \n", - " tf = TopFarmProblem(\n", - " design_vars,\n", - " get_iea37_cost(n_wt, n_wd=n_wd),\n", - " constraints=get_iea37_constraints(n_wt),\n", - " driver=driver,\n", - " plot_comp=XYPlotComp())\n", - " \n", - " if not state:\n", - " _, state = tf.evaluate()\n", - " \n", - " _, state, _ = tf.optimize(state)\n", - " return state, " - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "state = optimize_iea37_locs(9, 16, EasyScipyOptimizeDriver(disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The final optimized output is much lower than the value reported in Baker et al. (2019), which is 257.790 GWh. Moreover, the layout does not match the figures given in Appendix A in the same reference. This is due to the fact that the SLSQP optimizer was attracted to a local minimum. To find the global optimum, more advanced optimization procedures should be used. This benchmark is discussed in more detail in the validation report linked in TOPFARM's documentation." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "({'x': array([-489.46501777, -624.2844273 , -743.31444811, 114.47180363,\n", - " 4.79839641, -104.62314952, 753.13964641, 634.76336704,\n", - " 499.54696312]),\n", - " 'y': array([-755.26418982, -150.13501614, 485.63206009, -633.34897407,\n", - " -5.11108932, 626.54927966, -492.72778799, 139.86686411,\n", - " 748.63397713])},)" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "state" - ] - }, - { - "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.6.7" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/_notebooks/elements/roads_and_cables.ipynb b/_notebooks/elements/roads_and_cables.ipynb deleted file mode 100644 index 25de7f9c..00000000 --- a/_notebooks/elements/roads_and_cables.ipynb +++ /dev/null @@ -1,478 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Roads and Cables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In colab, use the \"inline\" backend" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# non-updating, inline plots\n", - "%matplotlib inline\n", - "import warnings\n", - "warnings.filterwarnings('ignore')\n", - "# ...or updating plots in new window\n", - "#%matplotlib qt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's import a few classes" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from topfarm.cost_models.cost_model_wrappers import CostModelComponent\n", - "from topfarm import TopFarmGroup, TopFarmProblem\n", - "from topfarm.easy_drivers import EasyRandomSearchDriver, EasyScipyOptimizeDriver\n", - "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", - "from topfarm.cost_models.electrical.simple_msp import ElNetLength, ElNetCost, XYCablePlotComp\n", - "from topfarm.cost_models.utils.spanning_tree import mst\n", - "\n", - "from py_wake.site import UniformWeibullSite\n", - "from py_wake.site.shear import PowerShear\n", - "\n", - "import matplotlib.pylab as plt\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "def get_site():\n", - " f = [0.035972, 0.039487, 0.051674, 0.070002, 0.083645, 0.064348,\n", - " 0.086432, 0.117705, 0.151576, 0.147379, 0.10012, 0.05166]\n", - " A = [9.176929, 9.782334, 9.531809, 9.909545, 10.04269, 9.593921,\n", - " 9.584007, 10.51499, 11.39895, 11.68746, 11.63732, 10.08803]\n", - " k = [2.392578, 2.447266, 2.412109, 2.591797, 2.755859, 2.595703,\n", - " 2.583984, 2.548828, 2.470703, 2.607422, 2.626953, 2.326172]\n", - " ti = 0.001\n", - " h_ref = 100\n", - " alpha = .1\n", - " site = UniformWeibullSite(f, A, k, ti, shear=PowerShear(h_ref=h_ref, alpha=alpha))\n", - " spacing = 2000\n", - " N = 5\n", - " theta = 76 # deg\n", - " dx = np.tan(np.radians(theta))\n", - " x = np.array([np.linspace(0,(N-1)*spacing,N)+i*spacing/dx for i in range(N)])\n", - " y = np.array(np.array([N*[i*spacing] for i in range(N)]))\n", - " initial_positions = np.column_stack((x.ravel(),y.ravel()))\n", - " eps = 2000\n", - " delta = 5\n", - " site.boundary = np.array([(0-delta, 0-delta),\n", - " ((N-1)*spacing+eps, 0-delta),\n", - " ((N-1)*spacing*(1+1/dx)+eps*(1+np.cos(np.radians(theta))), (N-1)*spacing+eps*np.sin(np.radians(theta))-delta),\n", - " ((N-1)*spacing/dx+eps*np.cos(np.radians(theta)), (N-1)*spacing+eps*np.sin(np.radians(theta)))])\n", - " site.initial_position = initial_positions\n", - " return site" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the site to optimize\n", - "We will use the IEA-37 site, using the DTU 10MW reference turbine" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of turbines: 25\n" - ] - } - ], - "source": [ - "from py_wake.examples.data.dtu10mw import DTU10MW\n", - "\n", - "site = get_site()\n", - "n_wt = len(site.initial_position)\n", - "windTurbines = DTU10MW()\n", - "Drotor_vector = [windTurbines.diameter()] * n_wt \n", - "power_rated_vector = [float(windTurbines.power(20)/1000)] * n_wt \n", - "hub_height_vector = [windTurbines.hub_height()] * n_wt \n", - "rated_rpm_array = 12. * np.ones([n_wt])\n", - "\n", - "print('Number of turbines:', n_wt)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Quickly plotting the site boundary and initial position" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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xvz85z83brfbvPrqq2bnzp3me9/7Xoe3ew4fPty89dZbZvv27ebrX/96h7cyXnbZZaa4uNgUFxebcePGOe7W165ofdeVMerPli1bTHJysnn88cfNZ599Zl566SXTt29fs2rVKmtMPPfolltuMRdccIF1e/mrr75qhg4dah588EFrTDz1p6GhwezYscPs2LHDAGb58uVmx44d1h1DvdWL4K3T1113ndm+fbt56623zPDhwx1xe3m4HrW0tJh58+aZ4cOHm9LS0pD37aamJus5YrFHCjo94NlnnzUjR440qamp5sorr7RuuY4lQIcfv//9760xfr/fPPbYY8bj8RiXy2WuueYas3PnzpDnOXnypLnrrrvM4MGDTZ8+fcycOXNMRUVFyJgvv/zS3HzzzSY9Pd2kp6ebm2++2dTV1fXCq4ystkFH/TFm3bp1Ji8vz7hcLnPJJZeY559/PuTr8dyj+vp6c88995gRI0aYtLQ0M3r0aPPoo4+G/FGKp/688847Hb7n3HLLLcaY3u3FgQMHzI033mj69OljBg8ebO666y7T2NjYky+/S8L1qLy8/Kzv2++88471HLHYowRjjOm940ciIiIivUfX6IiIiEjMUtARERGRmKWgIyIiIjFLQUdERERiloKOiIiIxCwFHREREYlZCjoiIiISsxR0REREJGYp6IiIiEjMUtARERGRmKWgIyIiIjFLQUdERERi1v8PKebldwWk8fIAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(site.initial_position[:,0], site.initial_position[:,1], 'o')\n", - "ind = list(range(len(site.boundary))) + [0]\n", - "pt = plt.plot(site.boundary[ind,0], site.boundary[ind,1], '-')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the AEP calculator\n", - "- Using the Gaussian wake model from Bastankhah & Porté Agel\n", - "- Based on 16 wind direction to speed things up (not critical here because we will be using the RandomSearch algorithm)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian\n", - "from py_wake.aep_calculator import AEPCalculator\n", - "\n", - "## We use the Gaussian wake model\n", - "wake_model = IEA37SimpleBastankhahGaussian(site, windTurbines)\n", - "\n", - "## The AEP is calculated using n_wd wind directions\n", - "n_wd = 16\n", - "wind_directions = np.linspace(0., 360., n_wd, endpoint=False)\n", - "\n", - "def aep_func(x, y, **kwargs):\n", - " \"\"\"A simple function that takes as input the x,y position of the turbines and return the AEP per turbine\"\"\"\n", - " return wake_model(x=x, y=y, wd=wind_directions).aep().sum('wd').sum('ws').values*10**6" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([48951465.12270607, 48201050.47235204, 48074496.39187684,\n", - " 48091563.80680869, 48445617.28814225, 48836394.16658428,\n", - " 48071863.46810313, 47814362.6852063 , 47837628.23097131,\n", - " 48208400.31612337, 48842864.111101 , 48084779.74156096,\n", - " 47877873.48662869, 47893042.54928257, 48272147.94935018,\n", - " 48739999.86619873, 47999291.34685232, 47768651.4696867 ,\n", - " 47854282.08031107, 48249587.04727601, 48779201.65440664,\n", - " 48053197.5070104 , 47829089.74539277, 47887992.1373282 ,\n", - " 48326743.1406377 ])" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "aep_func(site.initial_position[:,0], site.initial_position[:,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the NREL IRR cost model\n", - "Based on the 2006 NREL report" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.cost_models.economic_models.turbine_cost import economic_evaluation as EE_NREL\n", - "\n", - "def irr_nrel(aep, electrical_connection_cost, **kwargs):\n", - " return EE_NREL(Drotor_vector, power_rated_vector, hub_height_vector, aep, electrical_connection_cost).calculate_irr()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the DTU IRR cost model\n", - "Based on Witold's recent work" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.cost_models.economic_models.dtu_wind_cm_main import economic_evaluation as EE_DTU\n", - "\n", - "distance_from_shore = 10.0 # [km]\n", - "energy_price = 0.2 / 7.4 # [DKK/kWh] / [DKK/EUR] -> [EUR/kWh]\n", - "project_duration = 20 # [years]\n", - "water_depth_array = 20 * np.ones([n_wt])\n", - "Power_rated_array = np.array(power_rated_vector)/1.0E3 # [MW]\n", - "\n", - "ee_dtu = EE_DTU(distance_from_shore, energy_price, project_duration)\n", - "\n", - "\n", - "def irr_dtu(aep, electrical_connection_cost, **kwargs):\n", - " ee_dtu.calculate_irr(\n", - " rated_rpm_array, \n", - " Drotor_vector, \n", - " Power_rated_array,\n", - " hub_height_vector, \n", - " water_depth_array, \n", - " aep, \n", - " electrical_connection_cost)\n", - " return ee_dtu.IRR" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the Topfarm problem" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "image/png": "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RGffvn0C5NrzdatbX0sRrQejT58+OXp+3n77bfH19ZXatWvf8VyFmeiEh4cLIG+99Vaej8n2888/i4eHh8TExEhUVJRUqFBB5s+fLykpKfLee+9JnTp17toDt3fvXgFk2bJltz0WGhoqBw8ezPEDyOTJk3Pcd+zYMfMxMTExYm9vn2sS7ufnJzVq1Mj3NYqIBAcHi7W1tbz22mvm+95++22xsbHJkfyIiGzbtk0AWbRo0R3PFxUVJZUqVTJf99ChQ6V3794SFxcnBw4cEEdHR9m2bVuOY9LT0wWQiRMn3tc1KGWPqtFRlFy0adMGo9HIpUuXADhx4gRGo5F27drh4uJi/gGYP38+Li4ut61PEhMTA2jFuPfjbuvd5HctnIIm1+uO8lJPcutrCeDu7s4///xDREQE//33H5GRkUydOpVz587RpUuXQos7L/JbIxMdHc3EiRP5+uuvcXFxwd/fH71ez0svvYS9vT1vvfUWFy5c4Ny5c3c8R/bfSPbfzM0qV65Mq1atcvyAtr7Rzfc1adLEfMzZs2dJTU2ldevWt52vVatWBAUFkZSUlK/rBKhatSqVK1fOcS1Hjx6lSpUqeHl55Wib/dx3q6WZOHEivr6+DB48GID169czZswYnJ2dad26NT179uSff/7JccyD/rtSyp7cp5UoShm3fft29Ho9tWrVAmDEiBG5LlTXrVs3HnvsMV5//XUaN26c47FLly6h1+vzPfumJPjll18AaNeu3T3b3vpa3szd3R13d3dAK7BOTk6+bQHGovLzzz8Debumm02YMIHWrVszaNAgQEsC09PTMRqNWFtbmxMKuUtRure3N/b29ly8ePE+o8+pcuXKgDbDbfjw4eb7RYR9+/bh4uKSY+ZYXl24cIGQkBAGDBiQ47m2bt1KaGgoVapUMd+fvehh1apVcz3X9u3bWblyZY5ESERITk42305KSrrtdctOmBs1apTv+JWySSU6Spk2atQoypcvT5s2bfDw8CAqKoqVK1fy66+/8uabb5qn09aoUYMaNWrkeo4qVarkmgTt27eP5s2bm3t+LOXy5cscPHgQwPxBumrVKuBGr0B2u9q1azN8+HB++uknAJYtW8bq1avp27cv3t7exMXFsXLlSlasWMGIESNo1qyZ+Xny+lqC1gsGULt2beLi4li/fj0//fQTM2fOpGXLljniP3TokHnq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\n", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAGxCAYAAABr1xxGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAACLHElEQVR4nOzdd1gUVxcH4N/S+9I7IipgQdRgw0KJPbZoEhNFFGOJRlGiSUyzRI2ma4oxsUSNLYmJms9YUREsWBFFwY6CSC9Lb7vn+wPYsDRFgYHd8z7PPsLM3eXsFWbP3HvmjoiICIwxxhhjSkhN6AAYY4wxxhoLJzqMMcYYU1qc6DDGGGNMaXGiwxhjjDGlxYkOY4wxxpQWJzqMMcYYU1qc6DDGGGNMaXGiwxhjjDGlxYkOY4wxxpQWJzqM1SA3NxdBQUGwtbWFjo4Ounbtit9//71aOy8vLwQFBT3164pEIixdurThAq3k0aNHCAoKgre3N4yNjSESibBly5Znfr2JEydCJBJhxIgRCtsTExPxySefwNPTE+bm5jAyMoKHhwfWr18PqVRa7XWeti8BICIiAgMHDoSBgQGMjY0xduxY3L9/v8a2Dx8+xJtvvglbW1toa2vDzs4OY8aMqdYuJCQEgwYNgqWlJQwMDODu7o7vv/++xlirCgsLQ7du3WBoaAgvLy9ER0dXazN79mx4e3ujvovMDxgwADNnzqzXc2pTnz6uSUpKCgICAmBubg49PT14enri+PHjNbY9duwYPD09oaenB3NzcwQEBCAlJUWhTWZmJsaPHw8TExO0adMG69evr/Y658+fh66uLmJiYqrtW7RoEV544QXIZLKnfg+M1YoYY9UMGjSIjI2N6eeff6YTJ07QtGnTCADt2LFDod3JkydJU1OTbt68+VSvGx4eTvHx8Y0RMoWEhJC5uTkNHDiQxo8fTwBo8+bNz/Ra//77L+nr65ORkRENHz5cYd/+/fvJwcGBPv74Yzpw4AAdPXqU3nnnHVJTU6MpU6ZUe62n7cuYmBgyNDSk/v3704EDB+jvv/+mTp06ka2tLaWkpCi0jYqKIjMzM+rRowft2LGDQkND6ffff6/284ODg0lNTY18fHxo3759FBwcTIGBgQSA5s6dW2cfZGZmkqmpKU2fPp2OHj1KI0aMIFdXVyotLZW3CQ8PJx0dHYqJiXmqfq2wb98+0tbWpkePHtXrebV52j6uSWFhIbm5uZG9vT1t376djh49SqNHjyYNDQ06efKkQtuTJ0+ShoYGjR49mo4ePUrbt28nOzs7cnNzo8LCQnm7KVOmkKurK/3777/07bffkpqaGoWFhcn3l5SUkLu7Oy1evLjGmLKyssjY2Jh+/fXXZ+wRxv7DiQ5jVRw4cIAA0M6dOxW2Dxo0iGxtbRU+6IiI3NzcaPr06Q328/Pz80kmk9W4Ly8vr9bnSaVS+dcXL1585kQnKyuL7Ozs6NtvvyVHR8dqiU5GRgYVFxdXe97s2bMJAMXFxcm31acvX3vtNTI3NyeJRCLf9uDBA9LU1KT3339fvk0mk1HXrl2pa9euCh+uNfHz8yNtbW3Kzc1V2D548GAyMjKq87kHDx4kfX19+XtNSEggAPKkpri4mDp37kxLliyp83Vq0rNnT3rjjTee2G7y5Mnk7e1dZ5v6/r5WtXbtWgJAZ8+elW8rKSmhjh07Us+ePRXa9ujRgzp27EglJSXybWfOnCEA9NNPP8m3WVpaKsQzaNAgWrhwofz7VatWkaura53/f3PmzCEXF5da/xYYe1o8dcVYFXv37oWBgQFee+01he1TpkzB48ePcf78eYXt/v7+2LlzJ3Jycp742lWnrrZs2QKRSISjR4/izTffhIWFBfT09FBUVAQfHx+4ubkhLCwMffr0gZ6eHt58881aX1tNrWH+nBcsWAAbGxvMnTu3xv0mJibQ1NSstr1nz54AyqbQKjxtX5aWluLff//FK6+8AiMjI3k7R0dH+Pr6Yu/evfJtYWFhiIyMRFBQELS1tet8L5qamtDS0oKurq7CdmNjY+jo6NT53MLCQmhra8vfq4GBgXw7AHz99dcoLi7Ghx9+WOfrVHXlyhVcuHAB/v7+9Xpeber7+1rT811dXeHp6SnfpqGhgYkTJ+LChQtISEgAACQkJODixYvw9/eHhoaGvG2fPn3g4uKi8H9UWFgIfX19+fcGBgbyfrt//z6WL1+OX375pc7/P39/f9y+fRshISFP0QuM1Y4THcaquH79Ojp06KBwMAcAd3d3+f7KfHx8kJeXh5MnTz7zz3zzzTehqamJbdu24a+//pJ/uCYmJmLixImYMGECDh48iLfffvuZf8bTOHbsGH777Tds3LgR6urq9XruiRMnoKGhARcXF/m2p+3Le/fuoaCgQL69atu7d+/KPyjDwsIAAIaGhnjppZego6MDAwMDjBgxAjdv3lR47syZM1FcXIy5c+fi8ePHyMrKwrZt27B37168//77db6f7t27IycnB+vWrUNWVhZWrlwJMzMzuLq64t69e1ixYgXWr1//xGSrqn///Rfq6urw8vKq1/NqU9/f15qeX1u/A8CNGzcUXqe2tpV/Tp8+ffDjjz8iJSUFZ86cwZEjR9CnTx8AwKxZs/DGG2/A29u7zrg8PDxgYGCAAwcO1NmOsSfReHITxlRLeno62rRpU227qampfH9l3bp1g0gkwpkzZzBy5Mhn+pkDBgzAL7/8Um17RkYGdu/ejRdffPGZXrc+cnNzMX36dLz77rvo0qVLvZ579OhRbNu2DfPmzYOZmZl8+9P2ZcW/FdurtiUiZGZmwsbGRj7CMGXKFLz22ms4cOCAvEC6f//+uHbtGmxsbAAAvXr1wokTJ/Daa69h7dq1AAB1dXWsWrUKCxYsqPM9OTg44LvvvkNQUBDefvttiMVi/Pbbb9DV1cXMmTMxfvz4Z0pWwsPD4ezsLB8hqqy0tFTheyorL6i2XV1dHSKRCED9f1+rSk9Pr7XfKz//Sf9HlX/OmjVrMHLkSFhZWQEoS+Rfe+01bN++HZGRkdi1a1edMVW8xy5duuDMmTNPbMtYXXhEh7EaVHyIPM0+TU1NGBsbyz+An8Urr7xS43YTE5MmSXIA4IMPPoCmpiYWL15cr+dFRERg3Lhx6N27N1atWlVtf3368mnaVlyJ4+npiY0bN2LAgAGYOHEi9u3bh7S0NHlCAwCXL1/GmDFj4OHhgf379+PEiRP48MMP8cknn2D58uVPfG+zZs1CRkYGYmJikJycjFGjRmHbtm24du0avvrqK2RkZMDPzw8WFhZo27Ytfv755ye+5uPHj2FpaVlt+4MHD6Cpqanw+O233xAWFlZte2hoaL37rS4N8X9Ueburqytu3ryJO3fuIDU1FZs2bUJmZibmz5+P1atXw9TUFD/99BPatm0Lc3Nz+Pn5ITMzs9prWlpaPtffFWMAj+gwVo2ZmVmNZ8EZGRkAaj6j1dHRQUFBwTP/zIoRiKfd3tAuXLiAn376CXv27EFhYaF8mkgmk6G0tBRZWVnQ1dWtNk1z5coVDBo0CM7Ozjh48GC1/U/blxWjQLW1FYlEMDY2Vmg7ZMgQhXZdu3aFjY0NIiIi5Ntmz54NKysr7N27Vz4V5+vrCzU1NSxduhR+fn41joZUpq+vj/bt28vjW7BgAb777juYmJjA398fGRkZuHv3Lm7fvg1fX1+4urrC19e31tcrKCiQj3RUZmtri4sXLyps+/TTT/H48eNqo32urq7yr5/l97Wyhvo/qvpz1NTU0K5dO/n37777Lrp164YJEybg+PHjWLhwIUJCQtCuXTuMGzcOQUFB2Lp1q8JrPO/fFWMAJzqMVdO5c2fs2rULpaWlCnUPUVFRAAA3N7dqz8nMzIS5ufkz/8ynOUtuTNHR0SCiGtehiY+Ph4mJCVavXq2wZtCVK1cwcOBAODo64ujRoxCLxdWe+7R92bZtW+jq6sq3VxYVFYV27drJi4drqhGpQEQKRdmRkZEYP358tXqjHj16QCaTISYm5omJTmULFiyAh4cHxo8fDwA4dOgQNm/eDLFYjB49emDw4ME4ePBgnYmOubm5PImoTEtLC927d1fYZmZmhpycnGrbK3uW39eqz6+t3ys/v+LfqKgovPTSS9Xa1vVzTp48iT/++EP+mocOHcLgwYPl72vOnDmYOnVqtedlZGQ8198VYwBPXTFWzZgxY5Cbm4u///5bYfvWrVtha2uLXr16KWx//PgxCgsL0bFjx6YMs0ENHToUISEh1R5WVlbo3bs3QkJC8Oqrr8rbR0ZGYuDAgbC3t0dwcDBMTExqfN2n7UsNDQ2MHDkSe/bsUbh6LS4uDiEhIRg7dqx827Bhw6Cnp4dDhw4pvGZERASSkpLQu3dv+TZbW1tcunSp2uKA4eHhAAB7e/un7qOQkBDs3r0bP/30k3wbESEvL0/+fW5u7hMXDmzfvn2tiyA+i/r+vtb0/Js3bypcnVVaWort27ejV69esLW1BQDY2dmhZ8+e2L59u0J/njt3Drdu3VL4P6qsqKgIb731FpYsWSJPKp+23+7fv9+i/65YMyHYhe2MNWODBg0iExMTWr9+PZ04cYKmT59OAGj79u3V2v79998EgK5du/bE1wWgsO7K5s2bCQBdvHixWltvb2/q1KlTveLevXs37d69m7744gsCQLNnz5Zvq+zFF18kdXX1J75eTevo3Lx5k8zMzMjU1JT2799P4eHhCo+qi/s9bV/GxMSQgYEBeXl50cGDB2nPnj3k5uZW44KBX3/9NQGgyZMn0+HDh2nLli3k4OBArVq1ovT0dHm777//ngDQsGHDaN++fXT06FFauHAhaWho0MCBA5+qT4nKFtVzdnamL7/8UmH7+PHjqUOHDnTgwAFas2YNqampUXBwcJ2v9dtvvxEAunXr1hN/7tOso0P09H385ptvkrq6Oj148EDhvXXq1IkcHBxox44dFBwcTGPGjKlxwcCQkBDS0NCgMWPGUHBwMO3YsYMcHByqLRhY2aJFi8jd3V1h7Z0jR46Quro6fffdd3TgwAFydXUlPz8/heelpaURAPr++++f+P4ZqwsnOozVICcnh+bOnUvW1takpaVF7u7utGvXrhrb+vv7U+fOnZ/qdRs70QFQ66Pqaz/NeU5NiU5FzLU9qi5SWJ++vHTpEg0YMID09PTIyMiIXn75Zbp7926NbTds2EBubm6kpaVFZmZm5OfnV+Oq03///Tf169ePzM3NSV9fnzp16kTLly+vtohgXT755BPq0qWLwoc1EVFKSgq9+uqrJBaLycHBgdasWfPE15JIJGRgYFAtaarJ0yY6T9vHkydPJgAUGxursD0pKYkmTZpEpqampKOjQ7179641YTt69Cj17t2bdHR0yNTUlCZNmkTJyck1to2OjiYdHR06d+5ctX3ffvsttWrVioyMjOjVV1+l1NRUhf2bNm0iTU1NSkpKeuL7Z6wuIqJ63qCFMSaXnZ0NW1tbrF69GtOnTxc6HNZCBAYG4vjx47hx40aT1WG1NP3790erVq2wY8cOoUNhLRzX6DD2HFavXo1WrVphypQpQofCWpBPPvkECQkJ1epqWJmwsDBcvHjxqZYAYOxJONFh7DkYGRlhy5Yt1ValZawuVlZW2LFjB186XYv09HT89ttv9boijrHa8NQVY4wxxpQWj+gwxhhjTGlxosMYY4wxpcWJDmOMMcaUlkpXUMpkMjx+/BiGhoZ8iSdjjDHWQhARcnJyYGtrq3Dbl5qodKLz+PFjODg4CB0GY4wxxp5BfHz8E2/lotKJjqGhIYCyjjIyMhI4GsYYY4w9jezsbDg4OMg/x+ui0olOxXSVkZERJzqMMcZYC/M0ZSdcjMwYY4wxpcWJDmOMMcaUFic6jDHGGFNaKl2jwxhjrG5SqRQlJSVCh8FUjLq6OjQ0NBpk6RdOdBhjjNUoNzcXjx49At8SkQlBT08PNjY20NLSeq7X4USHMcZYNVKpFI8ePYKenh4sLCx4UVXWZIgIxcXFSE1NRWxsLJydnZ+4KGBdONFhjDFWTUlJCYgIFhYW0NXVFTocpmJ0dXWhqamJhw8fori4GDo6Os/8WlyMzBhjrFY8ksOE8jyjOAqv0yCvwhhjjDHWDHGiwxhjjDGlxYkOY4wxxuQCAgLw8ssv19nm5MmTEIlEyMrKapKYnke9E52wsDCMHDkStra2EIlE2Ldvn8J+IsLSpUtha2sLXV1d+Pj44MaNGwptioqKEBgYCHNzc+jr62PUqFF49OiRQpvMzEz4+/tDLBZDLBbD39+/WofGxcVh5MiR0NfXh7m5OebOnYvi4uL6viXGGGMNbOnSpVi+fHmN+5YvX46lS5c22s9OSkpCYGAg2rRpA21tbTg4OGDkyJE4fvx4o/3MhlDTZ6oQvvvuO2zZskX+vY+PD4KCghTa9OnTB4mJiRCLxU0b3DOod6KTl5eHLl264Mcff6xx/5dffolvv/0WP/74Iy5evAhra2sMGjQIOTk58jZBQUHYu3cvfv/9d5w+fRq5ubkYMWIEpFKpvM2ECRMQGRmJw4cP4/Dhw4iMjIS/v798v1QqxfDhw5GXl4fTp0/j999/x99//40FCxbU9y0xxhhrYOrq6li8eHG1ZGf58uVYvHgx1NXVG+XnPnjwAB4eHjhx4gS+/PJLREVF4fDhw/D19cXs2bOf+XWJCKWlpdW2K+PJtVgshrGxcZ1ttLS0YG1t3TKK1ek5AKC9e/fKv5fJZGRtbU2ff/65fFthYSGJxWL6+eefiYgoKyuLNDU16ffff5e3SUhIIDU1NTp8+DAREUVHRxMAOnfunLxNeHg4AaCbN28SEdHBgwdJTU2NEhIS5G127dpF2traJJFInip+iURCAJ66PWOMqYqCggKKjo6mgoKCZ36NZcuWEQBatmxZjd83hmHDhpGdnR3l5uZW25eZmUlERLGxsQSArly5orAPAIWEhBARUUhICAGgw4cPk4eHB2lqatKJEyfI29ubZs+eTe+88w6ZmZmRl5cXERHduHGDhg0bRvr6+mRpaUkTJ06k1NRU+et7e3tTYGAgvffee2RiYkJWVla0ZMkS+X5HR0cCIH84OjrW+P4qYt+1axd5enqStrY2dezYUR53hZMnT1KPHj1IS0uLrK2taeHChVRSUiLfv3v3bnJzcyMdHR0yNTWlAQMGyPts8uTJNHr0aPnXleMCQLGxsfL+qehTIqK//vqLOnbsSFpaWuTo6Ehff/21QkyOjo702Wef0ZQpU8jAwIAcHBzol19+qfF9EtX9O1ifz+8GTXTu3btHACgiIkKh3ahRo2jSpElERHT8+HECQBkZGQpt3N3dafHixUREtGnTJhKLxdV+nlgspl9//ZWIiBYtWkTu7u4K+zMyMggAnThxosZ4CwsLSSKRyB/x8fGc6DDGWA0aItEh+i+50dLSavQkJz09nUQiEa1cubLOdvVJdNzd3eno0aN09+5dSktLI29vbzIwMKD33nuPbt68STExMfT48WMyNzenDz/8kGJiYigiIoIGDRpEvr6+8tf39vYmIyMjWrp0Kd2+fZu2bt1KIpGIjh49SkREKSkpBIA2b95MiYmJlJKSUmfs9vb29Ndff1F0dDRNmzaNDA0NKS0tjYiIHj16RHp6evT2229TTEwM7d27l8zNzeWJ1ePHj0lDQ4O+/fZbio2NpWvXrtHatWspJyeHiBQTnaysLPL09KTp06dTYmIiJSYmUmlpabVE59KlS6SmpkbLli2jW7du0ebNm0lXV5c2b94sj93R0ZFMTU1p7dq1dOfOHVq1ahWpqalRTExMje+1oRKdBl0wMCkpCQBgZWWlsN3KygoPHz6Ut9HS0oKJiUm1NhXPT0pKgqWlZbXXt7S0VGhT9eeYmJhAS0tL3qaqVatW4dNPP32Gd8Zautu3b2Pnzp3o27cvjIyMamzzpCHYuvY/z3OFfG1V/dnK+r4a8meXlpaitLQUxcXFz7WeycKFC7FixQoUFxdDS0sLCxcufKbpnqeZIrl58yaICO3atavz/lwV+0pKShS+Bsred0lJiXyaavHixfDx8ZE/l4jQtm1bfPbZZ/K4li5dim7dumHZsmXyduvXr4eTkxOio6Ph4uICIkLnzp3x8ccfAwCcnJzwww8/IDg4GL6+vvLPRENDQ5ibm8tjqapi29tvv43Ro0cDAH744QccPnwYGzZswLvvvosff/wRDg4O+O677yASieDs7IwlS5bgww8/xMcff4xHjx6htLQUo0ePhoODAwCgY8eOAMrKQqjSLT/EYjG0tLSgp6cHa2vrWvv022+/xYABA7Bo0SIAgIuLC6Kjo/HVV18hICBA3u6ll17C22+/DaDsd2P16tU4efIk2rdvX+trP69GWRm56i8kET3xl7Rqm5raP0ubyj788EPMnz9f/n12drb8P5kpt3nz5uHw4cNCh8FYi+Ho6Iiff/4ZRUVFz/U6GzduRHFxMTQ1NVFcXIy5c+di2rRpDRSlotu3bwMAHj58iKtXr9ba7vHjx/L2FZ8XFXWk9+7dg7GxMe7duwegbIXeyq+Vm5uL1q1bK2w7efIkzp8/X+NJVHBwMPLz85Gbm4s2bdogMjJSvk9PTw83b95U2BYbG6vwfW2xm5mZKbRr164dzpw5g4EDB+LcuXNwdnZW2G9qaorc3FwcOXIEFhYW6NGjB9zd3dG7d2/06tULAwYMkMefnp5eY5JVl5iYGHniVaFv375Ys2YNpFKpvCbL3d1dvl8kEsHa2hopKSn1+ln11aCJTkW2l5SUBBsbG/n2lJQU+eiLtbU1iouLkZmZqTCqk5KSgj59+sjbJCcnV3v91NRUhdc5f/68wv7MzEyUlJRUG+mpoK2tDW1t7ed4h6ylunTpkvzr1q1bV9tPT7hpYWPuF/JnN/f9zTm2xt4vdGwVN1J8nmLTjRs34pdffsHMmTMxbdo0bNy4ET///DNEIhGmTp36zK9bGwcHB4hEIsTGxiqMwlRV0whVbR/sNd3+ouo2mUyG/v37IzAwsFrbitEZANDQUPzIFYlEkMlktcZZX3UNBFT+/1ZXV8fatWtx7do1nDt3Dn/++SfWrVuHzZs3w87ODkDt/VGbmgYZavod09TUrBZzQ/ZBTRo00XFycoK1tTWCg4PRrVs3AGUV6aGhofjiiy8AAB4eHtDU1ERwcDDGjRsHAEhMTMT169fx5ZdfAgA8PT0hkUhw4cIF9OzZEwBw/vx5SCQSeTLk6emJzz77DImJifKk6ujRo9DW1oaHh0dDvi2mBCwtLZGWloY9e/ZgzJgxQofDWLNXWFiI2NhYODk5PdN9hpYvX46ff/4Zy5Ytk09neHh4wNbWFosXL4atra18e0MaMmQI/vnnH3z55ZfQ19dX2JeVlQVjY2MUFBQAKCt36N69O4CykRcAcHV1hYeHh3yEp2vXrgpXIBkaGsLS0lLhc8bHxwd79uzBiBEjqiUzdT3P2NgYxsbG8m2amppwdHTECy+8UOv7MzU1BVB2Yl/RrrS0FPfu3cPs2bPxwgsvwNPTE3v27EG3bt3kycf58+dhaGiIoUOHyhM9Dw8PTJkyBVKpFE5OTrh79658Cqvy+9DS0lK4KromHTt2xOnTpxW2nT17Fi4uLo12hd3TqvfEa25uLiIjI+VDYhXDbHFxcRCJRAgKCsLKlSuxd+9eXL9+HQEBAdDT08OECRMAlM33TZ06FQsWLMDx48dx5coVTJw4EZ07d8bAgQMBAB06dMDQoUMxffp0nDt3DufOncP06dMxYsQIuLq6AgAGDx6Mjh07wt/fH1euXMHx48fx7rvvYvr06bXWYDDVlJKSgujoaACAl5eXwNEwphqkUqlCklNh0aJFWLZs2RM/OJ/VTz/9BKlUip49e+Lvv//GnTt3EBMTg++//x6enp4AykZkevfujc8//xzR0dEICwvDJ598In8NkUgkTxAqvq5r25w5c5CRkYEJEybg4sWLiI2NRXBwMKZOnQqZTFbna1Xe3rp1a4SEhCAlJQUSiQRqamo1Pire5z///IPbt28jMDAQmZmZmDp1KtTU1DB79mzEx8dj3rx5uH37Nvbv34+lS5di/vz50NDQwMWLF/H5558jIiICjx49wr59+5CamooOHTogNzcXgOLIS+vWrXH+/Hk8ePAAaWlpNY7AVHymL1++HLdv38bWrVvx448/4t13323I/95n88Ry5SoqKq2rPiZPnkxEZZeYL1myhKytrUlbW5u8vLwoKipK4TUKCgpozpw5ZGpqSrq6ujRixAiKi4tTaJOenk5+fn5kaGhIhoaG5Ofnp3AZGxHRw4cPafjw4aSrq0umpqY0Z84cKiwsfOr3wpeXq4Y///xTfvUEY+zpNNRVV0J4/PgxzZ49mxwdHUlLS4vs7Oxo1KhRCpdgR0dHU+/evUlXV5e6du1KR48erfGqq6qfO97e3jRv3rxqP/P27ds0ZswYMjY2Jl1dXWrfvj0FBQWRTCar9XmjR4+Wf3YSEf3vf/+jdu3akYaGxhMvL9+5cyf16tWLtLS0qEOHDnT8+HGFdnVdXh4dHU1DhgwhCwsL0tbWJhcXF/rhhx8oLy+PLl68SCNGjJBfdUVEdOvWLXlf4SkuL9fU1KRWrVrRV199pRCTo6MjrV69WmFbly5dFC6zr6yhrroSET1holaJZWdnQywWQyKR8CiQEps9ezZ++uknzJ07F999953Q4TDWIjzv1BVrHA8ePICTkxOuXLmCrl27NuhrJycnIz4+HmKxGM7Ozg362s+irt/B+nx+872umNI7efIkAMDb21vYQBhjrBmrqEsyNDQUOJKGxYkOU2pcn8MYY09GREqb6DTKOjqMNRehoaEAgM6dOytc5skYYy1R69atn7g0wLMoKCiAVCqFmpoa9PT0Gvz1hcQjOkypVUxb1bWmBmOMqbqK0RwDA4OWcaPOeuBEhym1ihEdTnQYezYqfL2KSmmO01YN9bvHiQ5TWikpKbhx4wYArs9hrL4qFnl7lvtSsZaludbn5OfnA6i+mnJ9cY0OU1phYWEAuD6HsWehoaEBPT09pKamQlNT87lu7Mmat4r6HJFIBDU1NRQWFgoaDxEhPz8fKSkpMDY2fu6VlTnRYUqL63MYe3YikQg2NjaIjY3Fw4cPhQ6HNaLs7GxkZmZCV1e3Wf1fGxsb13nH9KfFiQ5TWpzoMPZ8tLS04OzszNNXSi4wMBDBwcGYP38+ZsyYIXQ4AMqmqxrqHlmc6DClxPU5jDUMNTU1XhlZiclkMuzZswcZGRno2bOnUv5f86QrU0pcn8MYY092/fp1ZGRkQF9fX+HO6sqEEx2mlHjaijHGnqziWNmvX7/nvrqpueJEhyklTnQYY+zJVOFYyYkOUzpcn8MYY08mk8nk0/yc6DDWglT84bq5uXF9DmOM1eLGjRtIT09X6vocgBMdpoRUYSiWMcaeV8Wxsm/fvkpbnwNwosOUECc6jDH2ZKpyrOREhymV1NRUrs9hjLEnkMlkKnPTY050mFKpXJ9jYWEhcDSMMdY8RUdHIz09HXp6eujevbvQ4TQqTnSYUlGVoVjGGHseqrB+TgVOdJhS4USHMcaerOJY6e3tLWwgTYATHaY0UlNTcf36dQBcn8MYY7VRpfocgBMdpkS4Pocxxp4sOjoaaWlpKlGfA3Ciw5QIT1sxxtiTVV4/R0tLS9hgmgAnOkxpcKLDGGNPpkrTVgAnOkxJcH0OY4w9GRGpVCEywIkOUxJcn8MYY09WUZ+jq6uLHj16CB1Ok+BEhykFnrZijLEnU7X6HIATHaYkVG0oljHGnoUqnhRyosNaPK7PYYyxJyMilStEBjjRYUqgoj6nU6dOsLS0FDgaxhhrnmJiYpCamqpS9TkAJzpMCajiGQpjjNVXxbRVnz59VKY+B+BEhykBVZxzZoyx+lLVYyUnOqxFS0tLQ1RUFACuz2GMsdpUXj+HEx3GWhCuz2GMsSdT1focgBMd1sKp6hkKY4zVR+X6HG1tbWGDaWKc6LAWjRMdxhh7MlW+aIMTHdZicX0OY4w9mSre36oyTnRYi8X1OYwx9mQ3b95ESkoKdHR00LNnT6HDaXKc6LAWi6etGGPsyVS5PgfgRIe1YJzoMMbYk6n6sZITHdYicX0OY4w9mSqvn1OBEx3WIlXU53Ts2JHrcxhjrBa3bt1S6focgBMd1kKp+hkKY4w9jYpjpaenp0rW5wCc6LAWSpXXhGCMsafFJ4Wc6LAWKD09HdeuXQOgmmtCMMbY0+D6nDKc6LAWh+tzGGPsyW7duoXk5GSVrs8BONFhLRCfoTDG2JNVTPF7enpCR0dH4GiEw4kOa3E40WGMsSfjY2UZTnRYi8L1OYwx9mSqfn+ryjjRYS0K1+cwxtiT3b59G0lJSdDW1kavXr2EDkdQnOiwFoWHYhlj7Mkqr5+jyvU5AKAhdACMPY0tW7YgNjYWf/75JwDVHYo9evQowsPDoaGhgS5dumDYsGFQV1cXOqwmd/36dezbtw9SqRRt2rTB2LFjoa+vL3RYTS49PR0bNmxAQUEBLC0t8corr8Da2lrosJocEeGHH35Aeno6DA0N8dJLL6Fjx45ChyUoPimshFSYRCIhACSRSIQOhdUgLi6OiouLiYjovffeI2trawJAAMjd3Z2Cg4MFjrBpZGdnU0pKChER/fHHH2RtbU1mZmYEgFq1akU///yzwBE2DalUSrGxsUREdO/ePbK0tCRra2sSiUQkFotp/vz5VFJSImyQTeT+/ftERFRSUkIdO3YkW1tb0tTUJA0NDXr99dcpKSlJ4Aibxv3790kmkxER0fjx48nOzo709PQIAPn4+NDly5cFjlAYMpmMbGxsCACdPHlS6HAaRX0+v3nqijVLN27cgIeHB5YvXw4A+PLLL/HTTz8BAFq1agVHR0eVOHPNysqCj48P/Pz8AADjxo1DYmIi0tLScPHiRfj4+MDY2FjYIJuATCbD5MmT4enpidzcXLRp0wbJyclITEzE/fv3MWvWLGhra0NDQ/kHqX/44Qe4uLjg6tWr0NDQwI0bN5CQkICUlBR8/fXXUFNTU4nfidDQULi5ueHXX38FAOzcuROPHj1CZmYmdu3aBQMDA1hZWQkcpTDu3LmDxMRErs+p0NBZVklJCX388cfUunVr0tHRIScnJ/r0009JKpXK28hkMlqyZAnZ2NiQjo4OeXt70/Xr1xVep7CwkObMmUNmZmakp6dHI0eOpPj4eIU2GRkZNHHiRDIyMiIjIyOaOHEiZWZmPnWsPKLTPBUWFpKjoyO5u7tTWloaERHdT82lgfO/J/OR75Fv0Bq6n5pLRGW/b+np6UKG26jGjBlDxsbGFBkZWbYh7S5R8BKi3VPK/k27S0Rlf1PJycmCxdnYvvjiCxKJRPT7778TEdEDyQNafWk1vXfyPVp9aTU9kDyQt1XmfggJCSEAtGDBApLJZFQUG0vJX39Dj96ZT8lff0NF5SNeRESpqalUWloqXLCNKDk5mcRiMQ0YMIDy8vKIiCgzKY/O7rlLRzZE0dk9dykzqWx7QUGByh3jf/nlFwJA3t7eQofSaOrz+d3gic6KFSvIzMyM/v33X4qNjaXdu3eTgYEBrVmzRt7m888/J0NDQ/r7778pKiqKXn/9dbKxsaHs7Gx5m5kzZ5KdnR0FBwdTREQE+fr6UpcuXRT+cIcOHUpubm509uxZOnv2LLm5udGIESOeOlZOdJqn7du3EwCKjo4mIqJXpweRcX8/cnzvH2r13j/ktHA/Gff3o1enB5GXlxdNmjRJ4Igbx507dwgA/frrr0REtGTGGFrmq0O01IRoqTHRUhNa5qtDS2aMoffff59cXFzkw/jKpLi4mGxsbGjGjBlERDRuzjiyGmtFXbZ2Ifet7tRlaxeyGmtFrwe+Tn/99RdpaWlRYmKiwFE3jpEjR1KXLl1IKpXSwtfGUaC5BUV37ETRHTpSdMdOFGhuQQvHjaP79++TtrY2HThwQOiQG8XKlStJR0eHUlNTiYjo7Tfn04geAbR21nFaO/M4rZ11nEb0CKBZU94hJycnWrRokcARN63x48cTAFqyZInQoTQaQROd4cOH05tvvqmwbezYsTRx4kQiKjvztLa2ps8//1y+v7CwkMRisbzWICsrizQ1NeVnb0RECQkJpKamRocPHyYioujoaAJA586dk7cJDw8nAHTz5s2nipUTneapf//+9OKLLxJR2UiOcX8/AkDifn7kuPBfEvcr+964vx8tWfYlmWhpUXpcHFFurlI9Pg4KInsTE8pPTSWKv0bLfHUIAC3z0SZaYkTLfLTLvvfVoUv7tpAeQCcPHBA87oZ+/LNzJ+kBdC08nB4kRpPVGCsCQJZjLMltixtZjrEkAGQ1xoqibl8gc11d+nLJEsHjbujHo1u3SB+gTd9/T0XR0RRobkEAKNDMnKJd21OgmXnZ9+YWVBgdTX27dqVXhw0TPO6Gfshycqi9gwPN8PMjys2lzNg0GtEjgADQ8O4B9ONbx2l497LvR/QIoKC33ycrKyulHd2qqnJ9TkhIiNDhNBpBE51Vq1aRo6Mj3bp1i4iIIiMjydLSknbu3ElEZUWEACgiIkLheaNGjZKfmR8/fpwAUEZGhkIbd3d3Wrx4MRERbdq0icRicbWfLxaL5WfAVRUWFpJEIpE/4uPjOdFphn755RcKDQ0lIqLPD8VQmw8PyJMbqGvIk5427/1Dn3tNJgKU/zFAm2iRoTy50VLHf0nPIsOy/ULH2ASP1a9aUZdNneTJjUhDRBVJT5dNnWj1q1aCx9gUj2RzC4p2cZUnN5qisn4INDOnaBdXSja3EDzGpnqc7TmV1k4/Kk9uNNQ0qSLpWTvrOG35/CABkBf0K7tbt24RANLW1qaCggKhw2k0ghYjL1y4EOPHj0f79u2hqamJbt26ISgoCOPHjwcAJCUlAUC1IjErKyv5vqSkJGhpacHExKTONjUtGGdpaSlvU9WqVasgFovlDwcHh+d7s6xRzJgxA15eXgCAR5kFICIY9x0PqGsA0lJAXQPGfceDADwSq8iigeKyP9VF3trQUgeKpYCWetn3lfcru8fmmiARYDnaEiINEaiUINIQwXK0Jah8vyoo0Sx7n7PMzaEpEqGECJoiEWaZmyvsVwU5hmUXJQzz8IeGmiZKZSXQUNPEMA9/gABZUdnyC1KpVMgwm0zF/a169+6t8uvnVGjwSxT++OMPbN++HTt37kSnTp0QGRmJoKAg2NraYvLkyfJ2IpFI4XlEVG1bVVXb1NS+rtf58MMPMX/+fPn32dnZnOw0Qzdv3sTp06cxbdo02JvoQiQSIev0TnmSA2kpss7sglm/8ZAO6g+Tw2sQExOjdFdhpaamYufOnZgzZw7Uz3wBXFiH5Sfz5UlOsRRYHlqERT56yBs/Fe2CN2Hjxo0YPny40KE3qMLCQuzatQsDBw6EbdZ+iG7vQMq+RHmSQ6WElH9SYPOyNWwnB6LP2R0YOHAgli1bJnToDYqIcPDgQYjFYrhciQS2bcO65GR5klNChHVpaZhlZQXNuXMx7+4d3L59G4cOHRI69AYXERGBe/fu4bXXXoPhgTjgZCIOXdwmT3JKZSU4dHkbXurhjxLkQSwWw8zMTOiwmwTf9qEGDT2cZG9vTz/++KPCtuXLl5OrqysRCTt1VRXX6DRPP/zwA6mrq1NCQsITa3RiU3Or/Z4oi0uXLhEA+ueff4jS7tZZo0NpdyknJ0e+7pAyyc3NJSMjI/rwww/pgeQBWY2tpUZnrBU9lDykkpIShQsblEm/fv3I19eXimJj66zRKXrwgGQymdL+bbz77rtkYmJCeXl5lJmUV2eNTmZyntL2Q1UymYxsbW0JAJ04cULocBqVoFNX+fn5UFNTfFl1dXXIZDIAgJOTE6ytrREcHCzfX1xcjNDQUPTp0wcA4OHhAU1NTYU2iYmJuH79uryNp6cnJBIJLly4IG9z/vx5SCQSeRvWMvn7+8PAwADTpk2DnZEmOolLIe47Acae46AmAsz6T4Bxfz+4iaWw0lerNsWpLDw8PNCnTx8EBQUhqUQf0tYDsMxbC4v6aQEiNSzy0cMyXx2kmPXEowJtGBgYQFMJpyz09fUxbdo0rFmzBonRifCx84HVWCvYvGwDNZEabF62gdVYK/Q06YmEGwnQ0NCAoaGh0GE3irlz5yIkJARbjh6F3ou+CDS3wCwrK0BNDbOsrBBobgFtby8cvnoVIpFIaf82Zs2ahZycHAQGBsLIQgetOptiRI8AvNRjEkQi4KUe/hjRIwAaZoUwNNNW2n6o6u7du3j8+DG0tLTQu3dvocNpPho6y5o8eTLZ2dnJLy/fs2cPmZub0/vvvy9v8/nnn5NYLKY9e/ZQVFQUjR8/vsbLy+3t7enYsWMUERFBL774Yo2Xl7u7u1N4eDiFh4dT586d+fJyJREcHExaWlrUr18/8vf3Jw1jG/INWkNzdkbQwh1naOKsdwiA0q8K/ODBA7K1taXWrVtT5JIlRCYionF2RLunUN4/79O6z94jbW1tCggIEDrURpWfn0/9+vUjfX19+vnnn+mh5KF8HZ2vzn9Fa7asIVtbW+rUqZNSX10jk8lozpw5BICCgoIo984d+To6SV99Tce2baPu3buTvr5+tXXHlM1vv/1GIpGIRo0aRQkJCZSZ/N86Ovt+PkP+494kAHTw4EGhQ20y69evJwDk5eUldCiNTtCrrrKzs2nevHnUqlUr0tHRoTZt2tDHH39MRUVF8jYVCwZaW1uTtrY2eXl5UVRUlMLrFBQU0Jw5c8jU1JR0dXVpxIgRFBcXp9AmPT2d/Pz8yNDQkAwNDcnPz48XDFQiYWFh1KFDB2rfvj0BoDFjxlD37t0JAJmamtLq1auVct2Yqh48eEC+vr4UPWgQEUC3Bg6k/v37k7a2NmlpadGsWbOosLBQ6DAbXW5uLgUEBFBgYCAREd24cYM8PT3lt8MYOnSo0q6fU5lMJqPPPvuMvL29SSaTkVQqpX79+lHr1q0JAHXu3JkuXrwodJhN4u+//yZXV1f51NT06dPJ3d2dAJCtra38al9VMWHCBAIgL/FQZvX5/BYREQkxktQcZGdnQywWQyKRwMjISOhwWA3S09NhYWEBIsLSpUsRGxsLX19fjBs3Drq6ukKH16SoSxeIrl3Dpfffx5qEBHTp0gUBAQGwsLAQOrQmReUXHFy9ehVr1qyBtbU1pkyZAhcXF6FDa1IV/VBQUICZM2fC0NAQ48ePR58+fZ54YYcyoUoXoHz44YdISUnB8OHDMXLkSKWcyq0NEcHBwQEJCQk4ceIEfH19hQ6pUdXn85sTHU50mrV9+/ZhzJgx6NChA6Kjo4UORzjp6UD5pcNISgJU9B4+jLGa3b17F87OztDS0kJWVpbSnwjW5/NbNRbfYC1WxaWSPj4+gsYhuFOnyv7t0IGTHMZYNRXHyl69eil9klNfnOiwZo0TnXLl/QBV7wfGWI34WFk7TnRYs5WRkYFr164BgHylZJXFiQ5jrBZExIlOHTjRYc1WWFgYiAjt27dXulWP6yUjAyhP+MCrnTLGqrh37x4SEhJ4/ZxacKLDmq2Ke7ao/BlKWFjZ7Qvbt+f6HMZYNRXHyl69ekFPT0/gaJofTnRYs8VDseV42ooxVge+v1XdONFhzVJGRgauXr0KgP94UX62xokOY6wqrs95Mk50WLN06tQprs8ByupzyhM+rs9hjFV1//59PHr0CJqamvD09BQ6nGaJEx3WLPEZSrlTp/6rz1HlhI8xVqPK6+dwfU7NONFhzRInOuW4PocxVge+aOPJONFhzQ7X51TCiQ5jrBZcn/N0ONFhzQ7X55Tj+hzGWB1iY2MRHx/P9TlPwIkOa3b4DKVcRX2OqyvX5zDGqqk4Vvbs2ZPrc+rAiQ5rdjjRKceXlTPG6sDHyqfDiQ5rVrg+pxKuz2GM1YLrc54eJzqsWeH6nHKZmUBkZNnXqp7wMcaqefDgAdfnPCVOdFizwkuZl6tcn2NjI3Q0jLFmpnJ9jr6+vrDBNHOc6LBmhdeEKFcxbaXqCR9jrEZ8Uvj0ONFhzUZmZiYiy6drVP6Pl+tzGGO14Pqc+uFEhzUbFfU5rq6usFHl6ZqsLK7PYYzV6sGDB4iLi4OGhgb69OkjdDjNHic6rNngM5RyFfU5Li6Ara3Q0TDGmhmuz6kfTnRYs8GJTjmetmKM1YFrGeuHEx3WLHB9TiWc6DDG6sCFyPXDiQ5rFrg+p1xWFnDlStnXfBBjjFXx4MEDPHz4kOtz6oETHdYs8LRVuYr6HGdnrs9hjFVTcazs0aMHDAwMhA2mheBEhzULnOiU4/tbMcbqwMfK+uNEhwmO63Mq4focxlgdONGpP050mOC4Pqcc1+cwxurA9TnPhhMdJjg+Qyl3+jQgk5XV59jZCR0NY6yZqbisvHv37lyfUw+c6DDB8aWS5fj+VoyxOvBJ4bPhRIcJKisri+tzKnB9DmOsDpzoPBtOdJigKupzXFxcYKvKl1NLJFyfwxir1YMHD/DgwQOoq6ujb9++QofTonCiwwTFZyjlKupz2rUD7O2FjoYx1sxU1Ofw+jn1x4kOExQnOuV42ooxVge+v9Wz40SHCSYrKwtXyqdruD7nZNm/fBBjjNWAL9p4dpzoMMFwfU45iQSIiCj7mg9ijLEqHj58iNjYWK7PeUac6DDB8LRVuYr6nLZtuT6HMVZN5fVzDA0NBY6m5eFEhwmGE51yfH8rxlgd+Fj5fDjRYYLg+pxKuD6HMVYHTnSeDyc6TBBcn1MuOxu4fLnsa1VP+Bhj1cTFxXF9znPiRIcJgs9QylWuz3FwEDoaxlgzU1Gf4+HhwfU5z4gTHSYITnTK8f2tGGN14GPl8+NEhzU5rs+phOtzGGN14ETn+XGiw5pcRX2Os7Mz1+fw+jmMsVrEx8fj/v37XJ/znDjRYU2OlzIvd+YMIJUCbdoArVoJHQ1jrJmpXJ9jZGQkcDQtFyc6rMnxUGw5nrZijNWBj5UNgxMd1qS4PqcSTnQYY3Xg+1s1DE50WJM6ffo0ZDIZnJ2dYWdnJ3Q4wuH1cxhjdYiPj8e9e/egpqaGfv36CR1Oi8aJDmtSPBRbrqI+x8mJ63MYY9VwfU7D4USHNSlOdMrx/a0YY3XgY2XD4USHNRmuz6mE63MYY3Xgq1MbjobQATDll5aWhmvXrql8fU5hYSHOnz+P4vR0DLx0CSJAZetzzp8/j8zMTOjr66N79+7Q1dUVOiRB3Lx5Ew8fPoSWlhbc3NxgYWEhdEiCSEhIQExMDIgI7dq1g5OTk9AhCerRo0e4e/cu1+c0EB7RYY2mpKQEAJCcnIwBAwZgyZIlAMpGdrZv3w4iEjK8JlPRDwDw6quv4ptXXoFIKkWchga++vNP5OfnCxhd06ncD4sXL8awYcPg5eUFOzs7LFiwAAkJCQJG13SkUimkUikAYNeuXRg6dChefPFF2NvbY+LEifJRT1VQ8Ttx7do1DBo0CIMHD0abNm0waNAgHDhwQODohFMxmvPCCy9wfU4D4ESHNYpff/0VHh4ekEgk6NSpE2JjY9G5c2cAgJWVFdavX6/wwaeszp07BxcXF1y/fh06Ojq4evUq/pw1CwDwwNERP/30E9LT0wWOsvE9fvwYL7zwAv744w8AwM6dOxEXF4crV65g6tSp2LFjB+7cuSNwlI2vuLgYr776Kt5//30AwPvvv4+HDx/i1q1bWLlyJcLDwxESEiJwlE1j+fLlGDhwIEpKSjB48GDcv38fsbGx+O2335Cbm4stW7aozMlQVVyf07AaJdFJSEjAxIkTYWZmBj09PXTt2hWXKy6lBUBEWLp0KWxtbaGrqwsfHx/cuHFD4TWKiooQGBgIc3Nz6OvrY9SoUXj06JFCm8zMTPj7+0MsFkMsFsPf3x9ZWVmN8ZZYPRw5cgTTp0+Hp6cnDAwMkJmYgDshR9BFXwPDOrti97atOHHiBLS0tJT6QPbw4UMMHz4cdnZ2sLe3R0laAfSvFaGkoD0kXjPgufBT3LlzBw4ODiAipe2LkpISDB8+HJmZmejSpYt8+61bt3D37l0MGTIE165dkx/UlbUfAGDOnDk4ePAgXnzxRQCASJSC4pI/UFy8FqNfluFK5BG88847AJS7HzZt2oTFixdj0KBB0NDQwMOiUuyUaePzPCCuzwBsPxaCXbt2QSQSKXU/1IYTnYYlogb+LcrMzES3bt3g6+uLWbNmwdLSEvfu3UPr1q3Rtm1bAMAXX3yBzz77DFu2bIGLiwtWrFiBsLAw3Lp1S34b+lmzZmH//v3YsmULzMzMsGDBAmRkZODy5ctQV1cHAAwbNgyPHj3C+vXrAQAzZsxA69atsX///qeKNTs7G2KxGBKJhIcHG1Dfvn2hpqaG0NBQzJkyGbERFzCwkwtkUikgEuFEzF04efSC3/S3MHXqVISHh8PExETosBvcggULsGXLFty9exdfLfwMxTezENR3ctll5SCsObcDWu2NMW/5exg2bBi+/fZbpTyw7d69G+PGjcOFCxfQo0cPvPXWW7hz545CQXpoaCicnZ2RmpqKXr16YeHChQJG3DgePHiANm3aYM2aNZg7dy4WLBiHjIzj8Pc3A4EgggjbtqXD1HQAjI07Izo6Grt27RI67AYnlUrh5OSEfv36YefOnXhlwfs4mpkLI/8ZIAAiANnb1mOIiQH8+nni008/xcWLF6GpqSl06E0iISEB9vb2UFNTQ0ZGBsRisdAhNUv1+fxu8GLkL774Ag4ODti8ebN8W+vWreVfExHWrFmDjz/+GGPHjgUAbN26FVZWVti5cyfeeustSCQSbNq0Cdu2bcPAgQMBANu3b4eDgwOOHTuGIUOGICYmBocPH8a5c+fQq1cvAMCGDRvg6emJW7duwdXVtaHfGnsKV69exdmzZ/H3339DkpyI2IgLOHz9NoiAQZ2cEXzjDo7cuI2hAKzeno2ke/ew7eefMXfuXKFDb1AFBQX449dfMXPyZBjkyFB8MwvfnNoEEBDUdzLWnNmKb05vwgJMhWmRBpCXh43ffQefHj2EDr3B/frDDxjUpw96dOyI9EePcOfOHYSEhICI4O3tjdDQUPkZbHtHR2xZuxbvzpolP6FRFpt//BHWhoaY+sYbyE+PRkbGcWzZkgGAMNHfBNu2ZWLLlkwEBByHu7MbvvzjD8QvWQIHBwehQ29Qhw8cQHp8PN57+23cT8/E0cxc5G5eBwJg4D8DudvWI2/zOhyZMgtvOjrh6tWr+Oeff/Dqq68KHXqTqFyfw0lOA6EG1qFDBwoKCqJXX32VLCwsqGvXrrR+/Xr5/nv37hEAioiIUHjeqFGjaNKkSUREdPz4cQJAGRkZCm3c3d1p8eLFRES0adMmEovF1X6+WCymX3/9tcbYCgsLSSKRyB/x8fEEgCQSyfO8ZVbJsWPH6OWXX6aSkhIK27GZvnljJA3p5EIASF1NjQDQkE4u9M2rwyissysRoPSPLK8ZFP/eCVrQbyoBIC11TQJAC/pNpfj3QijLa4bgMTbVI3jAAFq6aBH5+PiU/U6oqxMA8vHxoaWLFlHwgAGCx9gUjztTTej4UScKCDAhAKSpCQJAAQEmdOyoE92ZaiJ4jE3xWDEtkGyDL5L+lFkEgKBZ9rehP2UW2Z64QivuJpCzszMFBQUJfWhrMtOnTycAtGDBAqFDadYkEgk97ed3g9fo3L9/H+vWrYOzszOOHDmCmTNnYu7cufjtt98AAElJSQDKClIrs7Kyku9LSkqClpZWtemMqm0sLS2r/XxLS0t5m6pWrVolr+cRi8VKd6bUHAwYMAB79+6FhoYGJKkpABEGdXKGupoapDIZ1NXUMKiTMwBAoq8alxSXiq0BiBDUdzK01DVRLC2Blrpm2TSWfL9qyCo/Q/X29oa6ujqkUinU1dXl01hZKnIGW2hdltlM9DeBpiZQUgJoapZ9X7FfFcRb24IggoH/DFTuCIPyaaz4wmIYGBigoKBA6FCbDNfnNLwGn7qSyWTo3r07Vq5cCQDo1q0bbty4gXXr1mHSpEnydiKRSOF5RFRtW1VV29TUvq7X+fDDDzF//nz599nZ2ZzsNIKbN2/C3NwcYgtLQCRC8PXb8iRHKpMh+MYdDO7sCvHMt9E793u4u7vL66yUSXJyMnJycmDxUBcIT8aa01vlSU6xtARrzmxFUL/J0Jjmh7kWjxAWFobIyEihw25w+fn5uH37Nrp27QrjsDDgwgWEnjwpT3KkUilCQ0Ph4+ODR717Q3/PHsQ9fAgzMzOhQ29QUqkUly5dQq9evaAT9x1EiVuwbVuaPMkpKQG2b8vERH9z5L/kD/3PvsHePXswePBgoUNvcBEREejYsSMcUnMhSsxE7rb1qNwRudvWQ+w/A3ZaGoiPj8eIESOEDrlJJCQk4M6dO7x+TkNr6OGkVq1a0dSpUxW2/fTTT2Rra0tEwk5dVVWfoS/2dHJyckhPT49WrFhBGY8f0VC3smmrIZ1c6Otxw+XTWEPdXCgjMYHi4uLo5s2bQofdKHr37k0jRoyg4tR8WtC/bNpqQb+pFL8wTD6NtaD/VCpJzSeJREIXLlwQOuRGERQURNbW1lRUVERpaWnk6+tLQNl01ZIlS+TTWL6+vpSUlEQnT54UOuRG8fvvvxMAunXrFuXl3aeAANP/pquOt5FPYwUEmFJu7n06deoUFRYWCh12g4uNjSUAtG3bNrqXV0gG5dNW+lNmkdWJK/JpLIMps+h+XiHdunWL4uLihA67SezYsYMAkIeHh9ChNHuCTl317dsXt27dUth2+/ZtODo6AgCcnJxgbW2N4OBg+f7i4mKEhoaiT58+AMpuYqapqanQJjExEdevX5e38fT0hEQiwYULF+Rtzp8/D4lEIm/Dmp6BgQHGjx+PNWvWQFJUAiePXhjcyRkvdmgLQITBnV0x1M0Fjt16IF9KcHBwUNrC8WnTpuHAgQMIjTwDrfbGWNDvTQR5+gEkQ1D/yVjQfyq02hsjPicJRkZG6KGEhcgAMHXqVCQlJeHrr7+GmZkZnJ2d4evrCx8fH4hEIvj4+MDX1xd2dnawsrJS2tuDjB49Gubm5njvvfegrd0KpqYDEBBgCv9J5gDUMNHfHAEBptDV7QNtbQf069cP2traQofd4Fq3bo1BgwZh2bJlMC7MwxATAxhMmQWx/wyoARD7z4DBlFl40UAb4sI8uLi4qMzIO09bNZKGzrIuXLhAGhoa9Nlnn9GdO3dox44dpKenR9u3b5e3+fzzz0ksFtOePXsoKiqKxo8fTzY2NpSdnS1vM3PmTLK3t6djx45RREQEvfjii9SlSxcqLS2Vtxk6dCi5u7tTeHg4hYeHU+fOnWnEiBFPHSuP6DSO5ORkatOmDbVq1YoOHDhAFoYGNKyzK/25cgmF7dhMV8+fo0GDBpGTk5NSnrFWKCkpoaFDh5Kenh5t3bqVin2GU5bXDEpbcYCyDt2n1LuPKTAwkLS0tOj27dtCh9uoFi1aRADok08+oezsbEpLS6Pg4GDavXs3HT58mL777jvS1NSkP//8U+hQG9X//vc/UlNTo1deeYUePXpEeXmxdOfulxQVNZdu3/mCDh7cShYWFvTOO+8IHWqjunXrFpmZmZG7uztFRkbS/bxCWnE3gd66Hksr7ibQoStXqVu3btSnTx+SyWRCh9tkXFzKRrz3798vdCjNXn0+vxs80SEi2r9/P7m5uZG2tja1b99e4aorIiKZTEZLliwha2tr0tbWJi8vL4qKilJoU1BQQHPmzCFTU1PS1dWlESNGVBu+TE9PJz8/PzI0NCRDQ0Py8/OjzMzMp46TE53GEx8fT926daOuXbsSAHJycqIFCxbQ0KFDSSQSkZmZGZ04cULoMBtdfn4+jRs3jlqZmpJMQ4MIoK9mz6YJEyaQjo4OaWlp0Q8//CB0mI1OJpPRsmXLSF1dXf63/ssvv9CsWbPI3NycAND06dOpuLhY4Egb3759+8jQ0JA2btxIRESHDh2i+fPnyz/k+vfvT6mpqQJH2fiioqLIyclJXuoQExNDCxYsoH79+hEAcnR0pKtXrwocZdNJSEggACQSier1OaaqBE90WgpOdBqXVCql2bNnEwAaM2YMubi4UP/+/enXX3+lvLw8ocNrUpl//EEEkKxVK3J1daWuXbvSqlWrKDk5WejQmlTl9ztu3Dhq3749zZs3j2JiYgSMqulJJBIqKCggorIR7nbt2tEbb7xBYWFhKjWCUVxcLK/FPHDgALm4uNCgQYNo9+7dKpH0VrZz504CQC+88ILQobQI9fn85ruXs0ajpqaG8+fPAwBeeeUV7NmzR+CIhGNcfjWVyMcHN7duFTQWIVVeEqLivleqqPJKrgsXLlTKlaCfhqampnwZkZdeegkvvfSSwBEJh+tzGg/f1JM1GolEgoiICABQ2gLTp1a+2in4IMYYqwEnOo2HEx3WaE6fPg2ZTIZ27drB3t5e6HCEk5cHVFwdyAcxxlgViYmJuH37NkQiEfr37y90OEqHEx3WaPgMpdzZs0BpKdCqFVDpvm+MMQb8d3+rbt26wdjYWNhglBAnOqzRcKJTrrwf4OMDPGH1b8aY6qk4Vqr8FH8j4USHNQquz6mkItFR9X5gjNWITwobFyc6rFGcOXMGMpkMbdu25fqcixfLvuaDGGOsisTERNy6dYvrcxoRJzqsUfAZSrnw8LKbFTo4AE5OQkfDGGtmKupzunbtKr/UnjUsTnRYo+BEpxzX5zDG6lCR6Kj8sbIRcaLDGlx2djYuX74MgOtzFBIdxhirgk8KGx8nOqzBVayf07ZtW5W563CNeP0cxlgdkpKScPPmTa7PaWSc6LAGx2co5Srqc+ztuT6HMVZNxbRVly5duD6nEXGiwxocJzrlKt/2getzGGNV8LGyaXCiwxoU1+dUwvU5jLE6cKLTNDjRYQ2K63PK5ecD5Xdu50SHMVZVcnIy1+c0EU50WIPiM5Ryletz2rQROhrGWDNTuT7H1NRU4GiUGyc6rEFxolOO189hjNWB72/VdDjRYQ2G63MqqShEVvV+YIzViE8Kmw4nOqzBcH1OOa7PYYzVITk5GTExMRCJRPDy8hI6HKXHiQ5rMBVzzio/mnPuHFBcDNjZAW3bCh0NY6yZqThWuru7c31OE+BEhzUYHootx/U5jLE68P2tmhYnOqxBcH1OJbx+DmOsDlyI3LQ40WEN4syZM5BKpWjTpg1atWoldDjCKSjg+hzGWK1SUlIQHR0NAFyf00Q40WENgqetylXU59jacn0OY6yayvU5ZmZmAkejGjjRYQ2CE51yXJ/DGKsDHyubHic67LlxfU4lXJ/DGKsDJzpNjxMd9ty4PqdcQUHZ1BXAiQ5jrBquzxEGJzrsufEZSrnK9Tnt2gkdDWOsmQkLCwMAdO7cmetzmhAnOuy5caJTruK2D1yfwxirAR8rhcGJDnsuXJ9TSUV9jqr3A2OsRpzoCIMTHfZcuD6nXGEh1+cwxmqVkpKCGzduAOD6nKbGiQ57LnyGUu7cOaCoCLCxAZydhY6GMdbMVK7PMTc3Fzga1cKJDnsufM+Wcrx+DmOsDnysFA4nOuyZ5eTk4NKlSwC4PkehEJkxxqrg+1sJhxMd9swq6nOcnJy4Pic8vOxrTnQYY1Wkpqbi+vXrALg+Rwic6LBnxvU55c6fL6vPsbbm+hzGWDUV9Tlubm6wsLAQOBrVw4kOe2ac6JTj+hzGWB34WCksTnTYM+H6nEr4/laMsTpwoiMsTnTYM6lcn+Po6Ch0OMLh+hzGWB3S0tK4PkdgnOiwZ8JnKOUuXPivPsfFRehoGGPNTEV9TqdOnbg+RyCc6LBnwolOOa7PYYzVgY+VwuNEh9Ub1+dUwve3YozVgRMd4XGiw+qN63PKcX0OY6wOaWlpiIqKAsD1OULiRIfVG5+hlLtwoSzZsbICXF2FjoYx1sycOnUKQFl9jqWlpcDRqC5OdFi9caJTrvJtH7g+hzFWBR8rmwdOdFi9cH1OJbx+DmOsDnx/q+aBEx1WL2fPnuX6HKDskvKzZ8u+5kSHMVZFeno6rl27BoATHaFxosPqhc9QynF9DmOsDhXr53Ts2JHrcwTGiQ6rF55zLlf5snKuz2GMVcHHyuaDEx321HJzc3Hx4kUAPKLD9TmMsbqEll+swImO8DjRYU+tYv2c1q1bo3Xr1kKHI5yiIl4/hzFWq4yMDK7PaUY40WFPjYdiy128CBQUAJaWQPv2QkfDGGtmwsLCQETo0KED1+c0A5zosCeSSqXIyspCSEgIANVNdIgI2dnZKAkOLtugouvnEBHy8vKQk5MDIhI6HEEVFRUhKysLMplM6FAEVVpaiqysLJSWlgodSrPAJ4XNCyc67IkGDBgAExMTnD9/HgAgkUhQXFwscFRN76OPPoJYLEbosmUAgBNSKTIzMwWOqun973//g4GBAYyMjGBlZYUPPvgAsbGxQofV5BISEqCnpwcTExPo6+tjypQp8ho2VUJEcHFxgYmJCbS0tPDSSy/h33//hVQqFTo0wXCi08yQCpNIJASAJBKJ0KE0K8XFxTRjxgw6deoUERFdvXqVPvroIwJAOjo6BIA2btwocJRNY82aNfTjjz8SEVFCQgL9uX07lWhpEQHkrqFB06ZNEzjCpnHs2DGaNWsWyWQyKi4uph07dtCuXbto3rx5JBaLyd3dnUpLS4UOs9Hdu3ePXn31VfkxY//+/fTnn3/S8uXLydHRkQwMDCghIUHgKBtfTk4OjR8/nmJiYoiI6OzZs7R79276/vvvycPDgwDQ0aNHBY5SGOnp6SQSiQgAJSUlCR2O0qrP5zcnOpzoVDN16lTS0NCgP/74Q77tgw8+IAAUEBBAt2/fJplMJmCETWPDhg0EgBYuXPjfxtOniQAiCwt6FB9PeXl5wgXYRM6fP0+6uro0ePBgys/Pr7Y/NzdXJT7cU1JSyMnJidq1a0cPHjyotr+0tJTu3bsnQGRNq6SkhIYMGUKGhoZ08uTJGtvcvn27iaNqPvbt20cAqEOHDkKHotTq8/nd6FNXq1atgkgkQlBQUOVRJCxduhS2trbQ1dWFj48Pbty4ofC8oqIiBAYGwtzcHPr6+hg1ahQePXqk0CYzMxP+/v4Qi8UQi8Xw9/dHVlZWY78lpRYREYFNmzZh7dq1GDduHAAgNi0P/3sogvnI91DS8SVomNhCJBLhm2++wfbt2wWOuHHk5eXh3XffxZQpU7Bq1aqyjen3gOOfAmN1gXG2sNMtgp6eHvbt24dPP/1U2IAb0fvvvw9XV1fs27cPurq6eJj9EGsur8H7oe9jzeU1SJOmwdbWFhEREZg2bZrS1qt88803yMjIwLFjx+Do6IjiBw+Q8s23SJi/ACnffAtpfDzatGmDpKQkTJs2rdrxSln8+++/OHLkCHbv3i2/oigrOR/he+/h6MbrCN97DxZGdigtLcXHH3+Mo0ePChxx0+JFVZsfEVHjVRNevHgR48aNg5GREXx9fbFmzRoAwBdffIHPPvsMW7ZsgYuLC1asWIGwsDDcunULhoaGAIBZs2Zh//792LJlC8zMzLBgwQJkZGTg8uXLUFdXBwAMGzYMjx49wvr16wEAM2bMQOvWrbF///6nii87OxtisRgSiQRGRkYN3wEt0PTp03H48GHExsZCQ0MDr814B8dupsKod1nSo66ujswzuzCwvQVEWQm4du0aYmJiIFKyotxNmzZh+vTpuHfvHpycnLD0rbFQv3MIi/prAUSAmjqWhxVC6jwM4vb9sXDhQsTHx8PKykro0BvUjRs34Obmht9//x2vv/46Xg98HaGPQ2E92hoEgggiJP2TBB87H8wbPw99+vTBoUOHMHToUKFDb1CFhYVwcHDAxIkTsXr1anww7nXkh4RglqVl2e+DSIR1KSnQe9EXH23YADs7O8yfP18pE+DBgwcjJycH4eVLLMyeugBxURkY1t0fIAAi4NClbWjV2RSXb5yBWCzGkSNHhA26CXXr1g2RkZHyvxnWOOrz+a3RWEHk5ubCz88PGzZswIoVK+TbiQhr1qzBxx9/jLFjxwIAtm7dCisrK+zcuRNvvfUWJBIJNm3ahG3btmHgwIEAgO3bt8PBwQHHjh3DkCFDEBMTg8OHD+PcuXPo1asXAGDDhg3w9PTErVu34MrL8j+TyMhITJs2DRoaGohNy8Oxm6nIOrUDRIBx3/HIOL0LktM7cAx++H7mGziwezfuXr0KZ2dnoUNvUFfPnsUrQ4fCydISeBQF9TuHsDikECDCIm9tLA8twOKTRViGQ5gydwE+mV+C4//7HyZMmCB06A3q/IkT6OjoiDGDB+NhUgxCE0KRvDcZRATL0ZZI+ScFKXtTcHLMSXzhtATubdvi8N9/Y2j//kKH3qBuXL4MI3V1vPn66yiOiUF+SAh+SEsFiDDL3Bzr0tLwQ3oaAk+EQOfxY7wxciSO7t2LT99/X+jQG1RxcTHiYmLw4YcfAnl5yEotRFxUBv69uAVEwDAPfxy6tA0HLm3BCARg0oRpmP3OdBQWFkJHR0fo8BtdRkYGrl69CoBHdJqVxpo/mzRpEgUFBRERkbe3N82bN4+Iyor5AFBERIRC+1GjRtGkSZOIiOj48eMEgDIyMhTauLu70+LFi4mIaNOmTSQWi6v9XLFYTL/++muNMRUWFpJEIpE/4uPjuUanDp8fiqE2Hx4gcT8/AkBQ1yAAJO7nR23e+4c+95pcVq+i7I8B2kSLDGmZjzYBIC11EABa5lO2nQZoCx9jEzxWv2pFXTZ1IssxlgSARBplBZeWYyypy6ZOtPpVK8FjbIpHsrkFRbu4UqCZOQEgzfLC00Azc4p2caVkcwvBY2yqx9meU2nt9KM0vHsAASANNU0CQMO7B9DaWcdpy+cHCQClpKQIfThrEhX1Oe3btxc6FKUneI3O77//joiIiP9qGypJSkoCgGpD/FZWVvJ9SUlJ0NLSgomJSZ1talqIydLSUt6mqlWrVsnrecRiMRwcHOr/5lRATk4OAOBRZgGICMZ9xwPqGoC0FFDXgHHf8SAAj8QqshCWuOzPZJG3NrTUgWIpoKVe9n3l/crusbkmSARYjraESEMEKiWINESwHG0JKt+vCko0y97nLHNzaIpEKCGCpkiEWebmCvtVQY6hNYCykRwNNU2UykqgoaaJYR5l01h5WWXLUBgYGAgZZpPhy8qbpwafuoqPj8e8efNw9OjROocqq9Z0ENET6zyqtqmpfV2v8+GHH2L+/Pny77OzsznZqeKrr77CunXrcOfOHdib6EIEIOvMLnmSA2kpss7sglm/8TB+42V8090A77zzDtTUlOvDPiQkBK+99hquXLkCh9htwIV1WH4yX57kFEuB5aFFWOSjh+JJM7GhlznGjh0LGxsboUNvUMnJyfDw8MDatWth2yYBots7kLIvUZ7kUCkh5Z8U2LxsDdvJgfirtxXs7Ozg6ekpdOgNiojg5eUFLy8vzLO2AbZtw7rkZHmSU0KEdWlpmGVlBc25c3HW4wUkJCTgtddeEzr0BrdgwQJcu3YNwcHBMDwQB5xMxKGL2+RJTqmsBIcub8NLPfzR2tkWa9asga6urtBhNwm+v1Uz1dDDSXv37iUApK6uLn8AIJFIROrq6nT37l0ChJm6qoovL6/uwoULBIC2bt1K91Nzybh82krcz48cF/4rn8Yy7u9Hsam5QofbaHJycsjQ0JBmzZpFlHaXlvmWrR+0zEebaImRfBrrU18dorS7QofbqPr06UM9e/akO2l3yGqsFQFl01VuW9zk01hWY6zoXoZyX1q9YMECMjExobjz5ynQ3OK/6SrX9vJprEBzC8q9q9y/D7t37yYAFBISQplJeTSiR4B8uurHt47Lp7FG9AigzGTlX36hQkZGhnz9nMTERKHDUXqCTl0NGDAAUVFRiIyMlD+6d+8OPz8/REZGok2bNrC2tkZwxTL6KCtwCw0NRZ8+fQAAHh4e0NTUVGiTmJiI69evy9t4enpCIpHgwoUL8jbnz5+HRCKRt2H116NHD/j5+WHGjBm4fPIQbCkV4r4TYNzndaiJALP+E2Dczw+Iv4prZ48LHW6jMTAwwMqVK7Fu3Tos+f43lJj2xDJvLSzqrw2I1LDIRw+f+uogNNkQn/6onJfYV/jyyy8RGRmJd6e+i35W/WA11go2L9tATaQGm5dtYDXGCsZpxpg9YbbSXloOlI1k6OvrY+iUKUDvXgg0t8AsKytATQ2zrKwQaG6BZCcneAwfjuTkZKHDbTSjR4+Gj48PxowZg6s3L6JVZ1OM6BGAl3pMgkgEvNTDH8O7B+Bm4iXcio0SOtwmc+rUKRARXF1dYW1tLXQ4rJIGn7oyNDSEm5ubwjZ9fX2YmZnJtwcFBWHlypVwdnaGs7MzVq5cCT09PfkVK2KxGFOnTsWCBQtgZmYGU1NTvPvuu+jcubP8KqwOHTpg6NChmD59On755RcAZZeXjxgxgq+4ek6bNm1CSUkJXnvtNXTs2BF5j6PQ18sbaoYWSLx7HfE3QtDe3gweHh5Ch9qo5syZg5ycHHz00Uc4PmAAXrxWgiLnNkjpaI9r8RL8efM6koplWDF4sNChNqq+fftiz549GDduHHx8fHBh1wXsjNqJqw+uojC5ECk3U3D39l28v/59pZvCrMzGxgbBwcEYOnQofj9/HrHnwpG7bx8enL+AVDURrkVGIvTiBcyePRsWFhZCh9toNDU1sXfvXrz88svw8fHBrVu3YGlsjyO7ziEjORc3bkfi/O2jcHvBRaWOxVyf04w1/gCT4lVXREQymYyWLFlC1tbWpK2tTV5eXhQVFaXwnIKCApozZw6ZmpqSrq4ujRgxguLi4hTapKenk5+fHxkaGpKhoSH5+flRZmbmU8fFU1e1k0qltHfvXtLQKLvSytvbmwBQt27daOPGjSqxInCFy5cvU4GXFxFAB4cPJwDk4OBAn332mUot8f7w4UO6evUqEREdPnyY1NTUyMjIiObOnSu/FYAqyMrKotDQUPnXIpGINDQ0aNy4cXTy5EmVWDWcqOxWMYcPH5Z/36lTJ/mx4o8//qDi4mIBo2t63bp1IwC0a9cuoUNRCfX5/G7UBQObO14wsG5Hjx7FkCFD4OjoKF+oUSwWK93igE9UXAyYmAD5+cg7dw6F7drBxMREqUcvnqSgoAC5ubkwNjaGpgpdZVSVVCpFWloajIyMVKbgtjapqanQ0dGRL/qqSjIzM2FmZgYiwuPHj5XuooTmqFksGMhavspDsWZmZsIGI6RLl4D8fMDcHPo9ekBfhROcCrq6uir/wQ6UrRSubKthPytlnq57ktOnT8vrczjJaX74iM1qxXPO5covGYW3N8BJDmOsCr6/VfPGR21Wo9zcXFy8eBEAJzooP4hB1fuBMVYjPils3jjRYTU6e/YsSktL4ejoiNatWwsdjnBKSoDTp8u+5oMYY6yKrKwsXLlyBQCP6DRXnOiwGvEZSrmK+hwzM6BjR6GjYYw1MxXr57i4uMDW1lbocFgNONFhNeKlzMtVTFtxfQ5jrAZ8rGz++MjNqsnLy5OvOK3yf7xcn8MYqwOPfjd/nOiwairqc1q1asX1OWfOlH3NBzHGWBVcn9MycKLDquEzlHKXLwN5eWX1OZ06CR0NY6yZOX36NGQyGZydnbk+pxnjRIdVw4lOuYppKy8vrs9hjFXDx8qWgY/eTAHX51TC9TmMsTpwotMycKLDFHB9TjleP4cxVgeJRML1OS0EJzpMQeUzFJW7eWdlFfU5pqaAm5vQ0TDGmpnK9Tl2dnZCh8PqwIkOU8BDseX4/laMsTrw/a1aDj6CMzmuz6mk8kKBjDFWBZ8Uthyc6DA5rs8px/U5jLE6SCQSREREAOARnZaAEx0mx/U55SIigNxcwMQE6NxZ6GgYY81MRX1Ou3btYG9vL3Q47Ak40WFyPBRbju9vxRirA9/fqmXhozgDwPU5CioKkVW9HxhjNeKTwpaFEx0GAAgPD+f6HAAoLQVOnSr7mg9ijLEqsrOzcfnyZQBcn9NScKLDAHB9jhzX5zDG6lBRn9O2bVuuz2khONFhAHhNCDm+vxVjrA48bdXy8JGccX1OZXx/K8ZYHTjRaXk40WEIDw9HSUkJHBwc4OTkJHQ4wuH6HMZYHbKzs3n9nBaIEx3G9TkVrlz5rz7H3V3oaBhjzcyZM2cglUrRpk0bODg4CB0Oe0qc6DAeiq1QMW3Vvz/X5zDGquFjZcvER3MVx/U5lXB9DmOsDpzotEyc6Kg4rs8px/U5jLE68Po5LRcnOiqO63PKXbkC5OQAxsZcn8MYq6ZyfU6rVq2EDofVAyc6Ko6HYstVXj9HXV3QUBhjzQ/f36rl4kRHhXF9TiV8fyvGWB14UdWWixMdFcb1OeUq1+fwQYwxVkVOTg4uXboEgBOdlogTHRVWeShWpetzIiOB7GxALAa6dBE6GsZYM1NRn+Pk5ARHR0ehw2H1xImOCuP6nHJcn8MYqwMfK1s2TnRUVH5+Ps6fPw+Ah2J5/RzGWF24ELll40RHRVXU59jb26NNmzZChyMcqZTXz2GM1So3NxcXL14EwCeFLRUnOiqK188px/U5jLE6VNTntG7dmutzWihOdFQUzzmXq3x/K67PYYxVwcfKlo8THRVUuT5H5f94uT6HMVYHTnRaPk50VBDX55STSoGwsLKv+SDGGKuC63OUAyc6Kojrc8pV1OcYGQFduwodDWOsmTl79qy8Pqd169ZCh8OeESc6KoiHYsvx+jmMsTrwsVI5cKKjYrg+p5KK+1vxkDRjrAZ8fyvlwImOiuH6nHJcn8MYq0Pl+hyVPyls4TjRUTFcn1Pu6lVAIuH6HMZYjc6ePYvS0lI4OjpyfU4Lx4mOiuGlzMtVXj9HQ0PQUBhjzQ/X5ygPTnRUCNfnVMLr5zDG6sAnhcqDEx0Vcu7cORQXF3N9TuX6HC4yZIxVkZeXhwsXLgDgREcZcKKjQipfQaDS9TnXrpXV5xgaAt26CR0NY6yZqajPadWqFdfnKAFOdFQIzzmX4/ocxlgd+FipXDjRURFcn1MJ1+cwxurAiY5y4URHRVTU59jZ2aFt27ZChyMcXj+HMVYHrs9RPpzoKLlTp07B3d0dr7/+OgDAyckJpaWlAkfV9DIyMuDh4YExbdsCWVko1tGBREULsl9++WW0b98e3bt3x6JFixAfHy90SIJYvHgxOnTogK5du2L69Om4cuWK0CEJYvfu3XBzc4ObmxvGjh2Lw4cPQyaTCR2WYMLDw7k+R8lwoqOEHj9+jA0bNgAAevToAV9fX2hpaQEATp8+jc6dO6O4uFjIEJtEYWEhvvnmG5SWlsLU1BRjx47F5PID1/HCQti3bo379+8LG2QTICKsW7cOqampAIDXXnsNL730Ejp27IjvvvsOrVu3xt69ewWOsmkcOHAAly5dAgAMHToUQ4cORe/evXH48GG88MIL+OijjwSOsGncvHkTf/75JwCgX79+ePHFF/Hiiy/i/v37GDZsGAYOHAgiEjhKYfCiqkqIVJhEIiEAJJFIhA6lwaSkpFC7du3I3t6esrKyiIgoLy+PtLS0CAD9+++/FBISImyQTaCkpIRGjBhBOjo6dOnSpf92jB5NBFDWRx/RX3/9JVh8TenTTz8lALRx48Zq+7Kzs+m3336jkpISASJrWgcOHCB1dXWaNm1atX0lJSW0e/duSk5OFiCypnX37l2ysLCgrl27Vvt/l8lkdObMGbp8+bJA0Qmvb9++BIA2bdokdCisDvX5/G7wRGflypXUvXt3MjAwIAsLCxo9ejTdvHlToY1MJqMlS5aQjY0N6ejokLe3N12/fl2hTWFhIc2ZM4fMzMxIT0+PRo4cSfHx8QptMjIyaOLEiWRkZERGRkY0ceJEyszMfOpYlTHRefPNN8nc3Jzu3btHREQZjx/RtpVLya93VxrXpzulJzwiIqK0tDT6+eefSSaTCRluo9mwYQOJRCI6dOgQEREVp+ZT1sF7lPbKCsrymkHFx8OJiKigoIC2bNlCqampQobbaK5du0YA6NNPP5VvS0tLo+DgYNq9ezcFBwdTWloayWQyOnTokNJ+wBUUFJCZmRmNGDGCSktLiYgoL+8+3bn7JUVFzaU7d7+kvLz7RER05coV+vfff4UMt1ENHDiQ2rVrJ/+dv5dXSCvuJtBb12Npxd0EupdXSERE8fHxtGXLFiFDbXK5ubmkqalJAOTHUNY81efzW0TUsOOTQ4cOxRtvvIEePXqgtLQUH3/8MaKiohAdHQ19fX0AwBdffIHPPvsMW7ZsgYuLC1asWIGwsDDcunULhoaGAIBZs2Zh//792LJlC8zMzLBgwQJkZGTg8uXLUFdXBwAMGzYMjx49wvr16wEAM2bMQOvWrbF///6nijU7OxtisRgSiQRGRkYN2Q2CyMzMhK2tLRYtWoSPPvoIb0/2R2zEBQzo6AySySBSU8Px6Dtw8uiFV/wnY+DAgQgNDYWXl5fQoTcoIsILL7wAe3t77N+/Hx/NeBfFN7MQ1HdyWTEygDXntkOrvTHmr/wA9vb2WLZsGd5//32BI294b7/9Nvbu3Yu4uDhoamrirbfewp07dxTuxhwaGgpnZ2ecPXsWzs7O2LNnj4ARN47ffvsNkydPxu3bt+Hs7IwFC8YhI+M4/P3NQCCIIMK2bekwNR2A7GwxDh8+jNjYWGgo2fIDt27dQvv27bFt2zZMnDgRryx4H0czc2HkPwMEQAQge9t6DDExwEud2mPatGm4d+8enJychA69SRw7dgyDBg2Cg4MDHj58yFNXzVh9Pr8b/K/48OHDCt9v3rwZlpaWuHz5Mry8vEBEWLNmDT7++GOMHTsWALB161ZYWVlh586deOuttyCRSLBp0yZs27YNAwcOBABs374dDg4OOHbsGIYMGYKYmBgcPnwY586dQ69evQAAGzZsgKenJ27dugVXV9eGfmvN3t69e1FUVISpU6ciMzEBsREXcPj6bRABgzo5I/jGHRy5cRtDAXRbtBhuTk7YvWULvDw8hA69Qd26eRO3IyPx2UcfoSQuHcU3s/DNqU0AAUF9J2PNma345vQmLMBUGBeIMGH0aOzZtg3vz54tdOgNbu/27XjrrbegWVyM9ORk3LlzByEhISAieHt7IzQ0VF6T8NakSfhw4ULkJCXJTziUxV9bt2KYlxecbW2Rnx6NjIzj2LIlAwBhor8Jtm3LxJYtmQgIOI63p/yCnRs34vSRI0p31c1fW7fCVizGq8OG4X56Jo5m5iJ38zoQAAP/Gcjdth55m9fhyJRZWPbyWBgEBWHXrl0qU7vE9TlKqnEHl4ju3LlDACgqKoqIiO7du0cAKCIiQqHdqFGjaNKkSUREdPz4cQJAGRkZCm3c3d1p8eLFRES0adMmEovF1X6eWCymX3/9tcZYCgsLSSKRyB/x8fFKNXWVl5dHsbGxREQUtmMzffPGSBrSyYUAkLqaGgGgIZ1c6JtXh1FYZ1ciQOkfWV4zKP69E7Sg31QCQFrqZcPSC/pNpfj3QijLa4bgMTbVI3jAAFq6aBH5+PiU/U6oqxMA8vHxoaWLFlHwgAGCx9gUjztTTej4UScKCDAhAKSpCQJAAQEmdOyoE92ZaiJ4jE3xWDEtkGyDL5L+lFkEgFA+ZaM/ZRbZnrhCK+4mUKdOnSgwMFDYA1sT6tevHwFcn9MS1GfqqlGvuiIizJ8/H/369YObmxsAICkpCQBgZWWl0NbKykq+LykpCVpaWjAxMamzjaWlZbWfaWlpKW9T1apVqyAWi+UPBweH53uDzYyenp78ckhJagpAhEGdnKGupgapTAZ1NTUM6uRctl9fV8BIm06p2BqACEF9J0NLXRPF0hJoqWuWTWPJ96uGLLEYQNktQNTV1SGVSqGuri6fxqrYr+wKrcsym4n+JtDUBEpKAE3Nsu8r9quCeGtbEEQw8J+Byh1hUD6NFV9YjPz8fOjo6AgdapOovKiqN98DT6k06gT0nDlzcO3aNZw+fbravqrDgkT0xKHCqm1qal/X63z44YeYP3++/Pvs7GylSnays7Px2muvYf78+RBbWAIiEYKv35YnOVKZDME37mBwZ1eIZ76Npf1uo3Xr1ggICBA69AYXFBQEe3t7TO82HghPxprTW+VJTrG0BGvObEVQv8nQmOaHnSPtcf36daxcuVLosBvchg0bEB4ejl9//RXGYWHAhQsIPXlSnuRIpVKEhobCx8cHecOGwU8qxW+//Savg1MWoaGh+PTTT3Ho0CHoJP8MUeIWbNuWJk9ySkqA7dsyMdHfHCWjpuCNqzfw1VdfKdXxAQDi4uIQEBCAtWvXwsHAAqLETORuW4/KHZG7bT3E/jNgp6WBwYMHK10NX23Cw8NRUlLCNz1WRo01rDRnzhyyt7en+/fvK2wXcuqqKmW76komk1GXLl1oyJAhlJ7wiIa6lU1bDenkQl+PGy6fxhrq5kIZiQlCh9uoZs6cSTY2NpT1MJUW9C+btlrQbyrFLwyTT2Mt6D+VSlLzhQ61UW3ZsoUA0PXr1yktLY18fX0JKJuuWrJkiXway9fXl9LS0oQOt9HExMTIpyTy8u5TQIDpf9NVx9vIp7ECAkwpLy9W6HAbTVFREVlaWtK0adPoXl4hGZRPW+lPmUVWJ67Ip7EMpsyi++VXX6mKTz75hADQxIkThQ6FPQVBp66ICHPmzMGePXtw4sSJatX6Tk5OsLa2RnBwsHxbcXExQkND0adPHwCAh4cHNDU1FdokJibi+vXr8jaenp6QSCTypboB4Pz585BIJPI2qkYkEmHx4sU4cuQIPl/zHVp17Y7BnZzxYoe2gEiEwZ1dMdTNBVrW9vjs62+VevXTd955B7m5uRg33Q/qzoZY0H8qgvpPBkRAUP/JWNB/KgpsRPAPfBMSiUTocBvNuHHj4OrqitGjRyMnJwfOzs7w9fWVF1v6+PjA19cXWVlZSE9PFzrcRtO+fXu8/vrrCAwMxMWLcTClrgiYZAz/CcYA1DDR3xwBAaaIizPDqVO3hA630WhpaeGjjz7Cxo0bcWBT2dVVBlNmQew/A2oAxP4zYDBlFtplJOPvn34AEQkdcpPh+1sprwafupo9ezZ27tyJf/75B4aGhvJ6GbFYDF1dXYhEIgQFBWHlypVwdnaGs7MzVq5cCT09PUyYMEHedurUqViwYAHMzMxgamqKd999F507d5ZfhdWhQwcMHToU06dPxy+//AKg7PLyESNGqOQVVxXGjh2L1atX45133kH//v0R/TABxkZGGDd6FHJLSmGYT9j9v3/hZ2Wj1AcxFxcX7N27F6NHj8Zdq7u4GnYJ0qgs5CdlQ0J5UM8QY/Nv69ChQwelviWGrq4uDh06hAEDBqBr164ICwuDnZ0dzp07h+TkZDx48ADx8fHIzs5GQUGB0OE2ql9//RWjRo3CwIEDcWnUKDify8Wjzh2Q5d0JsbE5uHsvEufP3cdbbylv4gsAc+fORVxcHObOnYt33nkH135cjW2PUnA/Jx/S5Me4n5WKs//swZD2zkKH2mT4psdKrqGHkwDU+Ni8ebO8TcWCgdbW1qStrU1eXl7yq7IqFBQU0Jw5c8jU1JR0dXVpxIgRFBcXp9AmPT2d/Pz8yNDQkAwNDcnPz0/lFwyscPToUXrllVfKpq6GDJH/P3Tp0oU2bNhAUqlU6BCbxPXr1+nbb78lIiKpVCrvBzs7O/r0008pJydH4AibRnJyMi1evJiKi4uJiKh79+4EgAwNDWn27Nn08OFDgSNsGkVFRfT1119TXu/eRAD9XukKtFdeeYXOnz8vdIhN5o8//qAjR44QEdGuXbvkfxv9+vVTmVXDK1SUS9jb2yvtIqrKRtAFA1sSZVswsCpvb2+EhYXhm2++gaurK2xsbNCtWzeVXR9CKpXi4MGDMDIyQt++fZVuMbj6CA0NRWFhIfr06aN0a+Y8UVERYGwMFBbi9j//4I66Orp27Qo7OzuhIxPMo0ePcOXKFbRt2xYdO3YUOpwmt3jxYixfvhx+fn7Yvn270OGwpyDogoGseSgoKMC5c+cAACNHjoSzs+oMQ9dGXV0dI0eOFDqMZkGlL5+9cAEoLASsrOAyciRcVDTxr8ze3h729vZChyEYrs9Rbnz3ciV17tw5FBcXw9bWFu3atRM6HMaaj/IPNfj4AJzkqDyuz1F+nOgoKV7KnLFaVE50mMqrOCm0s7ND27ZthQ6HNQJOdJQUD8UyVoOiIuDs2bKvVXn6jsmFhoYC4JNCZcaJjhKqXJ/DiQ5jlVTU51haAu3bCx0Nawb4pFD5caKjhLg+h7FacH0Oq6TySaFKF+grOU50lBAPxTJWi/K/Da7PYQCfFKoKTnSUEA/FMlaDyvU5/LfBwBdtqApOdJRMYWEh1+cwVpOLF4GCAq7PYXJ8UqgaONFRMufOnUNRUREPxTJWVUV9jrc31+cwFBYW8vo5KoITHSVTcYbi7e3NQ7GMVcbr57BK+KRQdXCio2R4KJaxGhQXc30OU8AnhaqDEx0lwvU5jNWioj7HwgLo0EHoaFgzwCeFqoMTHSVSMRRrY2PDN/FkrDJeP4dVwieFqoUTHSXCl0oyVovKhchM5fFJoWrhREeJ8FAsYzUoLgbOnCn7mv82GHhRVVXDiY6S4KFYxmpRUZ9jbg507Ch0NKwZ4JNC1cKJjpLgoVjGasH1OaySwsJChIeHA+D7W6kKTnSUBNfnMFYLvr8Vq+T8+fMoKiqCtbU1XFxchA6HNQFOdJRE5Tlnxli5yvU5fPbOwCeFqogTHSVQeSiWEx3GKrl0CcjP5/ocJsf1OaqHEx0lUDEUy/U5jFVR+bJyNT7cqTq+aEM18V++EuChWMZqwfe3YpVcuHABhYWFsLKy4vocFcKJjhKofM8Wxli5khJeP4cp4JNC1cSJTgvH9TmM1YLrc1gVXJ+jmjjRaeH4UknGalExbeXlxfU5jE8KVRj/9bdwPBTLWC24PodVUrk+x9XVVehwWBPiRKeF46FYxmpQUgKcPl32Nf9tMPD9rVQZJzotGA/FMlaLivocMzOgUyeho2HNAF+0obo40WnBuD6HsVrw+jmskqKiIpw9exYAnxSqIj4CtGBcn8NYLSrub8Vn7wz/1edYWlqiffv2QofDmhgnOi0Y1+cwVgOuz2FV8EmhauNEp4Xi+hzGanH5MpCXB5iaAm5uQkfDmgG+6bFq40Snhbpw4QLX5zBWE67PYZVwfQ7jo0ALxUOxjNWC189hlVy8eBEFBQVcn6PCONFpobg+h7EacH0Oq6LyZeV8UqiaONFpgbg+h7FaRERwfQ5TwCeFjBOdFqjyUuZcn8NYJXx/K1ZJcXEx1+cwTnRaIq7PYawWXJ/DKqmoz7GwsECHDh2EDocJhBOdFoiHYhmrAdfnsCr4pJABnOi0OFyfw1gtIiKA3FzAxATo3FnoaFgzwPe3YgAnOi1O5focV1dXocNhrPng9XNYJcXFxThz5gwAPilUdXw0aGF4KJaxWvD9rVglFfU55ubm6Nixo9DhMAFxotPCcH0OYzUoLQVOnSr7mv82GPikkP2HE50WhOtzGKtF5focd3eho2HNAN/filXgRKcF4focxmrB6+ewSrg+h1XGR4QWpPIZCg/FMlYJr5/DKrl06RLy8/O5PocB4ESnReH6HMZqULk+hwuRGfj+VkwRJzotRFFRES9lzlhNrlwpq88xNub6HAaATwqZIk50Wgiuz2GsFpXrc9TVBQ2FCa+kpITrc5gCTnRaCL5UkrFacH0Oq4Trc1hVnOi0ELyUOWM14PVzWBWVj5VqfAUeA6AhdACsbsuXL8ft27flV1z169dP4IiEsX37dpw4cQKampp44YUXMGHCBBgaGgodVpM7c+YMtmzZAiJCmzZtEBAQAFtbW6HDanKPHj3CZ599BptHj7A4JwdSQ0Ooq2B9jkwmw7vvvouMjAyIxWKMHDkSAwYMUOlRXz4pZFVxutsMXb58GYWFhQAAkUiEK1euQCqVAgCGDRuGAwcOCBlek4mLi0NcXBwAwNDQEDExMbh48SLefvtt2NnZ4auvvhI4wqaRn5+PiIgIAICdnR2uXr2KqKgorFy5Eq1atcKkSZMgk8kEjrLxEZG8IN/a2hp37tyB6bVrAIADOTnw8vVFSkqKkCE2mfDwcMhkMqipqaG4uBh37tzB/v37MWjQILRv3x7nz58XOkRBlJSU4HT5Hey5PofJkQqTSCQEgCQSidChyB09epS0tbVpxYoV8m3Lli0jADRo0CB6++23KTExUcAIm0ZsbCzZ2trS8OHDq+17+PAhLVy4kM6ePStAZE0rPz+f+vXrR7a2tlRQUKCwLysri77//nvatGmTQNE1HZlMRnPmzCE1NTW6efPmfzuGDycC6MqkSfTJJ5+QTCYTLsgmsnXrVhKJRPTbb78pbJfJZBQaGkqzZ8+mnJwcgaIT1tmzZwkAmZmZkVQqFToc1ojq8/nd4hOdtWvXUuvWrUlbW5teeOEFCgsLe+rnNrdEJyMjg4yMjGjYsGFUWFhIRET3U3Opy6TFZD7yPXr9sx10PzWXiIhSU1MpLi5OyHAbjUwmox49elDbtm3/S+rS7hIFLyHaPaXs37S7RERUUFBA0dHRgsXa2AIDA0lPT4/OnTtHREQPJA9o9aXV9N7J92j1pdX0QPKAiIikUilFRkYKGWqj2rlzJwGgX375hYiIimJjKfnLr+hRq1aUbG5BRf8ekLe9evUqlZaWChVqo7p58yZpaGjQ1KlTSSqVUmZSHp3dc5eObIiis3vuUmZSnrxtfHw8paSkCBht01u5ciUBoLFjxwodCmtk9fn8btE1On/88QeCgoLw008/oW/fvvjll18wbNgwREdHo1WrVkKHV2+bN29GQUEBNm/eDG1tbbw24x0cu5kKo97joGcFXMhRxwtj38LA9haIORuMbt26Ydu2bUKH3eDOnTuHixcv4tChQ7C2tsbSt8ZC/c4hLPLWBUAARFi+8gtInYchQWaGkydP4tatW0pXeJidnY1ff/0V7777Lnr16oXXA19H6ONQWI+2BoEgggifr/wcPnY+GNRlEGbOnImHDx8qZc3OmjVrMHjwYMyYMQMfjHsd+SEhmGVhAejoAjq6WBEQAL0XfeG/eDG6dOmC/fv3Y8SIEUKH3eDWrVsHExMTrF27FoHT30NcVAaGdfev+LPAylUr0KqzKVavW4UuXbpg5syZ+Oyzz4QOu8nw/a1YTVp0ovPtt99i6tSpmDZtGoCyg+GRI0ewbt06rFq1SuDo6m/jxo149dVXYWVlhdi0PBy7mYqsUztABBj3HY+M07sgOb0Dx+CHoDcCsGbZR5B88QXEYrHQoTeo39atQ6fWrTG4b1/gURTU7xzC4pBCgAiLvLWxPLQIi08WYRkO4e131mPnxo04feQIvLy8hA69Qf39228Q5efjrYkT8TApBqEJoUjemwwiguVoS6T8k4KUvSk4OeYkFs1dAGNNTezcsAHvvvuu0KE3qKioKFy/cAF//P47imNikB8Sgh/SUgEizDI3x7q0NPyQnobAEyFw/vRT9OvWDb+tW4cRvr5Ch96gSkpK8OfmzZg5bRoKEnMRF5WBfy9uAREwzMMfhy5tw4FLWzACAcjPKoWfnx82btyIFStWqERxcuX6HC5EZpWJiIiEDuJZFBcXQ09PD7t378aYMWPk2+fNm4fIyEh5Zl9ZUVERioqK5N9nZ2fDwcEBEokERkZGTRJ3Xf73v/+hXbt26NixI744fBPrw+4j/dROSE7vANQ1AGkpxP38YOY5DjPO78HCsK1Ch9z4BmgDfbSw/FQxFp8sgpY6UCwFlvloY1F/LeBsMXC86Mmv08KtedUKW4aZI/HfVKTsTYFIQwQqJViOsYTNCAsEHEpD0F/JQofZ6FLMLZBuaop16en4IT0NmiIRSogQaGaOWWZmMMvIgGVaqtBhNrrwnlNxpcvrOHhlJw5c2gINNU2UykowvHsAhnSbgLN39uNgxFZkZ2fD3NxcJRIdqVSKjIwMmJqaIjU1VelGeJmi7OxsiMXip/r8brEjOmlpaZBKpbCyslLYbmVlhaSkpBqfs2rVKnz66adNEd4zGTVqlPzrR5kFICIY9x0PSfgfgLQUUNeAcd/xIJkUj8SWAkbahMRlB6tF3tpYcaoIxVJAS73se8hIvl/ZPTbXBIkAy9GWSN2fCioliDREsBxtCZISHptrCh1ikyjRLHufs8zN8XNGOkqIoCkSYZa5OUAk36/scgytAZSN5ByJ2IFSWQk01DQxzMMfMpkUOupGyM7OBlB2rFQlr7zyCic5TEGLTXQqVD1TIaJaz14+/PBDzJ8/X/59xYhOcxEaGorTp0/j448/hr2JLkQiEbJO75QnOZCWIuvMLpj2G4+Mnu5oHW6Ov/76C3p6ekKH3qDi4+Px559/IigoCDZ3NsPs/p9YcbJAnuQUS4HloUX4xEcXDweNwoAzx7BixQp06dJF6NAbVE5ODrZs2YJXXnkFWupngfTDSPknSZ7kUCkh5Z8UWI+2huZL49Hn7BH4+Phg4sSJQofeoIgIu3btQuvWrdEn/hFw8CB+TkmRJzklRFiXloaZlpaQTJiAJQmPkJqa2iKnr58kNDQUKSkpeKH1UFBUMQ5d2iZPckplJTh0eRuGdffH2NdHwPlFPaxfvx7//vuvSozoAICGhgacnZ2FDoM1N41aFt2IioqKSF1dnfbs2aOwfe7cueTl5fVUr9Hcrrpau3YtqampUVxcHN1PzSXj/n4EgMT9/Mhx4b8k7lf2vXF/P4pNzVXaK0suX75MAMr+b9Pu0jJfHQJAy3y0iZYY0TIf7bLvfXWI0u5SaWmpUl5WnJeXR2KxmN5//316IHlAVmOtCABZjrEkty1uZDnGkgCQ1Vgreih5SESktL8TXl5e1L9/fyq8f58CzS0IAAWamVO0a3sKNDMv+97cgooelF2Fpqz9sHDhQhKLxfQ4No1G9AggADS8ewD9+NZxGt697PsRPQIoM7ns6itl7QfG6vP53WLH97S0tODh4YHg4GCF7cHBwejTp49AUT0ff39/mJmZYcKECbDQIQxsbwHj/n4w6z8BaiLArP8EGPf3g5NmNow1SqCupDcwfOGFF+Dj44PZs2fjvkQEqfMwLPPVwSIfPUCkhkU+eljmq4MHup1xM7WsH5TxjFVPTw+zZs3C6tWrcevcLfjY+cBqrBVsXraBmkgNNi/bwGqsFdx13RF1KgoAlPZ3YsGCBTh16hRW//EH9F70RaC5BWZZWQFqaphlZYVAcwuo9fHExgMHQERK2w8zZ85EcXExAt99Cw6dTDCiRwBe6jEJIhHwUg9/jOgRAPtOxtj4208oLCxU2n5grD5abDEyUHZ5ub+/P37++Wd4enpi/fr12LBhA27cuAFHR8cnPr8+xUxN5dy5cxg8eDAcHR3x+++/Q9+qNf64FI/4jHyUSpIRc2ATTh3cg927d+OVV14ROtxGk5SUhP79+0MikWDjxo0Y1bcTcGUbkBWH5GIdfBeagVXr/8DChQvx+eefCx1uoykpKcHLL7+M4OBgrFixAm/MfAN77uzB49zHMCRDZJ3KwrpV69CzZ0+EhIQoZcJXYcmSJVi2bBkmTJiAjctXIGfvXpQkJIAsLHAMhMXr1kEmk+HKlSuwsLAQOtxG888//+C1115Djx49sGndNmTeI+SkF0DfRBsJBTfw9fcrce3aNZw4caLFnvQx9iT1+vxu7OGlxrZ27VpydHQkLS0teuGFFyg0NPSpn9vcpq4qREZG0uDBgyk5OZmIiCZNmkTm5mXD8507d6b9+/cLHGHTSElJoQkTJtDRo0eJiOibb74hBwcHAkC2tra0evVqpZyyqqq4uJg++OAD+uabb4iI6PTp02RjY0Pq6upkYGBAgYGBlJ+fL3CUTWPjxo00ffp0IiLKzc0le3t70tXVJTU1NRozZgzFx8cLHGHTCAkJoaFDh8oXFh0wYAAZGxsTAOrTp49KrBrOVFt9Pr9b9IjO82qOIzo1+fXXXxEXF4eBAweib9++Sn3WXpfg4GCEhoaiW7duGDVqFDRV5AqbqqKiovD333/Dzs4Or7/+erP+3W1M2dnZ+Oqrr2BsbIzXX38d9vb2QockmG+++Qb5+fkYOXIkunbtKnQ4jDW6+nx+c6LTAhIdxhhjjP2nPp/fLbYYmTHGGGPsSTjRYYwxxpjS4kSHMcYYY0qLEx3GGGOMKS1OdBhjjDGmtDjRYYwxxpjS4kSHMcYYY0qLEx3GGGOMKS1OdBhjjDGmtDjRYYwxxpjS4kSHMcYYY0pLQ+gAhFRxm6/s7GyBI2GMMcbY06r43H6a23WqdKKTk5MDAHBwcBA4EsYYY4zVV05ODsRicZ1tVPru5TKZDI8fP4ahoSFEIpHQ4dQqOzsbDg4OiI+PV+m7rHM/lOF+KMP9UIb74T/cF2VUoR+ICDk5ObC1tYWaWt1VOCo9oqOmpgZ7e3uhw3hqRkZGSvtLWx/cD2W4H8pwP5ThfvgP90UZZe+HJ43kVOBiZMYYY4wpLU50GGOMMaa0ONFpAbS1tbFkyRJoa2sLHYqguB/KcD+U4X4ow/3wH+6LMtwPilS6GJkxxhhjyo1HdBhjjDGmtDjRYYwxxpjS4kSHMcYYY0qLEx3GGGOMKS1OdBhjjDGmtDjRaeZ++uknODk5QUdHBx4eHjh16pTQIT2zVatWoUePHjA0NISlpSVefvll3Lp1S6ENEWHp0qWwtbWFrq4ufHx8cOPGDYU2RUVFCAwMhLm5OfT19TFq1Cg8evRIoU1mZib8/f0hFoshFovh7++PrKysxn6Lz2TVqlUQiUQICgqSb1OlfkhISMDEiRNhZmYGPT09dO3aFZcvX5bvV4W+KC0txSeffAInJyfo6uqiTZs2WLZsGWQymbyNMvZDWFgYRo4cCVtbW4hEIuzbt09hf1O+57i4OIwcORL6+vowNzfH3LlzUVxc3Bhvu5q6+qGkpAQLFy5E586doa+vD1tbW0yaNAmPHz9WeA1l6IdGQ6zZ+v3330lTU5M2bNhA0dHRNG/ePNLX16eHDx8KHdozGTJkCG3evJmuX79OkZGRNHz4cGrVqhXl5ubK23z++edkaGhIf//9N0VFRdHrr79ONjY2lJ2dLW8zc+ZMsrOzo+DgYIqIiCBfX1/q0qULlZaWytsMHTqU3Nzc6OzZs3T27Flyc3OjESNGNOn7fRoXLlyg1q1bk7u7O82bN0++XVX6ISMjgxwdHSkgIIDOnz9PsbGxdOzYMbp79668jSr0xYoVK8jMzIz+/fdfio2Npd27d5OBgQGtWbNG3kYZ++HgwYP08ccf099//00AaO/evQr7m+o9l5aWkpubG/n6+lJERAQFBweTra0tzZkzp9H7gKjufsjKyqKBAwfSH3/8QTdv3qTw8HDq1asXeXh4KLyGMvRDY+FEpxnr2bMnzZw5U2Fb+/bt6YMPPhAoooaVkpJCACg0NJSIiGQyGVlbW9Pnn38ub1NYWEhisZh+/vlnIir7o9fU1KTff/9d3iYhIYHU1NTo8OHDREQUHR1NAOjcuXPyNuHh4QSAbt682RRv7ank5OSQs7MzBQcHk7e3tzzRUaV+WLhwIfXr16/W/arSF8OHD6c333xTYdvYsWNp4sSJRKQa/VD1A74p3/PBgwdJTU2NEhIS5G127dpF2traJJFIGuX91qamhK+qCxcuEAD5Sa8y9kND4qmrZqq4uBiXL1/G4MGDFbYPHjwYZ8+eFSiqhiWRSAAApqamAIDY2FgkJSUpvGdtbW14e3vL3/Ply5dRUlKi0MbW1hZubm7yNuHh4RCLxejVq5e8Te/evSEWi5tV382ePRvDhw/HwIEDFbarUj/873//Q/fu3fHaa6/B0tIS3bp1w4YNG+T7VaUv+vXrh+PHj+P27dsAgKtXr+L06dN46aWXAKhOP1TWlO85PDwcbm5usLW1lbcZMmQIioqKFKZRmwuJRAKRSARjY2MAqtsPT0ul717enKWlpUEqlcLKykphu5WVFZKSkgSKquEQEebPn49+/frBzc0NAOTvq6b3/PDhQ3kbLS0tmJiYVGtT8fykpCRYWlpW+5mWlpbNpu9+//13RERE4OLFi9X2qVI/3L9/H+vWrcP8+fPx0Ucf4cKFC5g7dy60tbUxadIklemLhQsXQiKRoH379lBXV4dUKsVnn32G8ePHA1Ct34kKTfmek5KSqv0cExMTaGlpNbt+KSwsxAcffIAJEybI70yuiv1QH5zoNHMikUjheyKqtq0lmjNnDq5du4bTp09X2/cs77lqm5raN5e+i4+Px7x583D06FHo6OjU2k7Z+wEAZDIZunfvjpUrVwIAunXrhhs3bmDdunWYNGmSvJ2y98Uff/yB7du3Y+fOnejUqRMiIyMRFBQEW1tbTJ48Wd5O2fuhJk31nltCv5SUlOCNN96ATCbDTz/99MT2ytoP9cVTV82Uubk51NXVq2XRKSkp1TLuliYwMBD/+9//EBISAnt7e/l2a2trAKjzPVtbW6O4uBiZmZl1tklOTq72c1NTU5tF312+fBkpKSnw8PCAhoYGNDQ0EBoaiu+//x4aGhryGJW9HwDAxsYGHTt2VNjWoUMHxMXFAVCd34n33nsPH3zwAd544w107twZ/v7+eOedd7Bq1SoAqtMPlTXle7a2tq72czIzM1FSUtJs+qWkpATjxo1DbGwsgoOD5aM5gGr1w7PgRKeZ0tLSgoeHB4KDgxW2BwcHo0+fPgJF9XyICHPmzMGePXtw4sQJODk5Kex3cnKCtbW1wnsuLi5GaGio/D17eHhAU1NToU1iYiKuX78ub+Pp6QmJRIILFy7I25w/fx4SiaRZ9N2AAQMQFRWFyMhI+aN79+7w8/NDZGQk2rRpoxL9AAB9+/attsTA7du34ejoCEB1fify8/OhpqZ4OFZXV5dfXq4q/VBZU75nT09PXL9+HYmJifI2R48ehba2Njw8PBr1fT6NiiTnzp07OHbsGMzMzBT2q0o/PLOmrHxm9VNxefmmTZsoOjqagoKCSF9fnx48eCB0aM9k1qxZJBaL6eTJk5SYmCh/5Ofny9t8/vnnJBaLac+ePRT1//btl1WRKA7juAty/QMWMQgOCjcZ1OALMGhU7GLwDQi2W24wWW0Wi0WrxSoYBYMjGA2iXQQNKoLPph3Wxb1hweHu8fuBSXMYOE848zDMb7lUpVJ5OE5qWZbG47Hm87ny+fzDMcpMJqPpdKrpdKp0Ov1tRokf+X3qSnqdHGazmbxer1qtllarlQaDgYLBoPr9vrPmFbKo1WqKxWLOePlwOFQkEtHHx4ezxsQcjsejbNuWbdvyeDxqt9uybduZJnJrz7/GqguFgubzucbjsSzLcm2s+qscrteryuWyLMvSYrG4Ozsvl4tROTwLReeb63Q6SiQSent7UzabdUax/0cej+fh1ev1nDW3203NZlPRaFQ+n0+5XE7L5fLuOafTSfV6XeFwWIFAQKVSSdvt9m7NbrdTtVpVKBRSKBRStVrVfr93YZf/5s+i80o5jEYjpVIp+Xw+JZNJdbvdu/uvkMXhcFCj0VA8Hpff79f7+7s+Pz/vXmQm5jCZTB6eCbVaTZK7e95sNioWiwoEAgqHw6rX6zqfz8/cvuOrHNbr9V/Pzslk4jzDhBye5Yckuff9CAAAwD38owMAAIxF0QEAAMai6AAAAGNRdAAAgLEoOgAAwFgUHQAAYCyKDgAAMBZFBwAAGIuiAwAAjEXRAQAAxqLoAAAAY/0E3CwVlw7TDhkAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-20-4fed13948551>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 44\u001b[0m plot_comp=plot_comp)\n\u001b[1;32m 45\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 46\u001b[0;31m \u001b[0mcost\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrecorder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mproblem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptimize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/_topfarm.py\u001b[0m in \u001b[0;36moptimize\u001b[0;34m(self, state, disp)\u001b[0m\n\u001b[1;32m 444\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 445\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_driver\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 447\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcleanup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 448\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdisp\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/problem.py\u001b[0m in \u001b[0;36mrun_driver\u001b[0;34m(self, case_prefix, reset_iter_counts)\u001b[0m\n\u001b[1;32m 564\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_clear_iprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 565\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_scaled_context_all\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 566\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 567\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mrun_once\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/drivers/random_search_driver.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0mn_iter\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0msuccess\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mobj_value_x1\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mobj_value_x0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 190\u001b[0;31m \u001b[0mobj_value_x1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuccess\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobjective_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrecord\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 191\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/drivers/random_search_driver.py\u001b[0m in \u001b[0;36mobjective_callback\u001b[0;34m(self, x, record)\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miter_count\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 225\u001b[0;31m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_solve_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 226\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0;31m# Tell the optimizer that this is a bad point.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/group.py\u001b[0m in \u001b[0;36m_solve_nonlinear\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1560\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1561\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mRecording\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'._solve_nonlinear'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miter_count\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1562\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_nonlinear_solver\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msolve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1563\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1564\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_guess_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py\u001b[0m in \u001b[0;36msolve\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0;31m# If this is not a parallel group, transfer for each subsystem just prior to running it.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 40\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_gs_iter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 41\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0mrec\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/solvers/solver.py\u001b[0m in \u001b[0;36m_gs_iter\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 648\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msubsys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mloc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 650\u001b[0;31m \u001b[0msubsys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_solve_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 651\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 652\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_reconf_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubsys\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/explicitcomponent.py\u001b[0m in \u001b[0;36m_solve_nonlinear\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 218\u001b[0m self._discrete_outputs)\n\u001b[1;32m 219\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 220\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_inputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_outputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 221\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_inputs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_only\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/cost_models/electrical/simple_msp.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(self, inputs, outputs)\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 92\u001b[0;31m \u001b[0mXYPlotComp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 93\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhdisplay\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/plotting.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(self, inputs, outputs)\u001b[0m\n\u001b[1;32m 199\u001b[0m \u001b[0mcost0\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcost\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 200\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 201\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_current_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 202\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_title\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcost0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcost\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 203\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegendloc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/cost_models/electrical/simple_msp.py\u001b[0m in \u001b[0;36mplot_current_position\u001b[0;34m(self, x, y)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0melnet_layout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmst\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mindices\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0melnet_layout\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0mXYPlotComp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_current_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m \"\"\"\n\u001b[1;32m 1604\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalize_kwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLine2D\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1605\u001b[0;31m \u001b[0mlines\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1606\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1607\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 314\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 315\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_plot_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 316\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 317\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_next_color\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_plot_args\u001b[0;34m(self, tup, kwargs, return_kwargs)\u001b[0m\n\u001b[1;32m 537\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 539\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ml\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 537\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 539\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ml\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 530\u001b[0m \u001b[0mlabels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mn_datasets\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 531\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 532\u001b[0;31m result = (make_artist(x[:, j % ncx], y[:, j % ncy], kw,\n\u001b[0m\u001b[1;32m 533\u001b[0m {**kwargs, 'label': label})\n\u001b[1;32m 534\u001b[0m for j, label in enumerate(labels))\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_makeline\u001b[0;34m(self, x, y, kw, kwargs)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[0mdefault_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getdefaults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 353\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setdefaults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdefault_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 354\u001b[0;31m \u001b[0mseg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLine2D\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 355\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mseg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 356\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/lines.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, xdata, ydata, linewidth, linestyle, color, marker, markersize, markeredgewidth, markeredgecolor, markerfacecolor, markerfacecoloralt, fillstyle, antialiased, dash_capstyle, solid_capstyle, dash_joinstyle, solid_joinstyle, pickradius, drawstyle, markevery, **kwargs)\u001b[0m\n\u001b[1;32m 395\u001b[0m \u001b[0;31m# update kwargs before updating data to give the caller a\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[0;31m# chance to init axes (and hence unit support)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 397\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 398\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpickradius\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpickradius\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mind_offset\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mupdate\u001b[0;34m(self, props)\u001b[0m\n\u001b[1;32m 1062\u001b[0m raise AttributeError(f\"{type(self).__name__!r} object \"\n\u001b[1;32m 1063\u001b[0m f\"has no property {k!r}\")\n\u001b[0;32m-> 1064\u001b[0;31m \u001b[0mret\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1065\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1066\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpchanged\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mset_label\u001b[0;34m(self, s)\u001b[0m\n\u001b[1;32m 1085\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1086\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_label\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1087\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpchanged\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1088\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstale\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1089\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mpchanged\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 365\u001b[0m \u001b[0mremove_callback\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 366\u001b[0m \"\"\"\n\u001b[0;32m--> 367\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"pchanged\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 368\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 369\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mis_transform_set\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36mprocess\u001b[0;34m(self, s, *args, **kwargs)\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0mcalled\u001b[0m \u001b[0;32mwith\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m \u001b[0;32mand\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 265\u001b[0m \"\"\"\n\u001b[0;32m--> 266\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mcid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mref\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 267\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mref\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], - "source": [ - "## Some user options\n", - "#@markdown Which IRR Cost model to use\n", - "IRR_COST = 'DTU' #@param [\"DTU\", \"NREL\"]\n", - "\n", - "#@markdown Minimum spacing between the turbines\n", - "min_spacing = 2 #@param {type:\"slider\", min:2, max:10, step:1}\n", - "\n", - "#@markdown Minimum spacing between the turbines\n", - "cable_cost_per_meter = 750. #@param {type:\"slider\", min:0, max:10000, step:1}\n", - "\n", - "## Electrical grid cable components (Minimum spanning tree from Topfarm report 2010)\n", - "elnetlength = ElNetLength(n_wt=n_wt)\n", - "elnetcost = ElNetCost(n_wt=n_wt, output_key='electrical_connection_cost', cost_per_meter=cable_cost_per_meter)\n", - "\n", - "# The Topfarm IRR cost model components\n", - "irr_dtu_comp = CostModelComponent(input_keys=[('aep',np.zeros(n_wt)), ('electrical_connection_cost', 0.0)], n_wt=n_wt, \n", - " cost_function=irr_dtu, output_key=\"irr\", output_unit=\"%\", objective=True, \n", - " income_model=True)\n", - "irr_nrel_comp = CostModelComponent(input_keys=[('aep', np.zeros(n_wt)), ('electrical_connection_cost', 0.0)], n_wt=n_wt, \n", - " cost_function=irr_nrel, output_key=\"irr\", output_unit=\"%\", objective=True, \n", - " income_model=True)\n", - "irr_cost_models = {'DTU': irr_dtu_comp, 'NREL': irr_nrel_comp}\n", - "\n", - "\n", - "## The Topfarm AEP component, returns an array of AEP per turbine\n", - "aep_comp = CostModelComponent(input_keys=['x','y'], n_wt=n_wt, cost_function=aep_func, \n", - " output_key=\"aep\", output_unit=\"GWh\", objective=False, output_val=np.zeros(n_wt))\n", - "\n", - "## Plotting component\n", - "plot_comp = XYCablePlotComp(memory=0, plot_improvements_only=False, plot_initial=False)\n", - "\n", - "\n", - "## The group containing all the components\n", - "group = TopFarmGroup([aep_comp, elnetlength, elnetcost, irr_cost_models[IRR_COST]])\n", - "\n", - "problem = TopFarmProblem(\n", - " design_vars={'x':site.initial_position[:,0],\n", - " 'y':site.initial_position[:,1]},\n", - " cost_comp=group,\n", - " driver=EasyRandomSearchDriver(randomize_func=RandomizeTurbinePosition_Circle(), max_iter=100),\n", - " constraints=[SpacingConstraint(min_spacing * windTurbines.diameter(0)),\n", - " XYBoundaryConstraint(site.boundary)],\n", - " expected_cost=1.0,\n", - " plot_comp=plot_comp)\n", - "\n", - "cost, state, recorder = problem.optimize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercises\n", - "- Try to see what is the effect of increasing or decreasing the cost of the cable\n", - "- Change between IRR cost model. Ask Witold about the difference between DTU and NREL models" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "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.9.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/_notebooks/elements/wake_steering_and_loads.ipynb b/_notebooks/elements/wake_steering_and_loads.ipynb deleted file mode 100644 index bb99f5d3..00000000 --- a/_notebooks/elements/wake_steering_and_loads.ipynb +++ /dev/null @@ -1,576 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Load Constrained Wake Steering Optimization" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Nv2ihk66SNgi" - }, - "source": [ - "## Install TopFarm and PyWake" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "executionInfo": { - "elapsed": 67702, - "status": "ok", - "timestamp": 1623612898460, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "HP8XVx4URYcr" - }, - "outputs": [], - "source": [ - "%%capture\n", - "try:\n", - " import py_wake\n", - "except:\n", - " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git\n", - "try:\n", - " import topfarm\n", - "except:\n", - " !pip install topfarm" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TbtAki7QSZG4" - }, - "source": [ - "## Import section" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "executionInfo": { - "elapsed": 4290, - "status": "ok", - "timestamp": 1623612902741, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "5YqUNim5R3JG" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "from numpy import newaxis as na\n", - "import time\n", - "\n", - "from topfarm.cost_models.cost_model_wrappers import AEPMaxLoadCostModelComponent\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "from topfarm import TopFarmProblem\n", - "from topfarm.plotting import NoPlot\n", - "\n", - "from py_wake.examples.data.lillgrund import LillgrundSite\n", - "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian, NiayifarGaussian\n", - "from py_wake.turbulence_models.stf import STF2017TurbulenceModel\n", - "from py_wake.examples.data.iea34_130rwt import IEA34_130_1WT_Surrogate \n", - "from py_wake.deflection_models.jimenez import JimenezWakeDeflection\n", - "from py_wake.superposition_models import MaxSum\n", - "from py_wake.wind_turbines.power_ct_functions import SimpleYawModel" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WjnaXixxSdZL" - }, - "source": [ - "## Select site, turbines, wake model and additional models and set up PyWake objects" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "executionInfo": { - "elapsed": 1395, - "status": "ok", - "timestamp": 1623612904131, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "E-TFCSUSSt5e" - }, - "outputs": [], - "source": [ - "site = LillgrundSite()\n", - "windTurbines = IEA34_130_1WT_Surrogate()\n", - "wfm = IEA37SimpleBastankhahGaussian(site, windTurbines,deflectionModel=JimenezWakeDeflection(), turbulenceModel=STF2017TurbulenceModel(addedTurbulenceSuperpositionModel=MaxSum()))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EL9C3JtZTNU_" - }, - "source": [ - "## Choose flow cases \n", - " (this will determine the speed and accuracy of the simulation). In this example we will focus on only a few flow cases." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "executionInfo": { - "elapsed": 4, - "status": "ok", - "timestamp": 1623612904133, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "DyMkzkpAS2JC" - }, - "outputs": [], - "source": [ - "wsp = np.asarray([10, 15])\n", - "wdir = np.asarray([90])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kC7blGu9h-hR" - }, - "source": [ - "## Constrain loads\n", - " In this example we will calculate nominal loads (without yaw) and use this as a basis for the load constraint." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "executionInfo": { - "elapsed": 1981, - "status": "ok", - "timestamp": 1623612906110, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "hjG7faI1iZBh", - "outputId": "618fbcaa-ac5b-431e-81b2-00005db43238" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:5 out of the last 32 calls to <function Model.make_predict_function.<locals>.predict_function at 0x000001E42258FC10> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", - "WARNING:tensorflow:6 out of the last 34 calls to <function Model.make_predict_function.<locals>.predict_function at 0x000001E420D444C0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n" - ] - } - ], - "source": [ - "x, y = site.initial_position.T\n", - "#keeping only every second turbine as lillegrund turbines are approx. half the size of the iea 3.4MW\n", - "x = x[::2]\n", - "y = y[::2]\n", - "n_wt = x.size\n", - "i = n_wt\n", - "k = wsp.size\n", - "l = wdir.size\n", - "yaw_zero = np.zeros((i, l, k))\n", - "load_fact = 1.02\n", - "simulationResult = wfm(x,y,wd=wdir, ws=wsp, yaw=yaw_zero)\n", - "nom_loads = simulationResult.loads('OneWT')['LDEL'].values\n", - "max_loads = nom_loads * load_fact" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0v7KeHZvinpG" - }, - "source": [ - "## Configure the optimization\n", - " this includes e.g. selection of maximum number of iterations, convergence tolerance, optimizer algorithm and design variable boundaries" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "executionInfo": { - "elapsed": 13, - "status": "ok", - "timestamp": 1623612906112, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "VXXj960rjJt4" - }, - "outputs": [], - "source": [ - "maxiter = 5\n", - "driver = EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter)\n", - "yaw_min, yaw_max = - 40, 40\n", - "yaw_init = np.zeros((i, l, k))\n", - "tol = 1e-8\n", - "ec = 1e-4\n", - "step = 1e-2" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mU8x9QQjjL-H" - }, - "source": [ - "## Setup cost function" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "executionInfo": { - "elapsed": 12, - "status": "ok", - "timestamp": 1623612906113, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "XXOT6g3PjRlY" - }, - "outputs": [], - "source": [ - "def aep_load_func(yaw_ilk):\n", - " simres = wfm(x, y, wd=wdir, ws=wsp, yaw=yaw_ilk)\n", - " aep = simres.aep().sum()\n", - " loads = simres.loads('OneWT')['LDEL'].values\n", - " return aep, loads" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S3Eq4hVNjWai" - }, - "source": [ - "## Setup gradient function\n", - " For some problems it is sufficient to rely on the automatic finite difference calculated by OpenMDAO or you can specify the explicit gradients from your model. In this case we don't have explicit gradients but the automatic finite difference is also inefficient so we do a manual population of the Jacobian" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "executionInfo": { - "elapsed": 11, - "status": "ok", - "timestamp": 1623612906114, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "Ry6CRAZLj4VF" - }, - "outputs": [], - "source": [ - "s = nom_loads.shape[0]\n", - "P_ilk = np.broadcast_to(simulationResult.P.values[na], (i, l, k))\n", - "lifetime = float(60 * 60 * 24 * 365 * 20)\n", - "f1zh = 10.0 ** 7.0\n", - "lifetime_on_f1zh = lifetime / f1zh\n", - "indices = np.arange(i * l * k).reshape((i, l, k))\n", - "\n", - "def aep_load_gradient(yaw_ilk):\n", - " simres0 = wfm(x, y, wd=wdir, ws=wsp, yaw=yaw_ilk)\n", - " aep0 = simres0.aep()\n", - " DEL0 = simulationResult.loads('OneWT')['DEL'].values\n", - " LDEL0 = simulationResult.loads('OneWT')['LDEL'].values\n", - " d_aep_d_yaw = np.zeros(i*l*k)\n", - " d_load_d_yaw = np.zeros((s * i, i * l * k))\n", - " for n in range(n_wt):\n", - " yaw_step = yaw_ilk.copy()\n", - " yaw_step = yaw_step.reshape(i, l, k)\n", - " yaw_step[n, :, :] += step\n", - " simres_fd = wfm(x, y, wd=wdir, ws=wsp, yaw=yaw_step)\n", - " aep_fd = simres_fd.aep()\n", - " d_aep_d_yaw[n * l * k : (n + 1) * l * k] = (((aep_fd.values - aep0.values) / step).sum((0))).ravel()\n", - " \n", - " DEL_fd = simres_fd.loads('OneWT')['DEL'].values\n", - " for _ls in range(s):\n", - " m = simulationResult.loads('OneWT').m.values[_ls]\n", - " for _wd in range(l):\n", - " for _ws in range(k):\n", - " DEL_fd_fc = DEL0.copy()\n", - " DEL_fd_fc[:, :, _wd, _ws] = DEL_fd[:, :, _wd, _ws]\n", - " DEL_fd_fc = DEL_fd_fc[_ls, :, :, :]\n", - " f = DEL_fd_fc.mean()\n", - " LDEL_fd = (((P_ilk * (DEL_fd_fc/f) ** m).sum((1, 2)) * lifetime_on_f1zh) ** (1/m))*f\n", - " d_load_d_yaw[n_wt * _ls : n_wt * (_ls + 1), indices[n, _wd, _ws]] = (LDEL_fd - LDEL0[_ls]) / step\n", - "\n", - " return d_aep_d_yaw, d_load_d_yaw" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TfbCb-z2j6nd" - }, - "source": [ - "## Wrap your pure python cost and gradient functions in a topfarm component" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "executionInfo": { - "elapsed": 12, - "status": "ok", - "timestamp": 1623612906115, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "5nqGrkbukCfd" - }, - "outputs": [], - "source": [ - "cost_comp = AEPMaxLoadCostModelComponent(input_keys=[('yaw_ilk', np.zeros((i, l, k)))],\n", - " n_wt = n_wt,\n", - " aep_load_function = aep_load_func,\n", - " aep_load_gradient = aep_load_gradient,\n", - " max_loads = max_loads, \n", - " objective=True,\n", - " income_model=True,\n", - " output_keys=[('AEP', 0), ('loads', np.zeros((s, i)))]\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uw1IhQi1kDzb" - }, - "source": [ - "## Set up the TopFarm problem" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "executionInfo": { - "elapsed": 11, - "status": "ok", - "timestamp": 1623612906115, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "N_3ydRZdkOFL" - }, - "outputs": [], - "source": [ - "problem = TopFarmProblem(design_vars={'yaw_ilk': (yaw_init, yaw_min, yaw_max)},\n", - " cost_comp=cost_comp,\n", - " driver=EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol),\n", - " plot_comp=NoPlot(),\n", - " expected_cost=ec)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Jt_GXqoHkV_W" - }, - "source": [ - "## Optimize" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "executionInfo": { - "elapsed": 538141, - "status": "ok", - "timestamp": 1623613843204, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "kOQhnRLUSGIz", - "outputId": "6e174217-d355-472b-e3ef-9be7dee337da" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration limit reached (Exit mode 9)\n", - " Current function value: [-738670.14118039]\n", - " Iterations: 5\n", - " Function evaluations: 8\n", - " Gradient evaluations: 5\n", - "Optimization FAILED.\n", - "Iteration limit reached\n", - "-----------------------------------\n" - ] - } - ], - "source": [ - "cost, state, recorder = problem.optimize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plot results\n", - " Try to run the commands below to watch the resulting wake map for different flow cases" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 293 - }, - "executionInfo": { - "elapsed": 10125, - "status": "ok", - "timestamp": 1623613892575, - "user": { - "displayName": "Mikkel Friis-Møller", - "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GiVrnxS0oNYcvEfwYdFjWYAU5G0YxLXELnknXMi=s64", - "userId": "10444369613733539918" - }, - "user_tz": -120 - }, - "id": "miJIu_aMtvwy", - "outputId": "980c94bb-a157-45aa-de6a-6a2322a9dc58" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "<matplotlib.contour.QuadContourSet at 0x1e423f219d0>" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# simulationResult = wfm(x,y,wd=wdir[0], ws=wsp[0], yaw=state['yaw_ilk'][:,0,0])\n", - "# simulationResult.flow_map().plot_wake_map()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ByIaS1WJ7C2T" - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyOvPUxm8Sna0KLEzObl3Sp5", - "name": "WakeSteeringOptimization.ipynb", - "provenance": [] - }, - "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.9.5" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/_notebooks/make_notebooks.py b/_notebooks/make_notebooks.py deleted file mode 100644 index 15b65351..00000000 --- a/_notebooks/make_notebooks.py +++ /dev/null @@ -1,101 +0,0 @@ -import os -import json -import pprint -import shutil -from _notebooks.notebook import Notebook -from topfarm.easy_drivers import EasyDriverBase - - -# def get_cells(nb): -# cells = [] -# for cell in nb['cells']: -# if cell['cell_type'] == 'code' and len(cell['source']) > 0 and '%%include' in cell['source'][0]: -# cells.extend(load_notebook(cell['source'][0].replace('%%include', '').strip())['cells']) -# else: -# cells.append(cell) -# return cells - -# -# def load_notebook(f): -# with open(f) as fid: -# nb = json.load(fid) -# -# nb['cells'] = get_cells(nb) -# return nb -# -# -# def save_notebook(nb, f): -# with open(f, 'w') as fid: -# json.dump(nb, fid, indent=4) -# # fid.write(pprint.pformat(nb)) - - -def make_tutorials(): - path = os.path.dirname(__file__) + "/templates/" - for f in [f for f in os.listdir(path) if f.endswith('.ipynb')]: - nb = Notebook(path + f) - nb.replace_include_tag() - nb.save(os.path.dirname(__file__) + "/../tutorials/" + f) - # with open(os.path.dirname(__file__) + "/../tutorials/" + f, 'w') as fid: - # json.dump(nb, fid) - - -def doc_header(name): - nb = Notebook(os.path.dirname(__file__) + "/elements/doc_setup.ipynb") - nb.cells[0]['source'][0] = nb.cells[0]['source'][0].replace('[name]', name) - return nb.cells - - -def make_doc_notebooks(notebooks): - src_path = os.path.dirname(__file__) + "/elements/" - dst_path = os.path.dirname(__file__) + "/../docs/notebooks/" - if os.path.isdir(dst_path): - try: - shutil.rmtree(dst_path) - - except PermissionError: - pass - os.makedirs(dst_path, exist_ok=True) - for name in notebooks: - nb = Notebook(src_path + name + ".ipynb") - t = '[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/%s.ipynb) (requires google account)' - nb.insert_markdown_cell(1, t % name) - code = """%%capture -# Install Topfarm if needed -import importlib -if not importlib.util.find_spec("topfarm"): - !pip install topfarm -""" - if not name in ['loads', 'wake_steering_and_loads', 'layout_and_loads']: - nb.insert_code_cell(2, code) - nb.save(dst_path + name + ".ipynb") - - -def check_notebooks(notebooks=None): - import matplotlib.pyplot as plt - - def no_show(*args, **kwargs): - pass - plt.show = no_show # disable plt show that requires the user to close the plot - - path = os.path.dirname(__file__) + "/elements/" - if notebooks is None: - notebooks = [f for f in os.listdir(path) if f.endswith('.ipynb')] - else: - notebooks = [f + '.ipynb' for f in notebooks] - for f in notebooks: - nb = Notebook(path + f) - nb.check_code() - nb.check_links() - - -if __name__ == '__main__': - - notebooks = ['constraints', 'cost_models', 'drivers', 'loads', 'problems', - 'roads_and_cables', 'wake_steering_and_loads', 'layout_and_loads', - 'bathymetry',] - notebooks.remove('wake_steering_and_loads') - notebooks.remove('loads') - check_notebooks(notebooks) - make_doc_notebooks(notebooks) - print('Done') diff --git a/_notebooks/notebook.py b/_notebooks/notebook.py deleted file mode 100644 index f9b0d27f..00000000 --- a/_notebooks/notebook.py +++ /dev/null @@ -1,24 +0,0 @@ -from py_wake.tests.notebook import Notebook as PyWakeNotebook -import os -from topfarm.easy_drivers import EasyDriverBase - - -class Notebook(PyWakeNotebook): - pip_header = """# Install TopFarm2 if needed -try: - import topfarm -except ModuleNotFoundError: - !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git""" - - def check_code(self): - try: - EasyDriverBase.max_iter = 1 - return PyWakeNotebook.check_code(self) - finally: - EasyDriverBase.max_iter = None - - -if __name__ == '__main__': - nb = Notebook('elements/v80.ipynb') - nb.check_code() - nb.check_links() diff --git a/docker/Dockerfile_simple b/docker/Dockerfile_simple index bcb943e5..317ca601 100644 --- a/docker/Dockerfile_simple +++ b/docker/Dockerfile_simple @@ -1,7 +1,7 @@ # ================================================================== # Creating a simple docker image for TOPFARM testing and docs # ================================================================== -FROM continuumio/anaconda3:latest +FROM conda/miniconda3:latest MAINTAINER Jenni Rinker <rink@dtu.dk> ENV PATH="/opt/conda/bin:${PATH}" @@ -14,7 +14,8 @@ RUN apt-get update && \ apt-get install make && \ apt-get install libgl1-mesa-glx -y && \ apt-get install gcc gfortran -y && \ - apt-get install -y texlive-latex-extra + apt-get install -y texlive-latex-extra && \ + apt-get install -y git-all # use conda to update itself and install packages not in the @@ -23,16 +24,16 @@ RUN conda update -y conda && \ conda install -y sphinx_rtd_theme && \ conda install -y pytest-cov && \ conda install -y mock && \ + conda install -y shapely && \ conda clean -y --all # install mpi functionality. Note that you might need to increase the memory limit (from the factory default setting) for the docker engine to be able to install these packages. -RUN conda install -c conda-forge openmpi -RUN conda install -c conda-forge petsc4py -RUN conda install -c conda-forge mpi4py +RUN conda install -c conda-forge openmpi && \ + conda install -c conda-forge petsc4py && \ + conda install -c conda-forge mpi4py -# update pip then install openmdao, windio and fused-wake (nocache to save space) +# update pip then install windio and fused-wake (nocache to save space) RUN pip install --upgrade pip && \ - pip install --no-cache-dir openmdao==2.6 && \ pip install --no-cache-dir git+https://github.com/FUSED-Wind/windIO.git && \ pip install --no-cache-dir git+https://gitlab.windenergy.dtu.dk/TOPFARM/FUSED-Wake.git @@ -58,3 +59,6 @@ RUN pip install --upgrade git+https://gitlab.windenergy.dtu.dk/TOPFARM/PlantEner pip install openturns && \ pip install tensorflow +RUN pip install --no-cache-dir openmdao==2.6 && \ + pip install --no-cache-dir scikit-learn + diff --git a/docker/howto_docker.txt b/docker/howto_docker.txt index 298835dd..1244fd76 100644 --- a/docker/howto_docker.txt +++ b/docker/howto_docker.txt @@ -29,7 +29,9 @@ http://127.0.0.1:8888/?token=[token] Push image ---------- docker login -docker push dtuwindenergy/topfarm2 +docker tag dtuwindenergy/topfarm2:<version number> +docker tag dtuwindenergy/topfarm2:latest +docker push --all-tags dtuwindenergy/topfarm2 Docker image with Fuga diff --git a/docs/notebooks/Do_not_add_notebooks_here_manually.txt b/docs/notebooks/Do_not_add_notebooks_here_manually.txt deleted file mode 100644 index b5d956cf..00000000 --- a/docs/notebooks/Do_not_add_notebooks_here_manually.txt +++ /dev/null @@ -1,5 +0,0 @@ -- Add the notebook in Topfarm2/_notebooks/elements -- add the name in list in the bottom of Topfarm2/_notebooks/make_notebooks.py -- run Topfarm2/_notebooks/make_notebooks - -Now a new notebook including "try me on google" is created in Topfarm2/notebooks \ No newline at end of file diff --git a/docs/notebooks/bathymetry.ipynb b/docs/notebooks/bathymetry.ipynb index d640d2f0..0ad4e5ac 100644 --- a/docs/notebooks/bathymetry.ipynb +++ b/docs/notebooks/bathymetry.ipynb @@ -19,7 +19,12 @@ "execution_count": 0, "metadata": {}, "outputs": [], - "source": "%%capture\n# Install Topfarm if needed\nimport importlib\nif not importlib.util.find_spec(\"topfarm\"):\n !pip install topfarm\n" + "source": [ + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" + ] }, { "cell_type": "markdown", @@ -314,15 +319,6 @@ "# problem.model.plot_comp.plot_initial2current(x_init, y_init, state['x'], state['y'])\n", "# ax2.set_title(f'Max Water Depth Boundary: {maximum_water_depth} m')" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rjnIvqaY7jcz" - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/notebooks/constraints.ipynb b/docs/notebooks/constraints.ipynb index f20d440d..dfaf1fb0 100644 --- a/docs/notebooks/constraints.ipynb +++ b/docs/notebooks/constraints.ipynb @@ -1,568 +1,566 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Constraints" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/constraints.ipynb) (requires google account)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": {}, - "outputs": [], - "source": "%%capture\n# Install Topfarm if needed\nimport importlib\nif not importlib.util.find_spec(\"topfarm\"):\n !pip install topfarm\n" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Constraints are the second key element of a an optimization problem formulation. They ensure that the optimization results conforms to feasible / realistic solutions. There are three types of constraints in optimization:\n", - "* Variable bounds - upper and lower boundary values for design variables\n", - "* inequality constraints - constraint function values must be less or more than a given threshold\n", - "* equality constraints - constraint function must be exactly equal to a value (not as commonly used)\n", - "\n", - "This notebook walks through a process to set up typical constraints in Topfarm for wind farm design problems including:\n", - "* boundary constraints - these tell Topfarm within a region where the perimeter of the site is that turbines must be sited within and also any exclusion zones that must be avoided\n", - "* spacing constraints - these tell Topfarm the minimum allowable inter-turbine spacing in the farm" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**First we import supporting libraries in Python numpy and matplotlib**" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "# Import numpy and matplotlib files\n", - "import numpy as np\n", - "%matplotlib inline\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we import and initialize several functions and classes from Topfarm to set up the problem including:**\n", - "* **TopFarmProblem - overall topfarm problem class to which the objectives, design variables, and constraints are added**\n", - "* **XYBoundaryConstraint - for a boundary specified as a series of connected perimeter vertices**\n", - "* **CircleBoundaryConstraint - for a circular boundary with a central location and a radius**\n", - "* **SpacingConstraint - for the inter-turbine spacing distance constraints**\n", - "* **CostModelComponent - a generic class for setting up a problem objective function**\n", - "\n", - "**We also import a helper function to plot**\n", - "\n", - "**For documentation on Topfarm see:**\n", - "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/user_guide.html#" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "# Import topfarm problem, plotting support, constraint classes and generic cost model component\n", - "from topfarm import TopFarmProblem\n", - "from topfarm.plotting import XYPlotComp\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint, CircleBoundaryConstraint\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.cost_models.cost_model_wrappers import CostModelComponent" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Boundary constraints\n", - "\n", - "**Next we are going to demonstrate the use of the XYBoundaryConstraint to set up site boundaries of a variety of types including square, rectangle and an arbitrary polygon. Additionally, a \"convex hull\" example is provided which is a commonly used boundary type for wind farm design optimization problems.**\n", - "\n", - "**(From wikipedia) In mathematics, the convex hull or convex envelope or convex closure of a set X of points in the Euclidean plane or in a Euclidean space (or, more generally, in an affine space over the reals) is the smallest convex set that contains X. For instance, when X is a bounded subset of the plane, the convex hull may be visualized as the shape enclosed by a rubber band stretched around X.**" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "# set up a \"boundary\" arry with arbitrary points for use in the example\n", - "boundary = np.array([(0, 0), (1, 1), (3, 0), (3, 2), (0, 2)])\n", - "\n", - "# set up dummy design variables and cost model component. \n", - "# This example includes 2 turbines (n_wt=2) located at x,y=0.5,0.5 and 1.5,1.5 respectively\n", - "x = [0.5,1.5]\n", - "y = [.5,1.5]\n", - "dummy_cost = CostModelComponent(input_keys=[],\n", - " n_wt=2,\n", - " cost_function=lambda : 1) \n", - "\n", - "# We introduce a simple plotting function so we can quickly plot different types of site boundaries\n", - "def plot_boundary(name, constraint_comp):\n", - " tf = TopFarmProblem(\n", - " design_vars={'x':x, 'y':y}, # setting up our two turbines as design variables\n", - " cost_comp=dummy_cost, # using dummy cost model\n", - " constraints=[constraint_comp], # constraint set up for the boundary type provided\n", - " plot_comp=XYPlotComp()) # support plotting function\n", - " \n", - " plt.figure()\n", - " plt.title(name)\n", - " tf.plot_comp.plot_constraints() # plot constraints is a helper function in topfarm to plot constraints\n", - " plt.plot(boundary[:,0], boundary[:,1],'.r', label='Boundary points') # plot the boundary points\n", - " plt.axis('equal')\n", - " plt.legend() # add the legend\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Now that we have set up our dummy problem, we can illustrate how different boundary types can be created from our boundary vertices**\n", - "\n", - "**First we show a convex hull type as described above. Note that for the convex hull, all boundary points are contained within a convex perimeter but one of the boundary points on the interior is not used.**" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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IqIWOB54IC0bAtwXEQ/1yUjMzCyTLHP8RMQ6YF2HsqUFr68BrulkvReBiR3Lzcxs4Pibu2ZmOePgNzPLGQe/mVnOOPjNzHIm08lds+7s37+f5uZm3n///YHuipXIsGHDGDNmDEOHDh3orlgfcPBbrzU3NzNixAiqq6tJL921MhYR7N27l+bmZsaOHTvQ3bE+4Kke67X333+fUaNGOfSPEJIYNWqUP8EdwRz8VhIO/SOL9+eRzcFvZpYzDn47IlRUVFBTU8PEiROZPHkyTzzxRJ+/Z3V1Na+/PvD3F1q6dCn33ntvt22amppYt25dt20sP3xy1wZGQwPU10NdHUyf3uvNDR8+nKamJgDWr1/PzTffzGOPPdbr7ZbSgQMHqKioKPl2r7322qJtmpqaaGxs5MILLyz5+1v58RG/9b+GBpg1C265JXluaCjp5t9++22OO+44ILlC5YYbbuDMM8/krLPOYs2aNQDU19fzmc985tA6CxcuZMWKFUByJL948WImT57MWWedxY4dOwDYu3cv559/PpMmTeJrX/saEX+8bcTnPvc5zj77bM444wyWLVt2qPzYY49l0aJFTJ06ldtuu41LLrnkUN0jjzzC5z//+T/pf3V1NTfeeCNTpkxhypQp7Ny5E4BXXnmFWbNmMWHCBGbNmsWrr74KwLe//W3uvPNOAOrq6g6t+4lPfILHH3+cffv2sWjRItasWUNNTQ1r1qzhscceo6amhpqaGiZNmsQ777zT67+7lQ8Hv/W/+nrYtw8OHEie6+t7vcn33nuPmpoaTjvtNK655hpuueUWAO6//36ampp49tlnefTRR7nhhht47bXXim5v9OjRPPPMM1x33XWHQvXWW29lxowZ/PKXv+Szn/3soeAFWL58OVu2bKGxsZElS5awd29yS4p3332XM888k6eeeopFixaxfft22u8wd8899zB//vxO3/+jH/0oTz/9NAsXLuSb3/wmkPzndOWVV7J161Yuv/xyvvGNb3S6bltbG08//TQ/+MEPuPXWW6msrOQ73/kOl156KU1NTVx66aXceeed3H333TQ1NfH4448zfPjwjH9pOxI4+K3/1dVBZSVUVCTPdXW93mT7VM+OHTt46KGHuPLKK4kINm3axLx586ioqOD4449n5syZbN68uej22o/Ezz77bF5++WUANm7cyFe+8hUALrrookOf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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Now we use our boundary defined above to plot different types of boundary constraints on the problem\n", - "plot_boundary('convex_hull', XYBoundaryConstraint(boundary, 'convex_hull'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we show a square type of boundary. In this case the maximum distance between the x and y elements of the vertices is used to establish the perimeter.**" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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B+c9/fTTfPWrX/1Y/ZWVldx0001MnDiRiRMnsmXLFgDeeOMNpk6dytixY5k6dSpvvvkmAD/84Q+58847Aairqzu47Oc+9zmee+459u7dy4IFC1i5ciVVVVWsXLmSNWvWUFVVRVVVFdXV1bz77rvd3+Cf4nNplppMjgAiYq2kyk9ocimwPCICeF7SSZJOj4htWfT/iRoaYOpU2LsXBgyA1auhtrakVe7evZuqqir27NnDtm3b+PWvfw3Aww8/TFNTExs3bmT79u2cd955TJky5ZDrGzJkCBs2bOBnP/sZd955J/feey+33norF1xwAQsWLODxxx//yI5+6dKlnHLKKezevZvzzjuPyy+/nMGDB/OXv/yFc889l9tuu42I4Oyzz6alpYWKigp++ctfMnfu3E77P+GEE3jhhRdYvnw5N9xwA4899hjz589nzpw5XHXVVSxdupTvfve7PPLIIx9btq2tjRdeeIFVq1Zx66238swzz3DbbbfR2NjIokWLAPjyl7/MPffcw+TJk3nvvfcYOHBgdzb7p/JcmqWsp94DOAPY2m68uTjtYyTNk9QoqbGlpaX0nuvrCzuMffsKP+vrS17lgVNAmzdv5sknn2TOnDlEBOvWrWPmzJmUlZVx6qmncuGFF/Liiy8ecn0H/jOfMGECr7/+OgBr167lm9/8JgBf+tKXOPHEEw+2v/vuuxk3bhyTJk1i69at/P73vwcK701cfvnlQOHqmtmzZ3P//fezc+dOGhoamD59eqf9z5w58+DPhuJ/1g0NDcyaNQuA2bNns27dusOuvaPJkydz4403cvfdd7Nz50769+/m/x2fwnNplrKeCoDOrvWLzhpGxJKIqImImoqKitJ7rqsr/LdYVlb4WVdX+jrbqa2tZfv27bS0tFA4wPm4/v37s3///oPjHa97P+aYY4DCDrytre3g9M4ukayvr+eZZ56hoaGBjRs3Ul1dfXB9AwcO/Mh5/7lz53L//fezYsUKvv71r3e5423fT1eXZXY1vava27v55pu599572b17N5MmTTp4muuIfcrPpVlqeioAmoEz240PA97qkZ5rawunCv7+7z+VUwabN29m3759DB48mClTprBy5Ur27dtHS0sLa9euZeLEiQwfPpxXXnmFDz74gNbWVlavXn3I9U6ZMoUHHngAgCeeeILW1lYAWltbOfnkkznuuOPY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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('square', XYBoundaryConstraint(boundary, 'square'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Now a rectangle boundary. Here we use the maximum distance on both x and y axes of the boundary coordinates to establish the perimeter.**" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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FQBLly5l8uTJzJgxg507d/KHP/wByL338KUvfQnIXSlzySWX8Ktf/Yq9e/fS2NjIOeecU/D5FyxYcPC2MXlF1NjYyEUXXQTAJZdcwvr161P3vbMzzjiDq6++mqVLl7J3716GDfOsb5b4aFv/mzkT1q4t6Rz/B3c/k1dffZXW1tYPTMfkGzZsGAcOHDj4uPM164cffjiQC+729vaD5YUuc2xoaODhhx+msbGRI444grq6uoP7GzFixAfm9S+77DLOP/98RowYwVe+8pUuAzf/ebq6tLKr8q76nu+6667jvPPOo76+nhkzZvDwww9z8sknF2xrQ4/P+G1gzJwJ119f8tAH2LZtG/v372fMmDGceeaZrF69mv3799Pa2sq6deuYNm0aJ510Elu2bOG9996jra2NtWvXFt3vmWeeycqVKwG47777eP311wFoa2vjqKOO4ogjjmDbtm088cQTXe7juOOO47jjjuOmm27i61//epftOt6LWL16NTOT39FnPvMZVq1aBcDKlSuZNWtWl9t3NmrUqA/M47/wwgucdtppXHvttdTW1h58H8OyIdUZv6S5wD+RW4HrFxHxo071SurPBd4Gvh4RT6fZ1qwUOub4IfeG7i9/+UsqKiq44IILaGxsZPLkyUjixz/+MccccwwAX/3qV5k0aRITJkxgypQpRZ9jyZIlLFiwgKlTpzJ79mxOPPFEAObOncuyZcuYNGkSn/rUp5gxY0a3+7n44otpbW1l4sSJXbZ57733mD59OgcOHOCuu+4CctNJ3/jGN7j55pupqqritttuS/W7ATjrrLP40Y9+RE1NDddffz3r16/nkUceoaKigokTJ3Y55WRDk7p6KXywgVQB/B74LLmF1zcACyJiS16bc4G/JRf804F/iojpabYtpLa2Npqamg55MHXJXHFDCd4stPS2bt3Kpz/96YHuRtlYtGgRU6ZM4Zvf/GbB+urqapqamhg7dmw/9+yDfFz7V2/zS9LGZMnbotJM9UwDtkfEjojYB6wC5nVqMw+4I3KeAD4m6diU25bMxLY2LvrjH0t+eaBZqZx++uls3rz54JvEZh36M7/STPUcD+zMe9xC7qy+WJvjU25bGo2N3NLcTCXw7qxZXD1pEltGj+6Tp7IPWrJkCYcd5reL0rjzzjsBurzaBnIfQNuzZ8/BS0IHyp/+9CeuvPLKAe1DVkxsa+OW5mYOh9xnW9au7ZP3vzqk+WstdOlA5/mhrtqk2Ta3A2mhpCZJTR3XOR+ShgYqyf0nG3bgADVtbYe+D+uRiOjy6hkrTz6m/aumrY3Dyb0RWqrPtnQnzRl/C3BC3uNxwK6UbSpTbAtARCwHlkNujj9Fvz6oro5hI0fCvn0Mq6xk4cqVLOzD/5j2Fy+++CKjRo3yVzMPER3fx3/44Yf7/bL+0vFp9n37SvbZlu6kCf4NwARJ44H/AOYDF3VqswZYJGkVuamctoh4RVJrim1Lo4+vDbeujRs3jpaWFnr0Ss0GpY4VuKyf9HN+FQ3+iGiXtAh4gNwrkRUR8ZykK5L6ZUA9uSt6tpO7nPOy7rbtk5FA7pflwO93w4cP90pNZr3Vj/lV9HLOgdDTyznNzLKq1JdzmpnZEOLgNzPLmEE51ZO8KfxyDzcfCwz8skilMVTGMlTGAR7LYDRUxgG9G8tJEVGVpuGgDP7ekNSUdp5rsBsqYxkq4wCPZTAaKuOA/huLp3rMzDLGwW9mljFDMfiXF29SNobKWIbKOMBjGYyGyjign8Yy5Ob4zcyse0PxjN/MzLrh4Dczy5iyDH5JcyU9L2m7pOsK1EvS0qR+s6SpA9HPNFKMpU5Sm6Tm5GfxQPSzGEkrJO2W9GwX9eV0TIqNpVyOyQmSHpG0VdJzkv6uQJuyOC4px1Iux2WEpKckbUrGcmOBNn17XDq+d7tcfsh92dsLwF+R+9rnTcDETm3OBe4jtx7ADODJge53L8ZSB/xmoPuaYixnAlOBZ7uoL4tjknIs5XJMjgWmJvdHkVsGtVz/VtKMpVyOi4Ajk/vDgSeBGf15XMrxjL83S0EONv26NGVfioh1wGvdNCmXY5JmLGUhIl6JiKeT+28CW8mtipevLI5LyrGUheR3/efk4fDkp/NVNn16XMox+Lta5vFQ2wwGafs5M3lZeJ+kU/qnayVXLsckrbI6JpKqgSnkzi7zld1x6WYsUCbHRVKFpGZgN/BQRPTrcUmzEMtg05ulIAebNP18mtx3cPxZ0rnAr4EJfd6z0iuXY5JGWR0TSUcCdwNXRcQbnasLbDJoj0uRsZTNcYmI/UCNpI8B90o6NSLy31Pq0+NSjmf8vVkKcrAp2s+IeKPjZWFE1APDJY3tvy6WTLkck6LK6ZhIGk4uKFdGxD0FmpTNcSk2lnI6Lh0iYi/QAMztVNWnx6Ucg//gUpCSKskt57imU5s1wKXJO+MzSJaC7O+OplB0LJKOkXIL2UqaRu6Y7en3nvZeuRyTosrlmCR9/Fdga0T8pItmZXFc0oyljI5LVXKmj6SRwF8D2zo169PjUnZTPdGLpSAHm5Rj+TJwpaR24B1gfiRv+w8mku4id1XFWEktwBJyb1qV1TGBVGMpi2MCnAFcAjyTzCcDfBc4EcruuKQZS7kcl2OBX0qqIPfP6d8i4jf9mWH+ygYzs4wpx6keMzPrBQe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxj/j8XvLkpRpmQcAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('rectangle', XYBoundaryConstraint(boundary, 'rectangle'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Now a polygon boundary. This connects all the points in sequence. Note that this results in a nonconvex boundary. Nonconvex functions in optimization problems introduce complexity that can be challenging to handle and often require more sophisticated algorithms and higher computational expense.**" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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pps67LNq1SqWLFnSTSOqTbVUADIV/A79CrJiBVx+ee6+BPr378+qVatYvXo1l19+OXPmzCnJcktp586dZVnurFmzmDFjRod9HPylUwsFIDPB79CvICtWwIknwoUX5u5LFP6t3njjDfbZZx8gd4bKeeedx1FHHcXIkSNZvHgxAMuWLePkk0/eNc/s2bO54YYbgNye/EUXXcSYMWMYOXIk69atA2Dz5s2cdNJJjB49mrPOOouI9y9L8dnPfpaxY8dy5JFHsmDB+1ce3XvvvZk7dy5HH300l112Gaeddtquaffffz+f+9znPjT+4cOHc/755zNu3DjGjRvH+vXrAXjxxRc58cQTGTVqFCeeeCIvvfQSAD/4wQ+44oorAJg4ceKueQ877DAefPBBtm/fzty5c1m8eDENDQ0sXryY3//+9zQ0NNDQ0MDo0aN58803u/x3z5pqLgCZCH6HfoVZtgy2b4edO3P3y5Z1eZHvvPMODQ0NfOxjH+PMM8/kwgsvBOD222/f9U7ggQce4LzzzuPll18uurxBgwbxxBNPcPbZZ+8K1Ysvvphjjz2WP/zhD5xyyim7ghfguuuuY+XKlTQ1NTFv3jw2b85dkuLtt9/mqKOO4tFHH2Xu3LmsXbuW1ivMXX/99ZxxxhkFX//v/u7veOyxx5g9ezbf+ta3gFxxmjFjBk8++STTpk3jm9/8ZsF5d+zYwWOPPcaVV17JxRdfTJ8+fbjkkks4/fTTWbVqFaeffjpXXHEFV199NatWreLBBx+kf//+Kf/S1lY1FoCaD36HfgWaOBH69IG6utz9xIldXmTroZ5169Zxzz33MGPGDCKChx56iKlTp1JXV8eQIUM4/vjjefzxx4sur3VPfOzYsWzYsAGA5cuX85WvfAWAT3/607veVQDMmzeP+vp6xo8fz8aNG/njH/8I5D57+PznPw/kzpSZPn06N998M1u2bGHFihVMnjy54OtPnTp11/2K5B3RihUr+PKXvwzA9OnTeeihh1KPva1jjjmG73znO8ybN48tW7bQq1fmv9LTZdVUAGo6+B36FWrCBFi6FC69NHc/YUKJFz+BV199lZaWlg8cjsnXq1cv/va3v+163vac9b59+wK54N6xY8eu9kKnOS5btowHHniAFStWsHr1akaPHr1ref369aOurm5X3zPOOIObb76ZW265hS9+8YvtBm7+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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('polygon', XYBoundaryConstraint(boundary, 'polygon'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Finally a circular boundary. For this we have to specify the midpoint of the circle and the radius.**" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_boundary('Circle',CircleBoundaryConstraint((1.5,1),1)) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**You can also quickly plot all boundary types using some quick python tricks**" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEICAYAAABYoZ8gAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHHpJREFUeJzt3X+QFeWd7/H3x4ERjIS4MKtR1GFrSRQVBpziR+TKWGws1BhifgkavRItohU2m/WWpeauELPWjRvdVMLqLpfKIvEGgVsbzXJTKCqVEVlHZTAjUcCE+ItZzDKijsaoMPC9f3QPOU5m5jQzZ34c+vOqOnVOP8/TfZ5nuvjQ5+k+pxURmJlZfhw10B0wM7P+5eA3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9+sH0h6WdJf9XDdFZJuS1/XSWoube8sbxz8ZmY54+A3M8sZB7+VBUknS7pfUoukvZLuknSUpL+T9IqkPZLulTQybV8tKST9d0mvSnpd0v9M606U9J6kPyvY/qS0zdB0+auStkt6U9J6Saem5Z9K252cLk+U9Jak0zIMo0bSVkmtktZIGpZu4ypJmzqMNyT9ZUn+eGYdOPht0JNUAfwceAWoBk4CVgNXpY/zgL8AjgXu6rD6DOCTwCxgkaTTI2I30AB8oaDdZcC/RcR+SZ8DvgV8HqgCHgdWAUTEE8D/Bn4saTjwf4C/i4gdGYbyZWA2MBaYkPbdrN85+K0cTAFOBG6IiHcj4v2I2ARcDnw/Il6MiN8DNwNzJQ0pWPfWiHgvIp4FngUmpuX3AfMAJAmYm5YBfA34bkRsj4g24H+RHK2fmtZ/GxgJPA3sBu7OOI4lEbE7It4A/h9Qc3h/BrPScPBbOTgZeCUN4UInknwKaPcKMAQ4vqDsdwWv/0DyqQDg34Dpkk4EzgWC5Mge4FTgh+kUzlvAG4BIPmkQEfuBFcCZwD9G9p+47aovZv3KwW/lYBdwSocjeUiOtk8tWD4FaAP+q9gGI+It4GGS6ZfLgFUFAb4L+FpEfKzgMTyd5kHSScBi4B7gHyUd3YuxAbwLHNO+IOmEXm7PrFsOfisHTwOvAbdL+oikYZLOIZl3/1tJYyUdSzIls6aTTwZduQ+4kmSu/76C8qXAzZLOAJA0UtKX0tciOdr/V+DqtF9/38vxPQucIakmPeH77V5uz6xbDn4b9CLiAHAx8JfAq0AzcCmwnOTk6kbgJeB94K8PY9NrgXHAf6XnANrf7wHgH4DVkt4GngMuSKu/QTKVdEv6CWE+MF/Sf+vF+H4NfAd4FPgNsKn7Ncx6R74Dl5lZvviI38wsZzqeLDOzHpB0CrCti+rxEfFqf/bHrDue6jEzy5lBecQ/evToqK6uHuhumJmVjS1btrweEVVZ2g7K4K+urqaxsXGgu2FmVjYkvVK8VcInd83McsbBb2aWM0WDP/053F+kP1H7vKS/6aSNJC2RtDP92dnJBXWzJb2Q1t1U6gGYmdnhyXLE3wb8j4g4HZgGfF3S+A5tLiD5BuQ4YAHwL3Do53TvTuvHA/M6WdfMzPpR0eCPiNci4pn09TvAdtJfKSwwB7g3Ek8CH5P0cZKf092Z/mzuPpLfUJ9T0hEUamiA7343eTYzKyf9mF+HdVWPpGpgEvBUh6qTSH7RsF1zWtZZ+dTD7WQmDQ20zZyJ9u9n/1FHcf2ECWwbObJP3srMrJTGt7by/a1bqYzgqGHDYMMGmD69z94v88nd9NcPfwp8MyLe7ljdySrRTXln218gqVFSY0tLS9Zu/VF9Pdq/nwpgyMGD1LS2Hv42zMwGQE1rK0MOHuSoCNi3D+rr+/T9Mh3xp/ch/SmwMiLu76RJM8nNMtqNIfmt9Mouyv9ERCwDlgHU1tYe/teJ6+rYf9RRxMGDDBk+nAUrV7KgD//HNDMrmYYG3p8xAw4eZEhlJdTV9enbZbmqRyS/Pb49Ir7fRbO1wJXp1T3TgNaIeA3YDIxLfy+9kuT2dmtL1PcPmz6d6ydMYPnYsX3+McnMrKT6Ob+yHPGfA1wB/EpSU1r2LZK7HRERS4F1wIXATpJbys1P69okLQTWAxXA8oh4vqQjKLBt5Ei2jRzpI30zKzv9mV9Fgz+9qXVnc/WFbQL4ehd160j+YzAzs0HA39w1M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9/MLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4Dczy5mid+CStBz4DLAnIs7spP4G4PKC7Z0OVEXEG5JeBt4BDgBtEVFbqo6bmVnPZDniXwHM7qoyIu6IiJqIqAFuBh6LiDcKmpyX1jv0zcwGgaLBHxEbgTeKtUvNA1b1qkdmZtanSjbHL+kYkk8GPy0oDuBhSVskLSiy/gJJjZIaW1paStUtMzProJQndy8G/qPDNM85ETEZuAD4uqRzu1o5IpZFRG1E1FZVVZWwW2ZmVqiUwT+XDtM8EbE7fd4DPABMKeH7mZlZD5Qk+CWNBGYC/15Q9hFJI9pfA+cDz5Xi/czMrOeyXM65CqgDRktqBhYDQwEiYmna7BLg4Yh4t2DV44EHJLW/z30R8VDpum5mZj1RNPgjYl6GNitILvssLHsRmNjTjpmZWd/wN3fNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZxz8ZmY54+A3M8sZB7+ZWc4UDX5JyyXtkdTpbRMl1UlqldSUPhYV1M2W9IKknZJuKmXHzcysZ7Ic8a8AZhdp83hE1KSP7wBIqgDuBi4AxgPzJI3vTWfNzKz3igZ/RGwE3ujBtqcAOyPixYjYB6wG5vRgO2ZmVkKlmuOfLulZSQ9KOiMtOwnYVdCmOS3rlKQFkholNba0tJSoW2Zm1lEpgv8Z4NSImAj8E/CztFydtI2uNhIRyyKiNiJqq6qqStAtMzPrTK+DPyLejojfp6/XAUMljSY5wj+5oOkYYHdv38/MzHqn18Ev6QRJSl9PSbe5F9gMjJM0VlIlMBdY29v3MzOz3hlSrIGkVUAdMFpSM7AYGAoQEUuBLwLXSWoD3gPmRkQAbZIWAuuBCmB5RDzfJ6MwM7PMigZ/RMwrUn8XcFcXdeuAdT3rmpmZ9QV/c9fMLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZ4oGv6TlkvZIeq6L+sslbU0fT0iaWFD3sqRfSWqS1FjKjpuZWc9kOeJfAczupv4lYGZETAD+HljWof68iKiJiNqeddHMzEopyz13N0qq7qb+iYLFJ4Exve+WmZn1lVLP8V8NPFiwHMDDkrZIWtDdipIWSGqU1NjS0lLibpmZWbuiR/xZSTqPJPhnFBSfExG7Jf058IikHRGxsbP1I2IZ6TRRbW1tlKpfZmb2YSU54pc0AfgRMCci9raXR8Tu9HkP8AAwpRTvZ2ZmPdfr4Jd0CnA/cEVE/Lqg/COSRrS/Bs4HOr0yyMzM+k/RqR5Jq4A6YLSkZmAxMBQgIpYCi4BRwD9LAmhLr+A5HnggLRsC3BcRD/XBGMzM7DBkuapnXpH6a4BrOil/EZj4p2uYmdlA8jd3zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZxz8ZmY54+A3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9/MLGcc/GZmOePgNzPLGQe/mVnOFA1+Scsl7ZHU6W0TlVgiaaekrZImF9TNlvRCWndTKTtuZmY9k+WIfwUwu5v6C4Bx6WMB8C8AkiqAu9P68cA8SeN701krQw0N8N3vJs9mNihkufXiRknV3TSZA9wbEQE8Keljkj4OVAM701swIml12nZbbzttZaKhAWbNgn37oLISNmyA6dMHuldmuVeKOf6TgF0Fy81pWVflnZK0QFKjpMaWlpYSdMsGXH19EvoHDiTP9fUD3SMzozTBr07KopvyTkXEsoiojYjaqqqqEnTLBlxdXXKkX1GRPNfVDXSPzIwMUz0ZNAMnFyyPAXYDlV2UW15Mn55M79TXJ6HvaR6zQaEUwb8WWJjO4U8FWiPiNUktwDhJY4H/BOYCl5Xg/aycTJ/uwDcbZIoGv6RVQB0wWlIzsBgYChARS4F1wIXATuAPwPy0rk3SQmA9UAEsj4jn+2AMZmZ2GLJc1TOvSH0AX++ibh3JfwxmZjZI+Ju7ZmY54+A3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9/MLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnMgW/pNmSXpC0U9JNndTfIKkpfTwn6YCkP0vrXpb0q7SusdQDMDOzw5Pl1osVwN3Ap0lurL5Z0tqI2NbeJiLuAO5I218M/G1EvFGwmfMi4vWS9tzMzHokyxH/FGBnRLwYEfuA1cCcbtrPA1aVonNmZlZ6WYL/JGBXwXJzWvYnJB0DzAZ+WlAcwMOStkha0NWbSFogqVFSY0tLS4ZumZlZT2QJfnVSFl20vRj4jw7TPOdExGTgAuDrks7tbMWIWBYRtRFRW1VVlaFbZmbWE1mCvxk4uWB5DLC7i7Zz6TDNExG70+c9wAMkU0dmZjZAsgT/ZmCcpLGSKknCfW3HRpJGAjOBfy8o+4ikEe2vgfOB50rRcTMz65miV/VERJukhcB6oAJYHhHPS7o2rV+aNr0EeDgi3i1Y/XjgAUnt73VfRDxUygGYmdnhKRr8ABGxDljXoWxph+UVwIoOZS8CE3vVQzMzKyl/c9fMLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZzIFv6TZkl6QtFPSTZ3U10lqldSUPhZlXdfMzPpX0VsvSqoA7gY+DTQDmyWtjYhtHZo+HhGf6eG6ZmbWT7Ic8U8BdkbEixGxD1gNzMm4/d6sa2ZmfSBL8J8E7CpYbk7LOpou6VlJD0o64zDXRdICSY2SGltaWjJ0y8zMeiJL8KuTsuiw/AxwakRMBP4J+NlhrJsURiyLiNqIqK2qqsrQLTMz64kswd8MnFywPAbYXdggIt6OiN+nr9cBQyWNzrKumZn1ryzBvxkYJ2mspEpgLrC2sIGkEyQpfT0l3e7eLOuamVn/KnpVT0S0SVoIrAcqgOUR8byka9P6pcAXgesktQHvAXMjIoBO1+2jsZiZWQZFgx8OTd+s61C2tOD1XcBdWdc1M7OB42/umpnljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZxz8ZmY54+A3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OcyRT8kmZLekHSTkk3dVJ/uaSt6eMJSRML6l6W9CtJTZIaS9l5MzM7fEXvwCWpArgb+DTJzdM3S1obEdsKmr0EzIyINyVdACwDphbUnxcRr5ew32Zm1kNZjvinADsj4sWI2AesBuYUNoiIJyLizXTxSWBMabtpZmalkiX4TwJ2FSw3p2VduRp4sGA5gIclbZG0oKuVJC2Q1CipsaWlJUO3zMysJ7LcbF2dlEWnDaXzSIJ/RkHxORGxW9KfA49I2hERG/9kgxHLSKaIqK2t7XT7ZmbWe1mO+JuBkwuWxwC7OzaSNAH4ETAnIva2l0fE7vR5D/AAydSRmZkNkCzBvxkYJ2mspEpgLrC2sIGkU4D7gSsi4tcF5R+RNKL9NXA+8FypOm9mZoev6FRPRLRJWgisByqA5RHxvKRr0/qlwCJgFPDPkgDaIqIWOB54IC0bAtwXEQ/1yUjMzCyTLHP8RMQ6YF2HsqUFr68BrulkvReBiR3Lzcxs4Pibu2ZmOePgNzPLGQe/mVnOOPjNzHIm08lds+7s37+f5uZm3n///YHuipXIsGHDGDNmDEOHDh3orlgfcPBbrzU3NzNixAiqq6tJL921MhYR7N27l+bmZsaOHTvQ3bE+4Kke67X333+fUaNGOfSPEJIYNWqUP8EdwRz8VhIO/SOL9+eRzcFvZpYzDn47IlRUVFBTU8PEiROZPHkyTzzxRJ+/Z3V1Na+/PvD3F1q6dCn33ntvt22amppYt25dt20sP3xy1wZGQwPU10NdHUyf3uvNDR8+nKamJgDWr1/PzTffzGOPPdbr7ZbSgQMHqKioKPl2r7322qJtmpqaaGxs5MILLyz5+1v58RG/9b+GBpg1C265JXluaCjp5t9++22OO+44ILlC5YYbbuDMM8/krLPOYs2aNQDU19fzmc985tA6CxcuZMWKFUByJL948WImT57MWWedxY4dOwDYu3cv559/PpMmTeJrX/saEX+8bcTnPvc5zj77bM444wyWLVt2qPzYY49l0aJFTJ06ldtuu41LLrnkUN0jjzzC5z//+T/pf3V1NTfeeCNTpkxhypQp7Ny5E4BXXnmFWbNmMWHCBGbNmsWrr74KwLe//W3uvPNOAOrq6g6t+4lPfILHH3+cffv2sWjRItasWUNNTQ1r1qzhscceo6amhpqaGiZNmsQ777zT67+7lQ8Hv/W/+nrYtw8OHEie6+t7vcn33nuPmpoaTjvtNK655hpuueUWAO6//36ampp49tlnefTRR7nhhht47bXXim5v9OjRPPPMM1x33XWHQvXWW29lxowZ/PKXv+Szn/3soeAFWL58OVu2bKGxsZElS5awd29yS4p3332XM888k6eeeopFixaxfft22u8wd8899zB//vxO3/+jH/0oTz/9NAsXLuSb3/wmkPzndOWVV7J161Yuv/xyvvGNb3S6bltbG08//TQ/+MEPuPXWW6msrOQ73/kOl156KU1NTVx66aXceeed3H333TQ1NfH4448zfPjwjH9pOxI4+K3/1dVBZSVUVCTPdXW93mT7VM+OHTt46KGHuPLKK4kINm3axLx586ioqOD4449n5syZbN68uej22o/Ezz77bF5++WUANm7cyFe+8hUALrrookOf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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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B+c9/fTTfPWrX/1Y/ZWVldx0001MnDiRiRMnsmXLFgDeeOMNpk6dytixY5k6dSpvvvkmAD/84Q+58847Aairqzu47Oc+9zmee+459u7dy4IFC1i5ciVVVVWsXLmSNWvWUFVVRVVVFdXV1bz77rvd3+Cf4nNplppMjgAiYq2kyk9ocimwPCICeF7SSZJOj4htWfT/iRoaYOpU2LsXBgyA1auhtrakVe7evZuqqir27NnDtm3b+PWvfw3Aww8/TFNTExs3bmT79u2cd955TJky5ZDrGzJkCBs2bOBnP/sZd955J/feey+33norF1xwAQsWLODxxx//yI5+6dKlnHLKKezevZvzzjuPyy+/nMGDB/OXv/yFc889l9tuu42I4Oyzz6alpYWKigp++ctfMnfu3E77P+GEE3jhhRdYvnw5N9xwA4899hjz589nzpw5XHXVVSxdupTvfve7PPLIIx9btq2tjRdeeIFVq1Zx66238swzz3DbbbfR2NjIokWLAPjyl7/MPffcw+TJk3nvvfcYOHBgdzb7p/JcmqWsp94DOAPY2m68uTjtYyTNk9QoqbGlpaX0nuvrCzuMffsKP+vrS17lgVNAmzdv5sknn2TOnDlEBOvWrWPmzJmUlZVx6qmncuGFF/Liiy8ecn0H/jOfMGECr7/+OgBr167lm9/8JgBf+tKXOPHEEw+2v/vuuxk3bhyTJk1i69at/P73vwcK701cfvnlQOHqmtmzZ3P//fezc+dOGhoamD59eqf9z5w58+DPhuJ/1g0NDcyaNQuA2bNns27dusOuvaPJkydz4403cvfdd7Nz50769+/m/x2fwnNplrKeCoDOrvWLzhpGxJKIqImImoqKitJ7rqsr/LdYVlb4WVdX+jrbqa2tZfv27bS0tFA4wPm4/v37s3///oPjHa97P+aYY4DCDrytre3g9M4ukayvr+eZZ56hoaGBjRs3Ul1dfXB9AwcO/Mh5/7lz53L//fezYsUKvv71r3e5423fT1eXZXY1vava27v55pu599572b17N5MmTTp4muuIfcrPpVlqeioAmoEz240PA97qkZ5rawunCv7+7z+VUwabN29m3759DB48mClTprBy5Ur27dtHS0sLa9euZeLEiQwfPpxXXnmFDz74gNbWVlavXn3I9U6ZMoUHHngAgCeeeILW1lYAWltbOfnkkznuuOPY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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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FQBLly5l8uTJzJgxg507d/KHP/wByL338KUvfQnIXSlzySWX8Ktf/Yq9e/fS2NjIOeecU/D5FyxYcPC2MXlF1NjYyEUXXQTAJZdcwvr161P3vbMzzjiDq6++mqVLl7J3716GDfOsb5b4aFv/mzkT1q4t6Rz/B3c/k1dffZXW1tYPTMfkGzZsGAcOHDj4uPM164cffjiQC+729vaD5YUuc2xoaODhhx+msbGRI444grq6uoP7GzFixAfm9S+77DLOP/98RowYwVe+8pUuAzf/ebq6tLKr8q76nu+6667jvPPOo76+nhkzZvDwww9z8sknF2xrQ4/P+G1gzJwJ119f8tAH2LZtG/v372fMmDGceeaZrF69mv3799Pa2sq6deuYNm0aJ510Elu2bOG9996jra2NtWvXFt3vmWeeycqVKwG47777eP311wFoa2vjqKOO4ogjjmDbtm088cQTXe7juOOO47jjjuOmm27i61//epftOt6LWL16NTOT39FnPvMZVq1aBcDKlSuZNWtWl9t3NmrUqA/M47/wwgucdtppXHvttdTW1h58H8OyIdUZv6S5wD+RW4HrFxHxo071SurPBd4Gvh4RT6fZ1qwUOub4IfeG7i9/+UsqKiq44IILaGxsZPLkyUjixz/+MccccwwAX/3qV5k0aRITJkxgypQpRZ9jyZIlLFiwgKlTpzJ79mxOPPFEAObOncuyZcuYNGkSn/rUp5gxY0a3+7n44otpbW1l4sSJXbZ57733mD59OgcOHOCuu+4CctNJ3/jGN7j55pupqqritttuS/W7ATjrrLP40Y9+RE1NDddffz3r16/nkUceoaKigokTJ3Y55WRDk7p6KXywgVQB/B74LLmF1zcACyJiS16bc4G/JRf804F/iojpabYtpLa2Npqamg55MHXJXHFDCd4stPS2bt3Kpz/96YHuRtlYtGgRU6ZM4Zvf/GbB+urqapqamhg7dmw/9+yDfFz7V2/zS9LGZMnbotJM9UwDtkfEjojYB6wC5nVqMw+4I3KeAD4m6diU25bMxLY2LvrjH0t+eaBZqZx++uls3rz54JvEZh36M7/STPUcD+zMe9xC7qy+WJvjU25bGo2N3NLcTCXw7qxZXD1pEltGj+6Tp7IPWrJkCYcd5reL0rjzzjsBurzaBnIfQNuzZ8/BS0IHyp/+9CeuvPLKAe1DVkxsa+OW5mYOh9xnW9au7ZP3vzqk+WstdOlA5/mhrtqk2Ta3A2mhpCZJTR3XOR+ShgYqyf0nG3bgADVtbYe+D+uRiOjy6hkrTz6m/aumrY3Dyb0RWqrPtnQnzRl/C3BC3uNxwK6UbSpTbAtARCwHlkNujj9Fvz6oro5hI0fCvn0Mq6xk4cqVLOzD/5j2Fy+++CKjRo3yVzMPER3fx3/44Yf7/bL+0vFp9n37SvbZlu6kCf4NwARJ44H/AOYDF3VqswZYJGkVuamctoh4RVJrim1Lo4+vDbeujRs3jpaWFnr0Ss0GpY4VuKyf9HN+FQ3+iGiXtAh4gNwrkRUR8ZykK5L6ZUA9uSt6tpO7nPOy7rbtk5FA7pflwO93w4cP90pNZr3Vj/lV9HLOgdDTyznNzLKq1JdzmpnZEOLgNzPLmEE51ZO8KfxyDzcfCwz8skilMVTGMlTGAR7LYDRUxgG9G8tJEVGVpuGgDP7ekNSUdp5rsBsqYxkq4wCPZTAaKuOA/huLp3rMzDLGwW9mljFDMfiXF29SNobKWIbKOMBjGYyGyjign8Yy5Ob4zcyse0PxjN/MzLrh4Dczy5iyDH5JcyU9L2m7pOsK1EvS0qR+s6SpA9HPNFKMpU5Sm6Tm5GfxQPSzGEkrJO2W9GwX9eV0TIqNpVyOyQmSHpG0VdJzkv6uQJuyOC4px1Iux2WEpKckbUrGcmOBNn17XDq+d7tcfsh92dsLwF+R+9rnTcDETm3OBe4jtx7ADODJge53L8ZSB/xmoPuaYixnAlOBZ7uoL4tjknIs5XJMjgWmJvdHkVsGtVz/VtKMpVyOi4Ajk/vDgSeBGf15XMrxjL83S0EONv26NGVfioh1wGvdNCmXY5JmLGUhIl6JiKeT+28CW8mtipevLI5LyrGUheR3/efk4fDkp/NVNn16XMox+Lta5vFQ2wwGafs5M3lZeJ+kU/qnayVXLsckrbI6JpKqgSnkzi7zld1x6WYsUCbHRVKFpGZgN/BQRPTrcUmzEMtg05ulIAebNP18mtx3cPxZ0rnAr4EJfd6z0iuXY5JGWR0TSUcCdwNXRcQbnasLbDJoj0uRsZTNcYmI/UCNpI8B90o6NSLy31Pq0+NSjmf8vVkKcrAp2s+IeKPjZWFE1APDJY3tvy6WTLkck6LK6ZhIGk4uKFdGxD0FmpTNcSk2lnI6Lh0iYi/QAMztVNWnx6Ucg//gUpCSKskt57imU5s1wKXJO+MzSJaC7O+OplB0LJKOkXIL2UqaRu6Y7en3nvZeuRyTosrlmCR9/Fdga0T8pItmZXFc0oyljI5LVXKmj6SRwF8D2zo169PjUnZTPdGLpSAHm5Rj+TJwpaR24B1gfiRv+w8mku4id1XFWEktwBJyb1qV1TGBVGMpi2MCnAFcAjyTzCcDfBc4EcruuKQZS7kcl2OBX0qqIPfP6d8i4jf9mWH+ygYzs4wpx6keMzPrBQe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxj/j8XvLkpRpmQcAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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pps67LNq1SqWLFnSTSOqTbVUADIV/A79CrJiBVx+ee6+BPr378+qVatYvXo1l19+OXPmzCnJcktp586dZVnurFmzmDFjRod9HPylUwsFIDPB79CvICtWwIknwoUX5u5LFP6t3njjDfbZZx8gd4bKeeedx1FHHcXIkSNZvHgxAMuWLePkk0/eNc/s2bO54YYbgNye/EUXXcSYMWMYOXIk69atA2Dz5s2cdNJJjB49mrPOOouI9y9L8dnPfpaxY8dy5JFHsmDB+1ce3XvvvZk7dy5HH300l112Gaeddtquaffffz+f+9znPjT+4cOHc/755zNu3DjGjRvH+vXrAXjxxRc58cQTGTVqFCeeeCIvvfQSAD/4wQ+44oorAJg4ceKueQ877DAefPBBtm/fzty5c1m8eDENDQ0sXryY3//+9zQ0NNDQ0MDo0aN58803u/x3z5pqLgCZCH6HfoVZtgy2b4edO3P3y5Z1eZHvvPMODQ0NfOxjH+PMM8/kwgsvBOD222/f9U7ggQce4LzzzuPll18uurxBgwbxxBNPcPbZZ+8K1Ysvvphjjz2WP/zhD5xyyim7ghfguuuuY+XKlTQ1NTFv3jw2b85dkuLtt9/mqKOO4tFHH2Xu3LmsXbuW1ivMXX/99ZxxxhkFX//v/u7veOyxx5g9ezbf+ta3gFxxmjFjBk8++STTpk3jm9/8ZsF5d+zYwWOPPcaVV17JxRdfTJ8+fbjkkks4/fTTWbVqFaeffjpXXHEFV199NatWreLBBx+kf//+Kf/S1lY1FoCaD36HfgWaOBH69IG6utz9xIldXmTroZ5169Zxzz33MGPGDCKChx56iKlTp1JXV8eQIUM4/vjjefzxx4sur3VPfOzYsWzYsAGA5cuX85WvfAWAT3/607veVQDMmzeP+vp6xo8fz8aNG/njH/8I5D57+PznPw/kzpSZPn06N998M1u2bGHFihVMnjy54OtPnTp11/2K5B3RihUr+PKXvwzA9OnTeeihh1KPva1jjjmG73znO8ybN48tW7bQq1fmv9LTZdVUAGo6+B36FWrCBFi6FC69NHc/YUKJFz+BV199lZaWlg8cjsnXq1cv/va3v+163vac9b59+wK54N6xY8eu9kKnOS5btowHHniAFStWsHr1akaPHr1ref369aOurm5X3zPOOIObb76ZW265hS9+8YvtBm7+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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# plot all boundary types using our dummy problem and boundaries\n", - "for boundary_type in ['convex_hull','square','rectangle','polygon']:\n", - " plot_boundary(boundary_type, XYBoundaryConstraint(boundary, boundary_type))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise!!\n", - "\n", - "**Now play around with a new set of boundary vertices and construct different perimeters to explore the functionality. See if you can make even more complex polygon shapes.**" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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0aPda2pyn597rrSfL2LYsGE+efJknzhxoh9wwAHe1dXl7u5Lly71k08+2Xfs2OFvvvmmH3bYYb5x40Zfvny5n3766bt/fu7cub5o0SJ3d58wYYIvWLDA3d1vv/12nz17tru7X3bZZX7ttde6u/ujjz7qgPf09Li7++bNm93d/f333/djjz3WN23a5O7ugC9ZssTd3Xft2uUTJ070t956y93dZ82a5Y888she+zJhwgS/7rrr3N39vvvu213nzJkz/d5773V397vvvtvPOOMMd3e/5ppr/KabbnJ39xNPPNGvuOIKd3f/+c9/7m1tbe7uvmjRIp87d+7u95g5c6avWLHC3d3fffdd//DDDz9SQ8l/U4ncSy+95Pvtt5+Tu1my/iYZBnR5yH4casVtZvsCfwf8LJ7/fRTR3p7L6nbujCyzC6KSdevW8cQTT3DBBRfg7qxYsYJZs2ZRU1PDwQcfzIknnsgLL7ww4OsFK+Fp06bx6quvAvDss8/yla98BYDTTz9996oeYMGCBUyePJnjjz+e119/nT/84Q9ALnv/0pe+BOSO1jj//PN54IEH2Lp1K52dnZx66qkUM2vWrN2fO/P/Kuns7OTcc88F4Pzzz2fFiuJ30SpW+55mzJjBFVdcwYIFC9i6dSvDh+vy7WmyZcsWzjzzTMaMGcMRRxxBfX09Rx99dNJlSRmEatzu/r67j3X3t+MuaLfWVhg5Empqcp8jzuyam5vZtGkTPT09H4kzCg0fPpxdu3btfrznccv77JO7OXhNTQ07dvzH/W2LHSrX3t7O008/TWdnJy+++CJTpkzZ/XqjRo36SK598cUX88ADD/Dggw9y9tln99kwC9+nr8Pz+nq+r9oLXXXVVdx1111s27aN448/fnccJMnbuXMn5513HuvXr2fBggX8+c9/5uyzz066LCmT9F6rpLk5l9V997uxZHbr1q1j586djB07lpaWFpYsWcLOnTvp6enh2WefZfr06UyYMIE1a9bwwQcf8Pbbb/PMM88M+LotLS0sXrwYgMcff5wtW7YA8Pbbb3PQQQex7777sm7dOp5//vk+X2PcuHGMGzeO6667josuuqjP7YIsfsmSJTTnfz+f+cxneOihhwBYvHgxn/3sZ0P9PgDGjBnzkRz7j3/8I8cddxxXXnkljY2NatwpMm/ePB5//HEWLFjAm2++iburcVeR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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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3+Soo47ijDPOYOLEibz++uscdthhXH755WQmhxxyCAMDA7S2tnLDDTdw7rnnbnP7++yzD48++ig333wz559/PnfeeSfz5s3j7LPP5pxzzuH666/na1/7Gj/96U/f9dx169bx6KOPctddd3HZZZdx//33c/nll9PX18c111wDwKmnnsoPf/hDZs2axWuvvcb48ePfy699WB5xS82mp6dS2uvXVy57enZodRuHSlasWME999zD2WefTWayZMkS5syZQ0tLC+973/s47rjj+PWvfz3i+jYeCR966KE888wzADz88MN87nOVb9I4+eSTNx3VA1x99dVMnz6dY445hueee47f//73QGXs/YwzzgAqZ2qcddZZ3HLLLbz88sv09vZy4oknbnP7c+bM2XTZO/iKpLe3lzPPPBOAs846iyVLlgyb/cgjj9yUfWuzZs3iggsu4Oqrr+bll19mzJjaHx9b3FKz6eqqHGm3tFQuu7pqturOzk5WrVrFwMDAFsMZmxszZgwbNvz7N0Bvfc7y7rvvDlQ+hLNu3bpN92/rNLmenh7uv/9+ent7eeyxx5gxY8am9Y0fP36Lce1zzz2XW265hVtvvZVPfepTQxbm5tsZ6tS8oe7fmL2lpWWL7Ju76KKLuO6663jzzTc55phjNg0H1ZLFLTWbzs7K8Mg//dMOD5NsbcWKFaxfv56JEycye/ZsFi1axPr16xkYGODhhx9m5syZHHzwwSxbtoy3336bNWvWsHjx4hHXO3v2bBYsWADA3XffzUsvvQTAmjVr2H///dlzzz1ZsWIFjzzyyJDrOPDAAznwwAO54oor+PznPz/kchvH4hctWkTn4O/mox/9KLfddhsACxYs4Nhjj63q9wEwYcKELcaxn376aQ4//HAuvPBCOjo66lLcjnFLzaizs2aFvXGMGypvSN500020tLRw2mmn0dvby/Tp04kIvvOd7/D+978fgE9/+tNMmzaND3/4w8yYMWPEbVx66aXMmTOHI444guOOO46DDjoIgBNOOIFrr72WadOmMWXKFI455phh1/PZz36WgYEBpk6dOuQyb7/9NkcffTQbNmzg1ltvBSrDMV/4whf47ne/u2mMvFof+9jH+Pa3v017ezsXX3wxS5Ys4cEHH6SlpYWpU6cOOWSzI2Kolzs7oqOjI/v6+mq+3hJ1Db5M7dnBcUbtupYvX84h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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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6OzsZNmyZdx55510dnbS2dnJ7Nmzeeqpp3b7eX8xe9xSq+nrg4ULYfNmmDQJVqyA7u5d3t1zzz1HZ2cnmzZt4rHHHuOnP/0pADfffDMDAwPcd999rFu3juOOO44FCxaMur+pU6fyq1/9im984xtcccUVXHPNNVx66aWccMIJXHzxxfzwhz98QUBfe+21vOIVr+C5557juOOO48wzz2TKlCk888wzHH300Vx22WVkJkcddRSDg4O0t7dz3XXXce655w55/IMOOoh77rmH66+/nvPPP59bbrmF8847j3POOYf3v//9XHvttXziE5/gBz/4wUseu2XLFu655x6WL1/OpZdeyu23385ll11Gf38/X/va1wA4/fTT+frXv878+fN5+umnmTx58q487SOyxy21mt7eSmhv3Vq57O3drd1tHypZvXo1t956K+eccw6ZycqVK1m0aBFtbW288pWv5MQTT+SXv/zlqPvb3hM+9thjefjhhwG46667eN/7Kt+kceqpp+7o1QNcddVVzJo1i3nz5rFmzRp+97vfAZWx9zPPPBOozNQ4++yzueGGG9iwYQN9fX2cfPLJQx5/0aJFOy77qq9I+vr6OOusswA4++yzWblyZc21v9j8+fO54IILuOqqq9iwYQMTJtS/f2yPW2o1PT2Vnvb2HndPT9123d3dzbp16xgcHHzBcMbOJkyYwLZt//YN0C+es/yyl70MqATvli1bdtw/1DS53t5ebr/9dvr6+thvv/3o6enZsb/Jkye/YFz73HPP5fTTT2fy5Mm8613vGjYwdz7OcFPzhrt/uNp39pnPfIZTTz2V5cuXM2/ePG6//XZe//rXD9l2V9njllpNd3dleOTzn9/tYZIXW716NVu3bmXKlCksWLCAZcuWsXXrVgYHB7nrrruYO3cuhx9+OA888ADPP/88GzduZMWKFaPud8GCBSxduhSAH/3oR/z5z38GYOPGjRxyyCHst99+rF69mrvvvnvYfRx66KEceuihXH755XzgAx8Ytt32sfhly5bRXX1u3vjGN3LTTTcBsHTpUk444YSang+AAw888AXj2A899BDHHHMMF154IV1dXTvG8evJHrfUirq76xbY28e4ofKG5Le//W3a2to444wz6OvrY9asWUQEX/rSl3jVq14FwLvf/W5mzpzJkUceyezZs0c9xiWXXMKiRYuYM2cO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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Make your own set of vertices - anything you would like!\n", - "boundary = np.array([(0, 0), (2, 1), (4, 7), (1, 1), (0, 2)])\n", - "\n", - "# Then see what types of perimeters they generate\n", - "for boundary_type in ['convex_hull','square','rectangle','polygon']:\n", - " plot_boundary(boundary_type, XYBoundaryConstraint(boundary, boundary_type))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Spacing constraints\n", - "\n", - "The next most common constraint in a wind farm design optimization problem is on the allowable inter-turbine spacing in the farm. Losses due to wakes should ensure that turbines do spread out but a minimum constraint can also help to ensure that turbines do not get placed too close together.\n", - "\n", - "The following provides a simple example of implementation of a minimum spacing constraint." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Implement a minimum spacing constraint example**" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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jfHz8/vN9OIU/mL16lFKlZ/4+HimTJnC119/zcGDB3nttdfK5X0TEhIIDAykadOml3r8lEZmZiaJiYmkpKTQsGFDGjRo4JLtVkTGGE6ePElCQgJXX311ibejH79KuaEVK1YQGhrKVVddxb59+6hSpUq5vXd6ejp16tRxWXH29/enadOmtGjRAmMMIsKFCxf0O4ASEBHq1KlT6r/GtMWvlBv54osvaNKkCT179uSHH36gQYMGVnKURYu8SpUqVKlSBWMMhw8fRkRo2rSpdgUtJlccG23xK+UGUlNTGTNmDPfffz8pKSnUqlXLWtEvayJCs2bNqF69Oj/88AOpqam2I1U4WviVsswYQ79+/fDx8SE2NpYbbrjBdqQyV6lSJYKDg2nevDlVqlQhMzOTrKwsHn/8cd56661Ly918882MGTPm0usnnniCN954g8TERAYPHlys95w/fz7jxo373fSNGzeydevWYu9DfHx8oddGjBkzhh9+cN8hybTwK2WJMYbPPvuM3Nxc1qxZw3/+8x9q1KhhO1a5qlq1Kv7+/qSlpbF//346dux4qQjn5uby66+/sm/fvkvLb926la5duxIcHMynn37qkgwlKfw5OTl/OH/u3LmEhISUJlaZ0sKvlAUZGRncd999PP/885w8eZLatYt1My+3ExUFr7yS91gSderUoXHjxjRo0IDNmzcDsG/fPlq3bk1gYCCnT58mIyOD/fv306FDh9+0tufPn8+dd95J//79adasGRMmTLi03ffff5/mzZvTs2dPtmzZ8rv3jY+PZ/bs2bz55pu0b9+eb7/9lr/+9a+/+VCpXr06kPcB0bt3b+6++27atGkDQHZ2NqNGjaJt27YMHjyY8+fPA9CrVy8udkmvXr06zz77LO3ataNLly4cP34cgOTkZO666y46depEp06dLuXbtGkT7du3p3379nTo0IG0tLSS/aP+AS38SpWz8+fP07dvX06dOsXWrVupX7++7UilEhUFffvCpEl5jyUt/rVr16Zbt274+vpy+PBhtmzZQkREBJ07dyYqKoro6Gjatm1b4JfBu3fvZsmSJXz//fcsWbKEI0eOkJSUxJQpU9iyZQtfffVVgademjZtygMPPMDjjz/O7t276d69+x9m3LFjB1OnTr20rQMHDjB27FhiY2OpUaMGs2bN+t06586do0uXLuzZs4cePXrw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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# set up dummy design variables and cost model component. \n", - "# This example includes 2 turbines (n_wt=2) located at x,y=0.5,0.5 and 1.5,1.5 respectively\n", - "x = [0.5,1.5]\n", - "y = [.5,1.5]\n", - "dummy_cost = CostModelComponent(input_keys=[],\n", - " n_wt=2,\n", - " cost_function=lambda : 1) \n", - "\n", - "# a function to plot a spacing constraint for a Topfarm problem\n", - "def plot_spacing(name, constraint_comp):\n", - " tf = TopFarmProblem(\n", - " design_vars={'x':x, 'y':y}, # setting up our two turbines as design variables\n", - " cost_comp=dummy_cost, # using dummy cost model\n", - " constraints=[constraint_comp], # constraint set up for the boundary type provided\n", - " plot_comp=XYPlotComp()) # support plotting function\n", - " tf.evaluate()\n", - " plt.figure()\n", - " plt.title(name)\n", - " tf.plot_comp.plot_constraints() # plot constraints is a helper function in topfarm to plot constraints\n", - " plt.plot(x,y,'.b', label='Wind turbines') # plot the turbine locations\n", - " plt.axis('equal')\n", - " plt.legend() # add the legend\n", - " plt.ylim([0,2]) \n", - " \n", - "plot_spacing('spacing', SpacingConstraint(1))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise!!\n", - "\n", - "**Play around with the spacing constraint size**" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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dGDr1q0MHDiQnTt3Mnr0aGrVqnVR64yPjycuLq54g5pSV7FixbP7MTY2lmnTptG0aVPee+89Z4OVkLg4CAwEf//c16L+L3ymn//777+nZcuWdOjQgdWrV5/t389P+fLlz7739/cnKysLuLhLHwMCAsjJyQFye0Ty3stRqVKlP7Q9d/35fV+5cuXOTs+bLScnh9WrV5OYmEhiYiK//PILISEhjBo1ismTJ3PixAk6dOjADz/8UOhtKIgV/ouwZcsWWrRowdixYxk5ciTNmjUjODi4yGPmx8bGMmzYsGJKaTxB586d+eabb5g5c+bZ+zE+/fRTDh065HCy4hMTA998A889l/saE1O09cXGxjJv3jyqV69+9rzYoUOHWL16NTGFWPmVV15JfHw8Bw4cIDMzk5kzZ+bbLiQk5A/96I0bNyYhIQGAzz///IJ/rf3888+sdp3YmD59Op06dXI733XXXcebb7559vOZK8R27tzJ5ZdfzsiRI4mOjrbC76SsrCwmT57MqlWraNSoEW+88QZr166lT58+xTL4WXZ2NpGRkVxxxRXFkNZ4mvbt23P77beTnZ3NggULaNKkCU899RRHjpz7aAvvFBMDo0cXvegDXH755fz222906NDhD9OqVKlSqGcw1K1bl2eeeYaYmBi6du1K27Zt8213ww03MHv27LMnd++55x6WLl1K+/btWbt27Z+O8vNq1qwZH3zwAa1ateLgwYPcd999bucbP348GzZsoFWrVjRv3pwJEyYA8Nprr9GyZUtat25NxYoV6dmzp9vrdJu7JwNK88eTTu7m5OToZ599ppGRkRoXF6ebNm0qke9JSEg4e7LKlH27d+/WIUOG6Ouvv66qqqdOnXI40f9X2JO7pvTZyd0SdOjQITIzM/nvf//La6+9xrfffkurVq1K5LvWrl37hyMcU7Y1btyYKVOm8H//93989913hIeHM2XKlAKvDzemOFjhz8fGjRvp3r07d9xxB4GBgcyZM4cePXqU6E1VGzZsICoqqsTWbzzXFVdcwccff8z7779Pq1atzl71YUxJscJ/jmeffZa//OUv3HjjjcV2Z6A7oqKi7IoeHxYbG8uyZct49dVXqV+/PsuXL2fLli2O5VEPHK7d5CqOfWOFn9wTt++//z6nTp3illtuISkpifvvv79UR8W8//77adasWal9n/E8IsJ1111HQEAAe/bs4dprr+Vvf/sbhw8fLtUcFSpU4MCBA1b8PZC6xuOvUKFCkdbj8w9iWblyJSNGjKBq1apMnz7dkZun1q9fzwsvvMCcOXNK/buN59q/fz+jRo1i7969zJs3r9S+157A5dmK4wlc7jxs/X2gF7BPVf80FJ2IPA6ceQp2ANAMCFXVgyKSAmQA2UCWu6FKS1JSErfddhsvv/wyt912m2MDo23YsIEaNWo48t3Gc4WGhvLee+9x8uRJjh07xtChQ/n73/9eYhcYnFGuXLk/Pd3JlC3udPVMBXqcb6aq/kdV26hqG2A0sFRVD+Zpcq1rvkcUfVVlypQpjBs3jsjISHbu3Em/fv0cHQ0zISHBTuya86pQoQIVKlQgLi6Orl27MmrUKDsaN0VSYOFX1WXAwYLaufQHphcpUQlKTU3lL3/5C2+88QZdu3YF/nirt1MCAwMLdUei8T3+/v4MHz6cLVu2sHv3brZt22Z98OaiudXHLyKNgXn5dfXkaRMEpAJNzxzxi8hu4HdAgYmqOsmdUCXVx//QQw9Rs2ZNRo0aVeThFYxx2tNPP01mZiZjxowp8sk+4/2cetj6DcDKc7p5YlW1LdATGCEiV59vYREZJiIbRGTD/v37iy1Uamoqffr04ccff+S1117jqaee8qiin56ezoMPPuh0DOOFRowYQXJyMlFRUaxbt87pOMaLFGfh78c53TyqmuZ63QfMBtqfb2FVnaSq0aoaHRoaWuQwqsoHH3xA27Ztadu2LY0bN/bIp1pt27aN77//3ukYxgvVrl2bzz77jKeffpoFCxYAdv29cU+xDPQsIlWAa4BBeaZVAvxUNcP1/jrg2eL4PnccPnyYadOmsXjxYlq3bl1aX1toycnJREREOB3DeCkROTvO/LZt2xg2bBj//e9/7aocc0EFHvGLyHRgNRApIqkiMlREhovI8DzN+gCLVPVYnmm1gRUisglYB3ypql8VZ/j8JCYmcvfdd1O5cmW++eYbjy76ALt27bLCb4pFs2bN+Otf/8qVV17J//73P6fjGA9WZm7gUlXefvttnnnmGV5//XUGDBhQQumKl6qSlZXlUecdjHdbv349o0ePZt68eXbS14c4dXLXUd9++y3vvfceq1at8pqiD/D++++X6cfymdLXrl07vv76a/z9/RkyZAhJSUlORzIexusLf2JiIjNnzqRLly6sXbuW8PBwpyO5LTMzk/vvv79EnqlpTEBAADExMXTq1IkZM2Y4Hcd4EK8u/DNnzqRbt25nr9bxtu6SX3/9lRo1apTqYHDGd4gI9957L4sXL2bkyJFs3brV6UjGQ3ht4Z8yZQqPP/44ixYtom/fvk7HuSjp6emEhYU5HcOUcW3atGHbtm20aNGCefPm/eH5ssY3eV3hP3r0KPv376dXr16sW7fOq59RGxERcfY5m8aUpIoVKwIwf/58YmJi2LVrl8OJjJO8qvDv3r2bjh07Mm3aNEJDQ6lVq5bTkYokMzPTrrc2peqtt97ivvvuo2PHjpTW0OfG83hN4V+xYgUxMTHcc889PPLII07HKRbjx4/njTfecDqG8SEiwogRI5gxYwbh4eEcP37c6UjGAV5T+FNTU5k2bRoPPvigRw69cDGsj9845eqrr6ZKlSoMGjSIMWPG2FAPPsbjryN899138ff356677nI6SrFLT0935IlfxpzxzjvvcP311/Prr7/y9ttv4+/v73QkUwo89ohfVXnuued48cUXueqqq5yOUyJ69epFy5bnHenamBJXu3Zt4uPjSUlJYc2aNU7HMaXEY4dsGDx4MO+//z4LFiygTp06TkcypkxTVUSETz/9lO7du1O1alWnI5lC8vohG7KysrjjjjuIj48v00U/Ojqa3377zekYxpw9b7ZmzRquvvpq0tLSHE5kSpJHFv69e/dSpUoVqlSp4nSUErVt2zYbRMt4lHHjxtG/f3+uvvpqUlNTnY5jSohHntz1hStdsrOzOXXqFJUqVXI6ijFniQijR4/mkksuse6eMswjj/jLyuWaF3Ly5Emio6N9YluN9+nXrx8BAQH07NnT7vItgzyy8PuCSpUqsXbtWqdjGHNeFSpU4IYbbqBz586kpKQ4HccUIyv8DklLS+OFF15wOoYxF3T//ffz6KOP0r17d06fPu10HFNMrPA7JC0tjVmzZjkdw5gCPfjggyxYsIDAwEBOnjzpdBxTDKzwO8Qet2i8yaWXXsrq1atp3749hw4dcjqOKSJ3Hrb+vojsE5Et55kfJyKHRSTR9fN0nnk9RCRJRHaIyKjiDO7tcnJy8POz37vGe3To0IHOnTvTu3dvTpw44XQcUwTuVJ6pQI8C2ixX1Taun2cBRMQfeAvoCTQH+otI86KELUuioqKsq8d4hNWrYezY3NcLERHGjRtH/fr1GTt2bOmEMyWiwOv4VXWZiDS+iHW3B3ao6i4AEfkEuBHYdhHrKnOOHTvGzz//XKbvTDaeb/Vq6NIFTp+GwED45huIiTl/ez8/P6ZOnUp2djaHDh2iSpUqdkmyFyquvoYYEdkkIgtEpIVrWj1gT542qa5p+RKRYSKyQUQ27N+/v5hiea4tW7bw2GOPOR3D+Lj4+Nyin52d+xofX/AygYGBVKxYkWHDhjFmzJiSjmhKQHEU/o1AI1VtDbwBzHFNz+8w4LwjwqnqJFWNVtXo0NDQYojl2fz8/MjJyXE6hvFxcXG5R/r+/rmvcXHuL/vmm28yffp03nnnnZKKZ0pIkQu/qh5R1aOu9/OBciJSk9wj/AZ5mtYHbOQnFz8/P7Kzs52OYXxcTExu985zzxXczXOuWrVqsXDhQv7973+zb9++kgtpil2Rx+oRkTrAXlVVEWlP7i+TA8AhIFxELgF+AfoBA4r6fWXFpZdeWmYeIWm8W0xM4Qp+Xpdeeinbt2+nYsWKHD16lODg4OINZ0qEO5dzTgdWA5EikioiQ0VkuIgMdzXpC2wRkU3AeKCf5soCHgAWAtuBGaq6tWQ2w/vUqVOHvn37Oh3DmCKrWLEiq1at4sorr+TIkSNOxzFu8NgHsWzYsMHpGCXqp59+onPnzuzcudPpKMYUi/vuu4/U1FTmzJljj3B0gNc/iMUXVKpUye6ANGXK66+/TkZGBpMnT3Y6iimAR47H7wuCg4PJyMhwOoYxxSYwMJA5c+YQFBREVlYWAQFWXjyVHfE7pHz58nTr1o2srCynoxhTbKpWrYqfnx/t2rVj+/btTscx52GF3yEiwpdffmlHRabMCQgIYMSIEdx66602po+HssLvoHvvvZdff/3V6RjGFLuhQ4fSsmVLuzvdQ9nhpoNWrFjB/v37bbweU+aICBMnTrTHNnooO+J3UGhoKL4wLpHxTZUrV6ZNmzaMGjXKLlv2MFb4HVS3bl327t3rdAxjSlRYWBj9+vWzRzd6ELuBy0F2yZvxBapKnz59CA8P5z//+Y/Tccosu4HLS/z444/EuzMOrjFeTESYPHkyVapUwRMPNH2RFX4Hbdy4kYkTJzodw5gSV7NmTZ588knWrl1rl3h6ACv8DgoLCyMtzUaqNr5j/PjxPPXUU07H8HlW+B1Ut25d0tPTnY5hTKkZP348H3/8MatWrXI6ik+zwu+gxo0bM2nSJKdjGFNqatasyZtvvsnzzz/vdBSfZlf1OGzPnj2EhoZSoUIFp6MYU2pOnTpFuXLl8POzY8/iYlf1eJFbb72V9evXOx3DmFJVvnx5unfvTkJCgtNRfJIVfodFRESQnJzsdAxjSl2/fv0YMWIEOTk5TkfxOVb4HRYZGWmF3/ikO++8E4CpU6c6G8QHFXjbqIi8D/QC9qlqy3zmDwRGuj4eBe5T1U2ueSlABpANZLnb/+RLunXrxp49e5yOYUyp8/PzY8KECRw8eNDpKD6nwJO7InI1uQV92nkKf0dgu6r+LiI9gWdU9UrXvBQgWlV/K0woXzq5a4yvO336NEuXLqVbt25OR/FqxXpyV1WXAef9layqq1T1d9fHNUB9t1IaADIzM2nUqBHZ2dlORzHGEUePHmXQoEEkJiY6HcVnFHcf/1BgQZ7PCiwSkQQRGXahBUVkmIhsEJENvjRUcbly5QBISUlxNogxDqlevTrPP/88I0aMsLF8SkmxFX4RuZbcwj8yz+RYVW0L9ARGuLqN8qWqk1Q1WlWjQ0NDiyuWV2jVqpUd7RifNnToUE6dOsXKlSudjuITimVMYBFpBUwGeqrqgTPTVTXN9bpPRGYD7YFlxfGdZUnPnj1trHLj0/z8/Fi6dCmVKlVyOopPKHLhF5GGwCzgdlVNzjO9EuCnqhmu99cBzxb1+8qi+++/3+kIxjiuUqVKfPjhh+Tk5HDHHXc4HadMK7CrR0SmA6uBSBFJFZGhIjJcRIa7mjwN1ADeFpFEETlzOU5tYIWIbALWAV+q6lclsA1e78SJE9xyyy3Wv2l8XmRkJKNHj+b48eNORynTbKweDxEWFsaqVato3Lix01GMcVTfvn1p164dI0eOLLixOcvG6vFCUVFRNm6JMcALL7zAr7/+6nSMMs0Kv4eIjo5mx44dTscwxnGRkZG8+uqrZGRkOB2lzLInfXuIp556yoaoNcbl6NGjRERE8P3331OzZk2n45Q5Vmk8hIjwz3/+k8zMTKejGOO44OBgbrjhBsaPH+90lDLJCr+HEBE+//xzG5vfGJcnnniCd955x7p8SoAVfg8SFxdHfHy80zGM8QhNmzbl1VdftXGsSoAVfg9ihd+YPxo0aBCpqamcPHnS6ShlihV+D3Ldddfx6aefOh3DGI8ycuRIpk2b5nSMMsUKvwepUKECW7duZefOnU5HMcZjjBo1ipdeeomsrCyno5QZVvg9zJw5c5g+fbrTMYzxGFdddRW1atXi888/dzpKmWGF38N07tyZxYsXOx3DGI8ydepUunbt6nSMMsMKv4e59tpr+e677zhw4EDBjY3xEREREWzevJndu3c7HaVMsMLvYSpWrEh8fDwhISFORzHGoyxcuJDXXnvN6RhlghV+DxQZGcnatWudjmGMRxk2bBgffvghx44dczqK17PC74GOHj1K79697alcxuTRsGFDOnXqZJc8FwMbpM0D1a5dm8suu4ylS5fSrVs3p+MY4zEmTZqoGOOiAAAdeElEQVRE9erVnY7h9eyI30P17t2buXPnOh3DGI9Su3ZtFi1axObNm52O4tWs8HuoO+64g6FDhzodwxiPk5iYyMSJE52O4dXceebu+yKyT0S2nGe+iMh4EdkhIptFpG2eeT1EJMk1b1RxBi/r6tWrR82aNdmzZ4/TUYzxKAMGDGDGjBk2hHkRuHPEPxXocYH5PYFw188w4B0AEfEH3nLNbw70F5HmRQnra6ZOncq///1vp2MY41EuueQSIiMjWbJkidNRvFaBhV9VlwEHL9DkRmCa5loDVBWRukB7YIeq7lLV08AnrrbGTQMGDODTTz+1IxtjzjF37ly78KEIiqOPvx6Qtz8i1TXtfNPzJSLDRGSDiGzYv39/McTyfpdeeimRkZEsXLjQ6SjGeJTq1avzxhtvcOTIEaejeKXiKPySzzS9wPR8qeokVY1W1ejQ0NBiiFU2jB8/nrZt2xbc0Bgf88033zB79mynY3il4ij8qUCDPJ/rA2kXmG4KoW3btuzbt88eP2fMOQYNGsSHH37odAyvVByFfy5wh+vqng7AYVVNB9YD4SJyiYgEAv1cbU0hjRkzhlmzZjkdwxiP0qtXL9avX8/vv//udBSv487lnNOB1UCkiKSKyFARGS4iw11N5gO7gB3Au8D9AKqaBTwALAS2AzNUdWsJbEOZN2jQIKZOnep0DGM8SsWKFdm9ezfVqlVzOorXEdXzdrs7Jjo6Wjds2OB0DI9x+vRpGjVqxLfffkuzZs2cjmOMx9i7dy+LFy9m0KBBTkdxnIgkqGq0O23tzl0vEBgYyNy5c2nQoEHBjY3xIX5+fowYMcIexl5IVvi9RLt27Vi9ejVHjx51OooxHiM0NJTLL7+c+Ph4p6N4FSv8XuTtt9/m448/djqGMR7FBjQsPOvj9yKLFy/mscceIzExEZH8bpMwxvccOnQIgKpVqzqcxFnWx19GdenShRMnTrBmzRqnoxjjMapWrWrP4y0kK/xexM/Pj6+++op27do5HcUYjzJjxgw+++wzp2N4DSv8XubSSy9l1qxZpKSkOB3FGI8RFxdnJ3gLwQq/F/ruu+/4z3/+43QMYzxGXFwcK1asICsry+koXsEKvxd6+OGHmT59Onv37nU6ijEeoWbNmixYsMDpGF7DCr8Xql27Nv3792fGjBlORzHGY1x22WXs3LnT6RheIcDpAObivPLKK5QvX97pGMZ4jPj4eCZPnsz8+fOdjuLx7IjfS1WoUIGvvvrKHjptjMvVV1/NypUr7Yl1brDC78UaNGjAmDFjOH78uNNRjHFczZo1adSoEd99953TUTyeFX4v1rJlSzp16sSbb77pdBRjPMJLL71E3bp1nY7h8azwe7nnn3+e7du3Ox3DGI/QvXt3Kleu7HQMj2eF38tddtllTJkyhVOnTjkdxRjHJSQkcM011zgdw+NZ4S8DTpw4wWWXXcYvv/zidBRjHNWyZUuSk5M5ceKE01E8mhX+MqBixYrccsstPPvss05HMcZRFSpUIDIyks2bNzsdxaO5VfhFpIeIJInIDhEZlc/8x0Uk0fWzRUSyRaS6a16KiHzvmmdjLZeQUaNGMWvWLJKTk52OYoyj7rvvPgIDA52O4dEKHI9fRPyBZKAbkAqsB/qr6rbztL8B+JuqdnZ9TgGiVfU3d0PZePwXZ968ebRu3doe0WiMDyru8fjbAztUdZeqngY+AW68QPv+wHR3vtwUr169egGwadMmh5MY45ykpCR69uzpdAyP5k7hrwfsyfM51TXtT0QkCOgB/C/PZAUWiUiCiAw735eIyDAR2SAiG/bv3+9GLJOfdevWMXDgQLt70fis2rVrs2LFCjzx6YKewp3Cn98z/s73X/QGYKWqHswzLVZV2wI9gREicnV+C6rqJFWNVtXo0NBQN2KZ/Nx8882EhYXZTV3GZ1WtWpWgoCDS09OdjuKx3Cn8qUDeTuP6QNp52vbjnG4eVU1zve4DZpPbdWRKiIjwxhtv8MYbb3D69Gmn4xjjiG7dunHgwAGnY3gsd07uBpB7crcL8Au5J3cHqOrWc9pVAXYDDVT1mGtaJcBPVTNc7xcDz6rqVxf6Tju5W3THjx8nKCjI6RjGmFJSrCd3VTULeABYCGwHZqjqVhEZLiLD8zTtAyw6U/RdagMrRGQTsA74sqCib4pHUFAQDzzwAMuWLXM6ijGlbunSpUydOtXpGB7LrfH4VXU+MP+caRPO+TwVmHrOtF1A6yIlNBftmmuuYcSIESQkJNh1zcan/P777/zvf/9jyJAhTkfxSHbnbhnWt29fGjVqxNixY52OYkypioiIsJsZL8AKfxkmIkycOJFatWo5HcWYUtWkSRNSUlLIyclxOopHssJfxtWrV4/77ruPhQsX2lU+xmeUL1+e/fv3I5Lf1ejGCr8PUFXeeOMN6/IxPmXNmjXYzaD5s8LvA850+bz11lskJiY6HceYUvHKK6+QkJDgdAyPZIXfR9SrV4+XXnqJ8ePHOx3FmFJRt25du3v3PNy6nNOUDYMHD2bQoEGcOnWK8uXLOx3HmBIVFhZmhf887Ijfh4gI/v7+xMXFsXjxYqfjGFOiBg0axE033eR0DI9khd/HiAjPP/88gwcP5tdff3U6jjElJiIigjp16jgdwyNZ4fdBXbp04e6772bo0KFORzGmxKxevZrevXs7HcMjWR+/j3r66adJSkpyOoYxJaZy5cpkZGQ4HcMj2RG/jwoICKBFixY89dRTrFixwuk4xhS7kJAQjh496nQMj2SF38d16NCBAQMG2I0upsypUaOGndw9Dyv8Pu4vf/kLgwYNom/fvjakgylTqlSpwrhx45yO4ZGs8Buee+45Bg0ahJ+f/e9gypaYmBh7/nQ+7F+6wd/fn3vuuYfvvvuOadOmOR3HmGKzfft26+fPhxV+c1a1atV4/PHHWbp0qdNRjCkWISEhdmVPPqzwm7OaNm3KRx99RL9+/UhJSXE6jjFF1qhRI06dOuV0DI/jVuEXkR4ikiQiO0RkVD7z40TksIgkun6edndZ41m6du3K2LFj7c9jUyasWLGC8PBwp2N4nAILv4j4A28BPYHmQH8RaZ5P0+Wq2sb182whlzUeZMiQIURGRvLKK69c1JU+q1fD2LG5r8Y4acKECTY0ST7cOeJvD+xQ1V2qehr4BLjRzfUXZVnjIBFh6dKl3HXXXYV6fN3q1dClCzz1VO6rFX/jJCv8+XOn8NcD9uT5nOqadq4YEdkkIgtEpEUhl0VEhonIBhHZYDcTOS8gIIBPPvmElJQUHnvsMVTVreXi4+H0acjOzn2Njy/RmMZckIjYc3fz4U7hz++hledWgY1AI1VtDbwBzCnEsrkTVSeparSqRoeGhroRy5S0oKAg5s6dS716+f6uzldcHAQGgr9/7mtcXInFM6ZAOTk5+Pv7Ox3D47hT+FOBBnk+1wfS8jZQ1SOqetT1fj5QTkRqurOs8WzVq1fn0UcfZeXKlXz00UcFto+JgW++geeey32NiSmFkMacx0cffWQnd/Phzuic64FwEbkE+AXoBwzI20BE6gB7VVVFpD25v1AOAIcKWtZ4hxo1atC3b1+qVavG9ddff8G2MTFW8I1nEBFE8ut48G0FHvGrahbwALAQ2A7MUNWtIjJcRIa7mvUFtojIJmA80E9z5btsSWyIKVnNmjVjzpw5DBkyhG+//dbpOMa45eabb+ann35yOobHEXdP2pWm6Oho3bBhg9MxTD5WrFhBrVq1iIiIcDqKMQWqV68ea9eupX79+k5HKXEikqCq0e60tTt3TaF06tSJiIgIhg8fbkM7GI939OhRgoODnY7hcazwm4tyyy230LdvX+Ltek3jwR599FEr/Pmwrh5z0eLj47n11ltZuXKlXTlhjINUFT8/P+vqMSUvLi6O1atX07RpUw4dOuR0HGP+YN++fbRq1crpGCUuJyeHBx98sFDLWOE3RdKkSRNOnz5NVFSUjeVvPMqRI0c4duyY0zFKVGZmJgMHDmTz5s2FWs4Kvymy8uXL88UXX/DUU0/x8ssvOx3HGAAyMjLKfP++v78/sbGxLFq0qFDLWeE3xaJ58+asXLmSRYsWcfDgQafjGIO/vz9t27Z1OkaJ2LdvH926dSMtLY0HHniAChUqFGp5K/ym2NSvX59FixYREhLCuHHj7OHtxlGtWrViypQpTscodrt27SI2NpbY2NhCjaOVlxV+U+yysrKIj4+nd+/e9kAX45gvv/ySzz77zOkYxSonJ4c+ffrwyCOP8Mwzz1z0cBRW+E2xq1ixIrNmzaJBgwbExsZa8TeOWLZsGT/++KPTMYrNihUrUFWWLVvGfffdV6R1WeE3JSIgIIBJkybx6quvEhwcbP3+ptSlpaURFhbmdIwiy8nJ4dlnn6V///6kpqZSpUqVIq/TCr8pMSJC586dOXHiBG3btmXSpElORzI+JD093esL/+nTp7nttttYsGAB69ato1GjRsWyXneGZTamSCpWrMjixYvp3bs3mzZt4rXXXqNcuXJOxzJl3Jw5cwgMDHQ6xkXLzMykXLly9OzZkwEDBhT6yp0LsSN+UyrCw8NZs2YNp06dsrt8TalYsGCB1z59a/ny5TRv3pxDhw5x1113FWvRByv8phRVqVKFyZMnU6NGDQYMGMCqVaucjmTKqOPHj3P77bfj5+ddJS4nJ4eXX36Zv/71r7z55ptUq1atRL7Hu/6rmDLBz8+Pfv360adPH/7973/bw7BNsduxYwdNmzb1uqdvHThwgOXLl7Nu3Tq6d+9eYt9jhd84onfv3qxfv54vvvjCnuhlil1SUpJXPSxo6dKlDB48mJo1a/L555/TuHHjEv0+O7lrHNOwYUOWLVuGn58f//3vf6lfvz7XXnut07FMGdCuXbtiuwKmJGVnZ/P8888zYcIEpkyZUmp/obh1xC8iPUQkSUR2iMiofOYPFJHNrp9VItI6z7wUEfleRBJFxAbZN39wpg+2bt26DBw4kDFjxpCVleVwKuPtKlWq5BXj9MyfP5/4+HgSEhLo0aNHqX1vgYVfRPyBt4CeQHOgv4g0P6fZbuAaVW0FPAece8H2taraxt2HBBjf07VrVzZu3MjatWsZNepPxxbGFMoNN9zAmjVrnI6RL1Xlgw8+YPr06fTq1Ytvvvmm1O83cKerpz2wQ1V3AYjIJ8CNwLYzDVQ17+UZa4Cy/2RjU+zq1KnDggULOHbsGHv27OGjjz7iscceIyDAeiSN+1SVpKQkIiMjnY7yJ2lpaQwbNozU1NSzXTtOnIB2p6unHrAnz+dU17TzGQosyPNZgUUikiAiwwof0fgSESE4OBg/Pz++/fZbOnTowJYtW5yOZbzIgQMHAKhZs6bDSf7skUceITo6mnXr1nHFFVc4lsOdQ6n8fh3l+6BeEbmW3MLfKc/kWFVNE5FawGIR+UFVl+Wz7DBgGOSe9DO+rV69eixcuJDJkydz44038v333xMUFOR0LOMFsrKyeOyxxzzmUs60tDSeeOIJXnnlFT7++GOPuLfAnQSpQIM8n+sDaec2EpFWwGTgRlU9cGa6qqa5XvcBs8ntOvoTVZ2kqtGqGh0aGur+FpgyS0S455572LZtG0FBQYwaNYrVq1c7Hct4uDp16vCPf/zD6RhkZ2fz1ltv0aZNG5o0aUK1atU8ouiDe4V/PRAuIpeISCDQD5ibt4GINARmAberanKe6ZVEJOTMe+A6wP5uN4VSvnx5VJVWrVrRt29f7rrrLvbt2+d0LOOhRowYwRdffOFohuzsbPbs2XP2PpV//vOfHjVuUIGFX1WzgAeAhcB2YIaqbhWR4SIy3NXsaaAG8PY5l23WBlaIyCZgHfClqn5V7FthyjwRYcCAAWzfvp3q1asza9YsVJXs7GynoxkPEx8fT4MGDQpuWAL27t3LkCFD+Nvf/kbjxo356quvaNmypSNZLkRU8+2ud1R0dLRu2GCX/JsLW7p0KQ899BBvvfUWsbGxTscxHuDYsWPUqlWLQ4cOlfoIsBMnTuTJJ59k8ODBPP3001SuXLlUv19EEty9ZN4zOpyMuQhXX301o0aN4rbbbmPgwIEcPnzY6UjGYenp6dx0002lVvRVlTMHqZUrV2bp0qW8/PLLpV70C8uO+I3Xy8jIYOrUqdx///0kJCTQqFEjateu7XQsU8atXr2aUaNGsX//ftasWeN4sbcjfuNTQkJCePDBB/H392fJkiU0b96cp59+miNHjjgdzZSyF198kbVr15b498yZM4fbbruNwYMHs3nzZseLfmFZ4TdlysiRI0lISOCnn37ijjvuAHL/HDe+YcqUKcX+0JIz9uzZw1133cXChQvp2bMnSUlJ3HXXXV55Z7kVflPmNG7cmA8++IAZM2Zw+vRpoqOjGTduHEePHnU6milBaWlp/Pbbb1x++eXFut4jR44wbNgwWrduTd26dbnyyispX748FStWLNbvKU1W+E2ZFRgYSGBgIO+++y5r1qzhkksuYebMmU7HMiVk06ZNdO7cudhukkpMTGTp0qVUqlSJiIgIkpOTeeGFF6hatWqxrN9JdnLX+Izk5GREhGrVqvHiiy/y8MMPU7++jSdYluTk5BSp8Ksqy5cvZ+zYsWzevJkXX3yR22+/vRgTlhw7uWtMPiIiIggPDwdyC0SrVq248847SUlJcTaYKRbPPvssx48fv6hlMzMz2b59OwATJkygT58+7Nq1y2uKfmHZEb/xWQcOHGDSpEnceuutiAjLly/n1ltv9eq+W1+VmppKmzZt2LdvX6GO+FNTU5k0aRKTJ0/m2muv5aOPPirBlCXLjviNcUONGjUYPXo0TZo04dixY3zyySc0bNiQJ554gv379zsdzxRCfHw811xzjVtFX1VJTs4dUuwf//gHBw8eZPHixV5d9AvL+65DMqYEXH755SxYsICdO3cyceJE/Pz82Lx5Mz/88AM33HCD/RXg4ZYtW0ZcXNwF26SmpjJ9+nQmT55MaGgoy5cv54MPPiidgB7GjviNyaNJkya89NJL1KhRgyNHjvDee+8RFhbGnXfeaSOCerDXX3+dIUOG/Gn64cOHWbhwIQDjx48nOTmZ9957j+XLl3vMeP1OsMJvzHl06tSJhQsXsm3bNlq3bk3lypX58ssveeyxx0hMTLQbwzzEjh07WLZsGSEhIWenffvtt9x66600bNiQ9957j5ycHF566SXeffddOnXq5NNFH6yrx5gC1a1bl4cffhiAZs2asXr1avr06UNgYCDffvstNWrUoFy5cvj7+zuc1Dd9+OGHHDhwgMOHD5OYmMi//vUvfv75Z7p27cqECROoXr260xE9jl3VY8xFyMnJYePGjbRt25bp06fz8MMPc/3119O7d2969uxpj4ksBUeOHKFy5crUrl2bo0ePcs0119C7d2/uvfdenzyiL8xVPXbEb8xF8PPzIzo699/YwIED6dSpE/PmzWPSpEm0atUKgC+++IK4uDhat25tfw0UkyVLlrBw4UIWLFhAYGAgs2fP5tSpU/zyyy9l4o7a0mJ9/MYUg0aNGjFixAgWLlxIeHg4mZmZ7Nixg0GDBhEaGsqSJUs4deoUiYmJ5OTkOB3XKxw7doxFixbx97//nWeeeQaAxYsXU758ed5++23WrFlD3bp12bBhgxX9QrKuHmNK2K+//kqlSpXYu3cvvXr1Yv/+/XTq1IkHH3yQrl278vvvv1OtWjWnYzoqJyeHH3/8kYSEBOrUqcO1115LeHg4YWFhxMXF0aNHDzp27Pin5ebNm0dcXBzBwcEOpPYs1tVjjAepU6cOkPvcgB9++IG0tDSWL19OjRo1yMzMJDw8nKCgIKKioujbty8DBw4kIyOD4ODgMtlXnZWVxc6dO0lISCAqKooaNWrQpEkTqlevTlRUFIMGDUJE+OGHHy445PGRI0cYMGAAqamppZi+bHCr8ItID+B1wB+YrKovnjNfXPOvB44DQ1R1ozvLGuNrwsLCuO22285+3rdvH7t27SIhIYFKlSoB0KtXLxITE4mIiKBdu3a8/fbbJCUlcfz4ccLDw73iCPfAgQNs3bqV5ORkkpOTGT16NAkJCfTq1YuwsDDatm3LpZdeSkREBLt27aJGjRp/WL6gce5nzZpF586dve4hKJ6gwMIvIv7AW0A3IBVYLyJzVXVbnmY9gXDXz5XAO8CVbi5rjE/z8/OjadOmNG3a9Oy0pUuXcuDAAZKTkzlw4ACQe2Lz7bffZseOHYSEhLBx40b279/Pm2++SVhYGHXr1qVr166Eh4fz008/ERwcTEhICIGBgcWWNScnh/3793P48GHS09OpUqUKbdq04ZVXXuG7774jLS0NPz8/vv76ayZPnszcuXOJiIggIiICVeWqq67i0KFDf3pYyrlF3x0ffvgh9957b3Ftmk8psI9fRGKAZ1S1u+vzaABVHZunzUQgXlWnuz4nAXFA44KWzY/18Rtzfjk5OaSnp1OnTh3S09OZP38+aWlppKen079/fzp27EjTpk05evQoGRkZ9OnThxkzZjB48GASEhIICQmhatWqLFiwgM8//5yJEyciIqgqOTk55OTk8MUXX7Bo0SKeeOIJMjIyyMjIYMqUKcTFxXHZZZdRuXJl6tatS9++fXnooYf4+OOPycrKIiwsjHr16tGsWbMS/++QlJREo0aNSuyJW96mMH387hT+vkAPVb3b9fl24EpVfSBPm3nAi6q6wvX5G2AkuYX/gsvmWccwYJjrYySQlGd2TeA3dzbIy5TV7YKyu222Xd6nrG7budvVSFVD3VnQnT7+/M4unfvb4nxt3Fk2d6LqJGBSvgFENrj7m8yblNXtgrK7bbZd3qesbltRtsudwp8KNMjzuT6Q5mabQDeWNcYYU4rcuYFrPRAuIpeISCDQD5h7Tpu5wB2SqwNwWFXT3VzWGGNMKSrwiF9Vs0TkAWAhuZdkvq+qW0VkuGv+BGA+uZdy7iD3cs47L7TsReTMtwuoDCir2wVld9tsu7xPWd22i94uj7xz1xhjTMmxsXqMMcbHWOE3xhgf45GFX0Sqi8hiEfnR9ZrvCFYikiIi34tIooh47B1fItJDRJJEZIeIjMpnvojIeNf8zSLS1omcheXGdsWJyGHX/kkUkaedyFlYIvK+iOwTkS3nme+t+6ug7fLW/dVARJaIyHYR2SoiD+XTxlv3mTvbVvj9pqoe9wO8BIxyvR8F/Ps87VKAmk7nLWBb/IGdwKXkXt66CWh+TpvrgQXk3vfQAVjrdO5i2q44YJ7TWS9i264G2gJbzjPf6/aXm9vlrfurLtDW9T4ESC4L/8YKsW2F3m8eecQP3Ah84Hr/AXCTg1mKqj2wQ1V3qepp4BNyty+vG4FpmmsNUFVE6pZ20EJyZ7u8kqouAw5eoIk37i93tssrqWq6ugaFVNUMYDtQ75xm3rrP3Nm2QvPUwl9bc+8DwPVa6zztFFgkIgmuIR88UT1gT57Pqfx5x7nTxtO4mzlGRDaJyAIRaVE60UqcN+4vd3n1/hKRxsAVwNpzZnn9PrvAtkEh95tj4/GLyNdAnXxm/aMQq4lV1TQRqQUsFpEfXEc1nqQoQ154MncybyR3/JCjInI9MIfcEVy9nTfuL3d49f4SkWDgf8DDqnrk3Nn5LOI1+6yAbSv0fnPsiF9Vu6pqy3x+Pgf2nvkzzPW67zzrSHO97gNmk9v94GmKMuSFJysws6oeUdWjrvfzgXIiUrP0IpYYb9xfBfLm/SUi5cgtjB+p6qx8mnjtPito2y5mv3lqV89cYLDr/WDg83MbiEglEQk58x64Dsj3agWHFWXIC09W4HaJSB2R3EdIiUh7cv9/O1DqSYufN+6vAnnr/nJlfg/YrqrjztPMK/eZO9t2MfvNUx+9+CIwQ0SGAj8DtwCISBi5T/G6HqgNzHZtbwDwsap+5VDe89IiDHnhydzcrr7AfSKSBZwA+qnrMgRPJiLTyb1SoqaIpAJjgHLgvfsL3Nour9xfQCxwO/C9iCS6pv0daAjevc9wb9sKvd9syAZjjPExntrVY4wxpoRY4TfGGB9jhd8YY3yMFX5jjPExVviNMcbHWOE3xhgfY4XfGGN8zP8De0PeW6x1KjsAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plot_spacing('spacing', SpacingConstraint(3))" - ] - }, - { - "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.6.7" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Constraints" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/constraints.ipynb) (requires google account)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": {}, + "outputs": [], + "source": [ + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Constraints are the second key element of a an optimization problem formulation. They ensure that the optimization results conforms to feasible / realistic solutions. There are three types of constraints in optimization:\n", + "* Variable bounds - upper and lower boundary values for design variables\n", + "* inequality constraints - constraint function values must be less or more than a given threshold\n", + "* equality constraints - constraint function must be exactly equal to a value (not as commonly used)\n", + "\n", + "This notebook walks through a process to set up typical constraints in Topfarm for wind farm design problems including:\n", + "* boundary constraints - these tell Topfarm within a region where the perimeter of the site is that turbines must be sited within and also any exclusion zones that must be avoided\n", + "* spacing constraints - these tell Topfarm the minimum allowable inter-turbine spacing in the farm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**First we import supporting libraries in Python numpy and matplotlib**" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Import numpy and matplotlib files\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Next we import and initialize several functions and classes from Topfarm to set up the problem including:**\n", + "* **TopFarmProblem - overall topfarm problem class to which the objectives, design variables, and constraints are added**\n", + "* **XYBoundaryConstraint - for a boundary specified as a series of connected perimeter vertices**\n", + "* **CircleBoundaryConstraint - for a circular boundary with a central location and a radius**\n", + "* **SpacingConstraint - for the inter-turbine spacing distance constraints**\n", + "* **CostModelComponent - a generic class for setting up a problem objective function**\n", + "\n", + "**We also import a helper function to plot**\n", + "\n", + "**For documentation on Topfarm see:**\n", + "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/user_guide.html#" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Import topfarm problem, plotting support, constraint classes and generic cost model component\n", + "from topfarm import TopFarmProblem\n", + "from topfarm.plotting import XYPlotComp\n", + "from topfarm.constraint_components.boundary import XYBoundaryConstraint, CircleBoundaryConstraint\n", + "from topfarm.constraint_components.spacing import SpacingConstraint\n", + "from topfarm.cost_models.cost_model_wrappers import CostModelComponent" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Boundary constraints\n", + "\n", + "**Next we are going to demonstrate the use of the XYBoundaryConstraint to set up site boundaries of a variety of types including square, rectangle and an arbitrary polygon. Additionally, a \"convex hull\" example is provided which is a commonly used boundary type for wind farm design optimization problems.**\n", + "\n", + "**(From wikipedia) In mathematics, the convex hull or convex envelope or convex closure of a set X of points in the Euclidean plane or in a Euclidean space (or, more generally, in an affine space over the reals) is the smallest convex set that contains X. For instance, when X is a bounded subset of the plane, the convex hull may be visualized as the shape enclosed by a rubber band stretched around X.**" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# set up a \"boundary\" arry with arbitrary points for use in the example\n", + "boundary = np.array([(0, 0), (1, 1), (3, 0), (3, 2), (0, 2)])\n", + "\n", + "# set up dummy design variables and cost model component. \n", + "# This example includes 2 turbines (n_wt=2) located at x,y=0.5,0.5 and 1.5,1.5 respectively\n", + "x = [0.5,1.5]\n", + "y = [.5,1.5]\n", + "dummy_cost = CostModelComponent(input_keys=[],\n", + " n_wt=2,\n", + " cost_function=lambda : 1) \n", + "\n", + "# We introduce a simple plotting function so we can quickly plot different types of site boundaries\n", + "def plot_boundary(name, constraint_comp):\n", + " tf = TopFarmProblem(\n", + " design_vars={'x':x, 'y':y}, # setting up our two turbines as design variables\n", + " cost_comp=dummy_cost, # using dummy cost model\n", + " constraints=[constraint_comp], # constraint set up for the boundary type provided\n", + " plot_comp=XYPlotComp()) # support plotting function\n", + " \n", + " plt.figure()\n", + " plt.title(name)\n", + " tf.plot_comp.plot_constraints() # plot constraints is a helper function in topfarm to plot constraints\n", + " plt.plot(boundary[:,0], boundary[:,1],'.r', label='Boundary points') # plot the boundary points\n", + " plt.axis('equal')\n", + " plt.legend() # add the legend\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Now that we have set up our dummy problem, we can illustrate how different boundary types can be created from our boundary vertices**\n", + "\n", + "**First we show a convex hull type as described above. Note that for the convex hull, all boundary points are contained within a convex perimeter but one of the boundary points on the interior is not used.**" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEICAYAAABYoZ8gAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHHpJREFUeJzt3X+QFeWd7/H3x4ERjIS4MKtR1GFrSRQVBpziR+TKWGws1BhifgkavRItohU2m/WWpeauELPWjRvdVMLqLpfKIvEGgVsbzXJTKCqVEVlHZTAjUcCE+ItZzDKijsaoMPC9f3QPOU5m5jQzZ34c+vOqOnVOP8/TfZ5nuvjQ5+k+pxURmJlZfhw10B0wM7P+5eA3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9+sH0h6WdJf9XDdFZJuS1/XSWoube8sbxz8ZmY54+A3M8sZB7+VBUknS7pfUoukvZLuknSUpL+T9IqkPZLulTQybV8tKST9d0mvSnpd0v9M606U9J6kPyvY/qS0zdB0+auStkt6U9J6Saem5Z9K252cLk+U9Jak0zIMo0bSVkmtktZIGpZu4ypJmzqMNyT9ZUn+eGYdOPht0JNUAfwceAWoBk4CVgNXpY/zgL8AjgXu6rD6DOCTwCxgkaTTI2I30AB8oaDdZcC/RcR+SZ8DvgV8HqgCHgdWAUTEE8D/Bn4saTjwf4C/i4gdGYbyZWA2MBaYkPbdrN85+K0cTAFOBG6IiHcj4v2I2ARcDnw/Il6MiN8DNwNzJQ0pWPfWiHgvIp4FngUmpuX3AfMAJAmYm5YBfA34bkRsj4g24H+RHK2fmtZ/GxgJPA3sBu7OOI4lEbE7It4A/h9Qc3h/BrPScPBbOTgZeCUN4UInknwKaPcKMAQ4vqDsdwWv/0DyqQDg34Dpkk4EzgWC5Mge4FTgh+kUzlvAG4BIPmkQEfuBFcCZwD9G9p+47aovZv3KwW/lYBdwSocjeUiOtk8tWD4FaAP+q9gGI+It4GGS6ZfLgFUFAb4L+FpEfKzgMTyd5kHSScBi4B7gHyUd3YuxAbwLHNO+IOmEXm7PrFsOfisHTwOvAbdL+oikYZLOIZl3/1tJYyUdSzIls6aTTwZduQ+4kmSu/76C8qXAzZLOAJA0UtKX0tciOdr/V+DqtF9/38vxPQucIakmPeH77V5uz6xbDn4b9CLiAHAx8JfAq0AzcCmwnOTk6kbgJeB94K8PY9NrgXHAf6XnANrf7wHgH4DVkt4GngMuSKu/QTKVdEv6CWE+MF/Sf+vF+H4NfAd4FPgNsKn7Ncx6R74Dl5lZvviI38wsZzqeLDOzHpB0CrCti+rxEfFqf/bHrDue6jEzy5lBecQ/evToqK6uHuhumJmVjS1btrweEVVZ2g7K4K+urqaxsXGgu2FmVjYkvVK8VcInd83McsbBb2aWM0WDP/053F+kP1H7vKS/6aSNJC2RtDP92dnJBXWzJb2Q1t1U6gGYmdnhyXLE3wb8j4g4HZgGfF3S+A5tLiD5BuQ4YAHwL3Do53TvTuvHA/M6WdfMzPpR0eCPiNci4pn09TvAdtJfKSwwB7g3Ek8CH5P0cZKf092Z/mzuPpLfUJ9T0hEUamiA7343eTYzKyf9mF+HdVWPpGpgEvBUh6qTSH7RsF1zWtZZ+dTD7WQmDQ20zZyJ9u9n/1FHcf2ECWwbObJP3srMrJTGt7by/a1bqYzgqGHDYMMGmD69z94v88nd9NcPfwp8MyLe7ljdySrRTXln218gqVFSY0tLS9Zu/VF9Pdq/nwpgyMGD1LS2Hv42zMwGQE1rK0MOHuSoCNi3D+rr+/T9Mh3xp/ch/SmwMiLu76RJM8nNMtqNIfmt9Mouyv9ERCwDlgHU1tYe/teJ6+rYf9RRxMGDDBk+nAUrV7KgD//HNDMrmYYG3p8xAw4eZEhlJdTV9enbZbmqRyS/Pb49Ir7fRbO1wJXp1T3TgNaIeA3YDIxLfy+9kuT2dmtL1PcPmz6d6ydMYPnYsX3+McnMrKT6Ob+yHPGfA1wB/EpSU1r2LZK7HRERS4F1wIXATpJbys1P69okLQTWAxXA8oh4vqQjKLBt5Ei2jRzpI30zKzv9mV9Fgz+9qXVnc/WFbQL4ehd160j+YzAzs0HA39w1M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9/MLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4Dczy5mid+CStBz4DLAnIs7spP4G4PKC7Z0OVEXEG5JeBt4BDgBtEVFbqo6bmVnPZDniXwHM7qoyIu6IiJqIqAFuBh6LiDcKmpyX1jv0zcwGgaLBHxEbgTeKtUvNA1b1qkdmZtanSjbHL+kYkk8GPy0oDuBhSVskLSiy/gJJjZIaW1paStUtMzProJQndy8G/qPDNM85ETEZuAD4uqRzu1o5IpZFRG1E1FZVVZWwW2ZmVqiUwT+XDtM8EbE7fd4DPABMKeH7mZlZD5Qk+CWNBGYC/15Q9hFJI9pfA+cDz5Xi/czMrOeyXM65CqgDRktqBhYDQwEiYmna7BLg4Yh4t2DV44EHJLW/z30R8VDpum5mZj1RNPgjYl6GNitILvssLHsRmNjTjpmZWd/wN3fNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZxz8ZmY54+A3M8sZB7+ZWc4UDX5JyyXtkdTpbRMl1UlqldSUPhYV1M2W9IKknZJuKmXHzcysZ7Ic8a8AZhdp83hE1KSP7wBIqgDuBi4AxgPzJI3vTWfNzKz3igZ/RGwE3ujBtqcAOyPixYjYB6wG5vRgO2ZmVkKlmuOfLulZSQ9KOiMtOwnYVdCmOS3rlKQFkholNba0tJSoW2Zm1lEpgv8Z4NSImAj8E/CztFydtI2uNhIRyyKiNiJqq6qqStAtMzPrTK+DPyLejojfp6/XAUMljSY5wj+5oOkYYHdv38/MzHqn18Ev6QRJSl9PSbe5F9gMjJM0VlIlMBdY29v3MzOz3hlSrIGkVUAdMFpSM7AYGAoQEUuBLwLXSWoD3gPmRkQAbZIWAuuBCmB5RDzfJ6MwM7PMigZ/RMwrUn8XcFcXdeuAdT3rmpmZ9QV/c9fMLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZ4oGv6TlkvZIeq6L+sslbU0fT0iaWFD3sqRfSWqS1FjKjpuZWc9kOeJfAczupv4lYGZETAD+HljWof68iKiJiNqeddHMzEopyz13N0qq7qb+iYLFJ4Exve+WmZn1lVLP8V8NPFiwHMDDkrZIWtDdipIWSGqU1NjS0lLibpmZWbuiR/xZSTqPJPhnFBSfExG7Jf058IikHRGxsbP1I2IZ6TRRbW1tlKpfZmb2YSU54pc0AfgRMCci9raXR8Tu9HkP8AAwpRTvZ2ZmPdfr4Jd0CnA/cEVE/Lqg/COSRrS/Bs4HOr0yyMzM+k/RqR5Jq4A6YLSkZmAxMBQgIpYCi4BRwD9LAmhLr+A5HnggLRsC3BcRD/XBGMzM7DBkuapnXpH6a4BrOil/EZj4p2uYmdlA8jd3zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZxz8ZmY54+A3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9/MLGcc/GZmOePgNzPLGQe/mVnOFA1+Scsl7ZHU6W0TlVgiaaekrZImF9TNlvRCWndTKTtuZmY9k+WIfwUwu5v6C4Bx6WMB8C8AkiqAu9P68cA8SeN701krQw0N8N3vJs9mNihkufXiRknV3TSZA9wbEQE8Keljkj4OVAM701swIml12nZbbzttZaKhAWbNgn37oLISNmyA6dMHuldmuVeKOf6TgF0Fy81pWVflnZK0QFKjpMaWlpYSdMsGXH19EvoHDiTP9fUD3SMzozTBr07KopvyTkXEsoiojYjaqqqqEnTLBlxdXXKkX1GRPNfVDXSPzIwMUz0ZNAMnFyyPAXYDlV2UW15Mn55M79TXJ6HvaR6zQaEUwb8WWJjO4U8FWiPiNUktwDhJY4H/BOYCl5Xg/aycTJ/uwDcbZIoGv6RVQB0wWlIzsBgYChARS4F1wIXATuAPwPy0rk3SQmA9UAEsj4jn+2AMZmZ2GLJc1TOvSH0AX++ibh3JfwxmZjZI+Ju7ZmY54+A3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OccfCbmeWMg9/MLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnMgW/pNmSXpC0U9JNndTfIKkpfTwn6YCkP0vrXpb0q7SusdQDMDOzw5Pl1osVwN3Ap0lurL5Z0tqI2NbeJiLuAO5I218M/G1EvFGwmfMi4vWS9tzMzHokyxH/FGBnRLwYEfuA1cCcbtrPA1aVonNmZlZ6WYL/JGBXwXJzWvYnJB0DzAZ+WlAcwMOStkha0NWbSFogqVFSY0tLS4ZumZlZT2QJfnVSFl20vRj4jw7TPOdExGTgAuDrks7tbMWIWBYRtRFRW1VVlaFbZmbWE1mCvxk4uWB5DLC7i7Zz6TDNExG70+c9wAMkU0dmZjZAsgT/ZmCcpLGSKknCfW3HRpJGAjOBfy8o+4ikEe2vgfOB50rRcTMz65miV/VERJukhcB6oAJYHhHPS7o2rV+aNr0EeDgi3i1Y/XjgAUnt73VfRDxUygGYmdnhKRr8ABGxDljXoWxph+UVwIoOZS8CE3vVQzMzKyl/c9fMLGcc/GZmOePgNzPLGQe/mVnOOPjNzHLGwW9mljMOfjOznHHwm5nljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZzIFv6TZkl6QtFPSTZ3U10lqldSUPhZlXdfMzPpX0VsvSqoA7gY+DTQDmyWtjYhtHZo+HhGf6eG6ZmbWT7Ic8U8BdkbEixGxD1gNzMm4/d6sa2ZmfSBL8J8E7CpYbk7LOpou6VlJD0o64zDXRdICSY2SGltaWjJ0y8zMeiJL8KuTsuiw/AxwakRMBP4J+NlhrJsURiyLiNqIqK2qqsrQLTMz64kswd8MnFywPAbYXdggIt6OiN+nr9cBQyWNzrKumZn1ryzBvxkYJ2mspEpgLrC2sIGkEyQpfT0l3e7eLOuamVn/KnpVT0S0SVoIrAcqgOUR8byka9P6pcAXgesktQHvAXMjIoBO1+2jsZiZWQZFgx8OTd+s61C2tOD1XcBdWdc1M7OB42/umpnljIPfzCxnHPxmZjnj4DczyxkHv5lZzjj4zcxyxsFvZpYzDn4zs5xx8JuZ5YyD38wsZxz8ZmY54+A3M8sZB7+ZWc44+M3McsbBb2aWMw5+M7OcyRT8kmZLekHSTkk3dVJ/uaSt6eMJSRML6l6W9CtJTZIaS9l5MzM7fEXvwCWpArgb+DTJzdM3S1obEdsKmr0EzIyINyVdACwDphbUnxcRr5ew32Zm1kNZjvinADsj4sWI2AesBuYUNoiIJyLizXTxSWBMabtpZmalkiX4TwJ2FSw3p2VduRp4sGA5gIclbZG0oKuVJC2Q1CipsaWlJUO3zMysJ7LcbF2dlEWnDaXzSIJ/RkHxORGxW9KfA49I2hERG/9kgxHLSKaIqK2t7XT7ZmbWe1mO+JuBkwuWxwC7OzaSNAH4ETAnIva2l0fE7vR5D/AAydSRmZkNkCzBvxkYJ2mspEpgLrC2sIGkU4D7gSsi4tcF5R+RNKL9NXA+8FypOm9mZoev6FRPRLRJWgisByqA5RHxvKRr0/qlwCJgFPDPkgDaIqIWOB54IC0bAtwXEQ/1yUjMzCyTLHP8RMQ6YF2HsqUFr68BrulkvReBiR3Lzcxs4Pibu2ZmOePgNzPLGQe/mVnOOPjNzHIm08lds+7s37+f5uZm3n///YHuipXIsGHDGDNmDEOHDh3orlgfcPBbrzU3NzNixAiqq6tJL921MhYR7N27l+bmZsaOHTvQ3bE+4Kke67X333+fUaNGOfSPEJIYNWqUP8EdwRz8VhIO/SOL9+eRzcFvZpYzDn47IlRUVFBTU8PEiROZPHkyTzzxRJ+/Z3V1Na+/PvD3F1q6dCn33ntvt22amppYt25dt20sP3xy1wZGQwPU10NdHUyf3uvNDR8+nKamJgDWr1/PzTffzGOPPdbr7ZbSgQMHqKioKPl2r7322qJtmpqaaGxs5MILLyz5+1v58RG/9b+GBpg1C265JXluaCjp5t9++22OO+44ILlC5YYbbuDMM8/krLPOYs2aNQDU19fzmc985tA6CxcuZMWKFUByJL948WImT57MWWedxY4dOwDYu3cv559/PpMmTeJrX/saEX+8bcTnPvc5zj77bM444wyWLVt2qPzYY49l0aJFTJ06ldtuu41LLrnkUN0jjzzC5z//+T/pf3V1NTfeeCNTpkxhypQp7Ny5E4BXXnmFWbNmMWHCBGbNmsWrr74KwLe//W3uvPNOAOrq6g6t+4lPfILHH3+cffv2sWjRItasWUNNTQ1r1qzhscceo6amhpqaGiZNmsQ777zT67+7lQ8Hv/W/+nrYtw8OHEie6+t7vcn33nuPmpoaTjvtNK655hpuueUWAO6//36ampp49tlnefTRR7nhhht47bXXim5v9OjRPPPMM1x33XWHQvXWW29lxowZ/PKXv+Szn/3soeAFWL58OVu2bKGxsZElS5awd29yS4p3332XM888k6eeeopFixaxfft22u8wd8899zB//vxO3/+jH/0oTz/9NAsXLuSb3/wmkPzndOWVV7J161Yuv/xyvvGNb3S6bltbG08//TQ/+MEPuPXWW6msrOQ73/kOl156KU1NTVx66aXceeed3H333TQ1NfH4448zfPjwjH9pOxI4+K3/1dVBZSVUVCTPdXW93mT7VM+OHTt46KGHuPLKK4kINm3axLx586ioqOD4449n5syZbN68uej22o/Ezz77bF5++WUANm7cyFe+8hUALrrookOf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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Now we use our boundary defined above to plot different types of boundary constraints on the problem\n", + "plot_boundary('convex_hull', XYBoundaryConstraint(boundary, 'convex_hull'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Next we show a square type of boundary. In this case the maximum distance between the x and y elements of the vertices is used to establish the perimeter.**" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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B+c9/fTTfPWrX/1Y/ZWVldx0001MnDiRiRMnsmXLFgDeeOMNpk6dytixY5k6dSpvvvkmAD/84Q+58847Aairqzu47Oc+9zmee+459u7dy4IFC1i5ciVVVVWsXLmSNWvWUFVVRVVVFdXV1bz77rvd3+Cf4nNplppMjgAiYq2kyk9ocimwPCICeF7SSZJOj4htWfT/iRoaYOpU2LsXBgyA1auhtrakVe7evZuqqir27NnDtm3b+PWvfw3Aww8/TFNTExs3bmT79u2cd955TJky5ZDrGzJkCBs2bOBnP/sZd955J/feey+33norF1xwAQsWLODxxx//yI5+6dKlnHLKKezevZvzzjuPyy+/nMGDB/OXv/yFc889l9tuu42I4Oyzz6alpYWKigp++ctfMnfu3E77P+GEE3jhhRdYvnw5N9xwA4899hjz589nzpw5XHXVVSxdupTvfve7PPLIIx9btq2tjRdeeIFVq1Zx66238swzz3DbbbfR2NjIokWLAPjyl7/MPffcw+TJk3nvvfcYOHBgdzb7p/JcmqWsp94DOAPY2m68uTjtYyTNk9QoqbGlpaX0nuvrCzuMffsKP+vrS17lgVNAmzdv5sknn2TOnDlEBOvWrWPmzJmUlZVx6qmncuGFF/Liiy8ecn0H/jOfMGECr7/+OgBr167lm9/8JgBf+tKXOPHEEw+2v/vuuxk3bhyTJk1i69at/P73vwcK701cfvnlQOHqmtmzZ3P//fezc+dOGhoamD59eqf9z5w58+DPhuJ/1g0NDcyaNQuA2bNns27dusOuvaPJkydz4403cvfdd7Nz50769+/m/x2fwnNplrKeCoDOrvWLzhpGxJKIqImImoqKitJ7rqsr/LdYVlb4WVdX+jrbqa2tZfv27bS0tFA4wPm4/v37s3///oPjHa97P+aYY4DCDrytre3g9M4ukayvr+eZZ56hoaGBjRs3Ul1dfXB9AwcO/Mh5/7lz53L//fezYsUKvv71r3e5423fT1eXZXY1vava27v55pu599572b17N5MmTTp4muuIfcrPpVlqeioAmoEz240PA97qkZ5rawunCv7+7z+VUwabN29m3759DB48mClTprBy5Ur27dtHS0sLa9euZeLEiQwfPpxXXnmFDz74gNbWVlavXn3I9U6ZMoUHHngAgCeeeILW1lYAWltbOfnkkznuuOPY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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_boundary('square', XYBoundaryConstraint(boundary, 'square'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Now a rectangle boundary. Here we use the maximum distance on both x and y axes of the boundary coordinates to establish the perimeter.**" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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FQBLly5l8uTJzJgxg507d/KHP/wByL338KUvfQnIXSlzySWX8Ktf/Yq9e/fS2NjIOeecU/D5FyxYcPC2MXlF1NjYyEUXXQTAJZdcwvr161P3vbMzzjiDq6++mqVLl7J3716GDfOsb5b4aFv/mzkT1q4t6Rz/B3c/k1dffZXW1tYPTMfkGzZsGAcOHDj4uPM164cffjiQC+729vaD5YUuc2xoaODhhx+msbGRI444grq6uoP7GzFixAfm9S+77DLOP/98RowYwVe+8pUuAzf/ebq6tLKr8q76nu+6667jvPPOo76+nhkzZvDwww9z8sknF2xrQ4/P+G1gzJwJ119f8tAH2LZtG/v372fMmDGceeaZrF69mv3799Pa2sq6deuYNm0aJ510Elu2bOG9996jra2NtWvXFt3vmWeeycqVKwG47777eP311wFoa2vjqKOO4ogjjmDbtm088cQTXe7juOOO47jjjuOmm27i61//epftOt6LWL16NTOT39FnPvMZVq1aBcDKlSuZNWtWl9t3NmrUqA/M47/wwgucdtppXHvttdTW1h58H8OyIdUZv6S5wD+RW4HrFxHxo071SurPBd4Gvh4RT6fZ1qwUOub4IfeG7i9/+UsqKiq44IILaGxsZPLkyUjixz/+MccccwwAX/3qV5k0aRITJkxgypQpRZ9jyZIlLFiwgKlTpzJ79mxOPPFEAObOncuyZcuYNGkSn/rUp5gxY0a3+7n44otpbW1l4sSJXbZ57733mD59OgcOHOCuu+4CctNJ3/jGN7j55pupqqritttuS/W7ATjrrLP40Y9+RE1NDddffz3r16/nkUceoaKigokTJ3Y55WRDk7p6KXywgVQB/B74LLmF1zcACyJiS16bc4G/JRf804F/iojpabYtpLa2Npqamg55MHXJXHFDCd4stPS2bt3Kpz/96YHuRtlYtGgRU6ZM4Zvf/GbB+urqapqamhg7dmw/9+yDfFz7V2/zS9LGZMnbotJM9UwDtkfEjojYB6wC5nVqMw+4I3KeAD4m6diU25bMxLY2LvrjH0t+eaBZqZx++uls3rz54JvEZh36M7/STPUcD+zMe9xC7qy+WJvjU25bGo2N3NLcTCXw7qxZXD1pEltGj+6Tp7IPWrJkCYcd5reL0rjzzjsBurzaBnIfQNuzZ8/BS0IHyp/+9CeuvPLKAe1DVkxsa+OW5mYOh9xnW9au7ZP3vzqk+WstdOlA5/mhrtqk2Ta3A2mhpCZJTR3XOR+ShgYqyf0nG3bgADVtbYe+D+uRiOjy6hkrTz6m/aumrY3Dyb0RWqrPtnQnzRl/C3BC3uNxwK6UbSpTbAtARCwHlkNujj9Fvz6oro5hI0fCvn0Mq6xk4cqVLOzD/5j2Fy+++CKjRo3yVzMPER3fx3/44Yf7/bL+0vFp9n37SvbZlu6kCf4NwARJ44H/AOYDF3VqswZYJGkVuamctoh4RVJrim1Lo4+vDbeujRs3jpaWFnr0Ss0GpY4VuKyf9HN+FQ3+iGiXtAh4gNwrkRUR8ZykK5L6ZUA9uSt6tpO7nPOy7rbtk5FA7pflwO93w4cP90pNZr3Vj/lV9HLOgdDTyznNzLKq1JdzmpnZEOLgNzPLmEE51ZO8KfxyDzcfCwz8skilMVTGMlTGAR7LYDRUxgG9G8tJEVGVpuGgDP7ekNSUdp5rsBsqYxkq4wCPZTAaKuOA/huLp3rMzDLGwW9mljFDMfiXF29SNobKWIbKOMBjGYyGyjign8Yy5Ob4zcyse0PxjN/MzLrh4Dczy5iyDH5JcyU9L2m7pOsK1EvS0qR+s6SpA9HPNFKMpU5Sm6Tm5GfxQPSzGEkrJO2W9GwX9eV0TIqNpVyOyQmSHpG0VdJzkv6uQJuyOC4px1Iux2WEpKckbUrGcmOBNn17XDq+d7tcfsh92dsLwF+R+9rnTcDETm3OBe4jtx7ADODJge53L8ZSB/xmoPuaYixnAlOBZ7uoL4tjknIs5XJMjgWmJvdHkVsGtVz/VtKMpVyOi4Ajk/vDgSeBGf15XMrxjL83S0EONv26NGVfioh1wGvdNCmXY5JmLGUhIl6JiKeT+28CW8mtipevLI5LyrGUheR3/efk4fDkp/NVNn16XMox+Lta5vFQ2wwGafs5M3lZeJ+kU/qnayVXLsckrbI6JpKqgSnkzi7zld1x6WYsUCbHRVKFpGZgN/BQRPTrcUmzEMtg05ulIAebNP18mtx3cPxZ0rnAr4EJfd6z0iuXY5JGWR0TSUcCdwNXRcQbnasLbDJoj0uRsZTNcYmI/UCNpI8B90o6NSLy31Pq0+NSjmf8vVkKcrAp2s+IeKPjZWFE1APDJY3tvy6WTLkck6LK6ZhIGk4uKFdGxD0FmpTNcSk2lnI6Lh0iYi/QAMztVNWnx6Ucg//gUpCSKskt57imU5s1wKXJO+MzSJaC7O+OplB0LJKOkXIL2UqaRu6Y7en3nvZeuRyTosrlmCR9/Fdga0T8pItmZXFc0oyljI5LVXKmj6SRwF8D2zo169PjUnZTPdGLpSAHm5Rj+TJwpaR24B1gfiRv+w8mku4id1XFWEktwBJyb1qV1TGBVGMpi2MCnAFcAjyTzCcDfBc4EcruuKQZS7kcl2OBX0qqIPfP6d8i4jf9mWH+ygYzs4wpx6keMzPrBQe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxj/j8XvLkpRpmQcAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_boundary('rectangle', XYBoundaryConstraint(boundary, 'rectangle'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Now a polygon boundary. This connects all the points in sequence. Note that this results in a nonconvex boundary. Nonconvex functions in optimization problems introduce complexity that can be challenging to handle and often require more sophisticated algorithms and higher computational expense.**" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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pps67LNq1SqWLFnSTSOqTbVUADIV/A79CrJiBVx+ee6+BPr378+qVatYvXo1l19+OXPmzCnJcktp586dZVnurFmzmDFjRod9HPylUwsFIDPB79CvICtWwIknwoUX5u5LFP6t3njjDfbZZx8gd4bKeeedx1FHHcXIkSNZvHgxAMuWLePkk0/eNc/s2bO54YYbgNye/EUXXcSYMWMYOXIk69atA2Dz5s2cdNJJjB49mrPOOouI9y9L8dnPfpaxY8dy5JFHsmDB+1ce3XvvvZk7dy5HH300l112Gaeddtquaffffz+f+9znPjT+4cOHc/755zNu3DjGjRvH+vXrAXjxxRc58cQTGTVqFCeeeCIvvfQSAD/4wQ+44oorAJg4ceKueQ877DAefPBBtm/fzty5c1m8eDENDQ0sXryY3//+9zQ0NNDQ0MDo0aN58803u/x3z5pqLgCZCH6HfoVZtgy2b4edO3P3y5Z1eZHvvPMODQ0NfOxjH+PMM8/kwgsvBOD222/f9U7ggQce4LzzzuPll18uurxBgwbxxBNPcPbZZ+8K1Ysvvphjjz2WP/zhD5xyyim7ghfguuuuY+XKlTQ1NTFv3jw2b85dkuLtt9/mqKOO4tFHH2Xu3LmsXbuW1ivMXX/99ZxxxhkFX//v/u7veOyxx5g9ezbf+ta3gFxxmjFjBk8++STTpk3jm9/8ZsF5d+zYwWOPPcaVV17JxRdfTJ8+fbjkkks4/fTTWbVqFaeffjpXXHEFV199NatWreLBBx+kf//+Kf/S1lY1FoCaD36HfgWaOBH69IG6utz9xIldXmTroZ5169Zxzz33MGPGDCKChx56iKlTp1JXV8eQIUM4/vjjefzxx4sur3VPfOzYsWzYsAGA5cuX85WvfAWAT3/607veVQDMmzeP+vp6xo8fz8aNG/njH/8I5D57+PznPw/kzpSZPn06N998M1u2bGHFihVMnjy54OtPnTp11/2K5B3RihUr+PKXvwzA9OnTeeihh1KPva1jjjmG73znO8ybN48tW7bQq1fmv9LTZdVUAGo6+B36FWrCBFi6FC69NHc/YUKJFz+BV199lZaWlg8cjsnXq1cv/va3v+163vac9b59+wK54N6xY8eu9kKnOS5btowHHniAFStWsHr1akaPHr1ref369aOurm5X3zPOOIObb76ZW265hS9+8YvtBm7+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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_boundary('polygon', XYBoundaryConstraint(boundary, 'polygon'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Finally a circular boundary. For this we have to specify the midpoint of the circle and the radius.**" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_boundary('Circle',CircleBoundaryConstraint((1.5,1),1)) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**You can also quickly plot all boundary types using some quick python tricks**" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IqIWOB54IC0bAtwXEQ/1yUjMzCyTLHP8RMQ6YF2HsqUFr68BrulkvReBiR3Lzcxs4Pibu2ZmOePgNzPLGQe/mVnOOPjNzHIm08lds+7s37+f5uZm3n///YHuipXIsGHDGDNmDEOHDh3orlgfcPBbrzU3NzNixAiqq6tJL921MhYR7N27l+bmZsaOHTvQ3bE+4Kke67X333+fUaNGOfSPEJIYNWqUP8EdwRz8VhIO/SOL9+eRzcFvZpYzDn47IlRUVFBTU8PEiROZPHkyTzzxRJ+/Z3V1Na+/PvD3F1q6dCn33ntvt22amppYt25dt20sP3xy1wZGQwPU10NdHUyf3uvNDR8+nKamJgDWr1/PzTffzGOPPdbr7ZbSgQMHqKioKPl2r7322qJtmpqaaGxs5MILLyz5+1v58RG/9b+GBpg1C265JXluaCjp5t9++22OO+44ILlC5YYbbuDMM8/krLPOYs2aNQDU19fzmc985tA6CxcuZMWKFUByJL948WImT57MWWedxY4dOwDYu3cv559/PpMmTeJrX/saEX+8bcTnPvc5zj77bM444wyWLVt2qPzYY49l0aJFTJ06ldtuu41LLrnkUN0jjzzC5z//+T/pf3V1NTfeeCNTpkxhypQp7Ny5E4BXXnmFWbNmMWHCBGbNmsWrr74KwLe//W3uvPNOAOrq6g6t+4lPfILHH3+cffv2sWjRItasWUNNTQ1r1qzhscceo6amhpqaGiZNmsQ777zT67+7lQ8Hv/W/+nrYtw8OHEie6+t7vcn33nuPmpoaTjvtNK655hpuueUWAO6//36ampp49tlnefTRR7nhhht47bXXim5v9OjRPPPMM1x33XWHQvXWW29lxowZ/PKXv+Szn/3soeAFWL58OVu2bKGxsZElS5awd29yS4p3332XM888k6eeeopFixaxfft22u8wd8899zB//vxO3/+jH/0oTz/9NAsXLuSb3/wmkPzndOWVV7J161Yuv/xyvvGNb3S6bltbG08//TQ/+MEPuPXWW6msrOQ73/kOl156KU1NTVx66aXceeed3H333TQ1NfH4448zfPjwjH9pOxI4+K3/1dVBZSVUVCTPdXW93mT7VM+OHTt46KGHuPLKK4kINm3axLx586ioqOD4449n5syZbN68uej22o/Ezz77bF5++WUANm7cyFe+8hUALrrookOf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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, - "nbformat": 4, - "nbformat_minor": 2 -} \ No newline at end of file + { + "data": { + "image/png": "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B+c9/fTTfPWrX/1Y/ZWVldx0001MnDiRiRMnsmXLFgDeeOMNpk6dytixY5k6dSpvvvkmAD/84Q+58847Aairqzu47Oc+9zmee+459u7dy4IFC1i5ciVVVVWsXLmSNWvWUFVVRVVVFdXV1bz77rvd3+Cf4nNplppMjgAiYq2kyk9ocimwPCICeF7SSZJOj4htWfT/iRoaYOpU2LsXBgyA1auhtrakVe7evZuqqir27NnDtm3b+PWvfw3Aww8/TFNTExs3bmT79u2cd955TJky5ZDrGzJkCBs2bOBnP/sZd955J/feey+33norF1xwAQsWLODxxx//yI5+6dKlnHLKKezevZvzzjuPyy+/nMGDB/OXv/yFc889l9tuu42I4Oyzz6alpYWKigp++ctfMnfu3E77P+GEE3jhhRdYvnw5N9xwA4899hjz589nzpw5XHXVVSxdupTvfve7PPLIIx9btq2tjRdeeIFVq1Zx66238swzz3DbbbfR2NjIokWLAPjyl7/MPffcw+TJk3nvvfcYOHBgdzb7p/JcmqWsp94DOAPY2m68uTjtYyTNk9QoqbGlpaX0nuvrCzuMffsKP+vrS17lgVNAmzdv5sknn2TOnDlEBOvWrWPmzJmUlZVx6qmncuGFF/Liiy8ecn0H/jOfMGECr7/+OgBr167lm9/8JgBf+tKXOPHEEw+2v/vuuxk3bhyTJk1i69at/P73vwcK701cfvnlQOHqmtmzZ3P//fezc+dOGhoamD59eqf9z5w58+DPhuJ/1g0NDcyaNQuA2bNns27dusOuvaPJkydz4403cvfdd7Nz50769+/m/x2fwnNplrKeCoDOrvWLzhpGxJKIqImImoqKitJ7rqsr/LdYVlb4WVdX+jrbqa2tZfv27bS0tFA4wPm4/v37s3///oPjHa97P+aYY4DCDrytre3g9M4ukayvr+eZZ56hoaGBjRs3Ul1dfXB9AwcO/Mh5/7lz53L//fezYsUKvv71r3e5423fT1eXZXY1vava27v55pu599572b17N5MmTTp4muuIfcrPpVlqeioAmoEz240PA97qkZ5rawunCv7+7z+VUwabN29m3759DB48mClTprBy5Ur27dtHS0sLa9euZeLEiQwfPpxXXnmFDz74gNbWVlavXn3I9U6ZMoUHHngAgCeeeILW1lYAWltbOfnkkznuuOPY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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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FQBLly5l8uTJzJgxg507d/KHP/wByL338KUvfQnIXSlzySWX8Ktf/Yq9e/fS2NjIOeecU/D5FyxYcPC2MXlF1NjYyEUXXQTAJZdcwvr161P3vbMzzjiDq6++mqVLl7J3716GDfOsb5b4aFv/mzkT1q4t6Rz/B3c/k1dffZXW1tYPTMfkGzZsGAcOHDj4uPM164cffjiQC+729vaD5YUuc2xoaODhhx+msbGRI444grq6uoP7GzFixAfm9S+77DLOP/98RowYwVe+8pUuAzf/ebq6tLKr8q76nu+6667jvPPOo76+nhkzZvDwww9z8sknF2xrQ4/P+G1gzJwJ119f8tAH2LZtG/v372fMmDGceeaZrF69mv3799Pa2sq6deuYNm0aJ510Elu2bOG9996jra2NtWvXFt3vmWeeycqVKwG47777eP311wFoa2vjqKOO4ogjjmDbtm088cQTXe7juOOO47jjjuOmm27i61//epftOt6LWL16NTOT39FnPvMZVq1aBcDKlSuZNWtWl9t3NmrUqA/M47/wwgucdtppXHvttdTW1h58H8OyIdUZv6S5wD+RW4HrFxHxo071SurPBd4Gvh4RT6fZ1qwUOub4IfeG7i9/+UsqKiq44IILaGxsZPLkyUjixz/+MccccwwAX/3qV5k0aRITJkxgypQpRZ9jyZIlLFiwgKlTpzJ79mxOPPFEAObOncuyZcuYNGkSn/rUp5gxY0a3+7n44otpbW1l4sSJXbZ57733mD59OgcOHOCuu+4CctNJ3/jGN7j55pupqqritttuS/W7ATjrrLP40Y9+RE1NDddffz3r16/nkUceoaKigokTJ3Y55WRDk7p6KXywgVQB/B74LLmF1zcACyJiS16bc4G/JRf804F/iojpabYtpLa2Npqamg55MHXJXHFDCd4stPS2bt3Kpz/96YHuRtlYtGgRU6ZM4Zvf/GbB+urqapqamhg7dmw/9+yDfFz7V2/zS9LGZMnbotJM9UwDtkfEjojYB6wC5nVqMw+4I3KeAD4m6diU25bMxLY2LvrjH0t+eaBZqZx++uls3rz54JvEZh36M7/STPUcD+zMe9xC7qy+WJvjU25bGo2N3NLcTCXw7qxZXD1pEltGj+6Tp7IPWrJkCYcd5reL0rjzzjsBurzaBnIfQNuzZ8/BS0IHyp/+9CeuvPLKAe1DVkxsa+OW5mYOh9xnW9au7ZP3vzqk+WstdOlA5/mhrtqk2Ta3A2mhpCZJTR3XOR+ShgYqyf0nG3bgADVtbYe+D+uRiOjy6hkrTz6m/aumrY3Dyb0RWqrPtnQnzRl/C3BC3uNxwK6UbSpTbAtARCwHlkNujj9Fvz6oro5hI0fCvn0Mq6xk4cqVLOzD/5j2Fy+++CKjRo3yVzMPER3fx3/44Yf7/bL+0vFp9n37SvbZlu6kCf4NwARJ44H/AOYDF3VqswZYJGkVuamctoh4RVJrim1Lo4+vDbeujRs3jpaWFnr0Ss0GpY4VuKyf9HN+FQ3+iGiXtAh4gNwrkRUR8ZykK5L6ZUA9uSt6tpO7nPOy7rbtk5FA7pflwO93w4cP90pNZr3Vj/lV9HLOgdDTyznNzLKq1JdzmpnZEOLgNzPLmEE51ZO8KfxyDzcfCwz8skilMVTGMlTGAR7LYDRUxgG9G8tJEVGVpuGgDP7ekNSUdp5rsBsqYxkq4wCPZTAaKuOA/huLp3rMzDLGwW9mljFDMfiXF29SNobKWIbKOMBjGYyGyjign8Yy5Ob4zcyse0PxjN/MzLrh4Dczy5iyDH5JcyU9L2m7pOsK1EvS0qR+s6SpA9HPNFKMpU5Sm6Tm5GfxQPSzGEkrJO2W9GwX9eV0TIqNpVyOyQmSHpG0VdJzkv6uQJuyOC4px1Iux2WEpKckbUrGcmOBNn17XDq+d7tcfsh92dsLwF+R+9rnTcDETm3OBe4jtx7ADODJge53L8ZSB/xmoPuaYixnAlOBZ7uoL4tjknIs5XJMjgWmJvdHkVsGtVz/VtKMpVyOi4Ajk/vDgSeBGf15XMrxjL83S0EONv26NGVfioh1wGvdNCmXY5JmLGUhIl6JiKeT+28CW8mtipevLI5LyrGUheR3/efk4fDkp/NVNn16XMox+Lta5vFQ2wwGafs5M3lZeJ+kU/qnayVXLsckrbI6JpKqgSnkzi7zld1x6WYsUCbHRVKFpGZgN/BQRPTrcUmzEMtg05ulIAebNP18mtx3cPxZ0rnAr4EJfd6z0iuXY5JGWR0TSUcCdwNXRcQbnasLbDJoj0uRsZTNcYmI/UCNpI8B90o6NSLy31Pq0+NSjmf8vVkKcrAp2s+IeKPjZWFE1APDJY3tvy6WTLkck6LK6ZhIGk4uKFdGxD0FmpTNcSk2lnI6Lh0iYi/QAMztVNWnx6Ucg//gUpCSKskt57imU5s1wKXJO+MzSJaC7O+OplB0LJKOkXIL2UqaRu6Y7en3nvZeuRyTosrlmCR9/Fdga0T8pItmZXFc0oyljI5LVXKmj6SRwF8D2zo169PjUnZTPdGLpSAHm5Rj+TJwpaR24B1gfiRv+w8mku4id1XFWEktwBJyb1qV1TGBVGMpi2MCnAFcAjyTzCcDfBc4EcruuKQZS7kcl2OBX0qqIPfP6d8i4jf9mWH+ygYzs4wpx6keMzPrBQe/mVnGOPjNzDLGwW9mljEOfjOzjHHwm5lljIPfzCxj/j8XvLkpRpmQcAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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pps67LNq1SqWLFnSTSOqTbVUADIV/A79CrJiBVx+ee6+BPr378+qVatYvXo1l19+OXPmzCnJcktp586dZVnurFmzmDFjRod9HPylUwsFIDPB79CvICtWwIknwoUX5u5LFP6t3njjDfbZZx8gd4bKeeedx1FHHcXIkSNZvHgxAMuWLePkk0/eNc/s2bO54YYbgNye/EUXXcSYMWMYOXIk69atA2Dz5s2cdNJJjB49mrPOOouI9y9L8dnPfpaxY8dy5JFHsmDB+1ce3XvvvZk7dy5HH300l112Gaeddtquaffffz+f+9znPjT+4cOHc/755zNu3DjGjRvH+vXrAXjxxRc58cQTGTVqFCeeeCIvvfQSAD/4wQ+44oorAJg4ceKueQ877DAefPBBtm/fzty5c1m8eDENDQ0sXryY3//+9zQ0NNDQ0MDo0aN58803u/x3z5pqLgCZCH6HfoVZtgy2b4edO3P3y5Z1eZHvvPMODQ0NfOxjH+PMM8/kwgsvBOD222/f9U7ggQce4LzzzuPll18uurxBgwbxxBNPcPbZZ+8K1Ysvvphjjz2WP/zhD5xyyim7ghfguuuuY+XKlTQ1NTFv3jw2b85dkuLtt9/mqKOO4tFHH2Xu3LmsXbuW1ivMXX/99ZxxxhkFX//v/u7veOyxx5g9ezbf+ta3gFxxmjFjBk8++STTpk3jm9/8ZsF5d+zYwWOPPcaVV17JxRdfTJ8+fbjkkks4/fTTWbVqFaeffjpXXHEFV199NatWreLBBx+kf//+Kf/S1lY1FoCaD36HfgWaOBH69IG6utz9xIldXmTroZ5169Zxzz33MGPGDCKChx56iKlTp1JXV8eQIUM4/vjjefzxx4sur3VPfOzYsWzYsAGA5cuX85WvfAWAT3/607veVQDMmzeP+vp6xo8fz8aNG/njH/8I5D57+PznPw/kzpSZPn06N998M1u2bGHFihVMnjy54OtPnTp11/2K5B3RihUr+PKXvwzA9OnTeeihh1KPva1jjjmG73znO8ybN48tW7bQq1fmv9LTZdVUAGo6+B36FWrCBFi6FC69NHc/YUKJFz+BV199lZaWlg8cjsnXq1cv/va3v+163vac9b59+wK54N6xY8eu9kKnOS5btowHHniAFStWsHr1akaPHr1ref369aOurm5X3zPOOIObb76ZW265hS9+8YvtBm7+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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot all boundary types using our dummy problem and boundaries\n", + "for boundary_type in ['convex_hull','square','rectangle','polygon']:\n", + " plot_boundary(boundary_type, XYBoundaryConstraint(boundary, boundary_type))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise!!\n", + "\n", + "**Now play around with a new set of boundary vertices and construct different perimeters to explore the functionality. See if you can make even more complex polygon shapes.**" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0aPda2pyn597rrSfL2LYsGE+efJknzhxoh9wwAHe1dXl7u5Lly71k08+2Xfs2OFvvvmmH3bYYb5x40Zfvny5n3766bt/fu7cub5o0SJ3d58wYYIvWLDA3d1vv/12nz17tru7X3bZZX7ttde6u/ujjz7qgPf09Li7++bNm93d/f333/djjz3WN23a5O7ugC9ZssTd3Xft2uUTJ070t956y93dZ82a5Y888she+zJhwgS/7rrr3N39vvvu213nzJkz/d5773V397vvvtvPOOMMd3e/5ppr/KabbnJ39xNPPNGvuOIKd3f/+c9/7m1tbe7uvmjRIp87d+7u95g5c6avWLHC3d3fffdd//DDDz9SQ8l/U4ncSy+95Pvtt5+Tu1my/iYZBnR5yH4casVtZvsCfwf8LJ7/fRTR3p7L6nbujCyzC6KSdevW8cQTT3DBBRfg7qxYsYJZs2ZRU1PDwQcfzIknnsgLL7ww4OsFK+Fp06bx6quvAvDss8/yla98BYDTTz9996oeYMGCBUyePJnjjz+e119/nT/84Q9ALnv/0pe+BOSO1jj//PN54IEH2Lp1K52dnZx66qkUM2vWrN2fO/P/Kuns7OTcc88F4Pzzz2fFiuJ30SpW+55mzJjBFVdcwYIFC9i6dSvDh+vy7WmyZcsWzjzzTMaMGcMRRxxBfX09Rx99dNJlSRmEatzu/r67j3X3t+MuaLfWVhg5Empqcp8jzuyam5vZtGkTPT09H4kzCg0fPpxdu3btfrznccv77JO7OXhNTQ07dvzH/W2LHSrX3t7O008/TWdnJy+++CJTpkzZ/XqjRo36SK598cUX88ADD/Dggw9y9tln99kwC9+nr8Pz+nq+r9oLXXXVVdx1111s27aN448/fnccJMnbuXMn5513HuvXr2fBggX8+c9/5uyzz066LCmT9F6rpLk5l9V997uxZHbr1q1j586djB07lpaWFpYsWcLOnTvp6enh2WefZfr06UyYMIE1a9bwwQcf8Pbbb/PMM88M+LotLS0sXrwYgMcff5wtW7YA8Pbbb3PQQQex7777sm7dOp5//vk+X2PcuHGMGzeO6667josuuqjP7YIsfsmSJTTnfz+f+cxneOihhwBYvHgxn/3sZ0P9PgDGjBnzkRz7j3/8I8cddxxXXnkljY2NatwpMm/ePB5//HEWLFjAm2++iburcVeR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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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3+Soo47ijDPOYOLEibz++uscdthhXH755WQmhxxyCAMDA7S2tnLDDTdw7rnnbnP7++yzD48++ig333wz559/PnfeeSfz5s3j7LPP5pxzzuH666/na1/7Gj/96U/f9dx169bx6KOPctddd3HZZZdx//33c/nll9PX18c111wDwKmnnsoPf/hDZs2axWuvvcb48ePfy699WB5xS82mp6dS2uvXVy57enZodRuHSlasWME999zD2WefTWayZMkS5syZQ0tLC+973/s47rjj+PWvfz3i+jYeCR966KE888wzADz88MN87nOVb9I4+eSTNx3VA1x99dVMnz6dY445hueee47f//73QGXs/YwzzgAqZ2qcddZZ3HLLLbz88sv09vZy4oknbnP7c+bM2XTZO/iKpLe3lzPPPBOAs846iyVLlgyb/cgjj9yUfWuzZs3iggsu4Oqrr+bll19mzJjaHx9b3FKz6eqqHGm3tFQuu7pqturOzk5WrVrFwMDAFsMZmxszZgwbNvz7N0Bvfc7y7rvvDlQ+hLNu3bpN92/rNLmenh7uv/9+ent7eeyxx5gxY8am9Y0fP36Lce1zzz2XW265hVtvvZVPfepTQxbm5tsZ6tS8oe7fmL2lpWWL7Ju76KKLuO6663jzzTc55phjNg0H1ZLFLTWbzs7K8Mg//dMOD5NsbcWKFaxfv56JEycye/ZsFi1axPr16xkYGODhhx9m5syZHHzwwSxbtoy3336bNWvWsHjx4hHXO3v2bBYsWADA3XffzUsvvQTAmjVr2H///dlzzz1ZsWIFjzzyyJDrOPDAAznwwAO54oor+PznPz/kchvH4hctWkTn4O/mox/9KLfddhsACxYs4Nhjj63q9wEwYcKELcaxn376aQ4//HAuvPBCOjo66lLcjnFLzaizs2aFvXGMGypvSN500020tLRw2mmn0dvby/Tp04kIvvOd7/D+978fgE9/+tNMmzaND3/4w8yYMWPEbVx66aXMmTOHI444guOOO46DDjoIgBNOOIFrr72WadOmMWXKFI455phh1/PZz36WgYEBpk6dOuQyb7/9NkcffTQbNmzg1ltvBSrDMV/4whf47ne/u2mMvFof+9jH+Pa3v017ezsXX3wxS5Ys4cEHH6SlpYWpU6cOOWSzI2Kolzs7oqOjI/v6+mq+3hJ1Db5M7dnBcUbtupYvX84h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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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6OzsZNmyZdx55510dnbS2dnJ7Nmzeeqpp3b7eX8xe9xSq+nrg4ULYfNmmDQJVqyA7u5d3t1zzz1HZ2cnmzZt4rHHHuOnP/0pADfffDMDAwPcd999rFu3juOOO44FCxaMur+pU6fyq1/9im984xtcccUVXHPNNVx66aWccMIJXHzxxfzwhz98QUBfe+21vOIVr+C5557juOOO48wzz2TKlCk888wzHH300Vx22WVkJkcddRSDg4O0t7dz3XXXce655w55/IMOOoh77rmH66+/nvPPP59bbrmF8847j3POOYf3v//9XHvttXziE5/gBz/4wUseu2XLFu655x6WL1/OpZdeyu23385ll11Gf38/X/va1wA4/fTT+frXv878+fN5+umnmTx58q487SOyxy21mt7eSmhv3Vq57O3drd1tHypZvXo1t956K+eccw6ZycqVK1m0aBFtbW288pWv5MQTT+SXv/zlqPvb3hM+9thjefjhhwG46667eN/7Kt+kceqpp+7o1QNcddVVzJo1i3nz5rFmzRp+97vfAZWx9zPPPBOozNQ4++yzueGGG9iwYQN9fX2cfPLJQx5/0aJFOy77qq9I+vr6OOusswA4++yzWblyZc21v9j8+fO54IILuOqqq9iwYQMTJtS/f2yPW2o1PT2Vnvb2HndPT9123d3dzbp16xgcHHzBcMbOJkyYwLZt//YN0C+es/yyl70MqATvli1bdtw/1DS53t5ebr/9dvr6+thvv/3o6enZsb/Jkye/YFz73HPP5fTTT2fy5Mm8613vGjYwdz7OcFPzhrt/uNp39pnPfIZTTz2V5cuXM2/ePG6//XZe//rXD9l2V9njllpNd3dleOTzn9/tYZIXW716NVu3bmXKlCksWLCAZcuWsXXrVgYHB7nrrruYO3cuhx9+OA888ADPP/88GzduZMWKFaPud8GCBSxduhSAH/3oR/z5z38GYOPGjRxyyCHst99+rF69mrvvvnvYfRx66KEceuihXH755XzgAx8Ytt32sfhly5bRXX1u3vjGN3LTTTcBsHTpUk444YSang+AAw888AXj2A899BDHHHMMF154IV1dXTvG8evJHrfUirq76xbY28e4ofKG5Le//W3a2to444wz6OvrY9asWUQEX/rSl3jVq14FwLvf/W5mzpzJkUceyezZs0c9xiWXXMKiRYuYM2cO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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Make your own set of vertices - anything you would like!\n", + "boundary = np.array([(0, 0), (2, 1), (4, 7), (1, 1), (0, 2)])\n", + "\n", + "# Then see what types of perimeters they generate\n", + "for boundary_type in ['convex_hull','square','rectangle','polygon']:\n", + " plot_boundary(boundary_type, XYBoundaryConstraint(boundary, boundary_type))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Spacing constraints\n", + "\n", + "The next most common constraint in a wind farm design optimization problem is on the allowable inter-turbine spacing in the farm. Losses due to wakes should ensure that turbines do spread out but a minimum constraint can also help to ensure that turbines do not get placed too close together.\n", + "\n", + "The following provides a simple example of implementation of a minimum spacing constraint." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Implement a minimum spacing constraint example**" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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jfHz8/vN9OIU/mL16lFKlZ/4+HimTJnC119/zcGDB3nttdfK5X0TEhIIDAykadOml3r8lEZmZiaJiYmkpKTQsGFDGjRo4JLtVkTGGE6ePElCQgJXX311ibejH79KuaEVK1YQGhrKVVddxb59+6hSpUq5vXd6ejp16tRxWXH29/enadOmtGjRAmMMIsKFCxf0O4ASEBHq1KlT6r/GtMWvlBv54osvaNKkCT179uSHH36gQYMGVnKURYu8SpUqVKlSBWMMhw8fRkRo2rSpdgUtJlccG23xK+UGUlNTGTNmDPfffz8pKSnUqlXLWtEvayJCs2bNqF69Oj/88AOpqam2I1U4WviVsswYQ79+/fDx8SE2NpYbbrjBdqQyV6lSJYKDg2nevDlVqlQhMzOTrKwsHn/8cd56661Ly918882MGTPm0usnnniCN954g8TERAYPHlys95w/fz7jxo373fSNGzeydevWYu9DfHx8oddGjBkzhh9+cN8hybTwK2WJMYbPPvuM3Nxc1qxZw3/+8x9q1KhhO1a5qlq1Kv7+/qSlpbF//346dux4qQjn5uby66+/sm/fvkvLb926la5duxIcHMynn37qkgwlKfw5OTl/OH/u3LmEhISUJlaZ0sKvlAUZGRncd999PP/885w8eZLatYt1My+3ExUFr7yS91gSderUoXHjxjRo0IDNmzcDsG/fPlq3bk1gYCCnT58mIyOD/fv306FDh9+0tufPn8+dd95J//79adasGRMmTLi03ffff5/mzZvTs2dPtmzZ8rv3jY+PZ/bs2bz55pu0b9+eb7/9lr/+9a+/+VCpXr06kPcB0bt3b+6++27atGkDQHZ2NqNGjaJt27YMHjyY8+fPA9CrVy8udkmvXr06zz77LO3ataNLly4cP34cgOTkZO666y46depEp06dLuXbtGkT7du3p3379nTo0IG0tLSS/aP+AS38SpWz8+fP07dvX06dOsXWrVupX7++7UilEhUFffvCpEl5jyUt/rVr16Zbt274+vpy+PBhtmzZQkREBJ07dyYqKoro6Gjatm1b4JfBu3fvZsmSJXz//fcsWbKEI0eOkJSUxJQpU9iyZQtfffVVgademjZtygMPPMDjjz/O7t276d69+x9m3LFjB1OnTr20rQMHDjB27FhiY2OpUaMGs2bN+t06586do0uXLuzZs4cePXrw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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# set up dummy design variables and cost model component. \n", + "# This example includes 2 turbines (n_wt=2) located at x,y=0.5,0.5 and 1.5,1.5 respectively\n", + "x = [0.5,1.5]\n", + "y = [.5,1.5]\n", + "dummy_cost = CostModelComponent(input_keys=[],\n", + " n_wt=2,\n", + " cost_function=lambda : 1) \n", + "\n", + "# a function to plot a spacing constraint for a Topfarm problem\n", + "def plot_spacing(name, constraint_comp):\n", + " tf = TopFarmProblem(\n", + " design_vars={'x':x, 'y':y}, # setting up our two turbines as design variables\n", + " cost_comp=dummy_cost, # using dummy cost model\n", + " constraints=[constraint_comp], # constraint set up for the boundary type provided\n", + " plot_comp=XYPlotComp()) # support plotting function\n", + " tf.evaluate()\n", + " plt.figure()\n", + " plt.title(name)\n", + " tf.plot_comp.plot_constraints() # plot constraints is a helper function in topfarm to plot constraints\n", + " plt.plot(x,y,'.b', label='Wind turbines') # plot the turbine locations\n", + " plt.axis('equal')\n", + " plt.legend() # add the legend\n", + " plt.ylim([0,2]) \n", + " \n", + "plot_spacing('spacing', SpacingConstraint(1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise!!\n", + "\n", + "**Play around with the spacing constraint size**" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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dGDr1q0MHDiQnTt3Mnr0aGrVqnVR64yPjycuLq54g5pSV7FixbP7MTY2lmnTptG0aVPee+89Z4OVkLg4CAwEf//c16L+L3ymn//777+nZcuWdOjQgdWrV5/t389P+fLlz7739/cnKysLuLhLHwMCAsjJyQFye0Ty3stRqVKlP7Q9d/35fV+5cuXOTs+bLScnh9WrV5OYmEhiYiK//PILISEhjBo1ismTJ3PixAk6dOjADz/8UOhtKIgV/ouwZcsWWrRowdixYxk5ciTNmjUjODi4yGPmx8bGMmzYsGJKaTxB586d+eabb5g5c+bZ+zE+/fRTDh065HCy4hMTA998A889l/saE1O09cXGxjJv3jyqV69+9rzYoUOHWL16NTGFWPmVV15JfHw8Bw4cIDMzk5kzZ+bbLiQk5A/96I0bNyYhIQGAzz///IJ/rf3888+sdp3YmD59Op06dXI733XXXcebb7559vOZK8R27tzJ5ZdfzsiRI4mOjrbC76SsrCwmT57MqlWraNSoEW+88QZr166lT58+xTL4WXZ2NpGRkVxxxRXFkNZ4mvbt23P77beTnZ3NggULaNKkCU899RRHjpz7aAvvFBMDo0cXvegDXH755fz222906NDhD9OqVKlSqGcw1K1bl2eeeYaYmBi6du1K27Zt8213ww03MHv27LMnd++55x6WLl1K+/btWbt27Z+O8vNq1qwZH3zwAa1ateLgwYPcd999bucbP348GzZsoFWrVjRv3pwJEyYA8Nprr9GyZUtat25NxYoV6dmzp9vrdJu7JwNK88eTTu7m5OToZ599ppGRkRoXF6ebNm0qke9JSEg4e7LKlH27d+/WIUOG6Ouvv66qqqdOnXI40f9X2JO7pvTZyd0SdOjQITIzM/nvf//La6+9xrfffkurVq1K5LvWrl37hyMcU7Y1btyYKVOm8H//93989913hIeHM2XKlAKvDzemOFjhz8fGjRvp3r07d9xxB4GBgcyZM4cePXqU6E1VGzZsICoqqsTWbzzXFVdcwccff8z7779Pq1atzl71YUxJscJ/jmeffZa//OUv3HjjjcV2Z6A7oqKi7IoeHxYbG8uyZct49dVXqV+/PsuXL2fLli2O5VEPHK7d5CqOfWOFn9wTt++//z6nTp3illtuISkpifvvv79UR8W8//77adasWal9n/E8IsJ1111H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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_spacing('spacing', SpacingConstraint(3))" + ] + } + ], + "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.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/notebooks/cost_models.ipynb b/docs/notebooks/cost_models.ipynb index 3c8b5525..3d368f04 100644 --- a/docs/notebooks/cost_models.ipynb +++ b/docs/notebooks/cost_models.ipynb @@ -21,7 +21,12 @@ "execution_count": 0, "metadata": {}, "outputs": [], - "source": "%%capture\n# Install Topfarm if needed\nimport importlib\nif not importlib.util.find_spec(\"topfarm\"):\n !pip install topfarm\n" + "source": [ + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" + ] }, { "cell_type": "markdown", @@ -885,13 +890,6 @@ "\n", "Manipulate the cost inputs to the DTU cost model to see the impact on IRR." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -910,7 +908,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.7" + "version": "3.9.5" }, "toc": { "base_numbering": 1, diff --git a/docs/notebooks/drivers.ipynb b/docs/notebooks/drivers.ipynb index 447d9300..4be299c9 100644 --- a/docs/notebooks/drivers.ipynb +++ b/docs/notebooks/drivers.ipynb @@ -1,587 +1,578 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Drivers\n", - "\n", - "The word \"driver\" is an OpenMDAO specific term that refers to something that operates on a workflow. The most simple driver is something that simply executes an entire workflow once. For optimization, a driver is usually an optimization algorithm that iterates over the workflow until (ideally) an optimal solution is found. In a very complex workflow and problem formulation, there may be multiple drivers acting on sub-groups of a workflow. For instance, in an optimization under uncertainty (OUU) problem, there is usually an uncertainty quantification / analysis driver operating on a workflow nested within a larger optimization workflow.\n", - "\n", - "In this tutorial, a basic introduction to drivers is provided that focuses on some of the most commonly used drivers in Topfarm. These include examples of four types of drivers:\n", - "* Design of Experiments (DoE) - these drivers sample across a set of input parameters and execute the workflow for each input set. Such drivers can be parallelized easily since each workflow execution is independent from the next.\n", - "* Gradient-based or local search optimizers - these drivers use information about the gradients of the objective function for the problem with respect to the design variables in order to move through the design space systematically to find an improved design. This class of optimization algorithms are efficient but are challenged problems that contain significant nonconvexity, objective functions that are relatively insensitive to the design variables, and other issues.\n", - "* Gradient-free metaheuristic optimizers - these drivers typically use \"nature-inspired\" algorithms to search the design space more globally. They use multiple instances of designs at once and compare performance to make decisions about how to generate new designs that hopefully improve the objective function performance. A clasic example of this type of optimizer is a genetic algorithm.\n", - "* Gradient-free heuristic optimizers - these drivers use some sort of heuristic to search through the design space that is informed by domain knowledge and experience with some element of randomness as well. Random search algorithms fall into this category and are widely used in commercial wind farm optimization.\n", - "\n", - "We will introduce a specific example of each of the above driver types applied to a Topfarm problem in the next sequence of examples." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/drivers.ipynb) (requires google account)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": {}, - "outputs": [], - "source": "%%capture\n# Install Topfarm if needed\nimport importlib\nif not importlib.util.find_spec(\"topfarm\"):\n !pip install topfarm\n" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**First we import supporting libraries in Python numpy and matplotlib**" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.easy_drivers import EasyDriverBase\n", - "EasyDriverBase.max_iter = 1" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "%matplotlib inline\n", - "# uncomment to update plot during optimization\n", - "# %matplotlib qt\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we import and initialize several functions and classes from Topfarm to set up the problem including:**\n", - "* **TopFarmProblem - overall topfarm problem class to which the objectives, design variables, and constraints are added**\n", - "* **XYBoundaryConstraint - for a boundary specified as a series of connected perimeter vertices**\n", - "* **CircleBoundaryConstraint - for a circular boundary with a central location and a radius**\n", - "* **SpacingConstraint - for the inter-turbine spacing distance constraints**\n", - "\n", - "**We also import some dummy models (DummyCost, NoPlot, DummyCostPlotComp) as stand-ins for what would be the actual models used in a real wind farm design problem. The dummy cost model takes user defined input for an initial and optimal state and computes the sum of squared error between the two.**\n", - "\n", - "**For documentation on Topfarm see:**\n", - "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/user_guide.html#" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.cost_models.dummy import DummyCost\n", - "from topfarm.plotting import NoPlot\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", - "from topfarm._topfarm import TopFarmProblem\n", - "from topfarm.cost_models.dummy import DummyCostPlotComp" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Next we do some problem set up to provide an initial and optimal turbine layout as well as the overall turbine location boundary.**\n", - "\n", - "**We also configure initalize the plotting component for use in the optimization.**" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "initial = np.array([[6, 0, 0], [6, -8, 0], [1, 1, 0]]) # user-defined initial turbine layouts\n", - "boundary = np.array([(0, 0), (6, 0), (6, -10), (0, -10)]) # user-defined site boundary vertices\n", - "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "plot_comp = DummyCostPlotComp(optimal, delay=0.1, plot_improvements_only=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**A function is introduced below that will allow us to quickly reconfigure the example for the different drivers.**" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def optimize(driver):\n", - " tf = TopFarmProblem(\n", - " dict(zip('xy', (initial[:, :2]).T)), # setting up the turbines as design variables\n", - " DummyCost(optimal[:, :2]), # using dummy cost model\n", - " constraints=[SpacingConstraint(2), # spacing constraint set up for minimum inter-turbine spacing\n", - " XYBoundaryConstraint(boundary)], # constraint set up for the boundary type provided\n", - " driver=driver, # driver is specified for the example\n", - " plot_comp=plot_comp) # support plotting function\n", - " tf.optimize() # run the DoE analysis or optimization\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## DOE (Design Of Experiment) Driver\n", - "\n", - "The first driver example executes a design of experiments looking at how different sets of inputs for the turbine positions affect the cost function. In the first case, a user-defined set of inputs is provided, while in the second a \"full-factorial\" sampling approach is used.\n", - "\n", - "(Wikipedia) \"In statistics, a full factorial experiment is an experiment whose design consists of two or more factors, each with discrete possible values or \"levels\", and whose experimental units take on all possible combinations of these levels across all such factors. A full factorial design may also be called a fully crossed design. Such an experiment allows the investigator to study the effect of each factor on the response variable, as well as the effects of interactions between factors on the response variable.\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up a DoE experiment example using a user-defined set up input combinations of the 3 turbine positions**" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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ZvyR7FeuXEn37t257bbbaN68OcOGDcsew6V79+7ExcUxYcIEUlJSiIqKYtiwYcAfR+lnz56lZ8+etG3bloiICD7++ON8t7dv3z6aN2/O8OHDiYyM5Lbbbssebvirr76iTZs2REREMGLECM6ds64XmDBhAi1btiQyMpJHHnkE+OMmIx9++CFxcXEMGzaMqKgoUlJSsuMGa6jmiIgIwsPDefzxx7PjqFChAjExMbRu3ZpOnTrZMuBYUWmSV0oBMGPGjOzRGv2R7H/66Sf++c9/sm3bNvbu3Zv9xZLlhRdeoFy5cmzcuPGi8WZCQ0NZsmQJP/74I7GxsTz88MN5Dh6WZefOnYwePZrNmzdTqVIlXn31VVJTU4mOjmbRokX8/PPPpKenM3v2bBITE1myZAlbt25l8+bNPPXUUznquu2222jfvj0LFixg48aNOUadPHz4MI8//jhff/01GzduZP369SxduhSA33//nU6dOrFp0yauu+465s2b58su9IomeaVUtjp16jBjxgy++uor3nrrrewbftihY8eO1K9fH5fLRVRUVPawwIVhjOHJJ58kMjKSXr16cejQoQKPihs0aECXLl0A+POf/8zq1avZuXMnV1xxBVdddRUAw4cP55tvvqFSpUqEhoYyatQoPvroo+wB1Apj/fr1dO/enRo1ahAcHMywYcP45ptvAChTpkz2zULatWtXpNdsF03ySqlsR44c4aGHHqJXr15ER0fbeiWoL8PoLliwgOPHj7NhwwY2btxIrVq1Chw+uChDBwcHB/PDDz9w6623snTpUvr06VPo2PL7RRESEpIdh11DBxeVJnllq4Y/zKDhDzMKXrC0efKINQWQoIQgghL+GNrgoYceIjw8HBFh69atvPTSS9SuXbtYYwoJCSEtLe2i55OSkqhZsyYhISHExsayf//+Aus6cOAAa9euBaw2865du9K8eXP27dvHL79YYxG98847dOvWjbNnz5KUlETfvn355z//ycaNGy+qL6/hg6+++mpWrVrFiRMnyMjIYOHChXTr1q2oL91vArRTs3JKRpmKTofgH6cPWX+rN3U2Djt5HOJ16dIlO7kXd2L3NHr0aCIjI2nbtm2Odvlhw4bRv39/2rdvT1RUVKGGD27RogVvvfUWY8aMoWnTptxzzz2Ehoby5ptvMnjwYNLT0+nQoQNjx44lMTGRgQMH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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from openmdao.drivers.doe_generators import ListGenerator\n", - "from openmdao.drivers.doe_driver import DOEDriver\n", - "\n", - "optimize(DOEDriver(ListGenerator([[('x', [0., 3., 6.]), ('y', [-10., -10., -10.])],\n", - " [('x', [0., 3., 6.]), ('y', [-5., -5., -5.])],\n", - " [('x', [0., 3., 6.]), ('y', [-0., -0., -0.])],\n", - " ])))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Run a full factorial experiment for two inputs using OpenMDAO's built-in FullFactorialGenerator class. The input value of 2 is \"the number of evenly spaced levels between each design variable lower and upper bound.\"**\n", - "\n", - "**See: http://openmdao.org/twodocs/versions/latest/_srcdocs/packages/drivers/doe_generators.html**\n", - "**for more information on the various built-in DoE drivers for OpenMDAO.**" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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5ppr+Omnn1i7di0HDx4kMTGx0O2OD/mGDRvy3nvvlamWivLFF18AJ4Z8fHw806ZNC0lNCnkR4a233iIxMZFnnnmGI0eO8Mwzz5CYmFimoF+4cCFRUVHcfPPNAISHhzN16lRefvll0tPTmTVrFgMHDuSqq66iZcuWPPTQQwCMHTuW9evXExcXx5gxY9i4cSNt27YFYNasWVxzzTX079+fJk2aMH36dJ588knat29P586d2bNnDwAvvPACHTt25IILLmDQoEGkp6cXWuuwYcMYMWIEl1xyCS1atODvf/874Dt5ffPNN9OuXTvat29PcnIyACtXrqRTp07ExcURGxvLTz/9BECNGjXyXsO//vUv4uLimDp1KosWLaJfv34A7Nmzh2uuuYbY2Fg6d+7MihUrAN+7jFtuuYUePXrQtGnT8vujEOqvpsp/69ChgxOR8rFq1apir9umTRu3cOHCY55buHCha9OmTan7f/rpp93dd999wvNxcXHuu+++c6+88opr0KCB27Vrl0tPT3dt2rRxy5Ytcxs2bDim3/yPX3nlFdesWTO3f/9+t3PnTlerVi03Y8YM55xzd999t5s6dapzzrldu3blbZ+YmOimTZvmnHNuwoQJbsqUKSfUdNNNN7krr7zSZWdnu7Vr17pzzjnHHT582P3tb39zw4YNc845t3r1ate4cWN3+PBhN2rUKPfGG28455w7evSoS09Pd845V716deecc8nJya5v37557ed/PGrUKDdx4kTnnHMLFixwF1xwQV5tXbp0cUeOHHFpaWmuTp06LiMj44RaA/1egRRXQK7qSF5EWL16Nd26dTvmuW7durF69epSt+mcC3g1SP7ne/fuTd26dalWrRrXXnstS5cuLbLdnj17UrNmTc4880xq165N//79AWjXrh0bN24E4IcffuCSSy6hXbt2JCUlsXLlyiLbHTJkCGFhYTRv3pymTZvy448/snTpUv7whz8A0KpVK84991zWrl1Lly5dePTRR3n88cf55ZdfqFatWnF3yzFtXnbZZezevZt9+/YB0LdvXyIjI6lXrx7169dnx44dxW63IAp5EeH8888/IWCXLl3K+eefX+o227Rpc8Kssvv37+fXX3+lWbNmwImXBBbnEsHIyMi8+2FhYXmPw8LCyMrKAnzDL9OnT+f7779nwoQJxbq2PFAtroCvR/3973/P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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from openmdao.drivers.doe_generators import FullFactorialGenerator, ListGenerator\n", - "from openmdao.drivers.doe_driver import DOEDriver\n", - "\n", - "optimize(DOEDriver(FullFactorialGenerator(3))) # full factorial sampling with 2 levels (2 is the default)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise\n", - "\n", - "**Update the number of levels of the full factorial to see how it affects the sampling of the design space.**" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "optimize(DOEDriver(FullFactorialGenerator(2)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Gradient-Based Optimization with ScipyOptimizeDriver\n", - "\n", - "In the next example we introduce gradient-based optimization using a common open-source algorithm \"sequential least squares quadratic programming\" or SLSQP. OpenMDAO has several built-in drivers that leverage libraries of opensource optimization algorithms including those from SciPy and PyOptSparse. For more information on the optimization drivers available in OpenMDAO, see: http://openmdao.org/twodocs/versions/latest/_srcdocs/packages/openmdao.drivers.html\n", - "\n", - "Note that in Topfarm, the OpenMDAO drivers are wrapped so that you can more easily use them on Topfarm wind farm design optimization probblems." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Import the Topfarm implementation of the Scipy optimizer and execute a gradient-based optimization.**" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization FAILED.\n", - "Iteration limit exceeded\n", - "-----------------------------------\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAEICAYAAAC6fYRZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXxU1dnA8d8zSUggJCxhCVsIIDuEAGETEAIqFlmsIlXRskgpUKlFRVG0YC2I2gIvIlB8RVCRilXRor5UJaC4QQJh3yn7nrCTfc77x53EELJOMpmF5/v5zCeZufee88yd5Jk755w5R4wxKKWU8k02dweglFLKdTTJK6WUD9Mkr5RSPkyTvFJK+TBN8kop5cM0ySullA/TJH8TEJEoEfnB3XEo54nInSKy0t1xlCURCRSR3SJSy92x+DJN8j7A8c/ylogcFpHLIrJZRH6Vvd0YsxW4ICIDiyinn4h86yjjrIisE5FBpYxtrYiMLmR7MxH51FFfsoisFpHmuba3cTx2TkSK/FKHiPiJyF9F5ESuc1HVse0BEdkjIhdF5IyILBWR0DyxporIFcdtTwF1TBURIyK353pskohsd9T5XxGZlOeYOMdzvCQiW0RkcFHPJY8ZwMxCnvc0EcnIFfsVEWmca/tLIrJNRDJFZFphFYlIVce5OeO4Tcu1rZaILHec34si8r2IdMm1vZ2I7HC8XhNzPR4gIj+LSIPsx4wxacBi4JkSngtVAprkfYM/cBToBVQBXgBWiEhkrn2WAb8vqAARGQJ8CLwD1AdqA38GCn1jKANVgc+A5o46NwCf5tqeAawAHi1meS8CtwLdgFDgESDVse17oLsxpgrQGOu8/TXP8Y8ZYyo7bs3zbENEmgBDgJN5NwG/BaoBdwGPicgDubY/DtQxxoQCY4D3RKROcZ6QiHQCqhhjfipi1w9yxV7ZGHMw17b9wNPA58WocjZQCYgEOgOPiMhIx7bKwEagI1AdWAp8LiKVHdtfBp4C2gHPi0i44/EngI+MMUfz1PU+MFxEAosRl3KGMUZvPngDtgL35bpfD0gBAvPZV4AjwKRCyrMBzwOHgTNYbwZVHNuCgPeAJOACVhKoDUwHsrCS7BVgXjHirg4YICzP47dYf66FHlvNUU+TYtRT2fEcvsj12FpgdBHHfQn0Bw4Btxey31zg9QK2dXack87FfC3/DPxvEftMA94rRlnvAdOK2Occ0CnX/eeA7wrZ/xLQ0fH7ruy/MeAnx3ONwHrzDijg+H1AL1f8H+jN6JW8LxKR2kAzYEf2Y8aY41hXxTdcnToeawD8q5BiRzhusVhXwZWBeY5tw7E+QTQAwoCxQIoxZgrwHb9cHT9WjPBvA04ZY5KKsW9ebYFMYIiInBKRvSLyh9w7iEgPEbkIXAbuA+bkKeNlR1PD9yLSO8+x9wPpxpgvCgtCRAToSa7z73h8lYikAj9jvaHEl+B55dt0lMdAR5PXDhEZV8yyCyJ5fm+T704i0UAFrE8KANuBO0WkPtYngQNYb3hPG2MyCqhrF9aVv3IBf3cHoMqWiARgNc0sNcbszrP5MlbzSF5hjp95myByGwbMMo4mABF5Ftju+Bif4SjjFmO1/yc4GXt94A2sj/bOqI/1ZtMMaAQ0Bb4Rkb3GmK8AjDHrgSoiUg/4HdYVebZngJ1AOvAA8G8RiTbGHHA0R8wA7ixGHNOwPvm8nftBY8wAx+tzO9DCGGMv5vOqivXaFWYFsAg4DXQBPhKRC8aY5cWsI7f/AyaLyHCsT2SjsJpvruPoz3gXeNEYc9Hx8FPAAiAcmAh0d8R+UEQ+dTyXecaYD3MVVdDfpSoDeiXvQ0TEhvVPlw7kd9UcgtWcklf2VXNhbcR1sZpqsh3Gukio7ahzNfBPR4fcq45kVpLYawL/AeY7mZjAao4C+IsxJsXxhvNPrOaV6zg+2fyfY3v2Yz8bYy4bY9KMMUux2vCzj30ReNcY898insdjWG3zdxurYzFvvRnGmC+BfiXo1D6P9dpl1/Fcrs7VhY5ydxpjThhjsowxPwD/g9V34Iw/Yp3LfVj9I8uBY7l3EJGKwL+Bn4wxL+d6foeNMf2NMR0cx/4FK/H/DfgAGATMEpHquYor6O9SlQFN8j7C0UTwFlbSvS/vR2MRqYv1sTq/j/17sDpu7yukihNAw1z3I7CaRk47EteLxphWWJ2eA7ASHVjt60XFXg0rwX9mjJle1P6F2FrcOh38gSaFbDf80mzRF/ijoxnoFFbT1AoRyRkZIiKjgMlAX2PMsRtKK1nduW3F+nRiBWXMDPNL5+rYYsReIsaYZGPMMGNMuDGmNVae2JC93dFJuhI4TiGd+fzSl3Aaq8kp3nHFfwyrjyVbS2CLM7GqYnB3p4DeyuYGLMTq6KpcwPaHyNXJmM/2IcBFYCTWqBQb0ANY5Ng+GuvKrhFWe/y/cHT0YbXTtwX8sDpOtwAjHNv+CcwopN5QrASSb6csVqIKAlphJa4g8uk8zrX/t8A/gECs5HEGK+mC1eQU4SizIbAO+NixrSrQz1G+v2Pfq0Bzx/YwrCaI7NtR4P7s8+3Y/xTQMp+YWgC/AioCAcDDWJ+2OhTzte0A7C1in8FYHc+C1dl5HBiea3uA47m9jzWiKAjwK6CsJo7n6+eI+xzQOlc5/8ZK8v6FxNPK8ffo57j/BVZfTW1HeeGOx+thfZIs8DXVW+lubg9Ab2XwIloJy/DLKJbs27Bc+3wODCqinLuwOkqvAGexOgfvdmyzYV2ZHXVsew+o5tj2INangatYbcJzsxMA1lDGvVhNDnPzqXO4I/areWKPcGyPdGzPfTuU6/gvgedy3a+H1QxzBTgI/D7XtulYV5FXHT8X4RjFA9TEGhV0Gavp4CfgjkLO1SFyja4B/ovVN5H7OSx0bGuJ1dmaXfZG4NclfI03Al0K2b7ckSyvALuBP+bZviSf8zjCsa0ncCXXvkOxPrldAxKBfrm29XIcey3Pc+2Zp7643PFidazuxErwT+R6fBJWX4/b/4989SaOE618mIi0xboi7+buWJRzROROYLwx5h53x1JWHM0+W4DbjDFn3B2Pr9Ikr5RSPkw7XpVSyodpkldKKR+mSV4ppXyYR33jtUaNGiYyMtLdYSg3SkhIICA0gKwrWYTVCKNOeB0CAkr0vSqlbjoJCQnnjDE189vmUUk+MjKS+PjiTuehfJGI0Hxuc7KuZZF2MI39i/YzYvgInn/2eerUKdakjUrddETkcEHbtLlGeSS/Sn5UalOJOk/WYdHiRTz42wfdHZJSXkmTvPJI9kw7xhhOzTnF7x/9Pf98959FH6SUuoFHNdcoBZD0zyQCbwmkckxlVv24it7Ne7s7JKW8liZ55VE6dOlAt2bdaHh/Q9458A5n0C9COisjI4Njx46Rmppa9M7KKwQFBVG/fv0SDUbQJK88SsJP1lT0aw6v4Z0D73DgwgE3R+S9jh07RkhICJGRkViTlCpvZowhKSmJY8eO0ahRo2Ifp23yyiO1rtEagLSsG6ZkV8WUmppKWFiYJngfISKEhYWV+JOZJnnlkWoH1yakQggBNh0jXxqa4H2LM6+nJnnlseoE1+HklcJWJFRKFUWTvPJYF9Iu8NOpn9wdhiqFY8eOMXjwYJo2bUqTJk14/PHHSU9PL/SYCxcuMH/+/Jz7J06cYMgQZ1cyvN60adP429/+ViZl5efWW28F4NChQ7z//vs5j8fHx/PHP/7RZfUWRpO88lihFUK1Tb4cLV++nDZt2uDn50ebNm1YvtzZpXYtxhjuvfde7rnnHvbt28fevXu5cuUKU6ZMKfS4vEm+bt26/Otf/ypVLOXlhx9+AG5M8jExMcydO9ctMWmSVx6rdqXaAJy5psMoXW358uVMmTKF119/ndTUVF5//XWmTJlSqkS/Zs0agoKCGDlyJAB+fn7Mnj2bxYsXc+3aNZYsWcLgwYO56667aN68OS+++CIAkydP5sCBA0RHRzNp0iQOHTpEmzZtAFiyZAn33HMPAwcOpFGjRsybN49Zs2bRvn17unbtSnJyMgBvvvkmnTp1ol27dtx3331cu3at0FhHjBjB2LFj6dmzJ82aNWPVqlWA1Xk9cuRI2rZtS/v27YmLiwNgx44ddO7cmejoaKKioti3bx8AlStXznkO3333HdHR0cyePZu1a9cyYMAAAJKTk7nnnnuIioqia9eubN1qLU08bdo0Ro0aRe/evWncuHGZvSloklceKyIkAoCd53a6ORLfN336dN566y1iY2MJCAggNjaWt956i+nTnV9XfceOHXTs2PG6x0JDQ4mIiGD//v0AbNiwgWXLlpGYmMiHH35IfHw8M2fOpEmTJiQmJvLaa6/dUO727dt5//332bBhA1OmTKFSpUps3ryZbt268c477wBw7733snHjRrZs2ULLli156623ioz30KFDrFu3js8//5yxY8eSmprKG2+8AcC2bdtYvnw5w4cPJzU1lYULF/L444+TmJhIfHw89evXv66smTNn0rNnTxITE5k4ceJ126ZOnUr79u3ZunUrM2bM4Le//W3Ott27d7N69Wo2bNjAiy++SEZGRjHOdOE0ySuP1aRaEwD2nN/j5kh8365du+jRo8d1j/Xo0YNdu3Y5XaYxJt/RILkfv+OOOwgLC6NixYrce++9rF+/vshyY2NjCQkJoWbNmlSpUoWBAwcC0LZtWw4dOgRYbwQ9e/akbdu2LFu2jB07dhRZ7tChQ7HZbDRt2pTGjRuze/du1q9fzyOPPAJAixYtaNiwIXv37qVbt27MmDGDV155hcOHD1OxYsXinpbryuzTpw9JSUlcvHgRgLvvvpvAwEBq1KhBrVq1OH36dLHLLYgmeeWxompEAZBhL/3VjCpcy5Ytb0iw69evp2XLlk6X2bp16xtmlb106RJHjx6lSRPrDTzvm0BxhggGBgbm/G6z2XLu22w2MjMzAav5Zd68eWzbto2pU6cWa2x5frEUtDzqQw89xGeffUbFihXp168fa9asKbL8bPmVmV137ufm5+eX83xKQ5O88lhNqzXFT/ywG7u7Q/F5U6ZM4dFHHyUuLo6MjAzi4uJ49NFHi+wkLUzfvn25du1aThNKVlYWTz75JCNGjKBSpUoAfPXVVyQnJ5OSksLKlSvp3r07ISEhXL58uVTP5/Lly9SpU4eMjAyWLVtWrGM+/PBD7HY7Bw4c4ODBgzRv3pzbbrst5/i9e/dy5MgRmjdvzsGDB2ncuDF//OMfGTRoUE67erbCnkPuMteuXUuNGjUIDQ0txbMtnMuTvIjcJSJ7RGS/iEx2dX3Kd/jb/KlZsSaHLxU4VbZyws5duzh85Mh1QxkffPBBpk+fzoQJEwgKCmLChAlMnz6dBx90fopnEeGTTz7hww8/pGnTpjRr1oygoCBmzJiRs0+PHj145JFHiI6O5r777iMmJoawsDC6d+9OmzZtmDRpklN1v/TSS3Tp0oU77riDFi1aFOuY5s2b06tXL371q1+xcOFCgoKCGD9+PFlZWbRt25bf/OY3LFmyhMDAQD744APatGlDdHQ0u3fvvq5dHSAqKgp/f3/atWvH7Nmzr9s2bdo04uPjiYqKYvLkySxdutSp51hcUtDHkTIpXMQP2AvcARwDNgIPGmPy7UmLiYkxumiIyq3r+10RhB8f+tHdoXidXbt25dvcEh8fj39wVewplx2rb4VToUKFco9vyZIlxMfHM2/evHKvO68RI0YwYMCAMhuP70r5va4ikmCMiclvf1dPUNYZ2G+MOegI5J/AYECHS/ioRYsWXTc+uLRShqRgD7bTu3fvMivzZjF16lRstvw/rNtCamCrXJ0LWZkk7dhJWFh1tyV75VquTvL1gKO57h8DuuTeQUTGAGMAIiIiXByOcrX333+fxMREoqOjy6Q8SRGoDHabHZtdu5DKlNgQ/wr4Va3DuXPHSU1JpXnzZuVW/YgRIxgxYkS51VeYJUuWuDsEl3F1ks+vq/y69iFjzCJgEVjNNS6OR5WD6Oho1q5dWyZlPb3uab489CULP1xIq7BWZVLmzWLXrl00b978hsevaxK1Z5F1/gQ1atSgrq6h65NcfWl0DGiQ63594ISL61Q+JLJKJAC7kpwfr61uZFKvWL+kX6Nt2zY0jIgo0UIUynu4OslvBJqKSCMRqQA8AHzm4jqVD2lfqz2gY+XLUqXgYCoEBgEQYE/X5O7jXJrkjTGZwGPAamAXsMIYU/RXz5RyaFPDmrMkNVOXsCsrrVq2xPhZHaw2U/ov2yjP5vKeLGPMF8aYZsaYJsYY5yfCUDelkAohVPKvxN7ze90dis8wxmA3BltW4VP+loXsCbsKM3r0aHbutAbc5R5DD79M3VvaOpy1cOHCnC9zLVmyhBMnfmltzh23J9PhCsrjZdoz+fGkjpMvK6kZdivJZ6bkPNajRw8mTpzIyZPlv0jL//7v/9KqldWpnjfJZ0/d6y5jx47N+aJT3iSfO25PpkleebzggGAup5fua+7qF+evWVfwua/kv//+e8Cab8YVyX7t2rX07t2bIUOG0KJFC4YNG5Yzh0vv3r2Jj49n8uTJpKSkEB0dzbBhw4BfrtKvXLlC37596dChA23btuXTTz8ttL5Dhw7RokULhg8fTlRUFEOGDMmZbvibb76hffv2tG3bllGjRpGWZq1ZMHnyZFq1akVUVBRPPfUU8MsiI//617+Ij49n2LBhREdHk5KSkhM3WFM1t23bljZt2vDMM8/kxFG5cmWmTJlCu3bt6Nq1a5lMOFZSmuSVx6seVJ30cmhauFlcTMlAECTPnECzZ8/Oma3RFcl+8+bNzJkzh507d3Lw4MGcN5ZsM2fOpGLFiiQmJt4w30xQUBCffPIJmzZtIi4ujieffLLAycOy7dmzhzFjxrB161ZCQ0OZP38+qampjBgxgg8++IBt27aRmZnJggULSE5O5pNPPmHHjh1s3bqV559//rqyhgwZQkxMTM60yLlnnTxx4gTPPPMMa9asITExkY0bN7Jy5UoArl69SteuXdmyZQu33XYbb775ZmlOoVM0ySuPVzu4NgZDUkqSu0PxesYYMrLsBPjnP9tjnTp1mD17Nt988w1Lly7NWfCjLHTu3Jn69etjs9mIjo7OmRa4OIwxPPfcc0RFRXH77bdz/PjxIq+KGzRoQPfu3QF4+OGHWb9+PXv27KFRo0Y0a2Z96Wv48OF8++23hIaGEhQUxOjRo/n4449zJlArjo0bN9K7d29q1qyJv78/w4YN49tvvwWgQoUKOYuFdOzYsUTPuaxoklcer36ItSDDjiQdmFVal1Ot0TTBFfL/HuTJkyeZOHEit99+OyNGjCjTb4KWZhrdZcuWcfbsWRISEkhMTKR27dpFTh9ckqmD/f392bBhA/fddx8rV67krrvuKnZshX2iCAgIyImjrKYOLilN8srjdQm3ZsJIz9Qmm9K64GiPr1bpxrHxEydOpE2bNogIO3bsYNasWYSHh5drfAEBAfmuhnTx4kVq1apFQEAAcXFxHD5c9MykR44c4ccfrQ775cuX06NHD1q0aMGhQ4dyVqZ699136dWrF1euXOHixYv079+fOXPmkJiYeEN5BU0f3KVLF9atW8e5c+fIyspi+fLl9OrVq6RP3WVcPa2BUqWWPVb+YvpFN0fi/a6lZyFAcOD1//rdu3fPSe7lndhzGzNmDFFRUXTo0OG6dvlhw4YxcOBAYmJiiI6OLtb0wS1btmTp0qX8/ve/p2nTpowbN46goCDefvtt7r//fjIzM+nUqRNjx44lOTmZwYMHk5qaijHmhumB4Zd1YCtWrJjz5gFWE9fLL79MbGwsxhj69+/P4MGDy+aElAGXTjVcUjrVsPfLni2yrOauAevbrh3f7ch9Te9j6q1Ty6xcX5d3SlpjDLtOXqZSBT8iawSzZ4+1rGJ+89t4u0OHDjFgwAC2b9/u7lDKXEmnGtbmGuXxAmxWu+bPp352dyheLT3TTqbdTkiQfoC/mWiSV16hol9FLqRdcHcYXu3cFWs8eKUKfm6OxPUiIyN98ireGZrklVcIDQwlJSOl6B1VgbJH1gQF+H6SV7/QJK+8Qo2KNcg0mWTadUItZ+SMj/ez3TC0UPk2TfLKK9StXBeAgxcOujkS73Q1PQvDzdFUo66nSV55hR71egBwJf2KmyPxTheuWuPjq1bSNVxvNprklVdoWd0aMnYu9ZybI/FOqZl2BAgt55E1p06d4oEHHqBJkya0atWK/v37s3dv+U4bfeHCBebPn+/SOjx5SmJN8sor1KpUC4BNpze5ORLvZA2dDCiwPf7VV18lLi7uusfi4uJ49dVXna7TGMOvf/1revfuzYEDB9i5cyczZswo0UyMWVlZ1913ZlqA8kjynjwlsSZ55RWqVKgCQMLpBDdH4n3SM7NIz7Tf8C3X3Dp16sTQoUNzEn1cXBxDhw6lU6dOTtcbFxdHQEAAY8eOzXksOjqanj17snbt2pyJuwAee+yxnHlyIiMj+ctf/kKPHj348MMP6d27N8899xy9evXif/7nfzh79iz33XcfnTp1olOnTjmzWU6bNo1Ro0bRu3dvGjduzNy5cwFrCuEDBw4QHR3NpEmTrovxZpiSWJO88go2m40AWwBJqToTZUmdvWwlp0D/gv/dY2NjWbFiBUOHDuXPf/4zQ4cOZcWKFcTGxjpd7/bt2+nYsaNTxwYFBbF+/XoeeOABwLoaX7duHU8++SSPP/44EydOZOPGjXz00UeMHj0657jdu3ezevVqNmzYwIsvvkhGRgYzZ86kSZMmJCYm8tprr91Ql69PSaxJXnkNXTzEOVfSrCaPykW0x8fGxjJu3Dheeuklxo0bV6oEX1q/+c1vCrz/9ddf89hjjxEdHc2gQYO4dOlSzsRhd999N4GBgdSoUYNatWoV64rY16ck1iSvvEb1oOqkZaW5Owyvk55lx99mw1bE+Pi4uDgWLFjACy+8wIIFC25ooy+p1q1bk5CQf/Oav78/dvsvi5bknTY4ODi4wPt2u50ff/yRxMREEhMTOX78OCEhIYBz0xn7+pTEmuSV16hVqRYGw4VUnd6guFLSMzHGFDk+PrsNfsWKFfzlL3/JabopTaLv06cPaWlp1zU9bNy4kXXr1tGwYUN27txJWloaFy9e5Jtvvil2uXfeeSfz5s3LuZ/ftMC5FTRFcDZfn5JYk7zyGn0i+gCQnJrs5ki8x/lr1tzsoRVvnD8+t40bN17XBp/dRr9x40an6xYRPvnkE7766iuaNGlC69atmTZtGnXr1qVBgwYMHTqUqKgohg0bRvv27Ytd7ty5c4mPjycqKopWrVqxcOHCQvcPCwuje/futGnT5oaOV/hlSuKoqCiSk5NvmJK4bdu22Gw2xo4dy+XLlxkwYABRUVH06tWr0CmJsztes+Wekrhdu3Z06NChXKYk1qmGVZlyxVTD2Tae2sio1aNYdMciutXtVubl+5pdu3ZRqVYEl1IyaV03FJvt+mYJX55quLi8cUpinWpY+axqgdUA+PmkTjlcXGmZdioH+d+Q4NXNQ5O88hp1g635axLPFt4GqyyZdjupGVkE63w1BboZpiTWJK+8RqUKlbCJjbPXzro7FK9wJS0LYwx+ehXvM5xpXndZkheR10Rkt4hsFZFPRKSqq+pSN48gvyBdPKSYDp9PJ/PaJaoU0emqvIMxhqSkJIKCgkp0nCtnK/oKeNYYkykirwDPAs8UcYxShQqtEKqTlBXT378/xx+62Klkv5bv9lOnTgFcN15debagoCDq169fomNcluSNMf/JdfcnYIir6lI3jxoVa3Dq2insdjs2m7Y2FuRo0jXOXsti9WE7I/q1zHefcePGAa4ZCaU8R3n9l4wCviynupQP6xfZD4DzaefdHIln+yD+KAB3tKrt5kiUu5XqSl5EvgbC89k0xRjzqWOfKUAmsKyAMsYAYwAiIiJKE466CTQMbQjAqaunCKsY5uZoPNfl1Az8bcJ9Heq5OxTlZqVK8saY2wvbLiLDgQFAX1NAt7AxZhGwCKwvQ5UmHuX7KgVYE0L9cOIHWtdo7eZoPNfmoxfoEFGNKroS1E3PlaNr7sLqaB1kjMm/50epEqoTXAeA7ed8e2xzaZy8kMK2YxdpUSfE3aEoD+DKNvl5QAjwlYgkikjhE0woVQz1K1sjC05ePenmSDzXhwlHMUDdKhWL3Ff5PleOrrnFVWWrm5cuHlK0uN3Wl8WGxGh7vNJvvCovFBwQzOU0XTykIHtPXya4gh81KpfsSzPKN2mSV16nWmA10u3p7g7DI527ksrV9CyahWt7vLJokldep3+j/mSZLF0lKh9fbrOWu4ttXsvNkShPoUleeZ26IdZslKevlt2K9r7i7OVUBHi4q37nRFk0ySuvY3P82X5/4ns3R+J5fvpvMm3rV6F6cGDRO6ubgiZ55XVqVbKaInYl7XJzJJ7l4rV0Nv43mfBQ7XBVv9Akr7xOq7BWABy7cszNkXiWjzYdxwDNamunq/qFJnnldSpXqIwNG2eunXF3KB7lq51WH8VvOjVwcyTKk2iSV14p0D+QC6m6eEhuO09eJNDfRoPqldwdivIgmuSVVwoLCiPDnlEudS1btozIyEhsNhuRkZEsW5bvhKrlVk5+rqRmcjElk8Y1g8usTOUbXLkylFIu0zeiLx/s+QBjDCKuW8N02bJljH3qeULufpoG1euTnnyMsU89D8CwYcNKVM74Z8dTa2wtWoW3Iu1UGuOfHV/icgry03+t1bL6ttDx8ep6eiWvvFKdynVIzUp1+XqvU6ZMIeTuSQRUr4/Y/AioXp+QuycxZcqUEpdTa2wtAsMDET8hMDyQWmNrlbicguw5dQWAkd0blUl5yndokldeKTUzFYCfTv7k0nqOHDmSk+CBnER/5MiREpeTneCBnERf0nIK8v3+czStVZmwyjo+Xl1Pk7zySrWDrWXtdifvdmk9ERERZCQfw9izADD2LDKSj5V4FbOIiAjSTqVhsqx1cUyWIe1UWpmshpaanskPB5IICtB/Z3Uj/atQXql1mLUq1JFLZXMlXJDp06dz+fPXchJ9RvIxLn/+GtOnTy9xOWcWnslJ9Gmn0jiz8EyJy8nPv7dac+t3bFi91O++yCYAAB7jSURBVGUp36Mdr8orNQyx1no9ceWES+vJ7hSdMmUKR44cISIigoV/m17iztLc5Rw4coCIiAjmvzy/TDpdv9xuJfmhneqXuizlezTJK69ks9nwt/mXy+Ihw4YNK5NkXFbl5LXl6EUC/IRWdaqUednK+2lzjfJaNYJqUMD68DeN9Ew7SVfTidAvQKkCaJJXXuvWerdiuLmT/I4TFwEYEFXHzZEoT6VJXnmt8OBwzqacJT3r5l0latMR63sCv+mk88er/GmSV14re+6axLOJbo7Efb7YdoLwKoHUrVrR3aEoD6VJXnmtOsFWE8We5D1ujsQ9MjPtbDp8gUB/P3eHojyYJnnltVpUbwHAwQsH3RyJe3yz+wwG6NJIx8ergmmSV16rVQ1r8ZCjl4+6ORL3+GzLcQDuba/j41XBNMkrrxVaIRRBOH3t5lzQe9ORC9gEOjeq5u5QlAfTL0MprxYWFIaf+F6b9Llz50hISCAhIYHx48ezf/9+nnrqKQIDA6lZsyZjxozh1KVU6oYGYrPptZoqmP51KK/WvnZ7nxkrn5VlTYI2b948mjRpwsyZM0lOTiY9PZ3GjRszdepUJk6cSN++fblMRYyBfV8uYfDgwaxevRq73e7mZ6A8kcuv5EXkKeA1oKYx5pyr61M3l/DgcL479h12u91rr2jtdjtvvPEGr7zyCj///DOPPPIIY8aMoUKFCtftFxsbm/P7+z8fAc4Q995sfvzPp0yePJkdO3bwxBNPlHP0ytO59L9CRBoAdwCunSpQ3bROXT1FalYqx68cd3coTjl+/Di9e/fmgw8+4IsvvqBevXpUqVLlhgSf17KfD1M50J9WDWowevRoNm3axIQJE/j555+5//77OX365uynUDdy9aXPbOBp8JHP08rj1K9sjSzZnrTdzZGUXHp6OiEhITz00EOsW7eOqKioYh1nt9vZdfISIUH+OUsfiggBAQG0a9eOJk2a0K5dO+Li4lwZvvISLkvyIjIIOG6M2VLEfmNEJF5E4s+ePeuqcJSPuqXqLQDsTd7r5khK5h//+AeDBg0iNDSUsWPH4udX/M7jnw4mYzfQseGNo2qCgoKYOXMm77//PlOnTtV2elW6NnkR+RoIz2fTFOA54M6iyjDGLAIWAcTExOgVvyqRVmHWWPnDlw67OZLie/fdd/nrX//KunXrnDr+k81W09SgdnUL3KdPnz7ExsZy5coVdu/eTadOnZyqS3m/UiV5Y8zt+T0uIm2BRsAWx8fJ+sAmEelsjDlVmjqVyq1xlcYAnLx60s2RFE9SUhLPPPMMX3/9NY0bN3aqjJ//m4wAt7esVeh+IsL27dv59a9/zZYtW6hdu7ZT9Snv5pLmGmPMNmNMLWNMpDEmEjgGdNAEr8qazWajamBVAv28YwHrsLAwdu3aRatWrZwu4+zlNMKrBBVrNFG3bt0YMWIE48ePv+nn3r9Z6ZehlNe6ePEimzZtomp6VTJNJkuXLmXVqlVUrFiRiIgIJk6cSLVq1RCRnA5Kd5o5cybVq1dnzJgxTpdx/EIKKRlZPNWjWbGPmTZtGp07d2bHjh20adPG6bqVdyqXJO+4mleqzDzwwAOsWrWK6OhoQoaGcCzwGNHR0VSsWJGUlBQOHDhAQEAA//73v5kwYQKPPvoov/vd76hbt+B2bFe6dOkSr776Kps2bSpVOT8dsL5q0rVJWLGPCQoKIj4+vshhmco3eee3R9RNJyUlheeff5477rgDgJdffpkLFy6wfv16wpuFk5SaRNPWTRk6dCjDhw/nL3/5C6GhoQwaNIhVq1Zx+vRp2rRpw86dO90S/3vvvUefPn2IjIwsVTkL1h3E3ya0CA8t0XEVKlTgpZde4ptvvilV/cr7aJJXHm/Dhg20b9+effv28Y9//AOARo0a4e9vfRDNHiu/K2nXDceKCFFRUcyfP5/Dhw/TsmVL3njjDRYsWFCuwwuNMTz++OOlLufQuatUrRSAn63kzU/h4eG8/vrrpY5BeRdN8spjGWMwxnDlyhX++te/8sEHH+Q7IiWySiQAu5N2F1peSEgIIkJsbCxLliyhX79+nD9/3hWh3+APf/gDPXv2LFUZO45fJNNuaFe/qlPHP/TQQ3zzzTdcunSpVHEo76JJXnkku93O2LFjmTdvHn369GHIkCEF7pu9eMiBiweKVXarVq34/vvvadWqFdOnTy+TeAvzzjvvMHny5FKXsyLhGAC/apvfV1OKFhwczK9+9SuOHTtW6liU99DRNcrjGGP405/+xI4dO/jb3/5W5P6tw1oDcOxy8ZOXv78/c+bMITMzk8OHD1OlShWqVnXuCrkoP//8M7fcckupy/lhv9XpOqBtHafLWLFiRanjUN5Fr+SVx/nss8+Ii4tj1apVhISEFLl/1aCqVPKvRHBAcInqyZ7vZdGiRYwePdpl48g3bdpEx44dnT4+y274ZtdpTlxIoWblQAJKsaZrYmIis2bNcvp45X00ySuPM2DAAL766qsSXVlHVokkNSvVqfpeeOEFdu7cyYcffujU8UWJjIx0elRNlt3Q8f4JjJyxhKvpWZzYtZGO908gy+7cG9KpU6f4z3/+49SxyjtpklcewxjDo48+yt69ewkPL1m7c7XAahy6eMipeoOCgnj77beZMmUKmZmZTpVRmOXLlxMREeHUsWv3nOF8cAOOfzSDC9+9x6lPZnI+uAFr95xxqrwKFSqQlpbm1LHKO2mSVx5j3bp1fP/99061XyelJHHsyjGnh0V26dKFhISEnGGZZenpp5/m5Enn5tbZceIStrptCGnfn4s//JOQ9v2x1W3DzhPOjZDJyMjQL0XdZDTJK48xf/58JkyYQEBAQImPDQ+2rvxPXnN+orLg4GBGjhxJSkqK02XkZ82aNRw+7Nwsma3rhmI/sZ3Lm7+gyq0PcHnzF9hPbKdV3ZJ9GSpbnz59XNYspTyTJnnlEex2O1lZWTzyyCNOHR8RajWHbD/n/OIhfn5+nD59mg8++MDpMvITHR3N5s2bnTq2d/NaVLt6lPpDnqNaz4etn1eP0rt54TNQFuSHH34gOTnZqWOVd9IkrzyCzWbjo48+IjTUuSvU7MVD9p3fV6o4fve73/Huu++Wqoy8OnbsSGJiolPH+tmEhA9fZ/GzI3jijmYsfnYECR++7tQ3XgGmTp3K3r3etcCKKh1N8soj/OlPf2LNmjVOH589Vv7QpUOliqNnz56cPn26TIdTjho1igULFjh9vJ9N6NuyNhP6NqVvy9pOJ/j09HQ2b95Mhw4dnI5FeR9N8sojfPHFF6Va1KJx1cb4iR9VKlQpVRw1atRg+/btZTo1cWBgIB999BHbtm0rszKdsXLlSjp06ECNGjXcGocqX5rkldtdunSJEydO0KJFC6fLEIRqQdXYfGYz646uI8ue5XRZH330EevXr3f6+PwcOHCAOXPmlGmZJdWvXz8WLVrk1hhU+dMkr9zuwoULdO3atUSLWeeWZc+i25huHN50mH0X9jF24Vi6jenmdKJft24dCQkJTh1bkFGjRvHxxx9z7ty5Mi23uPbt28e2bdto2rSpW+pX7qNJXrldREQEX3/9tdPHrz++nsu1L3Nk/hFOf3yafa/v41LtS6w/7tzVeFBQEKmpzn17tiC1atVi+PDhvPPOO2VabnFkZWUxcuTIUi9YoryTJnnldufOnSvVbJC7kncR0CyA6rHVOfvZWarHVqdCswrsTi586uGCZGRkODVWvyivvfYaEydOJCvL+aYkZ7z++uvYbDYee+yxcq1XeQZN8srtMjMzmT17ttMjWlpWb0nG3gyS45KpOagmyXHJpO9Nz5mCuKSee+45Ro4c6dSxhQkICCA5OZmoqChOnSqfNe2zsrJYsWIFixcvLtbC38r36Kuu3K527dr4+fk5Pc95j3o9CDkdwi0TbiH83nBumXALoadD6VGvh1PlbdmyhUqVKjl1bFHCwsJ46KGHuOOOO1z+paQjR46Qmprq9FQRyjdoklduJyJ07NjR6c5OP5sfPy76kX+M/Qd/iP4D/xj7D35c9CN+tpJ35KakpDBo0CCn4iiu5557jrvvvpuHHnrIZXXs2rWL7t27s3r16jIdDqq8jy4aojzC0qVLqVatmtPH+9n86NWgF70a9CpVHJs3b6ZFixYEBgaWqpzCiAgvv/wyZ8+eJT09nbVr13LnnXeWWflvv/02Tz/9NLNmzeLee+8ts3KVd9IreeURwsLCeOutt8q9UzKvd9991+VX8mAl+lq1anH06FHGjx/PI488UurhlUlJSYC16lVcXJzT8wAp36JJXnkEm83G4sWL+fLLL90ax+jRoxk3bly51dekSRO2bNlCWFgYTZs25fjx4yWa094Yw5o1axgyZAhNmzbl8OHDPPLII7Rp08aFUStvokleeYzx48czb948t9W/ceNGGjRoUKrpFZwRHBzMnDlzOHjwIPXq1WP27Nm0adOGRx99lPnz53PhwgVSUlI4dOgQ+/bt47vvvmPOnDmkpaXx/vvv8/jjj9O3b18OHz5Mw4YNyzV25fk0ySuP8Zvf/Ib9+/ezdevWcq/7zJkzDBw4kCNHjpR73dmy+ySeeOIJFi9eTExMDJs2bSI9PZ34+Hhuu+02+vfvz9NPP82+ffu4evUqDzzwAFu3bmXcuHHFWg9X3Xy041V5jKCgIDZv3kxISAjGmHIbFWKMYfz48YwYMYKYmJhyqbMwfn5+dO7cmc6dO+c8VqtWLbe+ASnv5dIreRGZICJ7RGSHiLzqyrqUbwgJCWH16tWMHDmyTKf7Lczu3bvZv38/06ZNK5f6lCpPLkvyIhILDAaijDGtgb+5qi7lW3r06MGOHTt49tlnXZ7oT5w4QcuWLdm4cSNBQUEurUspd3Dllfw4YKYxJg3AGOPc8vLqphMcHMyXX37J559/XqrFNoryxRdfEB0dzfHjx10yV41SnsCVbfLNgJ4iMh1IBZ4yxmzMu5OIjAHGgDUboVJgLd6xbt06RISjR49is9moV69emZSdkZHBSy+9xKJFi/j3v/9dZuUq5YlKdSUvIl+LyPZ8boOx3kCqAV2BScAKyacnzRizyBgTY4yJqVmzZmnCUT6mevXqVKtWjXXr1tG+fXuWLl1a6uab1NRURISUlBQ2b95Mly5dyihapTxTqZK8MeZ2Y0ybfG6fAseAj41lA2AHdN0xVWIPP/ww//nPf5g7dy59+/YFKFGyz8rKYtWqVfTv35+ePXvi5+fHa6+9Rp06dVwVslIew5XNNSuBPsBaEWkGVADcsyyO8nrR0dHEx8fnDCO855578PPzIyYmhs6dO3P77beTlpZGRkYGKSkpHDhwgHPnzjFgwAAeffRRdu/ezfjx47n//vt1wi51U3Flkl8MLBaR7UA6MNyU15g45ZNEJOcbnQsXLsxZpm/58uXcfvvtTJs2jblz5xIUFETDhg258847GTBgAG+88QbBwcFujl4p9xBPyrsxMTEmPj7e3WGoUujduzcAa9eudWscqmj6WvkOEUkwxuT7TT6d1kAppXyYJnmllPJhmuSVUsqHaZJXSikfpkleKaV8mCZ5pZTyYZrklVLKh2mSV0opH6ZJXimlfJgmeaWU05YtW0ZkZCQ2m43IyEiWLVvm7pBUHrrGq1LKKcuWLWPGpDF8fo/QvEZl9pw7x9BJYwAYNmyYm6NT2fRKXinllClTprDiHqFFDRv+NuvninuEKVOmuDs0lYsmeaWUU44cOULzGjb8bNbUzX42oXkNW8500MozaJJXSjklIiKCPefsZNmtmWyz7IY95+y6jKeH0SSvlHLK9OnTGbrSsPucnUy79XPoSsP06dPdHZrKRTtelVJOye5cvXvKFI4cOUJERATTX5uuna4eRpO8Usppw4YN06Tu4bS5RimlfJgmeaWU8mGa5JVSyodpkldKKR+mSV4ppXyYJnmllPJhmuSVUsqHaZJXSikfpkleKaV8mMuSvIhEi8hPIpIoIvEi0tlVdSmllMqfK6c1eBV40RjzpYj0d9zv7cL6lFLF0KNzezp16UZaWhqBgYHuDke5mCuTvAFCHb9XAU64sC6lVDF9vzGRThX2s23TNWrVrs3JkyepU6eOu8NSLuLKJP8nYLWI/A2rWehWF9allCrE0aNH+eabb0hISABg9u02/npbMD8fv0iTiLqEhFbh488+p3nz5uzZs4dbb70VEXFz1KoslKpNXkS+FpHt+dwGA+OAicaYBsBE4K0CyhjjaLOPP3v2bGnCUUrlYrfb2bt3LwAvvPACq1evJjIyMmd7cAWhTyN/vh8VTEbKZV584VmOHDnCmDFjaNmyJXPnzuXSpUtuil6VFTHGuKZgkYtAVWOMEeuS4KIxJrSwY2JiYkx8fLxL4lHlo3fv3gCsXbvWrXHc7DZt2sSoUaMIDQ1l3bp1112Viwhmaih2Y0jNhAbzMhk+fCRPP/cC4eHhGGP47rvvWLBgAX/+859p2LAhQUFB2Gw6GM9TiUiCMSYmv22ufNVOAL0cv/cB9rmwLqWUw4oVK7jrrrt46qmnbkjw2SZ+bedSGmTahR17DjJr7huEh4cD1pvAbbfdxvLly2nZsiWzZ8+mV69e7N+/v7yfiioDrmyT/x3wPyLiD6QCY1xYl1I3veTkZNLS0oiNjWXLli0FdqZ27xSNdLgVP7/3ESEnuRdk8uTJVK5cmW7duvHee+/Rr18/V4SvXMRlV/LGmPXGmI7GmHbGmC7GmARX1aXUzS4pKYnY2FiWL19OzZo1Cx0ts37DZmbNfYPi9qv6+fnx+OOPs3LlSr2a90K6/J9SXi4lJYX+/fvTr18/Jk6cWOzjzqcHAFC5mPt3796d7t27s3LlSsLCwujZs6cT0arypj0pSnm5hIQEWrduzSuvvFKiYY9J6QEkORJ9SVSoUIGHH36YixcvlvhYVf40ySvlxZKTk+nRoweLFy8u8bh2wSCUfHRd//79ufPOO5k0aVKJj1XlT5O8Ul4qPT2dbt268dNPPzl1fJPKKTSpnOLUsX//+9+5fPkyaWlpTh2vyo8meaW81Mcff0zdunXp2rVrudcdGhrK8uXLy71eVXKa5JXyUvPnz+cPf/iD2+o3xhAVFZXzrVrlmTTJK+WFjDGMGTOGwYMHuy0GEeHee+9l4cKFbotBFU2TvFJe6NSpU9x7770EBJR8dExZGjZsGJ999plbY1CF0ySvlBeaMGECK1euLFUZyekBJDsxhDK3li1bMmjQIOx2e6nKUa6jSV4pLxQfH0/Hjh2dL8CeRaZdCBADe/4P7FlOFePn58esWbN08jIPpq+MUl7m0qVLnD17lqZNmzpXgD2LVx9sy8EzVwgPSifutWG8+mBbpxP9yy+/zPz5852LRbmcJnmlvIzNZuP55593/up531d0CjnNgx+lMHVtKkOXn6dTyGnY95VTxV27do2kpCTnYlEup0leKS9TuXJlnn32WecLOLWV2PpZjIsJ4KVv0xkXE0Bs/Sw4tc2p4vz9/cnIyHA+HuVSmuSV8jLnzp0jOjra+QLCo4g75seC+AxeuK0CC+IziDvmB+FtnSouLCyMBg0aOB+PcimdhVIpLxMaGsrevXu5du0alSpVKnkBTe9g4+XavPPrNPo18SO2aWU2Xq5NbNM7nIrnsccec+o4VT70Sl4pL1OhQgVatmzJli1bnCvA5sfTy7fxbUpT3j5Uh9hJy3h6+Taw+TlV3JNPPqlt8h5Mk7xSXmjgwIGlm+rX5sePSVV493A4NL/L6QR/+fJlFi5cSGhoocs3KzfS5hqlvNC0adPcHQIA33//Pe3atXP7N29VwfRKXikvZIzhnnvu4fTp026N47PPPmP48OFujUEVTpO8Ul5IRKhZsyZvvfWWW+OYN28eo0aNcmsMqnCa5JXyUuPHj2fBggVcvXrVLfXPmTOH9evXa1ONh9Mkr5SXat++PUOHDuXAgQPlXndCQgIzZsxwfmoFVW6041UpL/b3v/+drKwsjhw5QkRERLnUmZaWxogRI5g1axZ16tQplzqV8/RKXikvt27dOnr16sWpU6fKpb6kpCQGDhzIsGHDyqU+VTqa5JXycn369GHUqFHceeednDt3zmX1GGN4++23CQkJYcaMGYiIy+pSZUeTvFI+4Pnnn2fgwIEsXrzYJeVnZmbyxBNPMGfOHFJSUlxSh3INbZNXygeICNOnT8cYw9q1a9m7dy+/+93vyuRqOyMjg9tuu42QkBDWrl1LtWrVyiBiVV5KdSUvIveLyA4RsYtITJ5tz4rIfhHZIyL9ShemUqo4RIRatWrx5ptv0q9fP+fntwHOnz/PV199RUBAAHPmzGH16tWa4L1QaZtrtgP3At/mflBEWgEPAK2Bu4D5IuLc5BhKqRJp1aoVP/74I/369WPSpEkYY3JmrSyOxMRERo8eTePGjXn33XfJysqiS5cu2gbvpUrVXGOM2QXk9+IPBv5pjEkD/isi+4HOwI+lqU95h8TERHr37u3uMJRDbGwse/fu5fTp01SsWJHQ0FCaNWtGQkIC9erVY8GCBfz3v//l/PnzvPnmm6xZs4YmTZqwe/duateu7e7wVSm5qk2+HvBTrvvHHI/dQETGAGOAchvnq1znoYcecncIKh/NmjXjlltu4erVq6SmpgLW/1uVKlVITEwkIiKCO+6w5pN/4okn3BmqKmNFJnkR+RoIz2fTFGPMpwUdls9jJr8djTGLgEUAMTEx+e6jvMeYMWMYM2aMu8NQSjkUmeSNMbc7Ue4xIPd6YPWBE06Uo5RSqhRcNU7+M+ABEQkUkUZAU2CDi+pSSilVgNIOofy1iBwDugGfi8hqAGPMDmAFsBP4P+APxpis0garlFKqZEo7uuYT4JMCtk0HppemfKWUUqWj0xoopZQP0ySvlFI+TJO8Ukr5ME3ySinlwzTJK6WUD9Mkr5RSPkyTvFJK+TBN8kop5cM0ySullA/TJK+UUj5Mk7xSSvkwTfJKKeXDNMkrpZQP0ySvlFI+TIzxnBX3ROQscNjF1dQAzrm4jrLmbTF7W7zgfTF7W7zgfTF7U7wNjTE189vgUUm+PIhIvDEmxt1xlIS3xext8YL3xext8YL3xext8RZEm2uUUsqHaZJXSikfdjMm+UXuDsAJ3hazt8UL3hezt8UL3hezt8Wbr5uuTV4ppW4mN+OVvFJK3TQ0ySullA/z+SQvItNE5LiIJDpu/QvY7y4R2SMi+0VkcnnHmSeW10Rkt4hsFZFPRKRqAfsdEpFtjucV74Y4Cz1nYpnr2L5VRDqUd4x54mkgInEisktEdojI4/ns01tELub6e/mzO2LNFU+hr7EHnuPmuc5doohcEpE/5dnHredYRBaLyBkR2Z7rseoi8pWI7HP8rFbAsR6TJ4rNGOPTN2Aa8FQR+/gBB4DGQAVgC9DKjTHfCfg7fn8FeKWA/Q4BNdwUY5HnDOgPfAkI0BX42c1/C3WADo7fQ4C9+cTcG1jlzjhL8hp72jnO52/kFNYXdTzmHAO3AR2A7bkeexWY7Ph9cn7/c56WJ4p78/kr+WLqDOw3xhw0xqQD/wQGuysYY8x/jDGZjrs/AfXdFUshinPOBgPvGMtPQFURqVPegWYzxpw0xmxy/H4Z2AXUc1c8ZcSjznEefYEDxhhXf4u9RIwx3wLJeR4eDCx1/L4UuCefQz0qTxTXzZLkH3N8lF1cwMewesDRXPeP4Tn//KOwrtTyY4D/iEiCiIwpx5igeOfMY8+riEQC7YGf89ncTUS2iMiXItK6XAO7UVGvsceeY+ABYHkB2zzpHAPUNsacBOtiAKiVzz6efK4L5O/uAMqCiHwNhOezaQqwAHgJ65/lJeDvWInzuiLyOdalY0sLi9kY86ljnylAJrCsgGK6G2NOiEgt4CsR2e24SikPxTln5X5ei0NEKgMfAX8yxlzKs3kTVvPCFUf/zUqgaXnHmEtRr7GnnuMKwCDg2Xw2e9o5Li6PPNdF8Ykkb4y5vTj7icibwKp8Nh0DGuS6Xx84UQahFaiomEVkODAA6GscDYL5lHHC8fOMiHyC9XGyvJJ8cc5ZuZ/XoohIAFaCX2aM+Tjv9txJ3xjzhYjMF5Eaxhi3TFRVjNfY486xw6+ATcaY03k3eNo5djgtInWMMScdzV1n8tnHU891oXy+uSZP++Svge357LYRaCoijRxXIA8An5VHfPkRkbuAZ4BBxphrBewTLCIh2b9jddbm99xcpTjn7DPgt44RIF2Bi9kfid1BRAR4C9hljJlVwD7hjv0Qkc5Y/yNJ5RfldbEU5zX2qHOcy4MU0FTjSec4l8+A4Y7fhwOf5rOPR+WJYnN3z6+rb8C7wDZgK9YLUsfxeF3gi1z79ccabXEAq8nEnTHvx2r7S3TcFuaNGauHf4vjtsMdMed3zoCxwFjH7wK84di+DYhx83ntgfXxemuuc9s/T8yPOc7nFqxO71vdGG++r7Enn2NHTJWwknaVXI95zDnGevM5CWRgXZ0/CoQB3wD7HD+rO/b12DxR3JtOa6CUUj7M55trlFLqZqZJXimlfJgmeaWU8mGa5JVSyodpkldKKR+mSV4ppXyYJnmllPJh/w+amueAzwpHGQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "# Choose optimization driver SLSQP and set up key parameters for the optimization\n", - "# Maximum iterations maxiter sets the maximum number of iterations before stopping (unless an optimum is found prior)\n", - "# Tolerance tol sets the required tolerance for establishing convergence criteria of the optimziation\n", - "optimize(EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=200, tol=1e-6, disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Note that the optimization converges much sooner than the maximum iterations of 200.**\n", - "\n", - "### Exercise!!\n", - "\n", - "**Adjust the optimal positions of the turbines and see how the optimization performs.**" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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nDnD9OnTmT59Onv27KFly5bExcX59anKW0FBAdnZ2bRs2ZJOnTrVUsSmOlSVI0eOsG/fPrp06VLl/axP3tS6efPm0b1798o3DLAPP/yQH/zgB8EOo06sXr2aO++8kzZt2iAiiAhnz56lbdu2NU7wABEREfTo0YO2bdt6T0Rm6pCI0LZtW86ePVut/SzJm1p39uxZevTowbFjwb0XRFZWFj/5yU+CGkNd2LlzJ5MmTeLdd99l6NCh55XVRoIvERoaStOmTdm/fz/791d0AzETKP68n5bkTa2LjIxk8ODBvPnmm0GNY8mSJQwePDioMdSFpk2b8vrrr9doVFN1xMTEkJuby5kzZ+qkPVMzluRNQNx777385je/4fTp03XetsvlYsKECY3ii3WrVq0iIiKCcePG1VmbTZo0oVOnTnzzzTe4XK4Kt923bx/jx4+ne/fudOvWjQceeIDCwsIK9zl27Bivvvpq6XJOTg633nprrcS+YMGC0mGlgVDSPbhnzx7efvvt0vXp6encf//9AWu3IpbkTUBcddVVPPDAA0E52/uf//kfcnJyuPzyy+u87bq0f/9+pk2bVmv/SJctW0a/fv0IDQ2lX79+LFu2rNxt27ZtS8eOHSvsPlBVJkyYwE033cSuXbvIysri1KlTpKSkVBhH2SR/ySWX8N5771X/BQXBv/71L+DCJJ+UlMTLL78cnKCCfdcS78eAAQPUOMv333+vX375ZZ21l52drTExMbp9+/Y6azNYnnzySZ01a1a55V999VWV63r77be1S5cuunr1ai0sLNTVq1drly5d9O233y53H5fLpXl5eepyuXyWf/TRRzps2LDz1h0/flzbtGmjp0+f1tTUVB03bpyOGTNGe/TooQsWLFBV1dtvv10jIyO1f//++vDDD+s333yjffv2VVXV1NRUHT9+vN5www0aFxenv/3tb/XXv/61JiYm6uDBg/XIkSOqqrp48WJNSkrShIQEnTBhgp4+fVpVVR9//HF97rnnLoh1ypQpOmvWLB06dKh2795d//KXv6iqan5+vk6dOlX79euniYmJunr1alVVzczM1IEDB2r//v01Pj5es7KyVFW1efPmqqo6ePBgjYqK0v79++sLL7yga9as0euvv15VVY8cOaLjx4/X+Ph4HTx4sG7evLk0tmnTpmlycrJ26dJFX3rpJZ/H1df7ivse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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization FAILED.\n", - "Iteration limit exceeded\n", - "-----------------------------------\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "optimal = np.array([[6, -3, 1], [5, -6, 2], [4, -2, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "plot_comp = DummyCostPlotComp(optimal, delay=0.5, plot_improvements_only=True)\n", - "\n", - "optimize(EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=200, tol=1e-6, disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Another popular optimization method in SciPy is COBYLA which is also a local-search method but not a gradient-based search since it does not assume the derivative is known. Instead approximates the constrained optimization problem iteratively as a linear programming problem." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Repeat the original optimization problem with the COBYLA optimization driver. Note how it does not respect the constraints of the boundary on every iteration.**" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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mzalffv2NRSxqQpV5dixYxw8eJCOHTtWejvrkzc1bs6cOXTt2rXiFQPs448/5kc/+lGww6gVa9eu5e6776Zly5aICCLC+fPnadWqVbUTPEBERATdunWjVatW3hORmVokIrRq1Yrz589XaTtL8qbGnT9/nm7dunHiRHDvBZGens5Pf/rToMZQG3bv3s3EiRN5//33GTJkSImymkjwRUJDQ2nYsCGHDh3i0KHybiBmAsWfz9OSvKlxkZGRDBo0iHfeeSeocbz55psMGjQoqDHUhoYNG/LWW29Va1RTVURHR5OVlcW5c+dqpT1TPZbkTUA89NBD/Pa3v+Xs2bO13rbL5WL8+PGXxIV1a9asISIigrFjx9Zamw0aNKB9+/bs27cPl8vXLXn/7eDBg4wbN46uXbvSuXNnZs+ezYULF8rd5sSJE7z++uvFrzMzM7n99rLu9lg18+fPLx5WGghF3YP79+/nvffeK16ekpLCI488ErB2y2NJ3gTEtddey+zZs4NytPdf//VfZGZmctVVV9V627Xp0KFD3HfffTX2j3T58uX06dOH0NBQ+vTpw/Lly8tct1WrVrRr167c7gNVZfz48fzkJz9hz549pKenc+bMGZKSksqNo3SSv+KKK/jggw+q/oaC4J///CdwcZJPSEjgtddeC05Qwb5rifejf//+apzlhx9+0G+++abW2svIyNDo6GjduXNnrbUZLM8++6xOnz69zPIdO3ZUuq733ntPO3bsqGvXrtULFy7o2rVrtWPHjvree++VuY3L5dKcnBx1uVw+yz/55BMdOnRoiWUnT57Uli1b6tmzZzU5OVnHjh2ro0eP1m7duun8+fNVVfXOO+/UyMhI7devn86dO1f37dunvXv3VlXV5ORkHTdunN5yyy0aGxurv/vd7/Q3v/mNxsfH66BBg/TYsWOqqrpkyRJNSEjQvn376vjx4/Xs2bOqqvr000/rwoULL4p18uTJOn36dB0yZIh27dpV//rXv6qqam5urk6ZMkX79Omj8fHxunbtWlVVTUtL0wEDBmi/fv00Li5O09PTVVW1cePGqqo6aNAgjYqK0n79+unLL7+s69at05tvvllVVY8dO6bjxo3TuLg4HTRokG7ZsqU4tvvuu08TExO1Y8eO+uqrr/rcr74+V9z30PWZV4Oe2L0fluSdZ82aNRoTE6PfffddrbSXmZmpf/7zn2ulrWByuVzarVs3TU1NLXOdqiT53r17FyewImvXri1OrmXFsH37dj1x4oTP8ldffVUfffTRi5bHx8frli1bNDk5Wdu2batHjx7Vc+fOae/evXXTpk0lkrqqXpTkO3furKdOndKsrCyNiorSN954Q1VVH330UX3llVdUVfXo0aPF2yclJelrr72mquUn+dGjR2thYaGmp6dru3btNDc3V1966SWdMmWKqqru3LlTO3TooLm5uTpr1ix99913VVU1Ly9Pz507p6r/TvLeSb3061mzZhX/Q/v000+1X79+xbFdc801ev78ec3OztaWLVvqhQsXLoq1qkneumtMQP34xz/m0UcfZeTIkRw8eDBg7Zw+fZqHH36Yxo0bc+uttwasnbpCREhJSaFfv341Ut/OnTsvGpkzZMgQdu7cWW4Mbdq0ITs722e5qvrszvFefsMNN9CqVSsaNmzI+PHj2bhxY4WxDh8+nKZNm9K6dWuaNWvGj3/8YwDi4uLYv38/AGlpaQwdOpS4uDiWLVvG9u3bK6x3woQJhISE0LVrVzp16sSuXbvYuHEj99xzDwA9evTgyiuvJD09nWuuuYbnn3+eF154ge+++46GDRtWWH8R7zqvv/56jh07xsmTJwG4+eabiYiIIDo6mjZt2nDkyJFK11sWS/Im4B577DGmT59OWlpaQOo/cOAAI0aM4MKFCzRu3DggbdQ1q1evJiMjo8bq69mz50UJduPGjfTsWf4Uz82aNePMmTM+x8337t37opPfp06d4vvvv6dz587AxUMCKzNEMCIiovh5SEhI8euQkJDii/CmTJnCokWL2LZtG08//XSlxpb7isXX+wK4++67WbNmDQ0bNmT06NGsXbu2wvqL+KqzqG3v9xYaGlqtiwqLWJI3tWLOnDmMGTOGl19+mWeeeYb8/Pwaqff48eMMHDiQ8ePHs3jxYkJDL435bV577bUaHauelJTE/fffz7p168jPz2fdunXcf//9FZ4kDQ8PL/PCtxEjRnDu3Dl+//vfA+75cObMmcOUKVNo1KgR4L5gLScnh9zcXFavXs21115L06ZNOX36dLXez+nTp7n88svJz89n2bJlldrm/fffx+VysXfvXjIyMujevTvXXXdd8fbp6ekcOHCA7t27k5GRQadOnXjkkUcYO3YsW7duLVFXee/Bu87169cTHR0d0Oki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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization FAILED.\n", - "Did not converge to a solution satisfying the constraints. See `maxcv` for magnitude of violation.\n", - "-----------------------------------\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#set optimal back to original optimal\n", - "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "plot_comp = DummyCostPlotComp(optimal, delay=0.5, plot_improvements_only=True)\n", - "\n", - "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", - "# Choose optimization driver COBYLA and set up key parameters for the optimization\n", - "# Maximum iterations maxiter sets the maximum number of iterations before stopping (unless an optimum is found prior)\n", - "# Tolerance tol sets the required tolerance for establishing convergence criteria of the optimziation\n", - "optimize(EasyScipyOptimizeDriver(optimizer='COBYLA', maxiter=200, tol=1e-6, disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Genetic algorithm driver\n", - "\n", - "The next examples uses a simple genetic algorithm metaheuristic optimization approach. Note how the global design space is more exhaustively explored by the GA. This more comprehensive exploration of the search space comes at the cost of much slower convergence to an optimal solution." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Import the Topfarm implmentation of the GA driver and execute an optimization.**" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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MWmSV0qxaNEioqOjeeedd0hLS+Odd94hOjq6SIl+zZo1BAQE8OCDDwLg4+PD9OnT+eCDDzh//jzz58+nb9++9OrVi2bNmvHCCy8AMGHCBPbu3Ut4eDjjx49n//79tG7dGoD58+fTr18/7rrrLho1asTMmTN58803adeuHR07diQ5ORmA999/nw4dOtC2bVvuuecezp8/n2+sw4YNY8SIEdx00000bdqUr776CrBevH7wwQdp06YN7dq1IzY2FoAdO3Zw/fXXEx4eTlhYGHv27AGgQoUKOa/hhx9+IDw8nOnTp7N27VruvPNOAJKTk+nXrx9hYWF07NiRbdu2AdZ3GQ899BCRkZE0bty4+P4puHtqqtzLddddZ5RSxSMhIcHhbVu1amXWrFlz2XNr1qwxrVq1crr/t99+24wdO/aq58PDw83WrVvNvHnzTK1atUxSUpI5f/68adWqldm8ebP5888/L+s39+N58+aZJk2amLNnz5rjx4+bSpUqmdmzZxtjjBk7dqyZPn26McaYpKSknP2jo6PNjBkzjDHGPP/88+a11167KqahQ4ea2267zWRlZZndu3ebunXrmgsXLpjXX3/dDBs2zBhjTGJioqlfv765cOGCGTVqlPnoo4+MMcakp6eb8+fPG2OMKV++vDHGmNjYWNO7d++c9nM/HjVqlJkyZYoxxpjVq1ebtm3b5sTWqVMnk5aWZk6cOGGCgoLMxYsXr4rV3s8ViDN55FU9k1dKkZiYSJcuXS57rkuXLiQmJjrdpjHG7t0guZ/v2bMn1apVIzAwkLvvvpsNGzYU2G63bt2oWLEiNWrUoHLlytx1110AtGnThv379wOwfft2brrpJtq0aUNMTAw7duwosN2BAwdisVgIDQ2lcePG7Ny5kw0bNjBkyBAAmjdvTsOGDdm9ezedOnVi2rRpvPLKK/z1118EBgY6elgua7N79+6cPHmSM2fOANC7d2/8/f2pXr06wcHBHDt2zOF286JJXilFixYtrkqwGzZsoEWLFk632apVq6uqyp49e5a///6bJk2aAFffEujILYL+/v4531sslpzHFouFzMxMwDr8MnPmTH7//Xeef/55h+4ttxeLyWN61Pvvv58vv/ySwMBAbrvtNtasWVNg+5fYa/NS37lfm4+PT87rKQpN8kopoqOjefjhh4mNjSUjI4PY2FgefvjhAi+S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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", - "from topfarm.easy_drivers import EasySimpleGADriver\n", - "# Choose optimization driver GA and set up key parameters for the optimization\n", - "# Maximum generations max_gen sets the number of iterations for the optimization\n", - "# Population size pop_size sets the number of individuals in the population within each iteration\n", - "optimize(EasySimpleGADriver(max_gen=100, pop_size=5, Pm=None, Pc=.5, elitism=True, bits={}))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Even after 100 generations, there is a lack of convergence. This shows clearly the advantages of gradient-based methods for smartly probing the design space. However, gradient-based methods will often end up in \"local optima\" because their final converged solution depends heavily on their intial starting point in the design space." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Random search driver\n", - "\n", - "An example of a heuristic method (somewhere between gradient-based and metaheuristic methods) is random search. Topfarm has implemented the Random Search algorithm based on the one developed at DTU Wind Energy by Ju Feng. \n", - "\n", - "More information about the method can be found here: https://www.sciencedirect.com/science/article/pii/S0960148115000129?via%3Dihub\n", - "\n", - "In this case, the algorithm repositions turbines using a vector defined by an angle and amplitude that are randomly set at each iteration and the solution tested for improvement against the objective function." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Set up optimization using Topfarm implementation of random search with turbine position circle method.**" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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VK9eHU9PT0JDQzl8+HCubR05coQ//vgDsMyZd+vWjRYtWhAVFcWBAwcA+Pzzz+nevTsXL14kLi6Ovn378tZbbxEeHp6lveyWD77++uvZsGEDsbGxpKamsmjRIrp3757fl+4wmuSVQx07doxOnTqxbds2u9tycxNC+rbkeNwVPt70j80yiYmJ1K1bl2nTptndX2nStWtXpyb3q4YOHUpAQED6F69XDR8+nLCwMIKCgli4cGGelg9u2bIln376KQEBAZw9e5ZHHnkEHx8f5s+fz1133YW/vz9ubm6MGzeO+Ph4br/9dgICAujevXuW5YHh3/vAXv3i9apatWrx3//+lx49etC2bVvat29P//797T8YhcShSw3nly41XDDBwcEAxXbtmu+++45HH32UNWvW0Lp1a7vbG/NZGL8diGX95B5UK//vFMCyZcto164dDRo0sLsPV1DclxrO7OraNYWx3k5UVBS33347u3btsrut4ia/Sw3rSF453KBBg3jjjTeYNWtWobQ39bYWJKakMXvNPsAyRfPBBx/w6KOP2n1HIaVcjSZ5VSTuvfdePvnkE6KionjhhRfSz00uiEbVynFf5wYs/usI+07F88ADDzBnzhw2bNhAmzZtCjFqVVL5+fm55Ci+IDTJqyIjIvj6+rJz5046dOjA6tWrczwzISdju9XH283wyooIHn/8ccLCwmjSpEkhR6xUyadJXhWpGjVq8N133/H888/z/PPPExcXx5EjRzhz5kye6kdFRTFlyhQCmjei3JHfWL/vNBfL1b3m9Dyl1L80yasiJyIMGzaMzZs3U6lSJZYtW0aDBg1o0qQJw4YN4+zZs0RFRfHJJ58wd+5cXnjhBe68806SkpIIDw8nLS2NP/74g03zX6ZeZV9mrIggNQ8XSClVGmmSV043ceJE4uLiWL58ObfffjsVKlQgJiaGjRs3sn37dowxjB49GoABAwYwa9YsmjRpgreHO8/c2oLIk/F8s/VoLr0oVTppklfFgru7O61atWLEiBF4eHjQqVMn5s+fz4cffsj06dMZMGCAzfvG9vOvRfv6lZj1yz4uJRb91YQqZydPnuTuu++mcePGtGrVir59+7Jv374ijeH8+fPMmTPHoX0U5yWJNcmrEk1ECOnXitPxiXz4a+FcWVsavf7664SGhl6zLTQ0lNdff73AbRpjGDhwIMHBwRw8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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "initial = np.array([[8, -9, 0], [7, -2, 0], [5, -5, 0]]) # user-defined initial turbine layouts\n", - "boundary = np.array([(0, 0), (10, 0), (10, -10), (0, -10)]) # user-defined site boundary vertices\n", - "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", - "\n", - "\n", - "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", - "from topfarm.easy_drivers import EasyRandomSearchDriver\n", - "\n", - "# Set up key parameters of random search\n", - "# Maximum iterations max_iter sets the maximum number of iterations of the optimization\n", - "# Maximum time max_time limits execution time (so also limits the overall number of iterations)\n", - "# Maximum step max_step limits how much the design can change on a given iteration\n", - "optimize(EasyRandomSearchDriver(\n", - " randomize_func=RandomizeTurbinePosition_Circle(max_step=5), \n", - " max_iter=100, \n", - " max_time=1000, \n", - " disp=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that the random search in this case is also slower to converge than the gradient-based solution. Random search and other heuristic methods, like metaheuristic methods, are more powerful with complex optimization problems with many local minima, concavities, flatness or other challenging features." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Raw Cell Format", - "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.6.7" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Drivers\n", + "\n", + "The word \"driver\" is an OpenMDAO specific term that refers to something that operates on a workflow. The most simple driver is something that simply executes an entire workflow once. For optimization, a driver is usually an optimization algorithm that iterates over the workflow until (ideally) an optimal solution is found. In a very complex workflow and problem formulation, there may be multiple drivers acting on sub-groups of a workflow. For instance, in an optimization under uncertainty (OUU) problem, there is usually an uncertainty quantification / analysis driver operating on a workflow nested within a larger optimization workflow.\n", + "\n", + "In this tutorial, a basic introduction to drivers is provided that focuses on some of the most commonly used drivers in Topfarm. These include examples of four types of drivers:\n", + "* Design of Experiments (DoE) - these drivers sample across a set of input parameters and execute the workflow for each input set. Such drivers can be parallelized easily since each workflow execution is independent from the next.\n", + "* Gradient-based or local search optimizers - these drivers use information about the gradients of the objective function for the problem with respect to the design variables in order to move through the design space systematically to find an improved design. This class of optimization algorithms are efficient but are challenged problems that contain significant nonconvexity, objective functions that are relatively insensitive to the design variables, and other issues.\n", + "* Gradient-free metaheuristic optimizers - these drivers typically use \"nature-inspired\" algorithms to search the design space more globally. They use multiple instances of designs at once and compare performance to make decisions about how to generate new designs that hopefully improve the objective function performance. A clasic example of this type of optimizer is a genetic algorithm.\n", + "* Gradient-free heuristic optimizers - these drivers use some sort of heuristic to search through the design space that is informed by domain knowledge and experience with some element of randomness as well. Random search algorithms fall into this category and are widely used in commercial wind farm optimization.\n", + "\n", + "We will introduce a specific example of each of the above driver types applied to a Topfarm problem in the next sequence of examples." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/drivers.ipynb) (requires google account)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**First we import supporting libraries in Python numpy and matplotlib**" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "from topfarm.easy_drivers import EasyDriverBase" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "#%matplotlib inline\n", + "# uncomment to update plot during optimization\n", + "#%matplotlib qt\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Next we import and initialize several functions and classes from Topfarm to set up the problem including:**\n", + "* **TopFarmProblem - overall topfarm problem class to which the objectives, design variables, and constraints are added**\n", + "* **XYBoundaryConstraint - for a boundary specified as a series of connected perimeter vertices**\n", + "* **CircleBoundaryConstraint - for a circular boundary with a central location and a radius**\n", + "* **SpacingConstraint - for the inter-turbine spacing distance constraints**\n", + "\n", + "**We also import some dummy models (DummyCost, NoPlot, DummyCostPlotComp) as stand-ins for what would be the actual models used in a real wind farm design problem. The dummy cost model takes user defined input for an initial and optimal state and computes the sum of squared error between the two.**\n", + "\n", + "**For documentation on Topfarm see:**\n", + "https://topfarm.pages.windenergy.dtu.dk/TopFarm2/user_guide.html#" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from topfarm.cost_models.dummy import DummyCost\n", + "from topfarm.plotting import NoPlot\n", + "from topfarm.constraint_components.spacing import SpacingConstraint\n", + "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", + "from topfarm._topfarm import TopFarmProblem\n", + "from topfarm.cost_models.dummy import DummyCostPlotComp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Next we do some problem set up to provide an initial and optimal turbine layout as well as the overall turbine location boundary.**\n", + "\n", + "**We also configure initalize the plotting component for use in the optimization.**" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "initial = np.array([[6, 0, 0], [6, -8, 0], [1, 1, 0]]) # user-defined initial turbine layouts\n", + "boundary = np.array([(0, 0), (6, 0), (6, -10), (0, -10)]) # user-defined site boundary vertices\n", + "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", + "\n", + "plot_comp = DummyCostPlotComp(optimal, delay=0.1, plot_improvements_only=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**A function is introduced below that will allow us to quickly reconfigure the example for the different drivers.**" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def optimize(driver):\n", + " tf = TopFarmProblem(\n", + " dict(zip('xy', (initial[:, :2]).T)), # setting up the turbines as design variables\n", + " DummyCost(optimal[:, :2]), # using dummy cost model\n", + " constraints=[SpacingConstraint(2), # spacing constraint set up for minimum inter-turbine spacing\n", + " XYBoundaryConstraint(boundary)], # constraint set up for the boundary type provided\n", + " driver=driver, # driver is specified for the example\n", + " plot_comp=plot_comp) # support plotting function\n", + " tf.optimize() # run the DoE analysis or optimization\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## DOE (Design Of Experiment) Driver\n", + "\n", + "The first driver example executes a design of experiments looking at how different sets of inputs for the turbine positions affect the cost function. In the first case, a user-defined set of inputs is provided, while in the second a \"full-factorial\" sampling approach is used.\n", + "\n", + "(Wikipedia) \"In statistics, a full factorial experiment is an experiment whose design consists of two or more factors, each with discrete possible values or \"levels\", and whose experimental units take on all possible combinations of these levels across all such factors. A full factorial design may also be called a fully crossed design. Such an experiment allows the investigator to study the effect of each factor on the response variable, as well as the effects of interactions between factors on the response variable.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Set up a DoE experiment example using a user-defined set up input combinations of the 3 turbine positions**" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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mzZtAhyfPsaNG0evXr1o1qyZd94gfP2TW65Tx44d1RjjGdu2bSty2bZt2+rq1asvmrd69Wpt27at2+3/7W9/0ylTpvxmfkREhG7cuFGXLFmiDRs21JSUFD1z5oy2bdtW161bp3v37r2oXdfnS5Ys0ebNm+uJEyf02LFjWqNGDZ0/f76qqk6ZMkXnzp2rqqopKSk560dFRekrr7yiqqrTp0/XF1544Tcx3X333dq/f3/NzMzUnTt36hVXXKFnz57VF198UceOHauqqtu3b9cmTZro2bNn9cEHH9S///3vqqqanp6uZ86cUVXVqlWrqqpqdHS0Dho0KKd+1+cPPvigzpgxQ1VVv/nmG23fvn1ObF26dNFz585pcnKy1qlTR8+fP/+bWPM6rkCcFiHH2hm+MYbt27fTvXv3i+Z1796d7du3e7Xdvn37UrduXapUqcLw4cOJjY0tdJ3evXtTvXp16tWrR82aNRk8eDAA4eHh7Nu3D4AtW7Zw/fXXEx4ezrJly9i6dWuh9Y4YMYKAgABatmxJs2bNSEhIIDY2ljvvvBOAq666iqZNm7Jz5066dOnCc889x/PPP8/+/fupUqVKkbc5NjaWu+66C4A+ffqQmprKiRMnABg0aBBBQUEEBwdTv359jh49WuR6i8ISvjGGNm3a/CbZxsbG0qZNG7frvPrqq1m/fv1F806cOEFiYiItWrQAfnubYVFuOwwKCsp5HBAQkPM8ICCACxcuAI4umldffZXNmzczffr0It27XpxY7rjjDj799FOqVKnCwIEDWb16daH1F4XrtgUGBuZsj6dYwjfGEBUVxT333EN0dDQZGRlER0dzzz33FHqBtSA33HADZ86c4e233wYgMzOTP/zhD4wZM4bLLrsMgK+//pq0tDTOnj3LP//5T7p160b16tU5efJkibbn5MmTXH755WRkZLBs2bIirfPBBx+QlZXFnj17+Pnnn2ndujXXX399zvo7d+4kMTGR1q1b8/PPP9OsWTMeeughhgwZktMPn62gbXCtMyYmhuDgYGrUqFGCrS06rw+tICIDgL8BgcBbqjrL220aY4pn5MiRAEyePJnt27fTpk0bZs6cmTPfHSLCxx9/zKRJk3j22WfJyspi4MCBPPfcczllOnfuzC233EJSUhJ33nknkZGRAHTr1o2wsDBuuukmHnjggWK3/eyzz3LttddSr149rr322iK9gYSEhNC5c2dOnDjBggULqFy5MpMmTWLixImEh4dToUIFli5dSlBQECtWrOCdd96hYsWKNGzYkKlTp15UV7t27QgMDKR9+/aMGTOGDh065CzLvjjbrl07LrvsMv7v//6v2NvnLq/+4pWIBAI7gb5AErAOGKmq2/IqHxkZqfYDKMZ4RnbiLquWLl1KXFwcr776qq9DYcyYMdx8880eu9/fm/I6riKyXlUjC1vX22f4nYHdqvqzM6j3gSFAngnflH8LFy686P5j4zvTp08nICD/Xtvss97ss2pz6fN2wr8COODyPAm41rWAiIzH+evwISEhXg7HeNu7775LfHw8ERERvg7FlHFjxoxhzJgxvg4DcHzaKOeCRcS1e2Shqi7MXcjnwyM7g1oIji4dH4djPCAiIoKYmBhfh+H3tm/fTuvWrfNdvmPHjlKMxnhZSlG6dLx9l85BoInL88bOecYYY0qZtxP+OqCliFwpIpWA3wOferlNY4wxefBql46qXhCRB4EvcdyWuVhVC//KmzHGGI/z+hevVPVzVW2lqs1Vdaa32zPGlB1Hjhzh97//Pc2bN6djx44MHDiQnTt3lmoMMTExOaNYesvAgQM5fvy4V4d29gT7pq0xhtmzZ+eMBJktOjqa2bNnu12nqjJs2DB69erFnj17WL9+PX/961+LNT5MZmZmgc+LojQS/ueff06tWrXK/NDOlvCNMXTq1IkRI0bkJP3o6GhGjBhBp06d3K4zOjqaihUrMmHChJx57du35/rrr79ouGCABx98MOfWyNDQUP74xz9yzTXX8MEHH/zm+VdffUWXLl245ppruO222zh16lTOetOnT+eaa64hPDychIQE9u3bx4IFC5g7dy4RERGsWbPmohhnzJjBXXfdRZcuXWjZsiVvvvkm4HizevzxxwkLCyM8PJzly5cDcPjwYXr06EFERARhYWE59YWGhpKSklLg0M75DbW8dOlShg8fzoABA2jZsiVPPPGE2/u8MD6/LdMY43u9e/dmxYoVjBgxgokTJzJ//nxWrFhB79693a5zy5YtdOzY0a1169aty4YNGwDH2PLZz1NSUhg+fDirVq2iatWqPP/887z00ks8/fTTAAQHB7NhwwZef/11XnzxRd566y0mTJhAtWrVeOyxx/Jsa9OmTfz444+cPn2aDh06MGjQIH744Qfi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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, - "nbformat": 4, - "nbformat_minor": 2 -} \ No newline at end of file + { + "data": { + "image/png": "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REdHs2fPHgDq1atX9Bp++OEHYmJimDNnDqmpqQwePBiArKwshg4dSnR0NL1792bz5s2A8evj/vvvJz4+nrZt23rnC8LqW245Tz169NBCCHNs377d5bJdunTRK1euvOi5lStX6i5duri9/VdffVVPmjTpkudjYmL0pk2b9KJFi3RoaKjOzMzU58+f1126dNFr167Vv/7660XbdZ5ftGiRbteunc7OztbHjh3TDRo00PPnz9daaz1p0iQ9Z84crbXWmZmZResnJibquXPnaq21fvbZZ/XLL798SUyjR4/WN954o7bZbHr37t26VatWOicnR8+aNUvfd999Wmutd+zYocPCwnROTo5+5JFH9Icffqi11jovL0+fP39ea6113bp1tdZap6Sk6FtuuaWofuf5Rx55RE+fPl1rrfV3332nu3btWhRbXFyczs3N1cePH9dNmjTRFy5cuCTWkt5XjBvEl5tj5QhfCMGOHTvo06fPRc/16dOHHTt2eHW7AwcOpGnTptSuXZvhw4ezevXqctfp378/9evXp1mzZjRs2JA//elPAERFRZGeng7A1q1b6du3L1FRUSQnJ7Nt27Zy6x05ciR+fn60b9+etm3bsnPnTlavXs0999wDQMeOHWnTpg27d+8mLi6O559/npdeeokDBw5Qu3Ztl1/z6tWruffeewG47rrrOHHiBNnZ2QDccsstBAUFERISwmWXXcbRo0ddrtcVkvCFEHTq1OmSZLt69Wo6derkdp2dO3dm3bp1Fz2XnZ3NwYMHueKKK4BLuxm60u0wKCio6LGfn1/RvJ+fHwUFBYDRRPP666+zZcsWnn32WZf6rlcklrvvvpt///vf1K5dm0GDBrFy5cpy63eF82vz9/cvej1mkYQvhCAxMZExY8aQkpJCfn4+KSkpjBkzptwTrGW5/vrrOX/+PO+//z4ANpuNv/3tbyQkJFCnTh0AVqxYQVZWFjk5OXz++edcc8011K9fnzNnznj0es6cOUOLFi3Iz88nOTnZpXU++eQT7HY7+/btY//+/XTo0IG+ffsWrb97924OHjxIhw4d2L9/P23btuUvf/kLQ4YMKWqHL1TWa3CuMzU1lZCQEBo0aODBq3Wd14dWUErdBLwK+ANva61f9PY2hRAVc9dddwEwceJEduzYQadOnZgxY0bR8+5QSrFs2TImTJjAc889h91uZ9Cg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VK+Pujlo0CBOnTrFqVOnmDdvXtHzhw4dYsSIEV7ddkVIwhemOhw9msPRo60Ow3xv9jWmGsTWyIatkTEe/syZM0lJSbloeUpKCjNnznS7fq01w4YNIz4+nn379rFu3TpeeOGFCo0YabPZypx3RWUk/K+++opGjRpdkvBbtmzJp59+6tVtV4QkfCEEPXv2ZOTIkUVJPyUlhZEjR9KzZ0+360xJSSEwMJBx4/64IU7Xrl3p27cvqampRYOKATzyyCNF4/ZERETw5JNP0r17dz755JNL5r/55hvi4uLo3r07t99+O2fPni1a79lnny0aQnnnzp2kp6ezYMEC5syZQ0xMDD/88MNFMU6fPp17772XuLg42rdvXzSapdaaxx9/nMjISKKioliyZAlgjDV07bXXEhMTQ2RkZFF9ERERZGZm8tRTT7Fv3z5iYmJ4/PHHSU9PJzIyEoDc3Fzuu+8+oqKi6NatW9G+TkpKYvjw4dx00020b9+eJ554wu19Xh5pwxdC0L9/f5YuXcrIkSMZP3488+fPZ+nSpfTv39/tOrdu3UqPHj3cWrdp06asX78eMMapL5zPzMxk+PDhfPvtt9StW5eXXnqJ2bNn88wzzwAQEhLC+vXrmTdvHrNmzeLtt99m3Lhx1KtXr2iM++I2b97MmjVrOHfuHN26deOWW27h559/ZuPGjWzatInMzEx69uzJtddey0cffcSNN95IYmIiNputaIz9Qi+++CJbt25l48aNABeNjvnGG2+glGLLli3s3LmTG264oah5a+PGjWzYsIGgoCA6dOjAxIkTCQsLc2vflUUSvhACMJL++PHjee6555g2bZpHyd5Td9xxR4nza9asYfv27UXDHl+4cIG4uLiicsOHDweMoYg/++wzl7Y1ZMgQateuTe3atenfvz+//PILq1ev5q677sLf35/mzZvTr18/1q5dS8+ePbn//vvJz89n6NChxMTEuPyaVq9ezcSJEwHo2LEjbdq0KUr4119/PQ0bGsN3dO7cmQMHDngl4UuTjhACMJpg5s+fz7Rp05g/f/4lbfoV1aVLF9atW1fisoCAAOx2e9F88aGO69atW+K81pqBAweyceNGNm7cyPbt23nnnXeKyhUOwVyRoYgrMozytddey6pVq2jVqhUJCQlF97v1lCdDR1eEJHxhKlWQiyooe5zyaimooTHVJNox8Ueb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JzKHnMgcl+ofNGgQKSkpREVFeRqqsJCMpSNKtHfvXoYNG8YHH3zAwIGu960/2Saek23iXS7fpk0bevbsyTPPPMOSJUvciLRiJkyYgM1mY8mSJQQGBrq+4oppxuQCpRTDhw8nIyODQYMGceHCBTejdc2mTZsYNWoUn332GVdffbXL653veZ7zPc+7XL5jx45ERUUxadIkvvrqK3dCFRaThC9KlJ2dzaxZs7jpppsqZXtDhw5l4sSJHD582GvbsNlstGzZsuLJ3k1hYWH4+fnxwgsveHU7Z86cYf78+fTp08er2yk0bNgwHnzwQbKysiple8I8kvDFJX788Ue6dOnCvffeW2nb7N69O+PGjeOhhx7ySr/2rKwstmzZwt///nfq1q2cMWSUUrz55pu88cYbbNy40SvbWLVqFVdddRW33XabV+ovSb9+/bjtttuYNGlSpW1TmEMSvrjIoUOHGDJkCBkZGZW+7alTp3LDDTdgt9tNr/vpp59m0aJFptdbnlatWvHuu+8SFBRket27d+9mxIgRllzR/MILLxAXF1ctLjoTf5CELy7y5ptvcuedd9KuXbtK33atWrV4+OGH2bSpzIuzK+zEiRMsWbKEadNca4M32+DBg2nWrBkHDhwwtd433niDsWPH0qJFC1PrdUXdunV56KGH2LBhQ6VvW7hPhkcWRWw2G2+//TbffPON23U0PpDqeOTeePg2m41bb72Vr776iujoaLfjcPb+++8zePDgi66YrbCBz3kUwwcffEBaWhrJycke1VMoJyeHDz/80KOEW2dtHePBaPfWz83N5YYbbiAtLY2IiAi34xCVR1Wln2SxsbG6+CX6onLt37+ftm3bur1+4Tgtqampbtfxj3/8gyNHjjBv3jy363B2/vx5srOzCQ0NNaU+d5w8eZK2bduyZ88ez754nFSF9+rRRx8lODiY559/3u06hOeUUuu01rHllZMmHVHku+++IyDAsx99p1rFcapVnEd1DB069JLxXtyVmZnJt99+63my/36mMbmpcePGxMXF8eOPP3oWh8PXX39NnTp1PKrjfNfznO/qerfMkpj5Xgnvk4QviiQmJpKenu5RHafC+nAqzLPugZ07dzatK+Pq1atZsGCB5xWlzDAmD0yfPv2SUUXdNXnyZI4dO+ZRHTndc8jp7tqFV6Xp0aOHZedGRMVJwheAcQXqli1b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h7zyXu3YsYNrr72WsLAwr3+BCe+RhC/KdPfdd3PzzTczd+5cxo8fb9qNLs6dO0d8fDyjRo3i9ddfr9S24KZNmzJr1ixyc3O5+uqrWbVqlWl1P//883zxxRf88MMPXm+eKm7s2LH07duXf/7znzz22GPk5Hh2N6tCWVlZXHfddUyaNInnn38epdy7glpYz6v/ZUqpiUqpnUqpbUop928IKiw3evRoLly4QHR0NIsWLXKrDrvdztdff81LL71E3bp12bZtG48++qhlCaR+/fpMmTKFu+66izFjxnDgwAG36snIyOCZZ55h7969PProo6Smplravj1+/HgyMjKIiYnh448/dquOgoICPv/8c+bOnUuTJk3YvXs3Y8eONTlSUdm8lvCVUv2BIUBXrXUXwP2+fsJyjRo14p133mHRokVF91JdunQpq1atKvOov7B54e2336Z9+/ZMmzaN5s2bo7V2++5aZrr11lvZsmUL4eHh5OXlceDAAd5//332799fZtOI1rroZGl0dDQnT54kICCAunXrWt5zJSQkhI8//phXX32Vo0ePApCcnMxPP/1U5o1KCl/v3Llzadu2LS+//DKXXWaMdloV3ivhOeWN9j4ApdRSYKHW+ltX14mNjdVyIUf18cILL7B8+XK2bNnCVVddxcqVK7l8wjvY7Db6ZKeyd+9egoKC+OGHH1i+fDktWrSgV69eVoddps2bNzN9+nTWrl3LuXPnWLJkCb169eLsS13QaMZt7saGDRt477336NGjB0uWLOGee+7x7CYrlWDq1Kn897//Zfv27dx444189tlndJnVBbvNTszGGHbv3k1oaChffvkln3zyCe3btycmJsbqsIWLlFLrtNbl3rzZmwl/I7AcuAnIBR7TWq8todxYYCxAeHh4D3d/Vgvr5Ofnc+jQIdq0acMVY1/HZrfxXHxTIiIiiImJqfLJsDRHjx6lTp06+Pn5kT23L0op1nScRteuXYmIiKiWbdkXLlzgyJEjhIeHE/XPKOx2O0+3e5q2bdvStWtXj0ZLFdZRSh0AMp2eWqi1vuRqP4+ucFFKfQuElrAo0VF3E6A30BNYqpRqq4t9wziCWgjGEb4n8QhrBAYG0qZNGwD8AmvhB9xzzz3WBmWC5s3/uNCqbkgTAIYOHWpRNOaoVatW0QBu/rX88cefUaNGWRyVMEGmK0f4HiV8rXWp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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from openmdao.drivers.doe_generators import ListGenerator\n", + "from openmdao.drivers.doe_driver import DOEDriver\n", + "\n", + "optimize(DOEDriver(ListGenerator([[('x', [0., 3., 6.]), ('y', [-10., -10., -10.])],\n", + " [('x', [0., 3., 6.]), ('y', [-5., -5., -5.])],\n", + " [('x', [0., 3., 6.]), ('y', [-0., -0., -0.])],\n", + " ])))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Run a full factorial experiment for two inputs using OpenMDAO's built-in FullFactorialGenerator class. The input value of 2 is \"the number of evenly spaced levels between each design variable lower and upper bound.\"**\n", + "\n", + "**See: http://openmdao.org/twodocs/versions/latest/_srcdocs/packages/drivers/doe_generators.html**\n", + "**for more information on the various built-in DoE drivers for OpenMDAO.**" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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fvvtN7Kzs5kzZw4nT55k6dKl7Nixg23btvHss89e1NbgwYOJjIwkNjaWhISEi2bHPHr0KE899RSrV68mISGBTZs28c033wBw7tw5OnfuzNatW7n55pt5//33S3EES08TvlLK4eqrr2bmzJmsWrWKjz76yPHlJWWhU6dONG7cGC8vLyIiIhxTGReHMYbJkycTHh5Or169OHLkSJFny02aNKFLly4APPDAA6xfv549e/bQtGlTWrZsCcBDDz3E2rVrqV27Nv7+/owaNYqvv/7aMblbcWzatInu3btTv359fHx8iI6OZu3atQBUqVLF8cUnHTp0KNFrdgdN+Eophz/++IMnnniCXr16MXz48DJ9ArU0U//GxsaSkpJCfHw8CQkJNGzYsMgpj0sy3bGPjw8bN25k8ODBfPvtt/Tp06fYsRXG19fX0a87pjsuKU34SikAnnjiCUJDQxERduzYwYwZMwgMDCzXGHx9fcnKyrps++nTp2nQoAG+vr7ExcVx6NChIttKSkri559/BmxTftx00020atWKgwcPsm/fPgA++eQTunXrxtmzZzl9+jR9+/Zl5syZbN269bL2CpryuFOnTvz000+kpqaSk5PDokWL6NatW0lfernw+NQKSinP69KliyPRl3eSz2/06NGEh4fTvn37i8bxo6Oj6d+/P2FhYURGRtK6desi22rVqhXvvvsuI0eOpE2bNowdOxZ/f38+/PBD7rnnHrKzs+nYsSNjxowhLS2NAQMGkJGRgTGGGTNmXNZe3vfeVq1a1fFBArZhsFdeeYUePXpgjKFfv34MGDCgbA5IGXPr9MglpdMjV37du3cH0Ll0KoCipkfOm0unsPl2KquDBw9yxx13sH37dk+HUuZKMz2yDukopZRFaMJXSl1xgoODr8iz+9LShK+UUhahCV8ppSxCE75SSlmEJnyllLIITfhKKbc5duwY9913H82bN6dDhw707duXxMTEco1hzZo1bp91s2/fvpw6dYpTp04xe/Zsx/ajR48yePBgt/ZdEprwlVK89tprxMXFXbQtLi6O1157zeU2jTHcdddddO/enf379xMfH8/LL79cohkjc3JyCl0vjvJI+CtWrKBOnTqXJfxGjRrx5ZdfurXvktCEr5SiY8eODBkyxJH04+LiGDJkCB07dnS5zbi4OHx9fRkzZoxjW9u2benatStr1qxx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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from openmdao.drivers.doe_generators import FullFactorialGenerator, ListGenerator\n", + "from openmdao.drivers.doe_driver import DOEDriver\n", + "\n", + "optimize(DOEDriver(FullFactorialGenerator(3))) # full factorial sampling with 2 levels (2 is the default)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise\n", + "\n", + "**Update the number of levels of the full factorial to see how it affects the sampling of the design space.**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "optimize(DOEDriver(FullFactorialGenerator(2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Gradient-Based Optimization with ScipyOptimizeDriver\n", + "\n", + "In the next example we introduce gradient-based optimization using a common open-source algorithm \"sequential least squares quadratic programming\" or SLSQP. OpenMDAO has several built-in drivers that leverage libraries of opensource optimization algorithms including those from SciPy and PyOptSparse. For more information on the optimization drivers available in OpenMDAO, see: http://openmdao.org/twodocs/versions/latest/_srcdocs/packages/openmdao.drivers.html\n", + "\n", + "Note that in Topfarm, the OpenMDAO drivers are wrapped so that you can more easily use them on Topfarm wind farm design optimization probblems." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Import the Topfarm implementation of the Scipy optimizer and execute a gradient-based optimization.**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Fsa///1vs7WbV5LwhVVxtHPk/zr+Hw0easDY0LEcuXHE0iE9MJYuXYqXlxf29vZ4eXmxdOnSQtWntaZPnz489dRTnDhxguPHjxMbG0tQUFCO22VM+B4eHvz444+FiqW4/PXXX0DmhO/n58enn35qqbBMJOELq1PasTSfd/6css5lGb1xNJdjL1s6JKu3dOlSgoKCmDt3LgkJCcydO5egoKBCJf1Nmzbh4uLC0KFDAbC3t2fOnDl8/fXX3L17l+DgYHr37k1gYCANGjRg6tSpAEyYMIFTp07h6+vLuHHjiIyMxMvLC4Dg4GCeeuopunbtiqenJ5999hmzZ8+mefPmtGnThps3bwLw5Zdf0qpVK5o1a8bTTz/N3bt3c4x1yJAhjBgxAj8/Px5++GHWrFkDGE58Dx06FG9vb5o3b05IiOHa8IcPH8bf3x9fX198fHw4ceIEAGXKlDE9h61bt+Lr68ucOXMIDQ2lZ8+eANy8eZOnnnoKHx8f2rRpw4EDBwDDt48XX3yRwMBA6tata54PCEtfciv9rWXLllqIvDpx84Ruu6StfuqXp/Sde3csHU6JExERkeeyTZs21Zs2bbpv2aZNm3TTpk0L3P4nn3yiX3/99UzLfX199f79+/U333yjq1atqqOiovTdu3d106ZN9Z49e/SZM2fuazf942+++UbXq1dPR0dH62vXrumyZcvq+fPna621fv311/WcOXO01lpHRUWZtg8KCtKffvqp1lrryZMn648++ihTTC+88IJ+7LHHdEpKij5+/LiuXr26jo+P17NmzdJDhw7VWmt95MgRXbNmTR0fH69fffVV/d1332mttb53756+e/eu1lrr0qVLa621DgkJ0U888YSp/vSPX331VT1lyhSttdYbN27UzZo1M8XWtm1bnZCQoK9fv64rVKigExMTM8Wa1euK4QLxueZYOcIXVqv+Q/WZ02kOkdGRvBHyBkkpSZYOyWodOXKE9u3b37esffv2HDli3i6zrl27UrFiRVxdXenTpw/btuV+XqZTp064ublRqVIlypUrR69evQDw9vYmMjISgEOHDtGhQwe8vb1ZsmQJhw8fzrXefv36YWdnR4MGDahbty5Hjx5l27ZtDB48GIBGjRpRu3Ztjh8/Ttu2bZk5cyYffPABZ8+exdXVNc/Pedu2bTz33HMAPProo9y4cYPo6GgAnnji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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", + "# Choose optimization driver SLSQP and set up key parameters for the optimization\n", + "# Maximum iterations maxiter sets the maximum number of iterations before stopping (unless an optimum is found prior)\n", + "# Tolerance tol sets the required tolerance for establishing convergence criteria of the optimziation\n", + "optimize(EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=200, tol=1e-6, disp=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Note that the optimization converges much sooner than the maximum iterations of 200.**\n", + "\n", + "### Exercise!!\n", + "\n", + "**Adjust the optimal positions of the turbines and see how the optimization performs.**" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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vXs3kZGRtG3bto4iNtWhqmRnZ7N//366detWozqsD9/UuT/96U9ERkb6Ogw++eQTfvGLX/g6jHrx97//nd/97ne0aNGiJLmfPn2ayMjIWid7gKZNm9KnTx9atWpFQ+oVcBIRITIysla/2Czhmzp38OBB4uLifLp3rars2bOHqVOn+iyG+vLZZ59x77338vHHH9O375nXK9RFsi8WHBxMkyZN2LdvH1lZWXVWr6m62r6elvBNnevYsSOtW7fmgw8+8FkMIsKHH37oiDN0IiMjeeONN2p1sVt1tG3blv3795OXl1cv7Zm6YwnfeMXs2bN57LHHfHIO/OnTp7ngggv4/vvv673t+vb666/TtWtXRo2q3fGO6mjatClt27Zl3759lXbv7N+/n/HjxxMbG0uPHj248847K/2iOHLkCC+88ELJ+MGDB7nmmmvqJPZ58+bx5JNP1kldZSnuQty7dy9Lly4tmb5+/Xp+85vfeK3dqrKEb7xi8uTJXHnlleTmlvfYWe+ZO3cukZGRdOnSpd7brk/ffPMN99xzT511nb322mvExcURGBhIXFwcr732Wrll27dvT5s2bSrsYlBVJk6cyFVXXcXOnTtJT0/nxIkTJCcnVxhH6YTfsWNH/vGPf1R/hXzgyy+/BM5O+ImJiTz77LO+Cuv/+PoJLJ7DOeeco6Zx2bZtm+7atave2vvqq6+0Xbt2+uOPP9Zbm75yyy236KOPPlru/K1bt1a5rqVLl2q3bt105cqVmpeXpytXrtRu3brp0qVLy12msLBQf/7553Lnr1ixQkeOHHnGtKNHj2pERISePHlSX375Zb3yyit11KhR2rNnT503b56qql533XUaGhqq8fHxeu+99+qePXu0f//+qqr68ssv6/jx4/XCCy/Url276nPPPadPPfWUJiQk6LnnnqvZ2dmqqrp48WJNTEzUgQMH6sSJE/XkyZOqqjp37lx94oknzor15ptv1l/96ld6zjnnaGxsrP7zn/9UVdVTp07p1KlTNS4uThMSEnTlypWqqrplyxYdMmSIxsfH64ABAzQ9PV1VVcPDw1VV9dxzz9UWLVpofHy8/vnPf9bU1FS97LLLVFU1Oztbx48frwMGDNBzzz1X09LSSmKbNm2ajho1Srt166bPPPNMmdu1rNcVWK9VyLE+T/KegyX8xue5557T+Pj4ChNDXdqxY4d+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csst5Ofnc9VVV1X5AkNw3X30jjvuAM681TK4bjRX/Dr269ePffv2eSXhW5eOMX5s7NixbNq0qU4eGJ+amsrChQt56KGHWLhw4Vl9+sVOnjxJdnZ2pVfG9+/f/6zbIxcLCgo643YMpe/8WfqLpHhcVbnooovYuHEjGzduZOvWrbz44osl5YovAKvOrYWrc1vk888/n88//5xOnToxderUkjuB1pa3b4tczBK+MX5ORJg2bRrr1q2rcR3FffbLli3jj3/8Y0n3TllJPywsjNjY2EqfPXDBBReQm5vL4sX/d4X/pk2b+OKLL+jatStbt24lNzeXI0eO8Omnn1YpzvPOO4///d//ZdeuXYDry6eys34qu93yu+++y+nTp8nOzmbVqlUMGTKEkSNH8sYbb1BYWEhmZiaff/45Q4cOZd++fbRr147bbruNW2+9taTbqSptlXer5fpkCd8YPzdkyBBefPFFrrjiCtavX1/5AmVYt27dGX32xX36nl8iubm57Nixg6KiopL72Vek+PbIK1asoEePHvTv358HHniA9u3b06VLFyZNmkRcXByTJk1i0KBBVYqzTZs2LFmyhOuvv56BAwcybNiwSi9Au+KKK3j77bfLPGgLrlsZJyUlcd555/HQQw/RsWNHJkyYwMCBA4mPj+eCCy5gwYIFtG/fnlWrVhEfH8+gQYN44403uPPOO8+oq6JbO5d3q+X6JA3pCrnExESt6RvWNAzFd3C0e+nUv3/+859069aN3r17ExwczLZt2yp8YtWOHTsAqrSXefz4cfbs2UP79u3r7LGKDcG8efMqPKDbEJX1uorIhqrcS8f28I1pJK644gri4uKYN28ekyZNqtE562UpKChg7969REdHN6pk70R2lo4xjcyDDz7I3LlzOXjwIG3atKnRKZsFBQVkZ2eTl5dHly5diIuLa5S3T5g3b56vQ6hXtodvTCMTFhbGggULaNeuHUFBrn26Q4cOcfjwYU6fPl3mjc5UteQXwYEDB9i8eTMnTpwouV9PY0z2/qi2XfC2h29MI9WiRYuSR9sFBARw+PBh9u/fT5MmTejTpw95eXkUFBSwfft2Tp8+TXh4OLGxsbRo0YK2bdtWehaOqV+qSnZ2drlXNleFJXxjGqnOnTuzf/9+MjMzS6YFBwdTWFjItm3byMzMRFWJiIggKCiIgoICtm3b5sOITWVC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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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e48FCxbQpk0bOnbsyJUrVwD46KOPaN++PUFBQQwbNoykpKR8Yx0/fjyTJ08mJCSEZs2asX79esD4xfeECRMIDAykTZs2REREABATE0OHDh0IDg6mdevWHDt2DIAKFSpkPYZt27YRHBzMwoUL2bJlCwMHDgTgypUrDB48mNatW9OxY0f2798PGD99PPDAA4SGhtK4cWPb/IGw9yW3zG/t2rXTQmit9cjvR+qpG6cWWO5m+k398C8P68DwQP3N0W9KIDLHcejQIYvL+vv7682bN9+yb/Pmzdrf39/q9t955x39+OOP59gfHBys9+3bp5cvX65r1aql4+LidFJSkvb399e7d+/WJ0+evKVd8+3ly5frJk2a6OvXr+tLly7pSpUq6cWLF2uttX788cf1woULtdZax8XFZZ0/Z84c/d///ldrrfXcuXP1m2++mSOm+++/X/ft21dnZGToo0eP6rp16+rk5GT91ltv6QkTJmittT58+LD28/PTycnJetq0afrzzz/XWmudkpKik5KStNZae3t7a621joiI0AMGDMiq33x72rRpet68eVprrTdt2qSDgoKyYuvUqZO+efOmjo2N1dWqVdOpqak5Ys3tdcV4UfgCc6z08IVDk55+8Th8+DBdu3a9ZV/Xrl05fPiwTdvt3bs3Pj4+eHl5MXToULZv317gOWFhYVSsWJHq1atTuXJl7rrrLgACAwM5deoUAAcPHqRbt24EBgayYsUKYmJiCqx35MiRuLi40LRpUxo3bsyRI0fYvn07Y8eOBaBFixY0aNCAo0eP0qlTJ1599VXmz5/P6dOn8fLysvgxb9++nXHjxgFwxx13cPnyZa5fvw7AgAED8PDwwNfXlxo1avDPP/9YXK8lJOGLUqlr3a60r9neorKS9IuuZcuWOZLt9u3badmypdV1tmrViqioqFv2Xb9+nTNnznDbbbcBOacZWjLt0MPDI+u+i4tL1raLiwvp6emAcYjmvffe48CBA8ydO9eiueuFiWXMmDF89913eHl50b9/fzZv3lxg/ZYwf2yurq5Zj6e4SMIXpdL0NtMZHzDe4vKS9Itmzpw5TJw4kYiICNLS0oiIiGDixIkFfsGan549e5KUlMSnn34KQEZGBk899RTjx4+nfPnyAGzYsIErV66QnJzMt99+S5cuXahYsSIJCbl/YW+phIQEateuTVpaGitWrLDonC+//BKDwcDx48c5ceIEzZs3p1u3blnnHz16lDNnztC8eXNOnDhB48aNefTRRxk0aFDWOHym/B6DeZ1btmzB19eXSpUqFeHRWs7mCV8pdadS6k+l1F9KqZzz7IQoJpL0LXPo8GFOnzlzy/TI0aNH88orrzB9+nQ8PT2ZPn06r7zyCqNHj7a6HaUUa9eu5csvv6Rp06Y0a9YMT09PXn311awyHTp0YNiwYbRu3Zphw4YREhKCj48PXbp0ISAggJkzZ1rV9ksvvcTtt99Oly5daNGihUXn1K9fnw4dOtCvXz8++OADPD09mTp1KgaDgcDAQEaNGkV4eDgeHh6sWbOGgIAAgoODOXjwIPfdd98tdbVu3RpXV1eCgoJYuHDhLcfmzZtHVFQUrVu3ZtasWXzyySdWPUZr2PSKV0opV+Ao0Bs4B+wGRmutD+VWPiQkRMsFUATAff+7Dx9PHxaGLSy4cDYpGSk8tvkxdlzYwQudX3DaX+QePnw41yGZyMhIynlXwZCcYLqqWC3c3d1LPL7w8HAiIyN57733Srzt7MaPH8/AgQOLbb6/LeX2uiqlorTWIQWda+ulFToAf2mtT5iCWg0MAnJN+MLxLVmy5Jb5x9aKvysel1QXQl8Itep87aopd0c5nv/teea/MR/PY55FjsnRzJ07FxeX3D/Eu1T0xaWCD1fTbnL5YIxdE78oObYe0qkLnDXbPmfal0UpNUkpFamUioyNjbVxOMLWVq5cSXR0dJHrcfvbjbQ6aaTWzf9XmXlRGYqKmyvidt6NG11ucLOpLBGcg1K4uHvhWrUOcXFxnDx5qkSbz/xitTQIDw93iN59Pnwz86jpNim3QnZfPE1rvQRYAsYhHTuHI4pBcHAwW7ZsKVIdN9NvMubHMVy++zJf3f0Vvl6+VtWTNbzTdQfPPP2MUw3vHD58mObNm+fYf8uwqdZkXL2Ar68vdeSawY4szpIhHVv38M8Dfmbb9Uz7hMiXZzlP3uz+JklpSWw4vcHqeuSL3NwZEuLAkAFAYGAADerXt/qiGsJx2Drh7waaKqUaKaXcgXuA72zcpigjmlRpwrrB6xjdwvqZIiBJP7vy3t5U9XYH0zxzSfTOw6YJX2udDkwDfgYOA2u01gX/5E0IkzoV6gBw+PJhYi5b/9aRpP+vVi1b0qB+fWSlfOdj83n4WusftdbNtNZNtNav2Lo9UfZkGDJ4euvTPLXlqTxX0LSEJP1stAGlDTZtInMxsfw8+OCDHDpknLhnPkcf/l1uuKhtWOuDDz7I+uFYeHg4Fy5cyDpmHrejkF/ailLP1cWVl7q8xN83/ubFnS9SlN+OSNL/l9IGlDaO43ft2pUnnniCixcvlngcS5cupVWrVkDOhJ+53LC9TJ48OetHVdkTvnncjkISvnAIwTWCeST4EX469RNr/ypakpakb6QBbRrY+e233wDw9/e3SeLfsmULoaGhDB8+nBYtWnDvvfdm/eEODQ0lMjKSWbNmkZycTHBwMPfeey/wb+89MTGRnj170rZtWwIDA1m3bl2+7Z06dSqrnZYtWzJ8+PCsJZI3bdpEmzZtCAwM5IEHHiAlJQUwLmncqlUrWrduzYwZM4B/L5jy1VdfERkZyb333ktwcDDJyclZcYNxeenAwEACAgJ45plnsuKoUKECc+bMISgoiI4dOxb7YmiFZsmSmiV1k+WRHV+PHj10jx49bFJ3eka6nvjTRB3yWYg+de1Ukesr60srF7Q88v4zl/W+M1e01lobU4HWFy5c0I8//riuWrWqfvzxx/WFCxeKFIP5csGVKlXSZ8+e1RkZGbpjx45627ZtWmvje2b37t23lM9+flpamr527ZrWWuvY2FjdpEkTbTAYcj1Ha+OSyoDevn271lrrCRMm6DfffFMnJyfrevXq6T///FNrrfW4ceP0woULdVxcnG7WrFlWnVevXtVa37qcsnmc5tvnz5/Xfn5++tKlSzotLU2HhYXptWvXaq2Nz+t3332ntdZ65syZ+qWXXrL2qcwiyyMLp+Dq4sqr3V5lYuBE6laoW/AJBZCefk61a9dm4cKFbNq0iU8++STr4iXFoUOHDtSrVw8XFxeCg4OzljK2hNaaZ599ltatW9OrVy/Onz9fYG/Zz8+PLl26ADB27Fi2b9/On3/+SaNGjWjWrBkA999/P1u3bqVy5cp4enoyceJEvvnmm6zF3Syxe/duQkNDqV69OuXKlePee+9l69atALi7u2dd+KRdu3aFesy2IAlfOJQa5WswOWgy5VzKkZyeXOT6JOnf6uLFizzxxBP06tWL8ePHEx4eXmx1F2Xp3xUrVhAbG0tUVBTR0dHUrFmzwCWPC7Pccbly5di1axfDhw9n/fr13HnnnRbHlh83N7esdm2x3HFhScIXDunEtRMMXDuQzWeKvg65JH2jJ554goCAAJRSxMTEsGDBAmrVqlWiMbi5uZGWlpZj/7Vr16hRowZubm5ERERw+vTpAus6c+YMO3fuBIxLfnTt2pXmzZtz6tQp/vrrLwA+++wzevToQWJiIteuXaN///4sXLiQffv25agvryWPO3TowK+//kpcXBwZGRmsWrWKHj16FPahlwi7L60ghDXqVaiHj6cPz+94nlY+rajlXbTElJn0H9v8GHN3zAVwqmUYunTpkpXoSzrJm5s0aRKtW7embdu2t6xjf++993LXXXcRGBhISEiIRUseN2/enPfff58HHniAVq1aMWXKFDw9PVm+fDkjRowgPT2d9u3bM3nyZK5cucKgQYO4efMmWmsWLFiQo77M6956eXll/SEB4zDY66+/TlhYGFprBgwYwKBBg4rnCSlmNl0eubBkeWTHFxoaClDktXQsceraKUauH0krn1Z83OdjXF1ci1xnWVpaOa/lkTMdOBMHQGB969YpKs1OnTrFwIEDOXjwoL1DKXZFWR5ZhnSEw2pYuSH/6fgfov6JYsn+JcVSpzMN76gS+OGVKF0k4QuHdneTuxnYeCCHLh/CUEzJy1mSvkZlzcMvaxo2bFgme/dFJWP4wuHN6zwPNxc3XFTx9V+cYkzfxbXMJnyRO+nhC4fn4eqBi3LhYuJF3tv7XpGWXsheb1F6+omJiWzbto23336bhIQEoqKi6N+/P0OGDGHSpEns2rUL4JZrywphS5LwRZmx+exmPtz/Iav/XF1sdRY26Wf+sXnvvfeoWbMmM2bM4NixYyQlJVG/fn2mTp3KuHHjCAoKwtXVlcTERHx8fBgzZgzbt28vtj9WQuRGhnREmTG6xWi2n9/OW7vfom2NtjSvlvNqT9awZHhHa83SpUt5/fXX2b59O6NHj2bixIl4eXndUi7zV5fmzpw5wyeffMIDDzzA9OnTmT59erHELUR20sMXZYaLcuHlLi9TyaMST299mqS0pGKrO7+e/oULF+jTpw9Llixh1apV1K5dGx8fnxzJPi9Vq1bl8ccf58iRIzz00EPs2rWLCRMmcPXq1WKL317+/vtv7rnnHpo0aUK7du3o378/R48eLdEYtmzZYvNVN/v37098fDzx8fEsWrQoa/+FCxdK1bVyJeGLMsXHy4fXur3GyWsnWXpgabHWnVvST09Px9PTk379+rFz5046dOhgdf0uLi54enrSqlUrvL29CQwM5Pfffy/GR5CN2fLIb7zxBhEREbccjoiI4I033rC+eq0ZMmQIoaGhHD9+nKioKF577bVCrRiZkZGR77YlSiLh//jjj1SpUiVHwq9Tpw5fffWVTdsuFEtWWCupm6yW6fhsuVpmYfx88medmJpok7ozV9kMWB6gQ6eF2qQNrbX+/vvvdadOnXRGRoZV5xe0WuaBU//oA6f+0VprvXnzZu3r66s3b96c67Y1Nm3apLt165brsYiICD1gwICs7UceeUQvX75ca611gwYN9NNPP63btGmjV61alWP7559/1h07dtRt2rTRw4cP1wkJCVnnPf/887pNmzY6ICBAHz58WJ88eVLXrFlT16lTRwcFBemtW7feEsfcuXP12LFjdceOHfVtt92mlyxZorXW2mAw6BkzZmh/f38dEBCgV69erbU2ribarVs3HRQUpP39/bPqa9CggY6NjdWjRo3Snp6eOigoSM+YMUOfPHlS+/v7a621Tk5O1uPHj9cBAQE6ODg467ldvny5HjJkiO7bt6++7bbb9MyZM/N9XouyWqaM4YsyqU/DPgDcTL9JQmoC1ctXL7a6PVw96Ha5GxHHIrgccpm1x9baZMrmwIED6devHzdv3uT48eMEBgYWa/0aReaszLCwMNasWcPIkSOZMmUKixcvZs2aNYSFhVld/8GDB2nXrp1V5/r4+LBnzx7AuE595nZcXBxDhw5l48aNeHt7M3/+fBYsWMDzzz8PgK+vL3v27GHRokW89dZbLF26lMmTJ1OhQoWsNe6z279/P7///js3btygTZs2DBgwgJ07dxIdHc2+ffuIi4ujffv2dO/enZUrV9K3b1/mzJlDRkZG1hr7mV5//XUOHjxIdHQ0wC2rY77//vsopThw4ABHjhyhT58+WcNb0dHR7N27Fw8PD5o3b8706dPx8/Oz6rnLjwzpiDJLa83DGx7m8YjHSTPkXJDLWnFxcTz52JOsGLHC5j/OcnV1JTIykjvvvJMrV64Ub+Uurmj1b58vLCyMKVOm8NJLLzFlypQiJfuiGjVqVK7bv//+O4cOHaJLly4EBwfzySef3LKQ2tChQ4HCLUU8aNAgvLy88PX1JSwsjF27dmV98e7q6krNmjXp0aMHu3fvpn379ixfvpx58+Zx4MABKlasaPFj2r59O2PHjgWgRYsWNGjQICvh9+zZM2uJ5latWlm0OJw1JOGLMkspxZiWY9gft5/39r5XbPX6+voSExNDSHBIifwit3v37gwbNozHHnvMJvVnioiIYPHixTz33HMsXrw4x5h+Yfn7+xMVFZXrsXLlymEw/PvL6OxLHXt7e+e6rbWmd+/eREdHEx0dzaFDh/j444+zymUuwVyYpYgLs4xy9+7d2bp1K3Xr1mX8+PFZ17stqqIsHV0YkvBFmda3YV+GNR3GsoPL2HGh6F/cLViwgPDwcHx9jQuOldQyDK+99hq7du2y2UWzIyIiGDlyJGvWrOHFF1/MGt4pStK/4447SElJYcmSf9c52r9/P9u2baNBgwYcOnSIlJQU4uPj2bRpk0V1duzYkd9++y1reeMbN24UOOsnr2WNM61bt46bN29y+fJltmzZQvv27enWrRtffPEFGRkZxMbGsnXrVjp06MDp06epWbMmDz30EA8++GDWsJMlbXXr1i1rBdCjR49y5swZmjcvnqnDlpKEL8q8Zzo8Q+PKjXl227PEJcdZXU9CQgIvv/wy3bt3v2V/SSR9b29voqOjbXbR7N27d98yZp85pr97926r61RKsXbtWjZu3EiTJk3w9/dn9uzZ1KpVCz8/P0aOHElAQAAjR46kTZs2FtVZvXp1wsPDGT16NK1bt6ZTp04cOXIk33Puuusu1q5dS3BwMNu2bctxvHXr1oSFhdGxY0eee+456tSpw5AhQ2jdujVBQUHccccdvPHGG9SqVYstW7YQFBREmzZt+OKLL3J86vLx8aFLly4EBAQwc+bMW45NnToVg8FAYGAgo0aNIjw8/JaefYmw5JvdkrrJLB3HV1pm6WT355U/9dgfxuqz189aXcfixYv10KFD8zxeEtfIffXVV3PMNMlLYa5p66zMr1nrKOSatkIUoFnVZnza71PqVaxndR03btzg0UcfzfN4SfT0K1asyLvvvls8lZnNwxfOQRK+cBpKKRJSE3hm6zPExMUU+vynnnqqwEvX2Trp33ffffz444/cuHGjyHXJevgwb968PKdrlkWS8IVTMWgDey7tYebWmSSmJlp83ueff868efMsKmvLpF+pUiV69OjBmTNnLCqv81mMTSuFzmdGiih98ns9LWGzhK+UelMpdUQptV8ptVYpVcVWbQlhqcoelXm92+ucTzzPy3+8bPF/oB07dlClShWL28kt6adkpPD98e+5kVa03vkPP/yQ76ULM3l6enL58uW8H6O6dR6+KN201ly+fBlPT0+r67Dlq70BmK21TldKzQdmA8/YsD0hLNKuZjsmB01mUfQiOtXuxKDbCr7g9J49exg9enSh2jFfZfP5Hc8z5/s5uPq4YrhmYELVCcwYZ91Qwr59+9ixYwdTpkzJt1y9evU4d+4csbGxuR7/5+oNQHE4sbxVcYiS5+npSb161n8PZbOEr7X+xWzzd6D0LBknnN6kwEnsuriLRdGL6N+oP26ubvmWr1GjBg0aNCh0Ox6uHtz+9+2sXbeW8s3K413Nm6TzSbz121tc09d46b6XCl3n2bNnWb9+fYEJ383NjUaNGuV5fMBTX6JdynHyzTJ2JS+Rp5L6PPcA8EUJtSVEgVxdXJnffT5a6wKTPcB3331ndVsvf/Yy5duU5+yis1QLq8aViCv4TfFjze41ViV8T0/PHL9MLUh8fDw7d+4kKiqKjIwM5s6dS0ZGBlq70Lx5cxo3bsyaNWtISUkhIyODmjVrFjouUfoVaQxfKbVRKXUwl9sgszJzgHRgRR51TFJKRSqlIvP66CmELdQoX4Oa3jUxaAM7L+zMt+xzzz2X59BIftYeW0uGfwbeLb2pFlaN2O9iqRZWDe+W3lw9Y91696mpqbi7u1tUNnNN/d69e/PWW2+RkJBA27ZtAXBxccXF1YW1a9cyZcoUKlSowNatW2nZsiXDhg1j06ZNcgUux+GbmUdNt0m5lrJksr61N2A8sBMob0l5+eGV4yutP7zKz8rDK3VAeID+9eyveZYJCgrSu3fvLlS9EWcidOtPWuuWr7bUDWc21K4VXXX1u6tr14quuuHMhrpx78ZWxZucnKxjY2PzLXPgwAHduXNnPXDgQK211mlpaTnK3DZtqb5t2sc59l+/fl0vXrxYt23bVl+8eFGnp6dbFacoOdj7h1dKqTuBp4G7tdbFd+khIYrZ0KZDaV61Of/Z/h8uJV3KtUxQUFDWkreWiL4UzcxfZ9KyWkueqvcU1/dcx2+yHzWG1MBvsh/X91xn3n3zrIp37969pKSk5Hl86dKlhIWFMX78eL799lvAuFhZdi4Zqbhk5KynYsWKTJ48maioKGrVqsXUqVN59NFHi2Xuv7AvW87Dfw+oCGxQSkUrpT6wYVtCWM3D1YM3e7zJzYybzN42mwxDzl+ftmvXLs+VH7M7EX+CaZunUaN8Dd7v+T4Tx03k7fFv4xLtwqW1l3CJduHt8W8zbuw4q+KdPXs2MTE5fzgWHx9PamoqHTp0ICoqioceeghXV9c86zG4uGFwLXgtl9dee42rV6/Stm1bi5ccFqWUJR8DSuomQzqOzxGHdDJ9c/QbHRAeoD/c92GOYzdu3NApKSkW1bPmzzU69ItQfeb6meIOUaempupKlSrpuLi4W/bHxsbqwMBAvWLFCovravTkGt1whuVr/rz33nv6ww9zPjfC/pArXglROINvG8zx+OO0r9U+x7Hy5cuzbt06WrRoUeCStiOajeDOhndS0d3yi2NYat26dQQHB+Pj45O1LyEhgTvvvJMBAwYU+rcChfHII48A8P3339O2bVvq1q1rs7aEbcjSCkKYKKWY0X4GbWoYl+rNPrQTHR3NO++8k+u5KRkpTN88nd1/G5cTtkWyB+jRoweLFy++Zd/atWvx9/fn1VdfzffiHcVl7969jB8/XmbwOCBJ+ELk4u2ot5m5deYtSe2hhx5i9erVxMfH31I2w5DBrK2z2HJ2C7FJtptafOLECc6cOXPLmvhpaWncd999LFu2rESSPcCzzz5LfHw8H330UYm0J4qPJHwhclHJoxIbTm/gy6NfZu2rU6cOI0aMYNmyZVn7tNa8tus1Np7ZyMyQmfRv3N8m8RgMBiZMmMDWrVuz9iUmJhIYGMjZs2fz/XK2uJUrV47w8HDWrVsnvXwHI2P4QuRivP94/rj4B2/sfoM2NdrQtGpTAN555x08PDzQWqOU4qMDH/HFn18wwX8C9/nfZ7N4Fi1aRHp6+i3r8X/yyScEBATg5+dnVZ2uKdfAyk8F/v7+rF+/3qpzhf1ID1+IXLgoF17p+grebt48vfVpktOTgX9XoGzfvj1xcXGcuHaCgY0H8ni7x20WS3p6OsuWLWPZsmVZPXmtNYsWLWLatGlW1+tiSMMlI9Xq85OSkggKCiIpSX5m4ygk4QuRB18vX17r+hrnEs5xMO7gv/t9fenVuxf9+/dnVutZvNjlRVyUbf4rXbx4kYyMDHbv3n3L7KCUlBTGjh1b4AVZ8mNwdcfgav1Su97e3tSvX5/Vq1dbXYcoWZLwhchH57qd+WnYT7dM1Yy+FM3xTscJ7BLIuLHjcHMpePE1axw7dozOnTvzww8/5Bij11oze/bsIn1Rm+FeiXTPKkWKcfz48Xz11VdFqkOUHEn4QhTAx8s45/3HEz/y2/nfmLZ5GjfSbzD/lfl88MEHpKWlsX379mJtc+XKlXTp0oVnn32WoUOH5jjes2fPYm/TGp06daJhw4b2DkNYSBK+EBa4nHyZF39/kckbJ+OqXPmw14f4lvelbt26nDx5kjFjxjBlyhSuX79epHYSEhKy/v3pp5946KGHcpRJT09n3759tG7d2up2Pvt8BekGTYZWNOw8kM8+z3Ux2wLVrVuXRYsWWR2HKFmS8IWwgI+XDy92fpEGlRqwqNci/Cr9OzOmWbNm7N+/n7S0NBo1asTFixcxGCy/OLjWmp07dzJu3DgaNGjA2bNnefjhh7OWMc7u6NGj1KlTh0qVKln1WD77fAWPLFxF6t/HcSnnRnL9TjyycJXVSf/5559n06ZNVp0rSpYkfCEs1KdhH9YPWY+/j3+OY1WqVGHp0qXExMRQu3Zt3nzzTW6//XYeffRRPvnkE65fv05qaiqxsbGcP3+eyMhIPvzwQ9LS0lixYgXjxo0jODiYY8eOFTjN0sPDg3vvvdfqx/HcolV4Ne1E7LrXid/2OXHfvYFX0048t2iVVfWdOHGCixcvWh2PKDkyD1+IYlSrVi0AnnjiiaxVK3/66Sf69etHZGQkI0eOxMPDA19fX9q2bcuIESMYOXIkY8aMwcXFsv5XkyZNmDdvntUxxquKVG4QRMU2/bm2YzWVO9+DZ4Mg4s8esKo+Nzc3UlOtn94pSo4kfCFswN3dnbCwMMLCwrL23XHHHcTFxRW57kOHDrFgwQKWLl1q1flVdALJp/eRsPdHKne+h4S9P+LhF0AVnWhVfe7u7lSoUMGqc0XJkoQvhINxc3Njw4YNVp//0tTRPLJwFb53P4NXwyA8/AJIPraTt56wbqXNDz/80OpYRMmSMXwhHEyTJk2Ij4+3+tPCuLH38v4To/FqGASA15mdvP/EaMaNLfz3AlprXnjhBTIycl40RpQ+kvCFcDAuLi6EhYVx4sQJq+swT+6ndqy3KtkDHD9+nI8//rhEF28T1pMhHSEcUOa1au1tx44dtG+f84IxonSSHr4QDig5OZkHH3yQ9PR0q+sof+UobjeKtn7/Z599xpgxY4pUhyg5kvCFcEBeXl7ExMTw448/2jWONWvWcPfdd9s1BmE5SfhCOKipU6fy9ttvW30RkmqnNlPj6LdWt//hhx9y5coV3Nxss3icKH6S8IVwUKNGjcLV1ZVz585ZdX651ATcUuKtOnfbtm288MILVKlSxarzhX3Il7ZCOCh3d3c2bNiAwWAgISGBihVtc+H07G7cuMGECRNYvHgxPj4+JdKmKB7SwxfCwS1btozhw4eTlpZWIu39+eefDBgwgEGDBpVIe6L4SMIXwsHdf//9uLu7c//99xdp1k5BtNb873//o02bNrzzzjs2a0fYjiR8IRycm5sba9asIS4uzmaXG8zIyODJJ59k9uzZRV7zX9iPjOELUQZ4eXmxfv163Nzc2Lx5MxUqVKBDhw7FUvfVq1e56667cHNzIyIigsqVKxdLvaLk2byHr5R6SimllVK+tm5LCGfm7u6OUoqEhATuvvtuZs2aRXx8vNX1JScnc+TIESpXrsxjjz3Gpk2bqFq1avEFLEqcTRO+UsoP6AOcsWU7Qoh/DRo0iH379nHhwoWsC6UUZqG1v/76ixkzZlC/fn3eeOMNXFxcGDFihMXr9YvSy9ZDOguBp4F1Nm5HCGGmZs2afPrpp1mrWA4YMIC///6bkJAQevbsydSpU0lKSiIlJYXvv/+eo0ePUq5cOR577DFefvllatasyR9//EHjxo3t/EhEcbJZwldKDQLOa633KaXyKzcJmARQv359W4UjhFPKXMVy586dHD9+nKioKJKSkgBjr//q1at88MEHNG7cmDvuuAOA8PBwe4UrrOerlIo0216itV6SvVCREr5SaiNQK5dDc4BnMQ7n5MsU1BKAkJAQ634jLoTIl4uLC02bNqVp06ZZ++rXr0/9+vX54Ycf7BiZKCZxWuuQggoVKeFrrXvltl8pFQg0AjJ79/WAPUqpDlrrv4vSphBCCOvYZEhHa30AqJG5rZQ6BYRorYt+QU8hhBBWka/dhRDCSZTID6+01g1Loh0hhBB5kx6+EEI4CUn4QgjhJCThCyGEk5CEL4QQTkISvhBCOAlJ+EII4SQk4QshhJOQhC+EEE5CEr4QQjgJSfhCCOEkJOELIYSTkIuYC+EA0tPTOXHiBM2aNWPv3r3s3LkTT09P6tatS5cuXahQoYK9QxQOQHr4QpRiH3zwAR07dqRy5coMHz4cg8FAXFwcBw4cYNu2bbz++uscP36cI0eOMGrUKH766ScMBoO9wxallPTwhShldu3axVdffcX8+fNp1KgRr7/+Ou3ataNixYoA9O7dm969e99yTnx8PD179uTZZ59l2rRprF69mpCQAi+AJJyM9PCFKCWSkpJ44oknGDx4MH5+fhgMBvr27UtoaGhWss9LlSpVmDRpElFRUaxYsYImTZqwd+9eduzYUULRC0cgCV+IUuKXX37hn3/+4cCBA0yfPj3rAuSFoZTi9ttvp2rVqsTGxjJs2DBmzJhBWlqaDSIWjkYSvhB29vPPP/Pxxx8zePBgVq5ciY+PT7HU26dPHw4cOMChQ4eYMmVKsdQpHJuM4QthRxs3bmTcuHF8++23+Rf8+kFoMRD8Bxeqfl9fX9atW8eZM2fIyMjAYDDg5uZmdbzCsUkPXwg7OXr0KKNHj+arr76ic+fOeRc0ZMCBL+HL+yE9tdDtuLm50aRJE95++20effTRIkQsHJ0kfCHspHr16qxYsYLu3bvnXzAt6d/7+1ZZ3d6DDz7IDz/8wIYNG6yuQzg2SfhC2MGXX37JlStX6NOnT8GFy3nBw1uhUj2IPWJ1m5UrV+ajjz7iwQcfJDEx0ep6hOOSMXwhSlhcXBwPP/wwu3btsuwE13JQOwimR4GbZ5Ha7tu3L5999hne3t5Fqkc4JunhC1HCli1bxqBBg7jtttssOyExFnZ9BDcuGbfj/jKO61upe/furFixQn6R64Qk4QtRwr755humTp1q+QlXT8KPMyDuKJzdDe+FQMzaIsXw+eefExsbW6Q6hOORhC9ECdu6dSvt27e3/IRU03i7mzfUbQfVm8PWt6AIPfQpU6Zw4cIFq88XjkkSvhAl6Ouvv7Z87D5TqmmWjnt5cHGB7jMh9jAc+d7qOHr16kViYiJaa6vrEI5HEr4QJWj58uVcunSpcCdlTst0M33R6j8EfG6DX98EKxO2t7c3ISEhKKWsOl84JpsmfKXUdKXUEaVUjFLqDVu2JURpp7UmKiqq8KtYpt4w/uvuzcrPP+OB7n58vf0wqRcOsH5Z0f5bJSUlFVxIlBk2m5aplAoDBgFBWusUpVQNW7UlhCO4efMmV65cwc/Pr3AnBg6HRt1Zte5nfnv3Yca0cKVno3JsPpnG/35+nusedRgzdlyh47l06ZLM1HEytuzhTwFe11qnAGitC/k5VoiyxcPDg1OnThV+GMWjIvg0YcOHzzKkhSujv77J3C0p3PP1TYa0cOW3pc9YFY+rqysZGdZP7xSOx5YJvxnQTSn1h1LqV6VUrtMSlFKTlFKRSqlImSYmyjKDwcDevXsLf+LxCNi5iHquV+jZqBxTQtx4aWsqU0Lc6NmoHM+0SbBqLF9rLWP4ZYdvZh413SblVqhIQzpKqY1ArVwOzTHVXQ3oCLQH1iilGuts0wK01kuAJQAhISEyZUCUWQaDgcGDB5OcnFy4te7//BH2f8G5jGpsOhnP4sg0nuvuzuLINEIbuHJHYzc4+Ss0Di1UPFWrVpUhnbIjTmtd4JdDRerha617aa0DcrmtA84B32ijXYAB8C1Ke0I4Mnd3d/z8/Dh27FjhTkxNAvcK9Jo8n7VHMlg1zJMXQj1YM9yLP86bhmR2Ly10PF5eXlSqVKnQ5wnHZcshnW+BMAClVDPAHYizYXtClHrt2rUjMjKycCel3QC38owZO44ujy5l5YkqPL8llYbV3JnWozaM+BQ6PlLoWHbv3k1ycnKhzxOOy5aLpy0DlimlDgKpwP3Zh3OEcDYzZsygSpUqhTsp9YbxR1fAmLHj/p2R8+dPsGoUpFwH/0GFqvLy5cukp6fj5eVVuFiEQ7NZD19rnaq1Hmsa4mmrtd5sq7aEcBQdOnTAxcWlcLNjUpP+/dGVuWZ9oXYwbH0TMgp3zdpvv/228H94hMOTX9oKUcLGjBnDzz//bPkJo1fBPSty7lcKQmdD/GnYt7pQMVSpUqXwvwcQDk8SvhAlbMqUKSxatMjyEzwrQflquR+zopd//fp1hgwZQuXKlS2PQZQJkvCFKGGjRo1iz549/Pbbb5adsPUtOLw+92OF7OVrrRk6dCjh4eGWByzKDEn4QpSw8uXLs379eoKCgiw7Yef7cCIi7+OF6OUvWbKEhIQE7rvvPssDFmWGJHwh7KBt27ZcvHiRt99+u+DCaUngVj7v4xb28v/55x/+85//sHz5csqVk6ubOiNJ+ELYSbVq1XjnnXdYujSfH00ZMiD9JrgXcA3aAnr5Wmtq1KjB1q1badWqVdECFw5LEr4QduLj48Mvv/zC3Llz8x5Tz1oLP58ePuTby4+NjaVr167ExMTQsmXLogcuHJYkfCHsqGnTpkRERNC4cWPS09NJSUm5tYD51a4KkksvPzIykq5duxIWFoa/v3/xBi8cjiR8IeysWbNmdO/enW+++YaQkBCioqL+PVixJjwXB23vL7iibL18g8HAk08+ydy5c3n55ZdlZUxh06UVhBCFMGLECFJTU+nXrx8DBw7ko48+Mq6q6epmcR3Xa3XiZrm6GL6cQbWWQ/n1118l0Yss0sMXopRQSjF27FgOHTpE7969cXV15fN3XiD6lZ7s/mkVCQkJOc4xGAycP38egPfff58GDRvy8fEa1PK4idvhryXZi1tIwheilPH19WX06NEAtKpTgeC0SJa+/RpNmjTBYDDw+eef0759e1q3bk21atXo168fWmvuuOMOYmJimL0sAmoHo7a+Veg1dkTZJkM6QpRibQOaQwx8uPwzFtcMxMXFhZ49e9K8eXM8PDyoXbs21atXB7h1Bk7obONKmvtWQ9vCX+9WlE2S8IUozbKmZXrj4mL8QF67dm1q166d/3nmM3aC7inU9wCi7JIhHSFKs9Qbxn8tmZZprggraYqySxK+EKWZIR1c3Ar+4VVuirBeviibJOELUZp1eAiejwOvKoU/V3r5IhtJ+EKUZdLLF2Yk4QtRmu35DH6YYf350ssXZiThC1GanfkdjvxQtDqkly9MJOELUZql3Sh4aeSCSC9fmEjCF6I0S00q/JTM3EgvXyAJX4jSLfUGuBWxhw/SyxeAJHwhSjd3b6hQw3g/8ZLxCljWkl6+05OlFYQoze5d8+/9VaMh7hjU7wgNOkGDLsYEXs7dsroye/mZa+wIpyMJXwhH0WkqnNwKp3fAsZ+N+1reDaM+M94/8zvUap3/mL9ZL99VVSVDy/LJzsRmCV8pFQx8AHgC6cBUrfUuW7UnRJkXMMx4A0iMhTM7//0FbuIlWNbXuAxDnTbQoLPxE0D9juBZ6d86zHr5fWpq/ve3T4k/DGE/thzDfwN4QWsdDDxv2hZCFIcK1aHV3dCou3HboxKM+RI6TzMm9Z3vw8oRcGid8fj1i8b7ibF0HTeLs+nVGFv/Iq5K2+8xiBJnyyEdDWR2LSoDF2zYlhDOzc0TmvUx3sA4nfN8JFQ3rZF/7Bf4/lEAlnbIIDHehZa+is5uMVy8eLHg5ZZFmWDLHv7jwJtKqbPAW8BsG7YlhDDnXt7Y+69gvDgKQaNh4kbo/SLHLhto6Wscu38sKJWA5k14YvpULl68aMeARUlQWlv/kU4ptRGolcuhOUBP4Fet9ddKqZHAJK11r1zqmARMAqhfv36706dPWx2PsL/Q0FAAtmzZYtc4RN6UUui5/47r772YQc/PbtKhUxd+2vSrHSMT1lJKnQbizHYt0VovyV6uSEM6uSVwswA+BR4zbX4JLM2jjiXAEoCQkBAZUBSihFxMMPDK9jRWHXFh/IMP8/Szz9k7JGG9OK11SEGFbDmGfwHoAWwB7gCO2bAtIUQhPLHRwEeRSdSoUYuYP6OoVSu3D+qirLFlwn8IeEcpVQ64iWnYRghhX13aB6Padqa1YS/u7u6S7J2IzRK+1no70M5W9QshrLN9117g3+9bhPOQtXSEEMJJSMIXQggnIQlfCCGchCR8IYRwEpLwhRDCSUjCF0IIJyEJXwghnIQkfCGEcBKS8IUQwklIwhdCCCchCV8IIZyEJHwhhHASkvCFEMJJSMIXQggnIQlfCCGchCR8IYRwEpLwhRDCSUjCF0IIJyEJXwghnIQkfCGEcBKS8IUQwklIwhdCCCchCV8IIZyEJHwhhHASkvCFEMJJSMIXQggnIQlfCCGcRJESvlJqhFIqRillUEqFZDs2Wyn1l1LqT6VU36KFKYQQoqjKFfH8g8BQ4EPznUqpVsA9gD9QB9iolGqmtc4oYntCCCGsVKSEr7U+DKCUyn5oELBaa50CnFRK/QV0AHYWpT3hGKKjowkNDbV3GKIA0dHRBAcH2zsMUYKK2sPPS13gd7Ptc6Z9OSilJgGTAOrXr2+jcERJGTNmjL1DEBYKDg6W16vs8FVKRZptL9FaL8leqMCEr5TaCNTK5dAcrfW6IgQIgCmoJQAhISG6qPUJ+5o0aRKTJk2ydxhCOJs4rXVIQYUKTPha615WNH4e8DPbrmfaJ4QQwk5sNS3zO+AepZSHUqoR0BTYZaO2hBBCWKCo0zKHKKXOAZ2AH5RSPwNorWOANcAh4CfgEZmhI4QQ9lXUWTprgbV5HHsFeKUo9QshhCg+8ktbIYRwEpLwhRDCSUjCF0IIJyEJXwghnIQkfCGEcBKS8IUQwklIwhdCCCchCV8IIZyEJHwhhHASkvCFEMJJSMIXQggnIQlfCCGchCR8IYRwEpLwhRDCSSitS89VBZVSscBpGzfjC8TZuI3i5mgxO1q84HgxO1q84HgxO1K8DbTW1QsqVKoSfklQSkVacu3H0sTRYna0eMHxYna0eMHxYna0eC0hQzpCCOEkJOELIYSTcMaEv8TeAVjB0WJ2tHjB8WJ2tHjB8WJ2tHgL5HRj+EII4aycsYcvhBBOSRK+EEI4iTKf8JVS85RS55VS0aZb/zzK3amU+lMp9ZdSalZJx2kWx5tKqSNKqf1KqbVKqSp5lDullDpgekyRJRxmZgz5PmdKKQ+l1Bem438opRraIczMWPyUUhFKqUNKqRil1GO5lAlVSl0ze688b49Ys8WU7+usjP5reo73K6Xa2iNOs3iamz1/0Uqp60qpx7OVsevzrJRappS6pJQ6aLavmlJqg1LqmOnfqnmce7+pzDGl1P0lF3Ux0VqX6RswD5hRQBlX4DjQGHAH9gGt7BRvH6Cc6f58YH4e5U4BvnZ8Xgt8zoCpwAem+/cAX9gx3tpAW9P9isDRXOINBdbbK0ZrXmegP/A/QAEdgT/sHXO298jfGH8UVGqeZ6A70BY4aLbvDWCW6f6s3P7fAdWAE6Z/q5ruV7X381yYW5nv4VuoA/CX1vqE1joVWA0MskcgWutftNbpps3fgXr2iMMCljxng4BPTPe/AnoqpVQJxphFa31Ra73HdD8BOAzUtUcsxWwQ8Kk2+h2oopSqbe+gTHoCx7XWtv71fKForbcCV7LtNn+vfgIMzuXUvsAGrfUVrfVVYANwp63itAVnSfjTTB93l+XxUa0ucNZs+xylIxk8gLH3lhsN/KKUilJKTSrBmDJZ8pxllTH9EbsG+JRIdPkwDS21Af7I5XAnpdQ+pdT/lFL+JRtZrgp6nUvrexeMn+pW5XGstD3PNbXWF033/wZq5lKmND/XFiln7wCKg1JqI1Arl0NzgMXASxj/47wE/B/GRGo3+cWrtV5nKjMHSAdW5FFNV631eaVUDWCDUuqIqeci8qGUqgB8DTyutb6e7fAejMMPiabver4FmpZwiNk55OuslHIH7gZm53K4ND7PWbTWWilVJuerl4mEr7XuZUk5pdRHwPpcDp0H/My265n22URB8SqlxgMDgZ7aNHiYSx3nTf9eUkqtxTjEUpKJwJLnLLPMOaVUOaAycLlkwstJKeWGMdmv0Fp/k/24+R8ArfWPSqlFSilfrbXdFtCy4HUu0fduIfQD9mit/8l+oDQ+z8A/SqnaWuuLpiGxS7mUOY/x+4dM9YAtJRBbsSnzQzrZxjOHAAdzKbYbaKqUamTqmdwDfFcS8WWnlLoTeBq4W2udlEcZb6VUxcz7GL/oze1x2ZIlz9l3QOZMhuHA5rz+gNma6buDj4HDWusFeZSplfkdg1KqA8b/H/b8A2XJ6/wdcJ9ptk5H4JrZ0IQ9jSaP4ZzS9jybmL9X7wfW5VLmZ6CPUqqqaWi4j2mf47D3t8a2vgGfAQeA/Rhf1Nqm/XWAH83K9cc4c+M4xqEVe8X7F8ZxwmjTLXOWS1a8GGfG7DPdYuwVb27PGfAixj9WAJ7Al6bHtAtobMfntSvGYb39Zs9tf2AyMNlUZprp+dyH8QvzznZ+7+b6OmeLWQHvm16DA0CIPWM2xeSNMYFXNttXap5njH+ILgJpGMfhJ2L8bmkTcAzYCFQzlQ0Blpqd+4Dp/fwXMMHez3Vhb7K0ghBCOIkyP6QjhBDCSBK+EEI4CUn4QgjhJCThCyGEk5CEL4QQTkISvhBCOAlJ+EII4ST+H1OOU/dY59DnAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "optimal = np.array([[6, -3, 1], [5, -6, 2], [4, -2, 4]]) # user-defined optimal turbine layouts\n", + "\n", + "plot_comp = DummyCostPlotComp(optimal, delay=0.5, plot_improvements_only=True)\n", + "\n", + "optimize(EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=200, tol=1e-6, disp=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another popular optimization method in SciPy is COBYLA which is also a local-search method but not a gradient-based search since it does not assume the derivative is known. Instead approximates the constrained optimization problem iteratively as a linear programming problem." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Repeat the original optimization problem with the COBYLA optimization driver. Note how it does not respect the constraints of the boundary on every iteration.**" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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8Mknn/Czn/3M32HUib/85S/89re/pVmzZsXJ/fTp00RGRtY42QM0btyYXr160aJFC86lUQEnEREiIyNr9BebJXxT6w4ePEhsbKxfj65Vle+++44pU6b4LYa68tlnn3Hffffx8ccf07v3mb9XqI1kXyQkJISGDRuyb98+srKyaq1dU3U1fT8t4Zta16FDB1q2bMkHH3zgtxhEhA8//NARV+hERkby1ltv1ejHbtXRpk0b9u/fT15eXp30Z2qPJXzjE7NmzeKpp57yyzXwp0+f5uKLL+b777+v877r2rJly+jcuTMjRtTsfEd1NG7cmDZt2rBv375Kh3f279/P2LFjiYmJoVu3btx1112VflEcOXKEl19+ufj5wYMH+cUvflErsc+dO5dnn322VtoqS9EQ4t69e1m69D/3bt+4cSN33nmnz/qtKkv4xicmTpzI1VdfTW5ubp33PWfOHCIjI+nUqVOd912Xvv76a+69995aGzp78803iY2NJTg4mNjYWN58881y67Zr147WrVtXOMSgqowfP55rrrmGXbt2kZ6ezokTJ0hKSqowjtIJv0OHDvzv//5v9V+QH/zzn/8Ezk74CQkJvPDCC/4K6z/8fQeWksv555+vpn7Zvn277t69u876+/LLL7Vt27b6448/1lmf/jJt2jR98sknyy3ftm1bldtaunSpdunSRVevXq15eXm6evVq7dKliy5durTcbVwul/773/8ut3zVqlU6fPjwM9YdPXpUIyIi9OTJk/raa6/p1VdfrSNGjNDu3bvr3LlzVVX1+uuv19DQUI2Li9P77rtPv/vuO+3bt6+qqr722ms6duxYveSSS7Rz58764osv6nPPPafx8fF6wQUXaHZ2tqqqJicna0JCgvbv31/Hjx+vJ0+eVFXVOXPm6DPPPHNWrDfffLP+6le/0vPPP19jYmL0r3/9q6qqnjp1SqdMmaKxsbEaHx+vq1evVlXVrVu36qBBgzQuLk779eun6enpqqoaHh6uqqoXXHCBNmvWTOPi4vT3v/+9pqSk6BVXXKGqqtnZ2Tp27Fjt16+fXnDBBZqWllYc29SpU3XEiBHapUsXff7558vcr2W9r8BGrUKO9XuSL7lYwq9/XnzxRY2Li6swMdSmnTt36ieffFInfflTTk6Otm7dusIvtuok/L59+xYnsyKrV68uTrRlcblcmpqaqjk5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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization FAILED.\n", + "Maximum number of function evaluations has been exceeded.\n", + "-----------------------------------\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#set optimal back to original optimal\n", + "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", + "\n", + "plot_comp = DummyCostPlotComp(optimal, delay=0.5, plot_improvements_only=True)\n", + "\n", + "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", + "# Choose optimization driver COBYLA and set up key parameters for the optimization\n", + "# Maximum iterations maxiter sets the maximum number of iterations before stopping (unless an optimum is found prior)\n", + "# Tolerance tol sets the required tolerance for establishing convergence criteria of the optimziation\n", + "optimize(EasyScipyOptimizeDriver(optimizer='COBYLA', maxiter=200, tol=1e-6, disp=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Genetic algorithm driver\n", + "\n", + "The next examples uses a simple genetic algorithm metaheuristic optimization approach. Note how the global design space is more exhaustively explored by the GA. This more comprehensive exploration of the search space comes at the cost of much slower convergence to an optimal solution." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Import the Topfarm implmentation of the GA driver and execute an optimization.**" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", + "from topfarm.easy_drivers import EasySimpleGADriver\n", + "# Choose optimization driver GA and set up key parameters for the optimization\n", + "# Maximum generations max_gen sets the number of iterations for the optimization\n", + "# Population size pop_size sets the number of individuals in the population within each iteration\n", + "optimize(EasySimpleGADriver(max_gen=100, pop_size=5, Pm=None, Pc=.5, elitism=True, bits={}))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Even after 100 generations, there is a lack of convergence. This shows clearly the advantages of gradient-based methods for smartly probing the design space. However, gradient-based methods will often end up in \"local optima\" because their final converged solution depends heavily on their intial starting point in the design space." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Random search driver\n", + "\n", + "An example of a heuristic method (somewhere between gradient-based and metaheuristic methods) is random search. Topfarm has implemented the Random Search algorithm based on the one developed at DTU Wind Energy by Ju Feng. \n", + "\n", + "More information about the method can be found here: https://www.sciencedirect.com/science/article/pii/S0960148115000129?via%3Dihub\n", + "\n", + "In this case, the algorithm repositions turbines using a vector defined by an angle and amplitude that are randomly set at each iteration and the solution tested for improvement against the objective function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Set up optimization using Topfarm implementation of random search with turbine position circle method.**" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "initial = np.array([[8, -9, 0], [7, -2, 0], [5, -5, 0]]) # user-defined initial turbine layouts\n", + "boundary = np.array([(0, 0), (10, 0), (10, -10), (0, -10)]) # user-defined site boundary vertices\n", + "optimal = np.array([[3, -3, 1], [7, -7, 2], [4, -3, 4]]) # user-defined optimal turbine layouts\n", + "\n", + "\n", + "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", + "from topfarm.easy_drivers import EasyRandomSearchDriver\n", + "\n", + "# Set up key parameters of random search\n", + "# Maximum iterations max_iter sets the maximum number of iterations of the optimization\n", + "# Maximum time max_time limits execution time (so also limits the overall number of iterations)\n", + "# Maximum step max_step limits how much the design can change on a given iteration\n", + "optimize(EasyRandomSearchDriver(\n", + " randomize_func=RandomizeTurbinePosition_Circle(max_step=5), \n", + " max_iter=100, \n", + " max_time=1000, \n", + " disp=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the random search in this case is also slower to converge than the gradient-based solution. Random search and other heuristic methods, like metaheuristic methods, are more powerful with complex optimization problems with many local minima, concavities, flatness or other challenging features." + ] + } + ], + "metadata": { + "celltoolbar": "Raw Cell Format", + "kernelspec": { + "display_name": "Python [conda env:non_convex]", + "language": "python", + "name": "conda-env-non_convex-py" + }, + "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.9.5" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/notebooks/exclusion_zones.ipynb b/docs/notebooks/exclusion_zones.ipynb new file mode 100644 index 00000000..920c006f --- /dev/null +++ b/docs/notebooks/exclusion_zones.ipynb @@ -0,0 +1,374 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Optimization with exclusion zones" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/bathymetry.ipynb) (requires google account)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install packages if running in Colab" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "3yhWisczHKap" + }, + "outputs": [], + "source": [ + "try:\n", + " RunningInCOLAB = 'google.colab' in str(get_ipython())\n", + "except NameError:\n", + " RunningInCOLAB = False" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "mGJDyPJrHQzm" + }, + "outputs": [], + "source": [ + "%%capture\n", + "if RunningInCOLAB:\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git\n", + " !pip install scipy==1.6.3 # constraint is not continuous which trips vers. 1.4.1 which presently is the default version\n", + " import os\n", + " os.kill(os.getpid(), 9)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Import section" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "0tTJQPtBHbXU" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import time\n", + "\n", + "from topfarm.cost_models.cost_model_wrappers import CostModelComponent\n", + "from topfarm.easy_drivers import EasyScipyOptimizeDriver\n", + "from topfarm import TopFarmProblem\n", + "from topfarm.plotting import NoPlot, XYPlotComp\n", + "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", + "from topfarm.constraint_components.spacing import SpacingConstraint\n", + "from topfarm.examples.data.parque_ficticio_offshore import ParqueFicticioOffshore\n", + "\n", + "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian\n", + "from py_wake.examples.data.iea37._iea37 import IEA37_WindTurbines" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set up site and optimization problem\n", + "The bathymetry example with maximum water depth constraint can be solved using the polygon tracing the maximum water depth as an exclusion zone by utilizing the boundary_type='multi_polygon' keyword." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "2vx4s8huHfXq" + }, + "outputs": [], + "source": [ + "site = ParqueFicticioOffshore()\n", + "site.bounds = 'ignore'\n", + "x_init, y_init = site.initial_position[:,0], site.initial_position[:,1]\n", + "boundary = site.boundary\n", + "# # # Wind turbines and wind farm model definition\n", + "windTurbines = IEA37_WindTurbines() \n", + "wfm = IEA37SimpleBastankhahGaussian(site, windTurbines)\n", + "\n", + "wsp = np.asarray([10, 15])\n", + "wdir = np.arange(0,360,45)\n", + "maximum_water_depth = -52\n", + "n_wt = x_init.size\n", + "maxiter = 10\n", + "\n", + "values = site.ds.water_depth.values\n", + "x = site.ds.x.values\n", + "y = site.ds.y.values\n", + "levels = np.arange(int(values.min()), int(values.max()))\n", + "max_wd_index = int(np.argwhere(levels==maximum_water_depth))\n", + "cs = plt.contour(x, y , values.T, levels)\n", + "lines = []\n", + "for line in cs.collections[max_wd_index].get_paths():\n", + " lines.append(line.vertices)\n", + "plt.close()\n", + "xs = np.hstack((lines[0][:,0],lines[1][:,0]))\n", + "ys = np.hstack((lines[0][:,1],lines[1][:,1]))\n", + "\n", + "\n", + "def aep_func(x, y, **kwargs):\n", + " simres = wfm(x, y, wd=wdir, ws=wsp)\n", + " aep = simres.aep().values.sum()\n", + " water_depth = np.diag(wfm.site.ds.interp(x=x, y=y)['water_depth'])\n", + " return [aep, water_depth]\n", + " \n", + "tol = 1e-8\n", + "ec = 1e-2\n", + "min_spacing = 260\n", + "\n", + "cost_comp = CostModelComponent(input_keys=[('x', x_init),('y', y_init)],\n", + " n_wt=n_wt,\n", + " cost_function=aep_func,\n", + " objective=True,\n", + " maximize=True,\n", + " output_keys=[('AEP', 0), ('water_depth', np.zeros(n_wt))]\n", + " )\n", + "problem = TopFarmProblem(design_vars={'x': x_init, 'y': y_init},\n", + " constraints=[XYBoundaryConstraint([(boundary, 1), (np.asarray((xs,ys)).T, 0)], boundary_type='multi_polygon'),\n", + " SpacingConstraint(min_spacing)],\n", + " cost_comp=cost_comp,\n", + " driver=EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol),\n", + " plot_comp=XYPlotComp(),\n", + " expected_cost=ec)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimize" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 696 + }, + "id": "K2ch8htcRrf_", + "outputId": "4392438c-6533-4336-fbe2-acc698ed84f6" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Iteration limit reached (Exit mode 9)\n", + " Current function value: [-21349.45028495]\n", + " Iterations: 10\n", + " Function evaluations: 10\n", + " Gradient evaluations: 10\n", + "Optimization FAILED.\n", + "Iteration limit reached\n", + "-----------------------------------\n", + "Optimization took: 24s\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "tic = time.time()\n", + "\n", + "cost, state, recorder = problem.optimize()\n", + "toc = time.time()\n", + "print('Optimization took: {:.0f}s'.format(toc-tic))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Check the max water depth" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + }, + "id": "kcPpUlrD2uZv", + "outputId": "b911777b-260f-4cec-e279-1dd2ec84b580" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Max depth [m]')" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(recorder['water_depth'].min((1)))\n", + "plt.plot([0,recorder['water_depth'].shape[0]],[maximum_water_depth, maximum_water_depth])\n", + "plt.xlabel('Iteration')\n", + "plt.ylabel('Max depth [m]')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Check the initial- and optimized layout wrt. the water depth boundary " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 312 + }, + "id": "RNHPmnZN4MpG", + "outputId": "dbd9f647-0aab-4d12-c4e4-b02996779c64" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Max Water Depth Boundary: -52 m')" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 2 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "cs = plt.contour(x, y , values.T, levels)\n", + "fig2, ax2 = plt.subplots(1)\n", + "site.ds.water_depth.plot(ax=ax2, levels=100)\n", + "ax2.plot(xs, ys)\n", + "problem.model.plot_comp.plot_initial2current(x_init, y_init, state['x'], state['y'])\n", + "ax2.set_title(f'Max Water Depth Boundary: {maximum_water_depth} m')" + ] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "bathymetry.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python [conda env:non_convex]", + "language": "python", + "name": "conda-env-non_convex-py" + }, + "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.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/docs/notebooks/layout_and_loads.ipynb b/docs/notebooks/layout_and_loads.ipynb index 1d7a0ca2..73c6e6fb 100644 --- a/docs/notebooks/layout_and_loads.ipynb +++ b/docs/notebooks/layout_and_loads.ipynb @@ -42,15 +42,10 @@ }, "outputs": [], "source": [ - "%%capture\n", - "try:\n", - " import py_wake\n", - "except:\n", - " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git\n", - "try:\n", - " import topfarm\n", - "except:\n", - " !pip install topfarm" + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" ] }, { @@ -587,15 +582,6 @@ "# plt.plot([0, n_i], [max_loads[n, wt], max_loads[n, wt]])\n", "# plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ElK3XMkzrkxk" - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/notebooks/problems.ipynb b/docs/notebooks/problems.ipynb index a609a407..e2cba848 100644 --- a/docs/notebooks/problems.ipynb +++ b/docs/notebooks/problems.ipynb @@ -20,7 +20,12 @@ "execution_count": 0, "metadata": {}, "outputs": [], - "source": "%%capture\n# Install Topfarm if needed\nimport importlib\nif not importlib.util.find_spec(\"topfarm\"):\n !pip install topfarm\n" + "source": [ + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" + ] }, { "cell_type": "markdown", @@ -40,20 +45,6 @@ "**First we install topfarm and import supporting libraries in Python numpy and matplotlib**" ] }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "try: # install Topfarm if needed\n", - " import topfarm\n", - "except ModuleNotFoundError:\n", - " !pip install topfarm\n", - "import numpy as np" - ] - }, { "cell_type": "code", "execution_count": 2, @@ -72,6 +63,7 @@ "metadata": {}, "outputs": [], "source": [ + "import numpy as np\n", "import matplotlib.pyplot as plt " ] }, @@ -237,13 +229,6 @@ "source": [ "state" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -262,7 +247,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.7" + "version": "3.9.5" }, "toc": { "base_numbering": 1, diff --git a/docs/notebooks/roads_and_cables.ipynb b/docs/notebooks/roads_and_cables.ipynb index 2951d680..1efb48ae 100644 --- a/docs/notebooks/roads_and_cables.ipynb +++ b/docs/notebooks/roads_and_cables.ipynb @@ -1,492 +1,497 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Roads and Cables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/roads_and_cables.ipynb) (requires google account)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": {}, - "outputs": [], - "source": "%%capture\n# Install Topfarm if needed\nimport importlib\nif not importlib.util.find_spec(\"topfarm\"):\n !pip install topfarm\n" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In colab, use the \"inline\" backend" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# non-updating, inline plots\n", - "%matplotlib inline\n", - "import warnings\n", - "warnings.filterwarnings('ignore')\n", - "# ...or updating plots in new window\n", - "#%matplotlib qt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's import a few classes" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from topfarm.cost_models.cost_model_wrappers import CostModelComponent\n", - "from topfarm import TopFarmGroup, TopFarmProblem\n", - "from topfarm.easy_drivers import EasyRandomSearchDriver, EasyScipyOptimizeDriver\n", - "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", - "from topfarm.constraint_components.spacing import SpacingConstraint\n", - "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", - "from topfarm.cost_models.electrical.simple_msp import ElNetLength, ElNetCost, XYCablePlotComp\n", - "from topfarm.cost_models.utils.spanning_tree import mst\n", - "\n", - "from py_wake.site import UniformWeibullSite\n", - "from py_wake.site.shear import PowerShear\n", - "\n", - "import matplotlib.pylab as plt\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "def get_site():\n", - " f = [0.035972, 0.039487, 0.051674, 0.070002, 0.083645, 0.064348,\n", - " 0.086432, 0.117705, 0.151576, 0.147379, 0.10012, 0.05166]\n", - " A = [9.176929, 9.782334, 9.531809, 9.909545, 10.04269, 9.593921,\n", - " 9.584007, 10.51499, 11.39895, 11.68746, 11.63732, 10.08803]\n", - " k = [2.392578, 2.447266, 2.412109, 2.591797, 2.755859, 2.595703,\n", - " 2.583984, 2.548828, 2.470703, 2.607422, 2.626953, 2.326172]\n", - " ti = 0.001\n", - " h_ref = 100\n", - " alpha = .1\n", - " site = UniformWeibullSite(f, A, k, ti, shear=PowerShear(h_ref=h_ref, alpha=alpha))\n", - " spacing = 2000\n", - " N = 5\n", - " theta = 76 # deg\n", - " dx = np.tan(np.radians(theta))\n", - " x = np.array([np.linspace(0,(N-1)*spacing,N)+i*spacing/dx for i in range(N)])\n", - " y = np.array(np.array([N*[i*spacing] for i in range(N)]))\n", - " initial_positions = np.column_stack((x.ravel(),y.ravel()))\n", - " eps = 2000\n", - " delta = 5\n", - " site.boundary = np.array([(0-delta, 0-delta),\n", - " ((N-1)*spacing+eps, 0-delta),\n", - " ((N-1)*spacing*(1+1/dx)+eps*(1+np.cos(np.radians(theta))), (N-1)*spacing+eps*np.sin(np.radians(theta))-delta),\n", - " ((N-1)*spacing/dx+eps*np.cos(np.radians(theta)), (N-1)*spacing+eps*np.sin(np.radians(theta)))])\n", - " site.initial_position = initial_positions\n", - " return site" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the site to optimize\n", - "We will use the IEA-37 site, using the DTU 10MW reference turbine" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of turbines: 25\n" - ] - } - ], - "source": [ - "from py_wake.examples.data.dtu10mw import DTU10MW\n", - "\n", - "site = get_site()\n", - "n_wt = len(site.initial_position)\n", - "windTurbines = DTU10MW()\n", - "Drotor_vector = [windTurbines.diameter()] * n_wt \n", - "power_rated_vector = [float(windTurbines.power(20)/1000)] * n_wt \n", - "hub_height_vector = [windTurbines.hub_height()] * n_wt \n", - "rated_rpm_array = 12. * np.ones([n_wt])\n", - "\n", - "print('Number of turbines:', n_wt)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Quickly plotting the site boundary and initial position" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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xvz85z83brfbvPrqq2bnzp3me9/7Xoe3ew4fPty89dZbZvv27ebrX/96h7cyXnbZZaa4uNgUFxebcePGOe7W165ofdeVMerPli1bTHJysnn88cfNZ599Zl566SXTt29fs2rVKmtMPPfolltuMRdccIF1e/mrr75qhg4dah588EFrTDz1p6GhwezYscPs2LHDAGb58uVmx44d1h1DvdWL4K3T1113ndm+fbt56623zPDhwx1xe3m4HrW0tJh58+aZ4cOHm9LS0pD37aamJus5YrFHCjo94NlnnzUjR440qamp5sorr7RuuY4lQIcfv//9760xfr/fPPbYY8bj8RiXy2WuueYas3PnzpDnOXnypLnrrrvM4MGDTZ8+fcycOXNMRUVFyJgvv/zS3HzzzSY9Pd2kp6ebm2++2dTV1fXCq4ystkFH/TFm3bp1Ji8vz7hcLnPJJZeY559/PuTr8dyj+vp6c88995gRI0aYtLQ0M3r0aPPoo4+G/FGKp/688847Hb7n3HLLLcaY3u3FgQMHzI033mj69OljBg8ebO666y7T2NjYky+/S8L1qLy8/Kzv2++88471HLHYowRjjOm940ciIiIivUfX6IiIiEjMUtARERGRmKWgIyIiIjFLQUdERERiloKOiIiIxCwFHREREYlZCjoiIiISsxR0REREJGYp6IiIiEjMUtARERGRmKWgIyIiIjFLQUdERERi1v8PKebldwWk8fIAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(site.initial_position[:,0], site.initial_position[:,1], 'o')\n", - "ind = list(range(len(site.boundary))) + [0]\n", - "pt = plt.plot(site.boundary[ind,0], site.boundary[ind,1], '-')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the AEP calculator\n", - "- Using the Gaussian wake model from Bastankhah & Port\u00c3\u00a9 Agel\n", - "- Based on 16 wind direction to speed things up (not critical here because we will be using the RandomSearch algorithm)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian\n", - "from py_wake.aep_calculator import AEPCalculator\n", - "\n", - "## We use the Gaussian wake model\n", - "wake_model = IEA37SimpleBastankhahGaussian(site, windTurbines)\n", - "\n", - "## The AEP is calculated using n_wd wind directions\n", - "n_wd = 16\n", - "wind_directions = np.linspace(0., 360., n_wd, endpoint=False)\n", - "\n", - "def aep_func(x, y, **kwargs):\n", - " \"\"\"A simple function that takes as input the x,y position of the turbines and return the AEP per turbine\"\"\"\n", - " return wake_model(x=x, y=y, wd=wind_directions).aep().sum('wd').sum('ws').values*10**6" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([48951465.12270607, 48201050.47235204, 48074496.39187684,\n", - " 48091563.80680869, 48445617.28814225, 48836394.16658428,\n", - " 48071863.46810313, 47814362.6852063 , 47837628.23097131,\n", - " 48208400.31612337, 48842864.111101 , 48084779.74156096,\n", - " 47877873.48662869, 47893042.54928257, 48272147.94935018,\n", - " 48739999.86619873, 47999291.34685232, 47768651.4696867 ,\n", - " 47854282.08031107, 48249587.04727601, 48779201.65440664,\n", - " 48053197.5070104 , 47829089.74539277, 47887992.1373282 ,\n", - " 48326743.1406377 ])" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "aep_func(site.initial_position[:,0], site.initial_position[:,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the NREL IRR cost model\n", - "Based on the 2006 NREL report" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.cost_models.economic_models.turbine_cost import economic_evaluation as EE_NREL\n", - "\n", - "def irr_nrel(aep, electrical_connection_cost, **kwargs):\n", - " return EE_NREL(Drotor_vector, power_rated_vector, hub_height_vector, aep, electrical_connection_cost).calculate_irr()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the DTU IRR cost model\n", - "Based on Witold's recent work" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "from topfarm.cost_models.economic_models.dtu_wind_cm_main import economic_evaluation as EE_DTU\n", - "\n", - "distance_from_shore = 10.0 # [km]\n", - "energy_price = 0.2 / 7.4 # [DKK/kWh] / [DKK/EUR] -> [EUR/kWh]\n", - "project_duration = 20 # [years]\n", - "water_depth_array = 20 * np.ones([n_wt])\n", - "Power_rated_array = np.array(power_rated_vector)/1.0E3 # [MW]\n", - "\n", - "ee_dtu = EE_DTU(distance_from_shore, energy_price, project_duration)\n", - "\n", - "\n", - "def irr_dtu(aep, electrical_connection_cost, **kwargs):\n", - " ee_dtu.calculate_irr(\n", - " rated_rpm_array, \n", - " Drotor_vector, \n", - " Power_rated_array,\n", - " hub_height_vector, \n", - " water_depth_array, \n", - " aep, \n", - " electrical_connection_cost)\n", - " return ee_dtu.IRR" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Setting up the Topfarm problem" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "image/png": "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RGffvn0C5NrzdatbX0sRrQejT58+OXp+3n77bfH19ZXatWvf8VyFmeiEh4cLIG+99Vaej8n2888/i4eHh8TExEhUVJRUqFBB5s+fLykpKfLee+9JnTp17toDt3fvXgFk2bJltz0WGhoqBw8ezPEDyOTJk3Pcd+zYMfMxMTExYm9vn2sS7ufnJzVq1Mj3NYqIBAcHi7W1tbz22mvm+95++22xsbHJkfyIiGzbtk0AWbRo0R3PFxUVJZUqVTJf99ChQ6V3794SFxcnBw4cEEdHR9m2bVuOY9LT0wWQiRMn3tc1KGWPqtFRlFy0adMGo9HIpUuXADhx4gRGo5F27drh4uJi/gGYP38+Li4ut61PEhMTA2jFuPfjbuvd5HctnIIm1+uO8lJPcutrCeDu7s4///xDREQE//33H5GRkUydOpVz587RpUuXQos7L/JbIxMdHc3EiRP5+uuvcXFxwd/fH71ez0svvYS9vT1vvfUWFy5c4Ny5c3c8R/bfSPbfzM0qV65Mq1atcvyAtr7Rzfc1adLEfMzZs2dJTU2ldevWt52vVatWBAUFkZSUlK/rBKhatSqVK1fOcS1Hjx6lSpUqeHl55Wib/dx3q6WZOHEivr6+DB48GID169czZswYnJ2dad26NT179uSff/7JccyD/rtSyp7cp5UoShm3fft29Ho9tWrVAmDEiBG5LlTXrVs3HnvsMV5//XUaN26c47FLly6h1+vzPfumJPjll18AaNeu3T3b3vpa3szd3R13d3dAK7BOTk6+bQHGovLzzz8Debumm02YMIHWrVszaNAgQEsC09PTMRqNWFtbmxMKuUtRure3N/b29ly8ePE+o8+pcuXKgDbDbfjw4eb7RYR9+/bh4uKSY+ZYXl24cIGQkBAGDBiQ47m2bt1KaGgoVapUMd+fvehh1apVcz3X9u3bWblyZY5ESERITk42305KSrrtdctOmBs1apTv+JWySSU6Spk2atQoypcvT5s2bfDw8CAqKoqVK1fy66+/8uabb5qn09aoUYMaNWrkeo4qVarkmgTt27eP5s2bm3t+LOXy5cscPHgQwPxBumrVKuBGr0B2u9q1azN8+HB++uknAJYtW8bq1avp27cv3t7exMXFsXLlSlasWMGIESNo1qyZ+Xny+lqC1gsGULt2beLi4li/fj0//fQTM2fOpGXLljniP3TokHnqfUJCAiJijr9169Z4e3ub22bfn/1heOjQIfM05ieffBKAf//9lxkzZjBw4EBq1apFWloa69ev54cffuChhx6if//+eX5tt23bxu+//57jw7p9+/bo9XrGjh3LU089xbfffkuNGjXumvAaDAbat2/Pvn378vzcd1O9enUef/xx8yymRx55hPT0dH7++Wf27NnDtGnTcvQKWltb4+fnx9atWwE4duwYb7zxBk8++SS1atVCr9dz/PhxvvrqKypWrMikSZPMx44dO5alS5fSo0cP3nnnHapVq8aJEyeYPn06Hh4ePPvss7fFl56ezssvv8yUKVOoWbOm+f5evXoxdepUypcvz/nz59m6dStvvfVWjmP37duHlZWVxXv+lBLEgsNmimJxCxYskM6dO4ubm5tYW1tLhQoVxM/PTxYvXpyn47lDMXJiYqI4ODjIF198cc9z3KlGJ7cF7bJrdG4t7s3L+XP7GT58+G3nvvk+f39/efjhh8XT01NsbGzEwcFBWrduLXPmzLltdlJ+Xsvvv/9eGjZsKA4ODuLk5CSdO3eWP/74I9f4hw8ffsf4b63BuVO7m9/qzp8/L4888ohUqVJFbG1txc7OTpo0aSIzZszI1+rUqampUrdu3Vz/X2zevFmaNGkiDg4O0q5dOzly5Mg9z/fTTz+JlZXVbbUuucnt2nOLb9asWdK0aVMpV66cuLq6Srt27WTJkiW3rdgM5Kh9Cg8Pl6FDh0rt2rXFwcFBDAaD1KpVS1555RW5cuXKbc91+PBhGThwoFStWlVsbW2lVq1a8tJLL+XaVkTk/fffl2bNmt1WqBwZGSlPPvmkODs7S7Vq1eTrr7++7djOnTtL//7973rtinIznYhadUlRCtpPP/3E66+/TnBwsMV7dJSSIS0tzbweTW5rOClaj2TdunXZuHFjgS2sqJR+KtFRlAJmNBpp1KgRw4cP57333rN0OEoJMnfuXKZMmcKlS5fuq4amtHv++ecJCQlh8+bNlg5FKUFUjY6iFLDg4GCGDh3KxIkTLR2KUsKMGjWKuLg4Ll26lGMWlaJ9gahdu/Zdt4hQlNyoHh1FURRFUUottY6OoiiKoiillkp0FEVRFEUptVSioyiKoihKqVWmi5FNJhNXr16lXLlyFl9SX1EURVGUvBEREhMTqVy58j23bSnTic7Vq1epVq2apcNQFEVRFOU+BAcH33GbkWxlOtEpV64coL1Q5cuXt3A0iqIoiqLkRUJCAtWqVTN/jt9NmU50soerypcvrxIdRVEURSlh8lJ2ooqRFUVRFEUptVSioyiKoihKqaUSHUVRFEVRSq0yXaOjKIqi3F1WVhaZmZmWDkMpY6ysrLC2ti6QpV9UoqMoiqLkKikpiZCQENSWiIolODg44OXlhcFgeKDzqERHURRFuU1WVhYhISE4ODhQqVIltaiqUmREhIyMDK5du0ZgYCB169a956KAd6MSHUVRFOU2mZmZiAiVKlXC3t7e0uEoZYy9vT02NjZcvnyZjIwM7Ozs7vtcqhhZURRFuSPVk6NYyoP04uQ4T4GcRVEURVEUpRhSiY6iKIqiKKWWSnQURVGUApeenl5iZmvpdDr++OOPu7YZMWIEjz32WJ7PGRQUhE6n4+jRow8U24NYtGgRFSpUuGe7vFx/SZbvRGfXrl3079+fypUr5/riiAhTpkyhcuXK2Nvb07VrV06ePJmjTXp6Oq+++ipubm44OjoyYMAAQkJCcrSJjY1l2LBhODs74+zszLBhw4iLi8vR5sqVK/Tv3x9HR0fc3Nx47bXXyMjIyO8lKYqiKAVERLhw4QK1a9emffv2bNy4sUgTnvwmJABhYWH06dMHuHOC8r///Y9FixYVTJBF5JlnnuHcuXPm21OmTKF58+a3tbv5+kujfCc6ycnJNGvWjNmzZ+f6+GeffcaXX37J7NmzOXjwIJ6envTo0YPExERzm/Hjx7NmzRpWrFjB7t27SUpKol+/fmRlZZnbDBkyhKNHj7JhwwY2bNjA0aNHGTZsmPnxrKws+vbtS3JyMrt372bFihX8/vvvTJw4Mb+XpCiKojyg7GQmKyuL/fv3ExoaSmhoKL1796ZNmzZs2LCh2PbweHp6Ymtre9c2zs7OeeodKU7s7e1xd3e/Z7u8XH+JJg8AkDVr1phvm0wm8fT0lE8++cR8X1pamjg7O8u8efNERCQuLk5sbGxkxYoV5jahoaGi1+tlw4YNIiJy6tQpAWTfvn3mNv7+/gLImTNnRETkn3/+Eb1eL6GhoeY2y5cvF1tbW4mPj89T/PHx8QLkub2iKEpZkZqaKqdOnZLU1NR7tk1JSZHTp09Lenq6iIjs3r1bANmyZYvMnz9fmjRpIoC0a9dONmzYICaTqdDiHj58uDz66KPm235+fvLqq6/Km2++KS4uLuLh4SGTJ0/OcczNn2VAjh8/P79cz7t+/Xrp2LGjODs7i6urq/Tt21cuXLhgfjwwMFAAOXLkyB1j9fb2lqlTp8rgwYPF0dFRvLy85JtvvsnR5vLlyzJgwABxdHSUcuXKyVNPPSXh4eHmx48ePSpdu3YVJycnKVeunLRs2VIOHjwoIiILFy4UZ2dn8++3XtvChQtvu34RkWPHjkm3bt3Ezs5OXF1dZeTIkZKYmHjbazxr1izx9PQUV1dXGTNmjGRkZNzxWu/H3f4G8/P5XaA1OoGBgYSHh9OzZ0/zfba2tvj5+bF3714AAgICyMzMzNGmcuXKNG7c2NzG398fZ2dn2rZta27Trl07nJ2dc7Rp3LgxlStXNrfp1asX6enpBAQE5Bpfeno6CQkJOX4URVGU+5eZmcn58+fNPfJGo9H8u42NDSNGjCAgIIANGzYA0Lt3bzp06MCWLVuKLMaff/4ZR0dH9u/fz2effcbUqVPZvHlzrm0PHDgAwJYtWwgLC2P16tW5tktOTmbChAkcPHiQrVu3otfrGThwICaTKV+xzZo1i6ZNm3L48GHeffdd3njjDXNsIsJjjz1GTEwMO3fuZPPmzVy8eJFnnnnGfPyzzz5L1apVOXjwIAEBAbzzzjvY2Njc9jzPPPMMEydOxMfHh7CwMMLCwnKcJ1tKSgq9e/fGxcWFgwcPsnLlSrZs2cK4ceNytNu+fTsXL15k+/bt/PzzzyxatKjYDu0V6IKB4eHhAHh4eOS438PDg8uXL5vbGAwGXFxcbmuTfXx4eHiu3W3u7u452tz6PC4uLhgMBnObW3388cd89NFH93FlSkl37tw5li1bRseOHSlfvnyube61XsjdHn+QYy157rL63KX1ugryuY1GI0ajkYyMjLuuZxIeHo7RaKR27dqEhoaSkZFBamoqAKmpqVy8eBGDwUDnzp1ZtGgR33zzDXPmzGHixIkcPHjwrvHkJ/ZsJpMJk8lk3p9LRGjSpAn/93//B0CNGjX49ttv2bRpE127ds1xvZmZmebhqfLly1OxYkVAS+ZuPe+AAQNyxPX9999TuXJljh07RuPGjTEajebzZv+emw4dOjBp0iQARo8eze7du/nyyy/p1q0bW7Zs4dixY5w/f55q1aoBsHDhQpo1a4a/vz+tW7fmypUrTJgwgTp16gBQs2ZN8/NmJ11ZWVkYDAYcHBywtramUqVK5ufPTkpNJhNZWVksXryY1NRUfvnlFxwdHQGYPXs2/fv359NPPzV/7rq4uDB79mysrKxo0KABffv2ZevWrYwcOTJP/5+KUqGsjHzrH6SI3POP9NY2ubW/nzY3e/fdd5kwYYL5dkJCgvmPRyndXn/9dfM3SkVR7s3b25t58+aRnp6ep/bnz5/H3t6exMREkpOTAa3XIzExEScnJxYuXMj333/P8ePHadKkCaNGjeLYsWMFHndMTAxJSUn8999/gLZfV61atcy3QdtD6ezZsznuCwoK4r///uPq1auA9uXo5s+SW88bEhLCvHnzOH78OPHx8eakYufOnRiNRvN5zp49e8dYMzIy8Pb2zlH4XLVqVVasWMHRo0fZsmULHh4eREdHEx0dbW5Trlw5Nm3ahI2NDYMGDWLUqFHMmzePNm3a0L17d6pWrQrA5cuXycrK4siRI4CWlKakpJhv3+zSpUscOXKEXbt2UatWLeLi4syJTseOHTGZTJw9e9ac6Pj4+GBlZWU+3svLi+PHj9/xWi2pQBMdT09PQHsxvby8zPdHRkaaXxxPT08yMjKIjY3N0asTGRlJhw4dzG0iIiJuO/+1a9dynGf//v05Ho+NjSUzM/O2np5stra2pbvgSrmjQ4cOmX+vUaPGbY/LPYokC/NxSz53cX+8OMdW2I9bOrbsjRTz+iXVwcHB/MGYkpICaInO0aNHmTt3LocPH6ZJkyZ88803tG/f/q7nLGjW1jk/6nQ6Xb6HmG41YcIEPDw8eO+996hUqRImk4lBgwYV6E7vd/p/dPMX+lGjRtGrVy/27NnD3r17+eGHH5gxYwbdunW77+fU6XTm/4c3u/lv4dbhsYJ4TQtLgSY6NWvWxNPTk82bN9OiRQtAy1h37tzJp59+CoCvry82NjZs3ryZp59+GtCmtp04cYLPPvsMgPbt2xMfH8+BAwdo06YNAPv37yc+Pt6cDLVv354ZM2YQFhZmTqo2bdqEra0tvr6+BXlZSing7u5OVFQUq1evZuDAgZYOR1GKvbS0NAIDA6lZs2ae9hmKiYkhLS2NcuXKme/7v//7P0JCQmjZsiUrV66kQ4cOREZG5jrFuaC4ublhbW1Nq1atAK33w8PDw3wboEKFClSoUCHHfXXq1KFVq1bmnpj69evn+CzJPq+vry/R0dEEBgayaNEiOnfuDMDu3bsBqF27Nr6+vuZhr0aNGt3xeg0GA8HBwTme5/PPP6dp06a0bNmS6Oho/ve//1GpUiXz6MOpU6dISkqid+/etGzZEoCWLVua39eGDBnCrl27mDhxIseOHcPKysrcztvbG1tbW/Ptm9WqVYuWLVvSqFEj1q1bl6O3Zs+ePej1eurVq3fP1784yncxclJSEkePHjV3tQUGBnL06FGuXLmCTqdj/PjxzJw5kzVr1nDixAlGjBiBg4MDQ4YMAbQpei+++CITJ05k69atHDlyhKFDh9KkSRO6d+8OQMOGDenduzcjR45k37597Nu3j5EjR9KvXz/q168PQM+ePWnUqBHDhg3jyJEjbN26lUmTJjFy5Mg71mAoZVNkZCSnTp0CoEuXLhaORlFKl+y6lexek8TERFxcXPDw8MDFxYX58+fz119/0bNnTzIzM3N8gBZH7u7u2Nvbs3HjRiIjI0lISLitZMLV1ZWKFSsyf/58c0Fu9tImOp3O/HPr7Vt/QEsiZs2axfnz55kzZw6rVq1i/Pjx6PV6evbsSdOmTRk2bBhHjx7l0KFDjBgxAj8/P9q0aUN6ejqvvfYau3btIjg4GH9/fw4dOkSjRo3Q6/Xm2qrs32vWrElgYCDHjh0jJiaGzMzMHG10Oh0PPfQQBoOBCRMmcOLECbZv386rr77KsGHD7jhaUtzlO9E5dOgQLVq0MPfYTJgwgRYtWvDhhx8C8NZbbzF+/HjGjBlDq1atCA0NZdOmTTmy/K+++orHHnuMp59+mo4dO+Lg4MDff/+d4x/A0qVLadKkCT179jT/z168eLH5cSsrK9atW4ednR0dO3bk6aef5rHHHuPzzz+/7xdDKZ127twJQNOmTc3fshRFKRhnz54lODgYa72exMREEhMTqVOnDv7+/vz22280b96cpKQkHBwc8PDwKPZ1kdbW1nzzzTfm4uJHH330tjZ6vZ4VK1YQEBBA48aNeeONN5g1a9Z9Pd/EiRMJCAigRYsWTJs2jS+++IJevXoBN1YsdnFxoUuXLnTv3p1atWrx66+/AtrnYHR0NM899xz16tXj6aefpk+fPnecdPPEE0/Qu3dvunXrRqVKlVi+fHmOx1NTUzEYDMyePZuEhARat27Nk08+ycMPP3zHtfNKAp3ca6C2FEtISMDZ2Zn4+HjVC1SKjR07ljlz5vDaa6/xv//9z9LhKEqJkNehq/DwcCIjIqiv0xEuQpqdXY4vtomJidilpVHNzQ19lSpFEXqJUaNGDcaPH8/48eMtHQoAERERBAcH4+zsTN26dS0dzl3/BvPz+V0os64UpTjZsWMHAH5+fpYNRFFKIVdXV8pHR2Obmko1nY4MDw8y9HqMRqM2lVmvxyYxEcLCyLSywub6pBWl+MneweDmRLU0UJt6KqWaqs9RlMKTlZVFRmAgDqmpCHDFxgabcuUoX748WVlZJCQkcCoigrDr7a1DQiA+3pIhK3cgIqU20VE9Okqpll2f06RJE9zc3CwcjaKUHiaTiaTAQJyvfzhmVq6Mh4sLVlZWiAhXrlzBysoKFxcXnCtVgvBwdDExcPEi1K8P16eil2VBQUGWDsEsNTWVrKws9Ho9Dg4Olg6nQKlERynVsoetbl4BVVGUByMiJIWGUj4uDoCMSpUw3LQdj06no2XLljnX4KlRAzIzITERzp+Hhg1BrWtWbGT35jg5OeV5FeqSQg1dKaVado+OSnQUpWCICEkREThFRqIDMp2dMVSvflu72z4s9XqoUwccHMBohHPntMRHKRZK67AVqERHKcUiIyM5efIkoOpzFKWgJEVF4XD1KnoRspycsKldG/LaA2BlpSU7BgOkp8OFC3B9ryXFckpzfQ6oREcpxXbt2gWo+hxFKSgxkZHYh4ZiZTKRZWeHVd26Wk9NfhgMULcuWFtDcjJcugRld5WTYqE01+eASnSKPaPRSEJCgnmHWSXvVH2OohSc2OhonMLDsTYaybK2xqpePa2H5n7Y22s9OzqdNgvr8mWV7FjQzfU5d9upvqQqfVdUimRmZuLl5YWzszO2trY88cQTbN269Z6b8SkalegoSsGIj4/HLiwMQ0YGJr0eq/r1tZ6ZB+HkBLVqab9HRUFY2N3bK4WmNA9bgUp0ip3Y2FgGDRpEcHAwNjY2/PbbbyxfvpxPP/2Us2fP0rNnTw4cOGDpMIs9VZ+jKAUjOTkZq6tXsU9LQwBd3bpaj0xBcHGB7ELmq1fh2rWCOa+SZyJCUlIScCPRGTFiBI899thdj9uxYwc6nY646zPvijOV6BQj6enp9O/fn82bNxN2/dtNt27dGDRoEBMnTuT48eOcPn2atm3bWjjS4k/V5yjKg0tPT8cUGYlTcrJ2R82a6PL4rX/KlClMmzYt18emTZvGlClTtBvu7uDlpf1++TIUwAdneHg4r776KrVq1cLW1pZq1arRv39/tm7d+sDnLkzZe1sVpdTUVIxGY476nP/9738sWrTI3KZr1663bVPRoUMHwsLCcHZ2LsJo749KdIqR5cuXs2fPHtauXUubNm3IjEolfkMg0cvPEL8hEGN0GvXq1SMlJYW33noLf39/S4dcbKlhK0V5MFFRUWQlJFDuepIjVaqgy8emuFZWVnz44Ye3JTvTpk3jww8/zLmLeeXKkH3uS5e0IuX7FBQUhK+vL9u2beOzzz7j+PHjbNiwgW7dujF27Nj7Pq+IYDQab7s/IyPjvs9ZHORWn+Ps7EyFChXuepzBYMDT07NkrLkjZVh8fLwAEh8fb+lQRESkdevW0rt3bxEReXfkRJnY+UUJfneXBL+zS4Lf3SUTO78o746cKFlZWVK3bl0ZNGiQhSMuvnx8fASQ33//3dKhKEqJEx0dLSvfeUdOrl8vqQcPSlZQkIjJlO/zTJ06VQCZOnVqrrdzyMoSOXtW5OBBkSNHRFJT7yv2Pn36SJUqVSQpKem2x2JjY0VEJDAwUAA5cuRIjscA2b59u4iIbN++XQDZsGGD+Pr6io2NjWzbtk38/Pxk7Nix8sYbb0jFihWlS5cuIiJy8uRJ6dOnjzg6Ooq7u7sMHTpUrl27Zj6/n5+fvPrqq/Lmm2+Ki4uLeHh4yOTJk82Pe3t7C2D+8fb2zvX6smNfvny5tG/fXmxtbaVRo0bmuLPt2LFDWrduLQaDQTw9PeXtt9+WzMxM8+MrV66Uxo0bi62trTg7O0unTp3Mr9nw4cPl0UcfNf9+c1yABAYGml+f7NdURGTVqlXSqFEjMRgM4u3tLZ9//nmOmLy9vWXGjBny/PPPi5OTk1SrVk2+//77XK9TRCQ1NVVOnTolqbn8LeTn81slOsUk0YmKihIvLy9ZuXKlZFxLkYmdXxRAJnZ6UYLf3iUTO12/3flFybyWIjNmzBAHBwdLh10sRUREmP9B3vxGoyjKvUVFRcmid96R2Hr15NT69ZJy5sx9JTnZspMbg8Fw5yQnm9EocvKkluwcOyaSkZGv54qOjhadTiczZ868a7v8JDpNmzaVTZs2yYULFyQqKkr8/PzEyclJ3nzzTTlz5oycPn1arl69Km5ubvLuu+/K6dOn5fDhw9KjRw/p1q2b+fx+fn5Svnx5mTJlipw7d05+/vln0el0smnTJhERiYyMFEAWLlwoYWFhEhkZedfYq1atKqtWrZJTp07JSy+9JOXKlZOoqCgREQkJCREHBwcZM2aMnD59WtasWSNubm7mxOrq1atibW0tX3zxhaxbt06WL18uX375pSQmJopIzkQnLi5O2rdvLyNHjpSwsDAJCwsTo9F4W6Jz6NAh0ev1MnXqVDl79qwsXLhQ7O3tZeHChebYvb29xdXVVb777js5f/68fPzxx6LX6+X06dO5XqtKdApAcUp0bha3/pLWg3M9uTFY2dxIet7dJXHrL8mCBQsEyJGhK5qVK1cKII0bN7Z0KIpSokRFRckXb74psc7OkurtLSe3bpXU5OQHPm92kmMwGO7dOCNDS3IOHtSSHqMxz8+zf/9+AWT16tV3bZefROePP/7Icayfn580b948x30ffPCB9OzZM8d9wcHBAsjZs2fNx3Xq1ClHm9atW8vbb79tvg3ImjVr8hT7J598Yr4vMzNTqlatKp9++qmIiPzf//2f1K9fX0w3JajfffedODk5SVZWlgQEBAggp0+floMHD0pAQIBkZWWZ296c6GTH/vrrr+eI49ZEZ8iQIdKjR48cbd58801p1KiR+ba3t7cMHTrUfNtkMom7u7vMnTs312stqERH1egUI3K9+t0Ymw4C4zsOx2BlQ0ZWJgYrG8Z3HA5ZJozhCURGRmJnZ4e1tdqu7FaqPkdR8i8pKYkF33zDoCVLqBAfT2bVqujc3fO/IOAtpk2bRkZGBgaDgYyMjDsWKJvZ2NxYUDAlRdsE1GTK03PJ9aU3CrJupFWrVve8LyAggO3bt+Pk5GT+adCgAQAXL140t2vatGmO47y8vIiMjLyvuNq3b2/+3dramlatWnH69GkATp8+Tfv27XO8Dh07diQpKYmQkBCaNWvGww8/TOvWrXnnnXf4559/iH/AXeVPnz5Nx44dc9zXsWNHzp8/n2MduJtfA51Oh6en532/BnmlEp1iZPjw4Tz77LNYu9iCDr7e87M5ycnIyuTrPT+DCFYrFjHI1pbPP//c0iEXSyrRUZT8SUtLY8433/DYsmVUDgvD6OqKzYIF978g4HXZhcdTp04lPT2dqVOn5lqgfBs7O21BQb0eEhLyvKBg3bp10el05g/8O8kuupWbzpl5h323HHPZZf3W+0wmE/379+fo0aM5fs6fP59jeQsbG5scx+l0Okx5TOLyIjuxEZHbkr2bk0ArKys2b97Mjz/+SM2aNVm2bBn169cnMDDwvp/7bs95s8J+DXKjEp1ipFOnTqxdu5bLjrF8vftnvtj9ExM7vcjFSVuZ2OlFvtj9E1/vXYzT/pV4v/EGY/fuhZgYS4ddrFy7dk2tn6Mo+WA0Gvlu9mweXrWKuhcuYLK1xXr9+hvr29ynm5OcDz74AIAPPvgg78nOzQsKRkdr6+zcg6urK7169eK7774jOZeZW9lrvlSqVAnAvIwHwNGjR+99UXfQsmVLTp48SY0aNahTp06On9wSpTuxsbHJ8yr4+/btM/9uNBoJCAgw9yI1atSIvXv35kg09u7dS7ly5ahSpYr5vvr16/Pyyy/j7++PwWBgzZo1uT6XwWC4Z1yNGjVi9+7dOe7bu3cv9erVyznDzgJUolOMDB06lObNm9Pr6b6keMLEzi8yvvNw0MH4zsOZ2PlFssRISsOHEJ0eli0DHx/4+29Lh15sZK+f07hxY/ObmaIouTOZTMydO5cW//yD75EjiF6P/rffoE2bBz53VlZWjiQnW3ayk6cP9AoVwNtb+z0sDPIwxDFnzhyysrJo06YNv//+O+fPn+f06dN888035uEee3t72rVrxyeffMKpU6fYtWsX77//fn4v0Wzs2LHExMQwePBgDhw4wKVLl9i0aRMvvPBCvrbvqVGjBlu3biU8PJzY2Ni7tv3uu+9Ys2YNZ86cYezYscTGxvLCCy8AMGbMGIKDg3n11Vc5c+YMf/75J5MnT2bChAno9Xr279/P1KlTOXbsGBEREWzYsIFr167RsGHDO8a1f/9+goKCiIqKyrUHZuLEiWzdupVp06Zx7tw5fv75Z2bPns2kSZPyfP2F5p5VPKVYcSxGDg8PF19fX7GyspKrpy9L3PpLcvLL7bLz4zXyWLd+Ut25sux+7TcJHzZPMty8RbQOXZHhw0VumuZXVo0bN04AGTdunKVDUZRib9WqVbL60UdvvI/MmWN+7G6FoEUuNFQrTj54ME/vc1evXpWxY8eKt7e3GAwGqVKligwYMCDHFOxTp05Ju3btxN7eXpo3by6bNm3KtRg59pbny60wV0Tk3LlzMnDgQKlQoYLY29tLgwYNZPz48eaC4NyOe/TRR2X48OHm23/99ZfUqVNHrK2t7zm9fNmyZdK2bVsxGAzSsGFD2bp1a452d5tefurUKenWrZu4uLiIwWCQevXqybfffms+9tZi5LNnz5pfK/IwvdzGxkaqV68us2bNyhGTt7e3fPXVVznua9asWY5p9jcrqGJknUjZ3TgpISEBZ2dn4uPjKV++vKXDMUtNTWXXrl306tULgCpVqnD16lUefvhhxowZQ7+ejxC3+CwZF6/hvPsnnA78ik4EqlSBH3+E3r0tfAWW06RJE06cOMGqVat44oknLB2OohRbu3fv5tL33/PssmVYmUzw9tvwySfmx9PS0ggMDKRmzZrY2dlZMFK0NOzyZW1PLJ0O6tfXhrbKoKCgIGrWrMmRI0do3rz5fZ/n4sWLxMbGUqVKFbyyV6YuZu72N5ifz281dFUM2dvbm5McgEOHDhEfH8+WLVt4/PHHMTjZ4fZCY6zcyxPfdQzXhswmq2pNCA2FPn1g5EitgK+MuXbtGidOnABUfY6i3M2BAwc4vmQJz/z2m5bkDB4MM2daOqw70+m0ISxnZy3puXAB0tIsHVWJJSKlfiPPm6lEpwTw8vK6LWPV21rhMa45ekcbMqo2Ifzp70l/7AXtDeHHH6FxY9iyxUIRW4aqz1GUe1u/fj27ly/n2WXLsM3IgK5dYeHCB55GXuh0Oq042dERjEY4dw5K+PYLlpKWlnbb/lalWTH/y1buRu9gwPPNVujLGxAbO67VH0Hi9CXam0FwMPToAWPGwPWdaUs7Na1cUe5u586d/LdzJ0OXLqV8YiLi4wNr1oCtraVDyxsrK23aua2tluRcuAD5KPYtDWrUqIGIPNCwVW77W5Vmpf8KSzm9nTWek1pj5aqNX8YnVCNmyirI3rxu7lxo0gSuJwGlmUp0FOXODh48yK7Nm3nm119xv3YNqVwZ3T//aDObSpIHWFBQ0ZSlYStQiU6poDfo8Zjgi7W7PQApJ5NIePwt2LpVG9cOCoJu3eC11x5oV+DiTNXnKMqdnTx5kn/WruXRv/6iZlAQUq4cunXr8rRWTrGcr2JnpyU72QsKBgXlaUFBpWTV5xTU355KdEoJvbUe9/EtsamqzURI2HSZBH1dOHYMRo3SGn37LTRvDrcs6lQaqPocRcndxYsXWbVqFQ9t3UrT48cRa2t0v/+uvRfcRfYibxnFtQ7G0RFq19Z+j4nRJmMo91SS6nNSUlKA21dTzi+1UVIpotfrcR/bnIQtV0jceoWEDUFkJVbGee5c9E88AS++qI1pd+kCb7wB06eDvb2lwy4QathKUW6XkJDAsmXL8D1wgM579gCgmz9fq9+7B2traxwcHLh27Ro2NjbFs5bD1lZbViM0FMLDtYLlihUtHVWxFnN9NX17e/tim8SKCCkpKURGRlKhQoUHXllZJTqljE6nw7mHN3qDnvj1QSTvuUpGYDyVxnVHf+IETJgACxbAl1/C2rXw88/Qrp2lw35g2YmOn5+fZQNRlGIiJSWFxYsXU+fUKR5Zv167c+pUGDEiT8frdDq8vLwIDAzk8uXLhRdoQTAaIS5OW2enUiUo5j0VlnTt2jVSUlIwGo0PtLdVUahQoQKenp4PfB61YGAxXDCwoESvOEPq0WsAWFeyx/31luit9bBunbbWTliYNsb95pswZYo27l0CXbt2DXd3dwAiIiLMvytKWZWWlsbixYvhwAFG/PwzNpmZ8NJL8MMPWq9HPphMpmL7zd9MBD76CFasAINB+zKXy67jZZ2I0LFjR2JiYli2bBktW7a0dEh3ZGNjc9eenPx8fqtEpxQnOgAxq86RcigCACsXWzzeaIXeoIfYWHj9dVi8WGvYqJHWu1MC3xx+//13nnzySXx8fMwFyYpSVqWlpfG///0Pu9BQXlqwAMfkZG219L/+0mYslVZZWfDEE/Dnn9pMsj17tPc1xezUqVP4+Phgb29PXFwcBoPB0iHdN7UysmLm+mQ9HDtUBiArNp3wWQcxpRnBxQV++QX++APc3eHUKW0I64MPStwiXDt37gRUfY6iZGZm8t1336GLjmbo0qVaktOyJaxcWbqTHNDW2Fm2DNq314axevdWBcq3yB7i79ChQ4lOcvJLJTplgMuA2pTrVg0AU2KGluykXE9mHn0UTp6EQYO0b0TTp0Pr1nDkiAUjzh9ViKwoN3YiT42JYfDy5VSMidGWl1i3ruzsC+XgAH//re2FFRysbYkTH2/pqIqNsvpeqRKdMsK5Vw3K964BgCnZSNQvpzGlG7UH3dxg+XLtW5+bmzYlvU0bbcw7M9NyQedBVFQUx48fB9T6OUrZZTKZmD9/PrFRUTyxejXVQkK0Xtv166EAijlLlIoVYcMG7bqPH4eBAyE93dJRWZyIqERHKf3Kd61GhYF1wKAnIyiBqJ9OYEo13mjw5JNa787jj2uzGKZMgbZttTeLYip7/RwfHx9VhKyUWUuXLiXs6lV6b9xIwzNntILcP/+Ehg0tHZpl1KihJXnlysH27dpMszK+evLp06e5du0a9vb2tG7d2tLhFCmV6JQxTm29cB/ZFJ29NRlXEgn/OoCMyJQbDdzdYdUqrYfH1VUbwvL11XY2NhrvfGILKavfUBQl2/r167l48SLt/f1pe+CAdufixdC5s2UDs7TmzWH1am2riBUr4K23LB2RRd1cn2NbUvY2KyAq0SmDDNXKUWlUU3QGPab4DCL/d5iM0Js2/tTptJqdkydhwABt+Oq996BDB61ouRhRiY5SlkRFRfHhhx/y5ptv8tlnn7Ft2zb279+Pz4kT9Nq8WWv0+efw9NOWDbS46N5d25kd4Isv4KuvzA9dvXqVf/75h7///puTJ09aKMCiU5YnbahEp4wyeDni+mxD0AFZQuR3R0kPuqVoz9NTm5X1yy/adM2DB7UZHLNmFYsdg1V9jlJWnD59GgAXFxc2btzIn3/+yeLFi9m+fTvely/z+J9/ag1ffVVbFFS5YehQ+PRT7fcJE8hcsgTQEp2+ffsyYMAAGjduTLt27Vi6dGnx3NvrAd1cn1MWF1VViU4ZZl/fFbeRTUGvA5Nw7ftjpJ6PzdlIp4Nhw+DECW0GQ3q61gXcuTOcPWuZwK9T9TlKWTBr1ix8fHw4cuQIVlZW7N+/nyVLlvDkk0/iERPDM8uXY2U0akW3X32V7wUBy4Q339SSQECee47U9evx9fUlJCSEq1ev8scff+Ds7MyyZcswlcJanjNnzhAZGYmdnR1t2rSxdDhFTiU6ZZxdLWfcxzQDKx0IRC84QerJqNsbVqmiTVP96SetwM/fXxsD/+orixX5qWErpbTbsmULb731Fu+++y7NmzcnIyiIk+++S8z7H9DywAGGrFyJQ3o6tG9P6GefYSyFvREFQqdjZYcOrAIMItgNHozOfz1VTs/Ha897POp4hI3L5vDXX39hZWVV6np1ynJ9DqhERwEMVcvh/loLsNZryc7i06RdjLu9oU4HL7yg9e706AFpaVo3edeu2mahRUwlOkpp99VXX9GiRQumT5/Ou88MYlLr1vDHn1S7coU6Fy4yxWTiHVdXrsyejXeDBqxdu9bSIRdLIsKUadNY2rs30rkzH9klMu3/Hoc938DJNbDnG6Y91ZhpY55i06ZN1K1bl6SkpHufuIQo6++VKtFRADB4OOL5Rkt0Bu1PIvqXU6RfTsi9cfXqsHEjzJsHjo7w77/QrBnMnl1kvTuqPkcp7a5cucL69esZO3YsmZcvk7J9O99GRfH9tWvogbnR0XwbHU2KXo9nxYq0bt2a77//3tJhF0u7du3i1KlTvPrmm+gWfY1VQxs+3JnOtB0pICam7Ujhw+1pWJ1fT+PKDgQGBrLkei1PSVeW18/JphIdxcy6oj2eb7XGULM8kp5F1E/Hb6/ZyabTwcsva2vsdOsGKSnaGHj37hAUVOixZtfnNGrUSNXnKKWSra0t3377LQMHDuTq/B95pWJFXq3oxrfRUTQ7d5Zvo6N4taIbo909iFv1O127duWshevmiqvU1FSGDRtGt27d4NJffNDVgaldbflwRzq20xP4cEc6U7va8oGfPZXDt9CmTRv27dtn6bALxNmzZ8t0fQ6oREe5hZWTAbfnG2NbtwKSYSL6pxPEb7585wNq1oQtW+Dbb7Xl17dvhyZN4PvvtR2FC0lZ/4ailHJJSXgcPszYoCAqdO+O9cKF6EQY7eaGjU5Hpgg2Oh2j3dxAhMzQUHQ6XakspC0IvXv35pdffkGn00HsZRATH/jZYrCCjCwwWMEHfraAQNwVHB0dSU1NtXTYBSL7vbJ9+/Zlsj4HVKKj5EJvsMJtuA9WbvYAJG69Qty6i3c5QA/jxsF//0GnTpCUBK+8Ar16afvNFIKyvCaEUgqlpWlfEj74ADp21LZveOQR+Pxz9EeOYLi+FcvcqChzkpMpwtyoKNDpsKlShdTUVGrXrm3hCym+AgICSDi/F674a8NVO9PNSU5GFkzbmQ7oEOfqBAUF4eHhYemQC4T6Ugg6KW3l5fmQn23eyyJThpGILw+TFaftE+PQxhPXx+ve4yATfPMNvPuu9uZdvrw2M+v55wts2mt0dDRubm4AREREqKErpeTJzIRDh2DbNu1nz57b9mOSmjXxt7MjrGFDYry8OP7rr3wbdX24ys2NuVFR2vCVWyU+P3QQg7c3ycnJODo6Wuiiiq+YsCCWvOjDuDY26JOymHYogw93ZlwfrrJl2s50bfiqmx0frDxBaJodmZmZ1KhRw9KhPxARwcvLi4iICHbu3Fmq6hnz8/ltXUQxKSWQ3mCNx6RWRHwdQFZUGikHwpGMLCoOanCXg/Qwfry25s6IEbBvH7z4Ivz+O/zwgzZN/QGp+hylxDGZtB7P7MRm1y6t5/NmXl7w0EPw0ENkdenCvI0buXbtGkajEWdnZxweeohXt21ntLs7ZGVpw1Y6MHTpzO979zLY21slObcSgRO/47rxPV5rYw1GE1lrDGQlp2hJTlcHQLT/6nSk1+pBaJodVQrgfao4OHv2LBEREWW6PgfU0JVyD3prPR7jfbHx1N5AU49eI+rnPCyXXr8+7N4Nn30Gtrbwzz/QuLG2B88DdiKqrlil2BOB06fhu+/giSegUiVtVfFJk7R/C0lJ2l5yTzyhtTl9GkJDYckSTCNGMH/LFq5duwZAVlYWb731FjHOznzsv5eKL7yAtZe2I/kzAwaw+cIFXn75ZUJCQix5xcXPtbPwywD4/UVICsdYvjo7fjBidSmG91Kd+ODrjdDxNfAZCB1f4+kZq9lyIpIePXqQVQxWfi8I2UP87du3x87OzsLRWI7q0VHuSW+tp9JrzYmad4yMK4mknY4hfkMQ5Xt5a8V9d2Jlpa1I2rev1rtz8CA895y2aej332tbTNwHlegoxVJg4I0em23bIDw85+NOTuDnZ+61oWlTrQf0FosXLyb8+rEtW7akf//+eHp6snHjRhzr1MH+jfHMWrSIF4BzmzbjULUKu3fvpmrVqkVwkSVARjLsmgV7Z4MpE6ztoPMkrE/a0/Xaq2QBnzRrxgfN/LhypSafffYZ//23ld27P6Jq1aqsWbMGKysrS19FgVDvlRpVo6NqdPJMRIhaeJL0c9qU83J+VSnfu8bdk51sRqPWuzNlilaf4OqqrbszaFC+andUfY5SbFy9qhUQZyc2ty6rYGenFRZnJza+vmBjc9dT/vbbb5y6vnFugwYNGDRo0G1t0tLSmDpqFMMOHERsbGgQcAi9wVBQV1VyicCZdbDhHYi/Pgmibi945DM4E6YlmZmZmD7+mIRXXqFChQrs2bOHMWPG4OXlxYsvvshjjz2GzT3+H5UUIkLlypUJDw9nx44dpW6Pq/x8fqtERyU6+Za4O5T4tZcAsGvqhuvT9dFb53EU9PhxGD4cjhzRbj/xBMyZA3lMWNasWcPjjz9Oo0aNysSOw0oxEh0NO3bcSGzOnMn5uLU1tG17I7Fp105LdvJo7dq1HDp0CABvb2+ef/75O7YVEc536kxWdDTeS5fg4Ot7P1dUesQEwvq34Pwm7bZzdejzCdR/ROtZ8/WFsDB48kn47bcysR/Y2bNnadCgAba2tsTFxZW6oStVjKwUqnKdqqCz0RO35gJpx6KICE3C4w3fvCU7TZrA/v0wcyZMn64VKe/cCXPnam9C96C6YpUik5Cgrfqdndj891/O+jKdTqu7yU5sOnXShqfuw65du8xJjru7O8OHD79re51Oh0Pr1iRu2EDKgQNlN9HJTIM9/4PdX4IxDfQ2Wt1N50lgcICMDHjqKS3J8fGBhQvLRJIDOdfPKW1JTn6pREe5L05tvci4mkzK/jCyotOImHUQj4m+6A15+JOysYHJk2HAAK135/hx7c3omWe0wsyKFW87ZNGiRQQGBvLbb78BlLpu2LzatGkT/v7+WFtb06xZM/r06VNq6gny48SJE/zxxx9kZWVRq1YtHn/88QefcZSaCnv33khsDh6EW4tSfXxuJDZ+ftp6Nw8oKCjIXDRaoUIFXn75ZfS51O7cyqGNlugkHziA2+jRDxxHiXN+C6x/E2K03uUr1rX4M7MT6UcceMQriEaNGsEbb2hT952dYc2a+05ESyL1pfAmUobFx8cLIPHx8ZYOpcSKXXtRgt/eJcFv75LQaf6SlZyZvxOkp4u8956IlZUIiHh4iPzxh4iIXLlyRTIyMkRE5M033xRPT08BBJCmTZvK5s2bC/pyiqWEhASJjIwUEZFff/1VPD09pWLFigJI9erVZd68eRaOsGhkZWVJYGCgiIhcvHhR3N3dxdPTU3Q6nTg7O8uECRMkMzMff3/p6SK7d4tMnSrStauIwaD9Dd78U7u2yMiRIsuXi4SFFfg1Xb16VWbOnCmTJ0+WxYsXS3p6ep6PTTt/Xk7VbyCnmzUXUz6OK/HigkVWDBWZXF5kcnkxzaoncnyVDB48SKpUqSIODg4CyCf162v/D3U6kbVrLR11kTKZTOLl5SWA7Nixw9LhFIr8fH6r6eXKA6nQtxblulcHwJSUSdisgxiTMvJ+AoNBG8Ly94dGjSAiAh57jLj+/XmoRQsmT56MiPDZZ58xZ84cAKpXr463tzee9zlrqySJi4uja9euDB48GBHh6aefJiwsjKioKA4ePEjXrl2pUKGCpcMsdCaTieHDh9OuXTsSExOpVasWERERhIWFcenSJUaPHo2trS3W1nfpUczKgoAAmDVLW+fJ1VUbbvrwQ632JiMDKleGYcO0IY6gILhwQVv/adCg+54leCfnz59nwYIFpKen4+3tzTPPPIMhj0XF6enp2NSqhZWrK5KWRuqJEwUaW7GUlakNU81uA6f/QnR6vj1kYoHDaMTncZYtW05ISAixsbFsmD6dN86f146bMkWb+VmGnD9/nrCwMGxtbWnbtq2lw7G4Ak90jEYj77//PjVr1sTe3p5atWoxderUHHuwiAhTpkyhcuXK2Nvb07Vr19sKS9PT03n11Vdxc3PD0dGRAQMG3LZORGxsLMOGDcPZ2RlnZ2eGDRtGXFxcQV+Scg/O3b0p37cmAJJqJGLWIYzx6fc46hatW2sfQm+/jej1VFi7lj3x8VyeO4+27drzy5oNfLc7BLf+b1L78Qn8b8FyGjdujNFoJCYmphCuqnh44YUXuHDhAiePHaVDu7b8+8ciZPMUWPUCreLW8vOXH/LMM88gIkRGRlo63ELz+eefs2TJEtIz03m4x8MsWbeErwO+5q2db/FH9B+88u4rzJw5E+DG6yACJ09q+7ANHAhubtCqFbz1FmzYAMnJ2n1PPaXViJ09CyEh8Msv2nII3t6Fdj0hISEsW7aMzMxMypcvz+DBg/M82yc4OJjaNWrQoV07EqtXAyDlwIFCi7VYCNoN8zrD5g8hM5kMT186LTbxa1wzPpg2i/bt2vP37xvZu+YCO+Yfp/yOaFKcvGDAANImTSIhIcHSV1Cksoet2rVrV+brc6AQZl3NmDGDr776ip9//hkfHx8OHTrE888/z/Tp03n99dcB+PTTT5kxYwaLFi2iXr16TJ8+nV27dnH27FnKlSsHwOjRo/n7779ZtGgRFStWZOLEicTExBAQEGCuSejTpw8hISH88MMPAIwaNYoaNWrw999/5ylWNeuqYCXtDyNuzQUArKs44v5iE/QO+Z+quXHKFGp89BH1r99u61GHs3Xa4NzhGQCs9Hpi966ge4NKRJ49TI0aNfj5558L6jKKjQsXLlC3bl0mT57MRx99RIdqVvSsZcV7XezQ63XodHqm70wlq24fUivU5Y8//uDMmTN5m+5fgmRmZuLt7U379u1ZvXo1DnUdcPRxxGOABzq9Dr1OT/if4XSt3JURDTrz5+uv82X//tjv3Qu3Jn/ly+dcy6Zx41zXsilM165dY968eWRlZaHX6xk9ejSVKlXK8/GHDx/G19eX6ra2dLS35wMPT1Lr1aPFn3+Uuv/3JEbA5g/g2K/abYeK0GMaH6+/zNRp01i7di3du3enlocPDar60tt3KHp06ERYf2Qp1RqUY8OedQwdOpSpU6da9lqK0JAhQ1i+fDmTJ09mypQplg6nUOTr87ugx8369u0rL7zwQo77Hn/8cRk6dKiIaGOHnp6e8sknn5gfT0tLE2dnZ3OtQVxcnNjY2MiKFSvMbUJDQ0Wv18uGDRtEROTUqVMCyL59+8xt/P39BZAzZ87kKVZVo1Pwkk9ck5CP9kjw27sk/KtDYkzIf+1A586dpbefn4Q/+6xccKksFToOEUCcOz0r3m+vFedOzwogFTo/K5OnfiYuBoNEX7kikpRUqn7eGz9eqrq4iP+WLdLEVS8fdTUIIFO72opMLi9Tu9oKIB91s5NDfywSB5Ad69ZZPO6C/vlz2TJxAFm5aJGU9zCI+8BKAoj7QHdpvKixuA90F0A8Hqskl91vqbOxtxfp0UPk449F9u8XyU8NTyGIi4uT6dOny+TJk2XKlCly+fLlfJ8jICBAAFnpXUOWVKsup+o3kIC69aRDq1ayYcMGMZlMhRB5Ecsyiuz7XmRm1eu1OM4if48XSY4Wk8kk3t7eMmLECAkICJBK5atI31YjBJC+rUbI7Je3mm/3az1Cxo95Szw8PMRoNFr6qorEzfU527dvt3Q4hSY/n98FPuuqU6dOzJs3j3PnzlGvXj3+++8/du/ezddffw1AYGAg4eHh9OzZ03yMra0tfn5+7N27l5dffpmAgAAyMzNztKlcuTKNGzdm79699OrVC39/f5ydnXOMP7Zr1w5nZ2f27t1L/fr1uVV6ejrpN22cV9a6M4uCg48bNm72XPvxBJnhKYR/GYDbC42xrVYuz+cYOnQoDRo0INTJieHB1ri0fRzR6YjfvZR4/18hy4hzp2dxbfc09ltWE5ORAdWrF+JVWcb06z90786xh22hgwEdOj7ckc70f7Wdl6d2teWDTjbw7cskQ6msRRgA2rWNGEHIkx4s6uMG6IhcE8m1v68hRsF9oDue/Srxu8GahzYkc9Hbm8dnz9bWtbG1tewFXJeSksKcOXPIvL4T+ZAhQ6j+AH+3OqClgwMigr1eT+WLF+nduzdtW7dm+syZdO/evYAiL2Ihh2DtGxB+TLvt1Rz6fQlVtCn0pqwsXnvtNR5++GGysrJo36A3PZoPBmDdoUVsPLwUoymTvq1G0LPFENLsrhIREUFMTEy+es5Kqpvrc9q1a2fpcIqFAu+zffvttxk8eDANGjTAxsaGFi1aMH78eAYP1v4Qs5c29/DwyHGch4eH+bHw8HAMBgMut0zdvLVNbqviuru7m9vc6uOPPzbX8zg7O1OtWrUHu1glVzYejri/3BSdrRWSauTa3KOkXYzL8/GjRo0y77Ib7uyOSaenQsfBYGUNWUawsqZCx8EIEOJcRlZGdtb+qX7gZ4vBCjKywGCl3b758dLuqpsNogP3R93RWesQo6Cz1uH+qDtZwKKaLrzh68tKHx/o0qXYJDlGo5HvvvvO/EXr8ccfp27dugVy7uzhqo8quTPcxYX9Bw8y8XqZQImSEgN/vQY/dteSHDtn6PsFjNxmTnIArKysmDBhAs2aNQPAtZxWJN7HdxjWehuMpkys9Tb08R0GApcvXAUoNftX3Uv2UgWqPueGAu/R+fXXX1myZAnLli3Dx8eHo0ePMn78eCpXrpxjEaxbx5JF5J7jy7e2ya393c7z7rvvMmHCBPPthIQElewUEms3e9xe8OHa98fBJET9eJyKw32wb+B6z2PPnDnD7t27admyJcb4SASI37PcnOSQZSRuz3IqtH+Gq83q47LBhtOnT5e6WVjXrl1j2bJldOrUie1TezJRB9N3ppuTnIwsmLYznf/rbMuFzo/QdfMmfvzxR/qWsl6dtLQ0li9fjpeXF8tWjMVFB5F/RpqTHDEKkX9G4t7fna6tH+bfTf8Wq5kmJpOJv/76i+TkZAB69+5N06ZNC+z8IsLB1BS+ionhv+Rkc49OiWEywdElsHkypF6fWNBsCPSYCk6598AcOnSICxcuUK9ePWIStS+26wMWm5McoymT9QGL6dVyCF7ebjg7O1Mxl/W5SqPsQuSyutZYrgp63Kxq1aoye/bsHPdNmzZN6tevLyLa+heAHD58OEebAQMGyHPPPSciIlu3bhVAYmJicrRp2rSpfPjhhyIi8tNPP4mzs/Ntz+/s7CwLFizIU6yqRqfwpYcmSvD//Wteayf5v8h7HvPtt9+KlZWVbNiwQaxdKptrcnKr0Qm8lnTb30lpcejQIQHkyy+/lDr3qNGRqAuSmJhoXneoNElKSpLy5cvL888/LwYPg1S6U43OQA+5HH9ZMjMzJSEhwdJhi4hWL7Fu3TpzTc6RI0ce+Jw31+j8ULWqNHN0FEDatm5d8mp0rv4nMr+7eU0c+a6dSNCeex42adIkcXFxkd27d9+zRic2IrnUvkfcymQySeXKlQWQbdu2WTqcQmXRdXRSUlJuW9XTysrKPL28Zs2aeHp6snnzZvPjGRkZ7Ny5kw4dOgDg6+uLjY1NjjZhYWGcOHHC3KZ9+/bEx8dz4KZplfv37yc+Pt7cRrE8Q2UnPMa3BBvtbyJm2RmSD+U+tJht2LBhODk5MXXqVIyxVyl/8SAVOg7Btf3T6ICKnYZQofOzNHbOwsNRf9sQZ2nh6+tLhw4d+Pzzz7kQY2LjhSym+Bl4t7MtJnS839WBqd3suFaxDSGptjg5OZWaDQlv5ujoyEsvvcSyZcvIiMgg6XgSlR6rhHt/d3To8HrMC4/HPWjj2obQk6FYW1ubZ29a2ooVK8zvUY899hjNmzcvsHNPDA9jVEgIdo0asWHDBvz376dXr14lY+ZVWjysfxt+8IOQA2Bwgp4z4OVd4H3v9+/Ro0eTmJjIZ599xrWEUJIu76Of73P0aTEEEB5pPYx+rUdgXTGNchVtS+17xK0uXLjA1atXMRgMqj7nJgU+dNW/f39mzJhB9erV8fHx4ciRI3z55Ze88MILgDbcNH78eGbOnEndunWpW7cuM2fOxMHBgSFDhgDg7OzMiy++yMSJE6lYsSKurq5MmjSJJk2amAvsGjZsSO/evRk5ciTff/89oNV29OvXL9dCZMVybCo54DnBl4ivApAME7GrzmNVzha7+rm/+Tg7O7Nq1SoeeeQRDHb2TIoLZsDJRL5w94CnhuEoqYTGu7Nk7lf88ktXXn755SK+oqKzbNky2rZti52NFXFOdXho/LtYOQaii79CiqESlWyEGVO/IcnpAxYuXGjpcAvN9OnT+ffffzl05BAeWR5Mf2k61zyvcTXpKu727tiIDZ/932eM3DeS//77r1hsi/Hrr79y9uxZAHr27GmuKXlQ7u7uVPX0xKtaNX6YNo2ePXuWjOQGtLlwx1fBpvcgKUK7z2cg9JoJ5Svn+TS1atViwYIFPPfcczjYO/JuZgRtz2/hlN9DJDX0JTUrAZdoPYt/W8GmTc/Rp0+fQrqg4uXm9XPs7e0tG0xxUtDdSQkJCfL6669L9erVxc7OTmrVqiXvvfdejqXNTSaTTJ48WTw9PcXW1la6dOkix48fz3Ge1NRUGTdunLi6uoq9vb3069dPrly5kqNNdHS0PPvss1KuXDkpV66cPPvssxIbG5vnWNXQVdHKjE+XkCl7JfjtXRLy/m5JPXv37uRdu3ZJ/fr15aidnQjIV76+0qpVKwHE1dVVvvrqq5LVTX+fgoKCxM/PTxYtWiQiIkuXLpXOnTuLra2tGAwGGT16tKSlpVk4ysKXlJQkw4YNk3HjxomIyMmTJ6V9+/bm7TB69+4tYYWwTcP9+Ouvv2Ty5MkyefJkWbhwYYGfPy0treT97UeeEVnY98Yw1f9aiFzY+kCn/P3336VunTqS5e4uAvJZv37StGlTAaRy5cqybNmyAgq+ZBgyRFuKI7vEozTLz+d3gS8YWJKoBQOLninDSMzSM6SdjQUrHa6D6uPQ5M5TPmOCgihfsybWwFdvvMF/MTF069aNp59+usx9Y5HrhfZ///03v/76K82aNWPEiBFlYsrszbJfh//++4+vv/4aT09Pnn/+eerVq2fp0ADYtm0bu3btAsDT05NRo0blaZPOUisjGXZ+Bv6zwWQEazvoMgk6vAbWDz4rTk6fRteoEdja8sGrr3I1Joa+ffvSv3//UjmUeyciQrVq1QgNDWXbtm1069bN0iEVqvx8fqtERyU6RU6MJmJWnCH1RDQAju29cHm0Tq5t937wAR2mT+eKjQ3VM/Kxh5aiWIC/vz8bN24EwMXFhXHjxhWLYTSLEIEza2H9O5Bwffueen2gzyfgUqPgnmfePBg9Grp2he3bC+68JUz2SuoGg4G4uLhS/0UwP5/fZfhrhmIpOms9roMbYu3uAECyfxgxK8/m2jZl/XoAQmrXLrL4FOV+/Pfff+Ykx8nJiTFjxpTdJCfmEix9Cn4dqiU5ztVh0HIYsqJgkxyA6+vG0LVrwZ63hMmuz2nbtm2pT3LySyU6ikXorHS4v9YCa3ftH2RKQCTRS07f1s79tHaf1cMPF2l8ipIf165dY/31pNzOzo6xY8eWqWETs8w02PEJfNcOLmwGvQ10ngRj90ODRwr++US0nedBJTrXX4euZfx1yI1KdBSL0VvrcR/fEpvKTgCknoji2oLj5sdjLl+mUUoKADVHjLBEiIpyT3FxcSxevJi0tDTc3d0ZPXp02fxGfX4zzGkHOz6GrHSo1RXG+MPDH4DBoXCe89w5CA/XVsAuRotEFjURUYnOXahER7EovV5PpXHNMNTUxljTz8UROfc/TCYTZ376CWsg2MYG91atLBuoouQiIiKCBQsWkJCQgJubG8OHD8fZ2dnSYRWt+BBtiGrpkxAbCOW84MmFMOwPcCuYbS7uKLs3p317KMPbHVy8eJHQ0FC1fs4dFPg6OoqSX3q9HveXm3FtwQnSz8WScTmB+L8vkXp9KCC4Vi3URh1KcRMXF8f8+fMxGo04ODgwbNgwHB0dLR1W0TFmwL45sPNTyEwBnRW0Gw1d3wHbIlqwMTvRKePbHWTvb9W2bVscHAqp96wEU4mOUmxUeqExMb+eJeVIJMn+YTQJ1BYUU/U5SnGTkpLC3LlzMRqNAAwcOLBs9eQE/gvrJkLU9UkE1dtrG3B6+BRdDKo+x0ztb3V3KtFRihXXZ+pjW9uZuOX/USlG23W4xrDh9zhKUYpORkZGjp3In3jiiQLbibzYS4yATe/D8d+02w5u0HMaNBsMRb068/nzN+pzyvBwjarPuTdVo6MUO46tPIkxHUQnWRidvcjaJpjSjJYOS1HIyspizpw55p3I+/TpQ5MmTSwcVRHIMsL+72F2q+tJjg5avQivHoLmQ4o+yYEbvTnt2pXp+pxLly4REhKCjY0N7du3t3Q4xZLq0VGKpYjdf9IESKveHFNCBuGzDuI50Re9g8HSoSlllMlk4vvvvycuLg7QhgnaloWZPsEHYd0bEH59RmTlFtD3S6jS0rJxqWErIOf6Oao+J3eqR0cpltxPnQIgtEkDAEzJRsI+O4QxQa2OrFjGjh07iIyMBKB169alfol9UmLgr1fhp+5akmPnrCU4L221fJKj6nPMsguR1bDVnalERyl2Yq5cMa+f4zp+MM4DtFWRJS2LiM8PYoxNs2R4Shnk7+9v3r+qffv29O3b18IRFSKTCQJ+hm9bwuFftPuaPwvjAqD1i6AvBqs9nz8PYWGqPkfV5+SJGrpSip0zCxbQAQixsaFq69YA6A16YledRzJMhH8ZgOekVlg7P/iGgIpyL1u3buXff/8FoFu3bqV7ZkvYf9psqpCD2m13H202lXcxq/3I7s1p27ZM1+cEBgYSHBys6nPuQfXoKMVOyrp1AFypVct8n2MrT1yHNAAdkGki6qcTZKlhLKWQbdmyxZzktGnThi5dulg4okKSFg//vAU/dNWSHIMT9JoJL+8qfkkOqGGr67J7c9q0aaPqc+5C9egoxU6l6/U5Vg89lON+h6aVsCpvIHrpaYyRKUR+/x+VXmqCtUvZ/UanFJ69e/eye/duAFxdXenVqxc6S8wuKkwicHwlbHwPkrX6I3weh14zoHxly8Z2JyJqI8/r1LBV3qgeHaVYubk+p9bzz9/2uG0NZ9xHN8fK1Y6s6DQivgwg9XxsUYeplHJHjx5l06ZNgLYT+ejRo0vfTuSRZ+Dn/rB6pJbkVKyrbdvw1MLim+QAXLgAV6+CwaDqc1Sikycq0VGKlTMLFmADhFpbU+l6fc6trF3tqPRyU3R2VkimiegFJ0g9GVW0gSql1tmzZ/njjz+AUroTeXoSbP4Q5nWEoH/B2h4e+gBG74HaJWAm2c3r55TFzVOvCwoKUvU5eaQSHaVYSf7nHyBnfU5urJ1tqfRyM7DWg0D04tMkH4ksihCVUuzKlSusWLECABsbG8aMGVN6diIXgVN/wXdtYM//wGSE+o/A2P3QZRJYl5DiflWfA+SszylTe6zdB1WjoxQr2evn6G+pz8mNwcsRzzdaEvH1YSTTROyvZ5GMLJzaehV2mEoplJSUxMqVKxERrKyseOWVVyhfvrylwyoY0Rdh/VtwYYt2u0J16PMZ1O9j2bjy6+b1c0rz7Lc8UPtb5Z1KdJRiIzYkhEbXl9avmUt9Tm6sK9rjMdGXiK8OI+lZxK25gCk9i/JdqhZmqEopk5qaypIlS0hMTMTR0ZEhQ4ZQsWJFS4f14DJTYffXsPsryEoHKwN0fB06TQBDCZylo+pzAFWfk19q6EopNm6uz3Fv0ybPx1lXsMPjzVboHLS8PeGfQFJUzY6SR8nJySxevJjw8HAcHR154YUXqFKliqXDenDnNsGcdrDzEy3Jqf0QjPaHh94vmUkO3Jht1bYtlOHp1EFBQVy5cgVra2s6dOhg6XCKPZXoKMVGUi7r5+SVtZMBrzdbo7++iGDMsjOkHFfJjnJ36enpfPfdd1y9ehUbGxuGDRtW8nty4oJhxbOw7CmIDYJyleGpRTB0NbjVsXR0D0bV5wCqPie/VKKjFBuVTp4EQH+fewjp7a3xeqsV9s0qQZYQs+w0iXtDCzJEpRTJ3ok85fpyBj169MDT09PCUT0AY4Y2RPVdGzizFnRW0H4cjDsAPgMts8N4QVL7W5mp/a3yR9XoKMVCbEgIPvmsz8mNzkqP6zP1ibXWkxIQQfxfl8i4kkjFQQ0KKlSlFDCZTMybN4/4+HhA29qhTT6GS4udwF2wbhJEndVuV+8AfT8HDx/LxlWQLl6E0NAyX58DqhA5v1SioxQLZxYsoD1afU6VB/zA0el1uDxRl8ywJDKvJpN69BpR6Vm4DS9Fb/rKA1m4cCHXrl0DtO7/EvuBkRgOm97XVjcGcKwEPaZBs0ElvwfnVtm9OW3alPn6nMuXL6v6nHxQQ1dKsZCjPqcA3qB1eh2VxjXHUK0cAGmnY7g2/xgmk+mBz62UbMuWLSM4OBiAxo0b88gjj1g4ovuQZYR9c2F26+tJjg5aj4Rxh6D54NKX5IAatrouuzendevWODk5WTaYEkIlOkqx4PaA9Tm50ev1uI1uim1tZwDSL8YTNVclO2VZQEAA586dA6B27do8+eSTFo7oPgQf0Dbf3PAOpCdA5ZYwars2VGVfwdLRFQ61v5WZmlaefyrRUSwuR33OiBEFem69Xk+lkU2xa+gKQEZwIpHfHMFkVMlOWXP69GnWrl0LaEnOs88+a+GI8ik5Gv4cBz/1gIjjYFcB+n0FL22Byi0sHV3hunQJQkLAxgbK+HYHKtHJP5XoKBZ3esECDMBVa2vc27YtlOdwG+6DffNKABjDU4hdcx4xSaE8l1L8nDhxglWrViEitGjRgqFDh6LXl5C3P5MJDi2E2b5wZLF2X/Oh8GoAtHoB9KVss9HcZA9bqfVzVH3OfVDFyIrFJWfX59SsSeVCrC2oOKgBcc62JO0MITUgkhij4Pp0PXRWJeQDT7kvhw8f5q+//gKgQYMG9O/fH11JqWG5ehTWTYTQQ9ptj8bQ9wuoXsZmHan6HODGtPJWrVqp+px8UImOYnHZ9Tm6AqzPuZMKfWpiqFqOmBVnSP3vGhERybiPaobeQf1TKI3OnDljTnLs7e0ZOHBgyejJSY2D7TPg4I8gJjCUg27/B21GgVUZ+1tV+1uZqWGr+1MC/sUrpVnc1avm+pwaBVyfcycOTdyoOKwR6LRhrLDPD2JMyiiS51aKTlBQEL/++itwYydyW9tivkO3CPz3qzab6sAPWpLT+AkYdxDajyl7SQ6o+pybqETn/qhER7Go7PqcMGtrPIpwETD7Bq6U71MTAEkxEjHrEMa4tCJ7fqVwhYeH88svv+TYibxcuXKWDuvuIk/Don6wZhQkR0LFuvDcn/DkAijvZenoLCd7tlWbNlCGtzsICgoiKCgIKysrOnbsaOlwShSV6CgWlXR9FszlGjWKfO2P8l2qUmGgtvePpGcR8UUAxujUIo1BKXixsbH8+OOPmEwm9Ho9L774YvHevyo9SVv0b14nuLwbrO3h4Q9h9F6o1dXS0Vmeqs8BbtTnqPVz8q8M9oMqxYnbiRNA0dTn5MaprRc6gxWxv55FMk2EfxWA+9gWGLzK7jfHkiwjI4PFixdjNBrR6XQMHTqUypUrWzqs3InA6b9gw7uQcH1Ptgb9oPfHUKG6ZWMrLtT+VmZqf6v7pxIdxWIsUZ+TG8cW7ugNeqKXnAajEDn7CB6TWmHjYmexmJT8MxqN/Pbbb8TExGBtbc3AgQOpVauWpcPKXfRF+OdNuLhVu13BGx6ZBfV6WTau4iYwEIKDVX0Oan+rB6GGrhSLyVGfY+E3MXsfN9xeaKz9i8gSon44poaxShCj0ciqVau4cOECNjY2PPfcc/j4FMO9zTJTYftMmNNOS3KsDNDlLRi7XyU5ucnuzWndukzX51y+fJnAwEBVn3OfVKKjWIwl63NyY1fXBY83fLGuaEdWbDrXvj9GRkSypcNS7iF7J/IzZ86g0+l45plnqF69GA79nNsI37WFnZ9CVgbUfhjG7IOH3gMbe0tHVzypYSsg5/o5xb6ovhhSiY5iMRWLcP2cvLKp5ECll5th7e5AVkIGkf87Qsqxa5YOS7mLBQsWEBUVBUCHDh2oU6eOhSO6RdwVWPEsLHsa4i5Ducrw1M8w9HeoWNvS0RVfan8rMzWt/MGoREexiLirV/FJSgKgxvDhFo4mJ6vyBiq93BSdnRWYhJhlZ0g+FG7psJRcLF26lJCQEACaNm1Kjx49LBzRTYwZ8O+XMLsNnFkLemvo8Jq2Jo7PY8WiF7NYCwqCK1fA2hrK+HYHKtF5MCrRUSzi1IIF2ALh1tZ4FMM3MStHGzxeb4nOoP0TiV11nsS9Vy0clXKz1atXc/78eQDq1KnD448/buGIbnJpJ8zrCFs/AmMqeHeEV3ZDz2lgq6YG50n2sFUZXz/nypUrqj7nAalER7GI4lafkxtrFzs8JrXWenaA+L8ukrAj2MJRKQAbN27k2LFjAFSpUoWhQ4daOKLrEsNh1YvwywCIOgeOlWDg9zBiHbg3tHR0JYuqzwFu1Of4+vqq+pz7pBIdxSKy97eiGNXn5Ma6vAGvt1qhd9RWYkjYEET8xiDLBlXGnTt3Dn9/fwAqVqzIiy++aOGIgCwj7JsL37aCE6tAp9f2pRp3CJoNKrbJfLGl9rcyU8NWD06to6MUubiwsBv1Oc89Z+Fo7k3vYMDzzdaEfxmAKSGDxO3BWLvb49jCw9KhlTnBwcGsXLkSAFdXV0aPHm35TTqv7Nd2GI84rt2u4gt9v4TKzS0aVomm6nPMVKLz4FSPjlLksutzIqys8CghY856O2s8J7XG2sMBgNjfzpF8UBUoF6WrV6+ydOlSMjMzqV27NmPGjMHa2oLf1ZKj4M+xsKCnluTYVYB+X8OLW1SS86CyZ1u1bg1leLuD4OBgLl26pOpzHpDq0VGKXHZ9TlCNGniUoC59vUGPx+stifvzAsn7w4n9/TzG6DSce9ewdGilXmBgoHmTzqpVq/LMM89YLskxmeDwItjyEaTFafe1GAbdPwLHYrynVkmi6nOAnPU55cuXt3A0JZdKdJQiV/H6/lYl8U1Mp9dR4bE66GysSNodSuKOYDKuJlHphcaWDq3UCgsLY/HixYgI1tbWDB48GIPBYJlgrh7RhqlCA7TbHk2g7xdQva1l4imtVKIDqGGrgqKGrpQiFRcWRuPr9TnexWz9nLzS6XQ4962JoYb2DSv9XCyR8/7DZDJZOLLSJzo6+radyB0tMdU4NQ7WTYIfumlJjqEc9P4URu1QSU5BCwqCy5dVfQ5qf6uCohIdpUidXrjQXJ/j2amTpcO5bzqdDvdXmmFbrwIAGUEJXJt9VCU7BSgpKYnvv/+erKwsdDodw4YNw8vLq2iDEIGjy2F2Kzg4HxBo8hS8egjavQJWqlO8wGX35rRqVebrcy5evIher6dTCX6vLA5UoqMUqcS//wa0+pzSMOW20gtNsG/sBkDm1WQivz6MyaiSnQeVlpbGd999R0ZGBgBPPfUUNWvWLNogIk7Bor7wxyuQfA3c6sFzf8ETP0I5z6KNpSxRw1aAqs8pSCrRUYpUSa7PuZOKQxvi4OsOgDEylYgvAjBlqmTnfplMJhYuXEhqqrZ7fP/+/WnUqFHRBZCeCBvfg3md4PIesHGA7lPglT1QSw0hFDq1vxWg6nMKkup3VYpMXHh4sd3f6kG5PlUfna0VyXvDyIpNI2bFaSoObojOWn2XyA8RYe3atURERADw8MMP4+vrW1RPDqf+gA3/B4nXt/to0A96fwIVqhVNDGVdUJD2Y2UFZXw6dXaPjkp0HpxKdJRCFxUVxbFjxwhevJjhXF8/pxSOObsMqIO1iz3x6y+RdjKG6MWnqDi0ITobK0uHVmJs3ryZw4cPo9PpePLJJ/Hx8SmaJ46+CP9MgovbtNsuNaDPLKjXs2iev4wLDQ3l9OnTeG7cSGMo8+vnhISEcOHCBVWfU0DU102l0GRmZgIQERHBww8/TOCiRQDstrZmydKliIgFoysc5TpXwW1EY3Q2etLOxhL+eQDGhAxLh1UiLFmyhL179wLacFWRJDmZqbBtOsxppyU5Vrbg9w6M2aeSnCKQ/R5x7NgxevTowcHPPwdgeXg469ats2RoFpXdm9OyZUtVn1MAVKKjFIoFCxbQokUL4uLi8PHxITAwkL7XpwWfrFiRH374wfwmV9rY1XPB7YXGoNeRFZ9O+OcHyYxJtXRYxUJ6enquCe7q1au5cOECAE2bNqVly5aFH8zZDfBdW9g1C7IyoE53GOMP3d4FG/tCfeo7vQ5lybRp03jooYfIyMigZ8+eXLp0iaFVqwJwwM6ORYsWldnXSNXnFKxCSXRCQ0MZOnQoFStWxMHBgebNmxMQEGB+XESYMmUKlStXxt7enq5du3Iye5PH69LT03n11Vdxc3PD0dGRAQMGEBISkqNNbGwsw4YNw9nZGWdnZ4YNG0ZcXFxhXJKSDxs3buSll17iclAgvXr25K/ffuX8pnWENanLv03qM3jud2zbtg2DwVBq38hsazrj8ngdBCDDxJWP97J99cZSe715ERwcTM2aNWnXrh0bN954LdavX2/eibxq1ao8/vjjhRtI3BVYPgSWPwNxl6F8FXh6MTy7CirWLtznRnsdateuQfv2bXO8DmXJTz/9xIcffsjREyfo1KULS7ZsZ2lsGq+OGMuMka8xbuduli9fjk6nK5Ovj0p0CpZOCvivKDY2lhYtWtCtWzdGjx6Nu7s7Fy9epEaNGtSurb2JfPrpp8yYMYNFixZRr149pk+fzq5duzh79qx5G/rRo0fz999/s2jRIipWrMjEiROJiYkhICAAKyut5qFPnz6EhITwww8/ADBq1Chq1KjB39enMN9LQkICzs7OxMfHq+7BAtSxY0dSUlI4evQoNSq6UM/TjR6N6qK//qe2+cxFavq25dmRL/Piiy/i7++Pi4uLhaMuHCf+PED5vanodXrSjRm8d3g2z7/9Cj179kRXCqbX58fhw4fx9fXF1dWVmJgY2rRpw6hRowgODgbAzc2NMWPGFN4mncZ02Pst7PocjKmgt4b2Y6HLW2BbdPUg2a9D5SoGroZm0LZtaz76aFqZ+ZvIysqiZs2aNGrUiI0bN2Lj0wxDq/aUG/oSOkAHJCz7iV4uTjzbqT0fffQRBw8exMbGxtKhF4nQ0FCqVq2KXq8nJiYGZ2dnS4dULOXr81sK2Ntvvy2dOnW64+Mmk0k8PT3lk08+Md+XlpYmzs7OMm/ePBERiYuLExsbG1mxYoW5TWhoqOj1etmwYYOIiJw6dUoA2bdvn7mNv7+/AHLmzJk8xRofHy+AxMfH5+salTs7evSoADJr1ixxc3KQnj51BZBePvXk86f7Si+fegJI78b15Pzx/8TGxka++OILS4ddaAICAqRbzbZy5a2dEvz2Lgl8c5u09Gok7dq0lQ0bNojJZLJ0iEUmICBAABk5cqQ8++yz0r17d/nwww9l8uTJMmPGDMnIyCi8J7+4XeQbX5HJ5bWfBY+IRJwqvOe7i+zXYc7cKvLxJ57StKmDANK2besy8Tfx559/CiBLliwRqyrVxXHEaAHE8fnR4rHtiDg+r912en60rAs4IoCsXLnS0mEXmaVLlwogrVq1snQoxVp+Pr8L/KvTX3/9RatWrXjqqadwd3enRYsWzJ8/3/x4YGAg4eHh9Ox5o9DP1tYWPz8/cyFiQEAAmZmZOdpUrlyZxo0bm9v4+/vj7OxM27Y3ll9v164dzs7O5ja3Sk9PJyEhIcePUrCioqJ47LHH6NKlC61rVqNHo7r08qnHxpPneHvVejaePEcvn3o81LAO/n+tpkuXLuzZs8fSYReq7YH7uRSj9VpY661ZM2wOFRMc6N27Nx3atWfLli0WjrBo6XQ66tSpQ4cOHdDpdKSlpTF58mQ6depU8K9FQhisfB5+eRSiz4OjOzw+H0asBfeGBftc+aQDWrd24IsvPVj0c1WSkk7Su3dv2rdvW6r/JlJTUxkxYgQNGzbEvs+jOA4biePzo0leOJeIXm1IXjgXx+dH4zjkRdbEplC3bt1S/x5xM7XtQ8Er8ETn0qVLzJ07l7p167Jx40ZeeeUVXnvtNX755RcAwsPDAfDw8MhxnIeHh/mx8PBwDAbDbcMZt7Zxd3e/7fnd3d3NbW718ccfm+t5nJ2dqVZNrY1R0B5++GHWrFmDtbU1ro5aQWcPn7pY6fVkmUxY6fX08KkLIuzbtYNy5cqZF4YrzVIyb1yjXqdn7oApvNTqafYd2M/ENyZaMDLLyR6msbW1pVWrVhw4cIA33nijYE6eZQT/72B2azi5GnR6aPMyjDsITZ8uVqty63Q6qlY18PX/PHjiCWf27z/IhAmvWzqsQvPMM8+wcOFCAKw8KwPgNGwU2NhAZibY2OA0bBQCbDxyDCcnpzLxHpFN1ecUvAJPdEwmEy1btmTmzJm0aNGCl19+mZEjRzJ37twc7W4dixaRe45P39omt/Z3O8+7775LfHy8+Se7NkApWGfOnCE2NpaYZO3NafPJ8+YkJ8tkYvPJ86DT0a5LVwIDA3NNWEsrESEoNpSBy8by46HfaNemLV989YWlw7IIEeHSpUssXLiQffv20aZNG7766qsHP/GVffCDH2z8P8hIhCqttM03H/kM7Cs8+PkLiKOj9vYrIpw+ncbrr0Xw++/xtG3bmi+//J+Foytchw4dIj09naxwbWHGpMU/mJMcMjNJWvwDOqBH8yYEBweXmfeI0NBQzp8/r9bPKWAFvmCgl5fXbcu1N2zYkN9//x0AT09tj5jw8PAcG/RFRkaae3k8PT3JyMggNjY2R69OZGQkHa7vZuvp6WlePfVm165du623KJutrS22trYPcHXKvSQlJeHr68uIESM4GBhMlsnEppPn6eVTjx4+ddl88jwbT55DByz7+nu6DnuRlJQUS4dd6ATYcekAX/kv5HDISdq1acuGHzeUmQLUm4kIFy5cYNeuXQQHB9OmTRvmz5//4K9FchRs/hCOLtVu27tA94+gxTAorALn+1TBxQp3D+3td+uWZD75JJK2bVuzYUPpL0oOCgqidevWTJs2jdT1fyJGI8mLtOEqp2GjSFr8A8kL56ID3p/9FW/v2YO9feFO9y8ustfPadGiBRUqVLBsMKVIgSc6HTt25OzZsznuO3fuHN7e3gDUrFkTT09PNm/eTIsWLQDIyMhg586dfPrpp4C2iZmNjQ2bN2/m6aefBiAsLIwTJ07w2WefAdC+fXvi4+M5cOAAbdq0AWD//v3Ex8ebkyGl6Dk5OTF48GCWLVtGXFIK58Kj6OlTl4ca1kaAno3roUOoGRKGzf+9T7WFC4vVMEJhGfPXFC7HhpbpBCfb77//bp51VSAJjikLAhbB1qmQFqfd1/I5eHgKOFYsgIgLlogwYYIb1tY6Ll5MZ9eu6mzY8EuZ+ZuoUaMGPXr04IcffiArNJiMg3txGv4K5Qe/gIgJ52Gj0AEPOdninJaMa716lg65yKhhq0JS0JXQBw4cEGtra5kxY4acP39eli5dKg4ODrJkyRJzm08++UScnZ1l9erVcvz4cRk8eLB4eXlJQkKCuc0rr7wiVatWlS1btsjhw4floYcekmbNmonRaDS36d27tzRt2lT8/f3F399fmjRpIv369ctzrGrWVeGIiIiQ6tWri421tdSvV0/cnBylT5P68tvMybJr6UI5P3OGZGk7C0nmpEmWDrdQBQcHS7XKVcvkLKtbBQcHS+XKlaVNmzYF91qEHhb5vuuN2VRzO4pc2f/g5y1Ex0/Mky1ba8mGjbVkw4Yfy+TfxNmzZ6VChQpibWcnD9evL5cqV5NpI1+Tl4+ck+kXQmX9kf+kRYsW0qFDhzL1+tSrp81K/fvvvy0dSrGXn8/vAk90RET+/vtvady4sdja2kqDBg3khx9+yPG4yWSSyZMni6enp9ja2kqXLl3k+PHjOdqkpqbKuHHjxNXVVezt7aVfv35y5cqVHG2io6Pl2WeflXLlykm5cuXk2WefldjY2DzHqRKdwhMcHCzNmjWTZs2aCSA1a9aUiRMnSu/evUWn08kbjo4i15MdmTnT0uEWqrS0tDL1Zn03BfZapMSIrJ0gMtlZS3BmVhXZN0/EmPng5y5EKSmXZfuOJrJlay0JDPre0uFY1PHjx6VGjRoyv0sXEZCUpk1l4sSJ0qlTJwHE29tb/vvvP0uHWWRCQ0MFEJ1Ol6/PsbIqP5/fBb5gYEmiFgwsXCaTiddee43vvvuOgQMHcvLkSTw8PHj++ed55plncJgzB958U2s8ezaMHWvZgJXiTwT+Ww6bPoCUKO2+Jk9Dz+lQLvfavOJCJIuAw0OIjz9EBefWtGy5FJ2ubG/4mpmZien557FdupSLTzzBI8eP4+3tzahRo3j00UfLzCKBAMuXL2fIkCG0bNkyx04CSu7y8/mtdi9XCo1er2f//v0APPHEE6xevTpng0mTICEBpk2DceOgXDl47jkLRKqUCBEnYd1EuOKv3XarD30/h5pdLBtXHl258iPx8YewsnKkUaNZZT7JAbRExl/7/1n7hRc4+8gjFo7IclR9TuFRiY5SaOLj4zl8+DBwl8WvPvoI4uPhm2/g+efByQkKe68jpWRJT4Qdn8C+uSBZYOMAfm9DuzFgbbB0dHmSmHiai5e0qfP16n6Avb1awwuA4GC4dEmbFVfGp1OrRKfwqERHKTS7d+/GZDJRp04dql7flfg2Oh189RUkJsLChTBoEPz9N/TqVbTBKsWPCJxco62Hkxim3dewP/T6GCqUnETBZErn1KmJiGTi5tYdL68nLR1S8XF9OjW+vlCGywfCwsI4d+4cOp2Ozp07WzqcUkclOkqhyfM3FL0e5s+HpCRYuRIGDoRNm8r8N7wyLeoC/DMJLm3XbrvUhEdmQd0elo3rPly89BVJyWexsalIwwYzysQU8jy7/h5BGe/FUOvnFC6V6CiFJl9dsVZWsGSJluysXw99+8L27dCyZaHGqBQzGSnw7xew9xvIygArW+g8ATqOBxs7S0eXb7GxB7hy5UcAGjaYicHgZuGIihmV6ABqf6vCVryWC1VKjTzV59zKYIBVq6BLF61IuWdPOHWqEKNUipWz62FOW/j3cy3JqdMDxu6Dru+UyCTHaEzk1Ok3AcHL6ykqVepu6ZCKl5AQuHhR1eeg6nMKm0p0lEKxZ88eTCYTtWvXvnN9Tm4cHLQanVatIDoaevSAwMDCC1SxvNjLsGwQLB8EcVegfFV4Zgk8uxJca1k6uvt27vx00tJCsLOrSr2671k6nOInuz6nZcsyX59z9uxZVZ9TiFSioxSKB/qGUr48bNgAPj5w9So8/DCEhhZofEoxYEyHXbPgu7Zwbj3orbUhqnEHtKLjElzLcu3aZsLCVgE6GjX6HGvrcpYOqfhRw1bAjfqc5s2b59jbUSk4qkZHKRQP3BVbsSJs3gydO2vd2z16wK5d4KZqHEqFi9u1YuPoC9rtGp3hkc/BvYFl4yoAGRlRnD7zfwB4Vx+JS4XWFo6omFKJDnAj0VHDVoVH9egoBS4hIcG8sucDFdd5ecGWLVClCpw+rU05j48voCgVi0i4CitHwOLHtCTH0R0e/xGG/10qkhwR4fSZ98jMjMHJqQG1ao23dEjFU0gIXLig6nNQ9TlFQSU6SoHLXj+ndu3aVKv2gOud1KihJTuVKsHhw9CvH6SkFEicShHKyoS9s2F2a21tHJ0e2r4Crx6Cpk+V6GGqm4WFrSIqags6nYFGjb5Ar7e1dEjF0831Oc7Olo3FgsLDwzlz5oyqzylkKtFRClyBf0Np0EBbV8fZGXbv1tbZSU8vmHMrhe+yP3zvB5veg4wkqNoGRu2EPp+CXen5kEtNvcK589MAqF1rPOWcSn4PVaHJHrYq49Ops4etmjVrpupzCpFKdJQCVyhdsc2bwz//aLOyNm2CIUPAaCy48ysFL+karBkNC3tD5Emwd4UB38ILG8GrqaWjK1AiWZw89SZZWclUcG5N9eovWTqk4i27R6eMD9eoYauioRIdpUAVWH1Objp0gD//1NbbWb0aXnwRTKaCfQ7lwZmy4OCPMNsX/lum3ddyOLwaAC2f0+oyShm1YWc+hIbC+fOqPgeV6BQVNetKKVAFWp+Tm+7d4bff4Ikn4JdftKno33xTamo8SrzQAG2H8atHtNueTaHvl1Ct9M48Skw6w8VLXwNqw848ye7NadECyvB2BxEREao+p4iUvq9WikUVyTeURx+FRYu05Gb2bHj//cJ7LiVvUmNh7Rsw/2EtybF1hj6zYNSOUp3kmEzpnDo5AZEMtWFnXqlp5UDO+hxXV1cLR1O6qR4dpUAVWVfs0KHavlijR8PMmVrPzttvF+5zKrczmeC/5bD5Q0iJ0u5r+gz0mAblPCwbWxG4sWGnq9qwM69UogOo/a2Kkkp0lAJTqPU5uXnlFUhMhLfegnfegXLlYMyYwn9eRRN+QhumCt6n3a7UQFv0r2bZ6IZXG3beh6tXtfocnU7V56j6nCKjEh2lwBR6fU5u3nxTW0RwxgwYO1ZLdoYNK5rnLqvSEmDHJ7B/HkgW2DhC17eh3RiwsrF0dEXi9g07e1g6pJJB1ecAWn3O6dOn0el0dOnSxdLhlHoq0VEKTPaYc5F3xU6bpu12/u238Pzz4OSkrbWjFCwROLkaNvwfJIVr9zUcAL0/Bud8bNxaCpw7P0Nt2Hk/1LAVcOO9smnTpqo+pwioREcpMBbritXp4OuvtWGsRYtg0CBYu1bbH0spGFHntb2pLu3QbrvWgkdmQZ3uFg3LErQNO1eiNuy8DyrRAdT+VkVNJTpKgSjy+pxb6fUwf76W7Pz+Ozz2mLawYMeORR9LaZKRAv9+Dnu+AVMmWNlC54nQ8XWwsbN0dEXu5g07q1d/SW3YmR9Xr8K5c9oXkzI+nVoVIhctlegoBWLPnj1kZWVRq1YtqlevbpkgrK1h6VJIToYNG+CRR2D7dm0/HSX/zvwD69+G+Cva7bo9tW0bXGtZNi4LybFhp2N9atd6w9IhlSyqPgeAyMhITp06BaDqc4qIWkdHKRDFZgaBra3Wo9O5s1a306uXtvO5knexQbDsGVgxWEtynKvBM0thyG9lNsmBWzbs9PlSbdiZX9mJThnvxbi5PqdixYoWjqZsUImOUiCKTaID2n5Ya9eCry9ERWm1OoGBlo6q+DOmw85Z8F1bOLcB9DbQ6Q0Yux8a9ivTq0+npgarDTsflKrPAYrZe2UZoYaulAdm8fqc3JQvrw1f+fnBqVPa1hH//guVK1s6suLpwlb4502IuajdrtkFHvkCKtWzbFzFgLZh5yS1YeeDCAuDs2dVfQ4q0bEElegoD6xY1Ofkxs0NNm/W3lgvXdJ6dnbu1O5XNPGhsPH/4NQf2m0nD+g1Exo/UaZ7cG6mNuwsANnDVs2bg4uLRUOxJFWfYxlq6Ep5YMX6G0rlyrBlC1SpovXs9O6t1e6UdVmZsPdbmN1aS3J0emg7GsYdhCZPqiTnOrVhZwFRw1YA7Nq1C4AmTZqo+pwipHp0lAdWrBMdgJo1tZ6dLl0gIAD69dOGtRwcLB2ZZVzeq23dEKl9s6RaW+j7BXg2sWxcxYzasLMAZffoFNf3iCJS7N8rSynVo6M8kGJZn5Obhg21dXWcnbVanSeegIwMS0dVtJIiYc0rsLCPluTYu8KA2fD8BpXk5OLSpa/Vhp0FITwczpxR9TmoRMdSVKKjPJBiW5+TmxYtYN06rSdnwwYYMgSMRktHVfhMWXBgPnzbSttpHB34joBXA6DlMG2xRSWH2NgDXL4yH1Abdj6w7N6cZs3KfH3OyZMnAVWfU9TUO5zyQErcN5SOHeGPP8Bg0NbbGTkSTCZLR1V4QgJg/kPa9g3p8eDVDF7aCv3/Bw5qj53c5Nyw80m1YeeDUvU5QM76HDc1IaJIqURHeSAlcs+WHj1gxQqwstL2xho/Xtuw8jqTyUR8fDxpaWkWC/GBpcTA3+Phx4ch7CjYOsMjn8PI7VDV19LRFWs5N+x839LhlHwq0QFK6HtlKaESHeW+JSYmcujQIaCY1+fkZuBALckBbdfzDz80P/TKK69QoUIF7O3tadKkCXPnziUxMdEyceaXyQRHlsDsVhCwEBBoNhhePQRtRoJeTY2+G7VhZwGLiFD1Odep/a0sR826Uu5bdn1OzZo1i399Tm6GDtWmmo8dC9Onc+TCBVosX867777Lww8/TGpqKn/++Sfjxo0jKCiITz/91NIR3134cW02VfB+7XalhtpsqhpqY9O8UBt2FoKb63Ncy+5Q6bVr1zhx4gSg6nMsQSU6yn0rcfU5uRkzhp1r1+K3fj0tVqwAPz9qvvIKNWvWBGDEiBEEBQVRuTivqJyWADs+hv3fg2SBjSN0fQfajQYrG0tHVyKoDTsLSfawVRnvxciuz2ncuDGVKlWycDRlj0p0lPtWGhKd6Ohoem3bxtq2bem+fz+MGUO0wcCR6tWJi4ujQoUKtGjRAoPBwNKlSwkLC2PSpEmWDlsjAid+h43vQVK4dl+jx7SVjZ2rWDS0kubGhp02NGr0hdqws6Co+hygdLxXlmQq0VHuS4muz7nJwoULERGa/fUXTJvGyytXcv6XX/Dr2tW8OvDMmTOpW7culSpV4ptvvuGVV17BycnJsoFfOwf/TIRA7ZsirrXhkVlQ52HLxlUC5dyw8w3KlWto4YhKiYgIOH1a+3dUxodrVKJjWaoYWbkvN9fneHt7Wzqc+3bw4EGefvppKrm7E/3hh5xv2JDtO3eyY+dORIQdO3awfft2zp8/zxNPPEFiYqL5TcsiMpJhy0cwt4OW5FjbQbf3YYy/SnLug0gWp069qTbsLAzZ9TlNm5bp+pyoqChVn2NhqkdHuS+l5RvKr7/+qv1y+jRHfv0Vv86dEbTr+/fff8nKyqJr1674+fkRHq4NDyVYYq8sETizDja8A/HB2n11e0GfT8G1ZtHHU0pcufITcfEHc92w8+rVq1y5cgUrKyvq1KmDSxle7O6+qG0fgBv1OT4+Pqo+x0JUj45yX0pFonP6NEydSpaPDzRqRNzx44A2FGdlZUVWVhZWVlbmobmIiAgAypUr4inHMYGw7Bn49VktyXGuDoOWwZBfVZLzALQNO78CoF7d980bdpquLyC5cuVK2rdvT5s2bahcuTLPP/88R48etVS4JY+qzwFKyXtlCad6dJR8K9H1OadOwcqV2s/15ditALGxoYKbG+j17Ny505zkZGVlsXPnTrp27YqbmxuffPJJ0XU/Z6bB3m/g3y/AmAZ6G+j4GnSeBIYyuiFpAcm5YefDeHk9hYgwceJEEhMT+eGHH3jppZd46KGHMBqNbNy4kXnz5uHo6Mjs2bMtHX7xFxmp/VsDtX6OSnQsTiU6Sr6VuPqckydvJDfZb74ANjak+/kxZvt2ar76KqP/7/+Y+dRT7NixwzxctXPnTnbs2IFOp2PcuHH069evaGK+sAX+eRNiLmm3a/ppKxtXqlc0z1/K3bxhZ4MGM9HpdHz88cd89dVXzJ49G51OR2aSjqQLDiRGp+JX/yle3D0aF09HS4deMtxcn1OxomVjsaCoqCiOX+8pVvU5lqMSHSXfSsQ3lLskN/TsCU89BY8+im2FClT/6CM+mDIFx6pVqVu3LnCjpyr7v0lJSSxdupTXXnutcOOOD4WN78KpP7XbTp7QawY0fsI8C0x5MLFxB3Ns2GlrcCMxMZGZM2fyxhtvMHbsWMa+OJErx2Po02oYCKCDmR9Pp3oTV1p2aMS6detYvXq1ZS+kOFPDVgD8+++/gFaf4+7ubuFoyi6V6Cj5ViwTHZGcyc3p0zceMxhuJDcDBkCFCjkO/fDDD0lOTmbChAnMnj2bmTNnsnnzZsLCwggJCTEnOz4+PoUXf1Ym7JsLOz6BzGTQWUHbV7SF/+zKF97zljFGYyKnTk3i1g07lyxZQmpqKhMmTCAuIoUrx2NYe3ARItDHdxjrDy1m3aFF9GMEnbpUYM2aNRw/fpwmTZpY9oKKK1WIDBTT98oySCU6Sr4Uq/qc7OTmt9+05ObMmRuPGQzQq9eN5MbZ+Y6n0el0fPbZZzz66KM0aNCAihUrsn//fr7++mtq1arF888/j9Fo5NSpU3Tp0gUbmwJebThoj7Z1w7XryVm1dtrWDZ6NC/Z5lDtu2JmYmMjLL79M1apV8V99gT6+wxCBdYcWsfHwUoymTPq2GkGfVsOo7lQVg8HAjh07VKKTm8hIc/2bWj9nB1AM3ivLOJXoKPmyd+9ey9bniMCJEzd6bu4zuclNx4439oSaMmUK77//Pi4uLqSnp/Pdd98RHR3Nzp076d69e8FcS1IkbPoAjq3QbjtUhB7TtE049WpCZEHLsWFnw1k3NuxMTOQtX19IT4fevUnUtYdqHejjO8yc5Fjrbejjqw1jJcdm4OjoSEpKikWvp9i6Pp26rNfnREdHc+zYMUAlOpamEh0lXyzyDSU7ucnuuTl79sZjBgP07q0lN/375zu5uRPnm85jb29P3759+fXXX9mzZw8+Pj54eXnd/8lNWXDwJ9g2HdLjAR20eh4e+gAcyu7CaoXJvGGnCLWsn8Rl/QXY+wvs3Qv//aft+n5duTZVoRqsD1hsTnKMpkzWByzmkdbDsHaE+Ph4KpbhD/G7UvtbATfWz2nUqJGqz7Ewlego+VJkY84icPz4jZ6bm5MbW9ucyU35wq9hadiwIY0aNeLUqVP8+eefjBw5Eisrq3sfeKuQQ7BuAoT9p932ag79voQqvgUar3JdRgZy5AjXVo2n/oHTuJw2Yrj22W3N0jw8WB0RQYdJk2jY9xlmvvUd6w4t0oarfIexPkCr0dHpYMjk2WzdupXGjdXQYq5UITKg6nOKE5XoKHmWlJTEwYMHgULq0RGBY8duJDfnzt14zALJza369OnDpUuXCA8Px9/fn06dOuX94JQY2PoRBPwMCNg5w8Mfgu/zoL+PhEnJXVQU+PtrPTV79sDBg+jS0sixxam1NbRsCR06mH9sPD15r04d6vx/e+cd3mTV/vFP0r1I96JQKKtA2XvI3qWoCKJAEUUQXlnCT0RRQEDAjYOhgOILCihDWTJfZEhZLcio7FFGS0v3bpOc3x9pQkvZtE2TnM91PRdNcvI893NI8nyfc773uY8f5885c6hcz53eDDV4dXo2CUehAN9azji528qL1/1ISJD+nAL2FBiy5WfF+EihI3lk9OvnVKlShSpVqpTMTvXiRj8tdf78ndfs7KBnT5246d3bKOKmMC4uLnTv3p0//viDv/76i+DgYDw9PR/8Jq0Wjq+AHdMgO0n3XIOB0HUGOMvl4J8KrVbn0Tpw4I6wKSyOC8ivYEVKHTus23XDLfQtaNoUHIsuuGgFLF68mJ49e/LCCy+waNEiHKxUnNpzg3/+dw0ETJz6H0a9PYTXX3+dn376qYxO0sTQ+3Pq1YOHfTfMmKSkJOnPKUdIoSN5ZEpsKFYInS9CP3JTjsXN3TRs2JCTJ09y6dIlNm7cyCuvvILyfsbh2BO6bKrrh3WPvevosqkCW5ddwOZEZiYcPnxH2EREQHJy8Xa1a0Pr1ojWrTitWsst1zOoXJvRpPEvurT9+9ClSxf++OMPBgwYwMKFC5kxYwY2lZPIt03BJteVD9+di0aj4f3337/vPiweOW0F6Pw5Qghq164t/TnlACl0JA9Fo9GQnp7O7t27gScUOkLA8eN3xM2FC3des7cvKm7KupbUY6BQKAgLC2PBggVcvXqVyMhImjVrVrRRThrsng2HvwOhBVtn3Xo4LUaCVQmnphsBIQRZWVlotVqcnZ1RlNZChteu3RmpOXBA9/nRaIq2cXCAFi3uTEO1amWolB1z9XtuXTyLlZUzde8q2Hk/evXqxbVr1xBCAHDs2DF2HzlEt/rhDOwznKHTO5f88gJmgFqtJiMjA9Xu3SjA4oWO9OeUL6TQkTyUzp07G+abQZdxkpeXh62t7YPfqBc3v/4Ka9YUFze9eunETWhouRY3d+Pm5kbnzp3ZunUrO3bsoGbNmrosLSHg1FrY9h5k6AqAUvd56D4bKvgbN+gSZMOGDTz33HMAeHl58dprr/HGG29QtepTFBjNz9eN8hUWNtevF28XEABt2twRNg0a6Fa7voviBTsrP3IoroUWlBw5ciQv9gln5YxDaFLtQci0/7sRQlCzZk3SL18moeC5bdnZdCmoF2eJSKFTvlAI/a2LBZKWloZKpSI1NZUK5WyKxJjk5+czevRowsPDadu2LSdOnGD16tXMnj0be3t7cnJyWLJkCcOGDSv+ZiHg2LE7IzcXL955rbC46d0bnJ3L7qRKGK1Wyw8//MD169epWbMmL3dpjGLL/8EV3ZLvuFeD0M+gWifjBlpC7Nq1i7Vr1zJ//nzUajW//fYbSqWSgwcPsmzZMgIDA4mKinr0C1tS0h3T8IEDuimpu9elsbKChg11gkYvbipVeuiutdpcjhztS0bGGTw9O1O/3ndPNeokhOC/Uw6QkZRL6Jv1qVLPcr0nejIyMhgxYgRTp04lODiYiIgIWLuWVp9/zgV7e2rk5LB9+3a6du1q7FDLnKSkJDw9PRFCEBcXh4+Pj7FDMkse5/otR3QkxRg1ahQ//fQT7dq1o02bNtSvX5+VK1cC8NJLL/Hee+9RvXr1O28QAqKi7oibS5fuvObgUHTkxgTFTW5uLra2tkUulkqlkj59+vDDom+ofG4p4vwYFEIN1vbQ7v+g9ViwtjNi1CXH4cOHCQsLo02bNmRnZ+Po6MjAgQMB3efho48+IjU19f4iRwidSVg/UnPgQNESHXpcXYtkQtG8OTg9fhHNS5fmkZFxpkjBzqdBoVAQWNeD0/tuEnMqEb+aLsU+D5aEWq2mX79+HDhwgFdffZVatWrRqlUrKPiNqP7665wbO9ZQN87S2Ldvn8GfI0VO+aDUx2HnzJmDQqFg/PjxhueEEEyfPh1/f38cHBzo0KEDp/UpiQXk5uYyZswYPD09cXJyok+fPly/ayg7OTmZ8PBwVCoVKpWK8PBwUlJSSvuUzJqoqCiWLl3KzJkzmfj2O7Ro2Yr/rt/KhisKPMPeJr9OL6zd/FEAy996i9O9e0P16rpMlo8/1okcBwfo1w9Wr9YtB79mDQwYYJIi59q1a1SvGkjrli3Ytm2bwbuBEHgnHma8zUrachSlUKOu1hXePATt3jYbkQMwadIkqlatysnTJ+nQqQMrNq9gXuQ8Ju2ZxLzIedzW3Mbf35+oqChef/11tBkZuuybuXN1SwF4eUFwMAwbBkuX3hE5tWrBq6/C4sW6lOTERNi8GaZMgY4dn0jkFC3Y+RF2tiUz+lK5rm5xwKiIaKpVqUKrFnd9HiyITZs2sW3bNhYsWMDQV16lVctWbFy7jQOXnNneeQoRFXvgVaEiarWaKVOmsH37dmOHXKbIsg/lj1Id0Tly5Ajff/899evXL/L8J598whdffMGyZcuoWbMms2bNomvXrpw9exaXAq/G+PHj2bhxI6tWrcLDw4OJEyfSu3dvIiMjDXeOAwcO5Pr162zduhWAESNGEB4ezsaNG0vztMyahQsXEhAQQKdOnXj33XdJUVZg7OfLUbUegCMQkaik8fNv0OX6cX67UkicOjjoRmz0IzdPcJEqjyQkJHA99hZ2uYn06NGDls2b8fF7o3kmYyOK89uxB9KUrmzWtsPW8TlecKti7JBLlNOnT7Nnzx7mzJnDu+++S7pzOhOWTMCnjw8KpQKlQsncj+bQQVGTL2wqMmL1ali2rLhp2N4emjW7MwXVqlWJpx+r1RlER7/NnYKd3Ups3wHBbiitFMTduMWNuDiskpPp0aMHLZo148OZM+nWrZvFjPAsWLCAli1bUqdOHW7G3sBe68qiOb8Q2niwrsFVK2aHvUnleu5Env6bo0eP0q1byf1flHekP6ccIkqJ9PR0UaNGDbFjxw7Rvn17MW7cOCGEEFqtVvj6+oq5c+ca2ubk5AiVSiUWLVokhBAiJSVF2NjYiFWrVhna3LhxQyiVSrF161YhhBDR0dECEAcPHjS0iYiIEIA4c+bMI8WYmpoqAJGamvq0p2s2NG3aVEyfPl1ERkYKazd/oWo7SABC1XaQCHxnk+Gxa5uB4rx3oFgN4sa8eUJkZBg79FIhMjJSAOLocCexfbCj+D7MQWRPcRFiWgWhme4mtDtniOuXz4np06eLadOmibNnzxo75BLlu+++E1WrVhUHDx4Utj62wut5LwEI7+e9RciyEOH9vLcAhM9zXuKqt60QuokqIfz8hOjXT4gvvhDi0CEhcnNLPdbo6Mli564gsf/vdiI/P63E9//7l1Hinb4LBSB+C6wivg8IEP3d3MRX/hVFm6ZNxdatW4VWqy3x45YncnNzReXKlcWSJUtEZGSk8KpQUYQ2HSoAEdp0qPj2jV2Gx72bDRXzv1wsAJGdnW3s0MuExMREoVAoBCBiY2ONHY5Z8zjX71Ib0XnzzTcJDQ2lS5cuzJo1y/D85cuXiYuLK6Lw7ezsaN++PQcOHOCNN94gMjKS/Pz8Im38/f0JCQnhwIEDdO/enYiICFQqFS1atDC0admyJSqVigMHDlCrVq1iMeXm5pKbm2t4nJaWVtKnbfLoVz6OiorCuV5XKrTsB0Dq/p9JjVgNGjWqtoNwbfUiU7v3ZOXUcI60aYO/mYzg3A+FArpWu/N1OXxDQ/j6DNy3bGTmR61o2bIlERERbNq0iTfffBM7O/OYuhoxYgQjRowgKioKt2fc8Az1RIGC+PXxJGxMQKgF3s9749Pbi2W1a6FYf5vbNWvy1e+/6zqtjEhI2MnN2F8pVrCzBKlc14OIAq+5FdDWyZm2Trrp2MTr1w0jPLNmzy65wq/lDFtbW65evQrofiNaBfega8OXgeKV3rs1GkjmtZuArjq8vb290eIuK/T+nODgYHx9fY0djqSAUvHorFq1iqioKObMmVPstbi4OIBiJi0fHx/Da3Fxcdja2uLm5vbANvdaiMnb29vQ5m7mzJlj8POoVCoqPUIGhyWSnp4OgLVK17+ubV4GK2vQqMHKGtc2L6MF/o7WmY5dTCg1vKRo5q8ktIY1Bw8f4f/eGkvHjh1xc3MjLS2NnTt3Gju8EiU7Oxu1Wo2Npy6N2/tZbxTWCoRaoLBW4P2sNxrgV5HML0Cev3+Zihxdwc53AahceRhubs1L5TiBdT1ACHq4uFD9LiE7oIKKV9zcOHTkCBPHjSuV45cn9L8R7i66i3nPJuGG4qeFK71fOXcDAGcT9Oc9CXLaqnxS4kLn2rVrjBs3jhUrVjxQwd89ny2EeOgc991t7tX+Qft59913SU1NNWzXrl174PEskU8//ZQGDRqg0WhQp8YDkPL3SoPIQaMm5e+VKBQKOjYLYc6cORaVXSGEYNsFNa1/zOXLg3m0bN6Mz778GltbW8LCwgDdqJj+rtfUuXXrFhUrVmTv3r3k384HIP6PeIPIEWpB/B/xKBQKOjftzPTp0xk8eHCZxSeE4N8zU8jPT8LJqSZBVSeU2rGcNEl0u7mRL/wrYl3wGyOEYH9mBgNvXOen5GRaNGvG5199VWoxlAfGjBlDr169AEhK191U3qvSOwpo0Kw28+bNw8HBwZghlxmyvlX5pMSnriIjI4mPj6dJkzvVmDUaDXv37uXbb7/lbEEV6ri4OPz8/Axt4uPjDaM8vr6+5OXlkZycXGRUJz4+ntatWxva3Lp1q9jxExIS7pvSZ2dnZzZTCqVFhw4dmDRpEn/++ScZJ3cgtGpS9/+sm65q8zIpf68kdf/PKBQwfd13VPHsa+yQywQhYNsFNdP3qjl4TSdwti4uakINCgqiUaNGHDt2jA0bNjBy5EiTX0XXx8eH2rVrs2zZMpJvJ6PVaElYn4D38954P+tN/B/xxK+PR4GCcUvHEeQWVKbxxcau5fbtnSgUNtSt8wVWViX//Rb5+ST99BMJ387HLyeHPK2WFI2G83m5fJuczD+ZmbRo1oytFmJKbt++Pd9++y1Hjx4l4sxWNFrNfSu9L585H1dvx4fv1AxITk7m+PHjgMy4Km+U+IhO586dOXnyJMePHzdsTZs2ZdCgQRw/fpygoCB8fX3ZsWOH4T15eXns2bPHIGKaNGmCjY1NkTaxsbGcOnXK0KZVq1akpqZy+PBhQ5tDhw6RmppqaCN5fJo1a8agQYOYNWsW6uSb+F84jGubgbi3ehEF4NF2IK5tB8G1fzhxYJexwy0zBqzNpcfPWeDXgK1bt3Lg4CG6d+9e7KLWrVs3nJ2dSUxMZK++wKGJ88knn3D27FnybuWRcTIDr+e88O3thVIj8HvWB5/nfXC97cqbA99Eq9WWWVzZ2dc5d34mAEFBb+HiUrvkj3H8OJf79Sf+s88ROTlkVanJc1euEH79GsOvX8e+Th22bt1KxKF7fx7MkWeffZYOHTowceJEEtJuwJUD9G4yhJ6NBgKCXs3CCW06lDOxRzl7+aSxwy0z9P6cWrVqSX9OOaPEhY6LiwshISFFNicnJzw8PAgJCTGsqTN79mzWr1/PqVOnGDp0aJFFyFQqFcOGDWPixIns2rWLY8eOMXjwYOrVq2cw+dWuXZsePXowfPhwDh48yMGDBxk+fDi9e/e+pxFZ8ugsXbqU7t27g9KKz+Ivcez0brreiiRElYdbfCSZp3dTyUVRZNTOXPH29qaSvy9e1Rs9UODocXBwIDQ0FID9+/cTGxtbluGWCm3atGHJkiUorBXYJtry5etfMuRfZ7ofSaXlvy4ozyi5cOAC/fv3v3+B0xJGCA3R0f+HRpOBStWUwMqvl+j+NenpxM2YwZWXB5J79ixWrq74zZmD6zfzSLNxxlpVlTUrf7cogaPHxsaG9evXExISgpXSms8zYlh+fieVXG6gdM8kOn4/h85tJ6C6p0X9Fkt/TjmmFLO/DBROLxdCl2I+bdo04evrK+zs7ES7du3EyZMni7wnOztbjB49Wri7uwsHBwfRu3dvERMTU6RNYmKiGDRokHBxcREuLi5i0KBBIjk5+ZHjkunl90ej0YhfV60SKQXpwsMbNxaAaNSokViyZInIzMw0dohlRk5OzmOnDa9evVpMmzZNLFq0SKjV6lKKrGw5d+6cOH78uBBCiJvt2wsBYpKdnRg7dqz4999/yzSWK1e+Ezt3BYndf9UTWVlXS2y/Wq1WpP65VZxr+4yIrhUsomsFixvvTBb5SUmGNr9+clB8M2KnOL4z5gF7Mn/y8vLEnytWGJYUeKZWLQGI9u3bi9WrV4u8vDxjh1imNGrUSABi5cqVxg7FInic67esdSVrXd2XiPnzaTV6NGkKBflxcVjZ2qJSqSzq7vVJSU9PZ/78+eTk5NClSxfatm1r7JBKFPWwYVj/8AOaadOwmj69TI+dnnGGI0eeR4g8goNnU9F/QInsN//GDeJmziKj4M7cNjAQ3w+n49SyZZF2x3bEcGDtBSrXcSdsbMMSObbJsn499O0LdeqQ8Ndf2NvbW2QWZnJyMh4eHgghuHnzZhH/qaR0eJzrtyzFK7kvSevXA3CpYkU8vL1xdXWVIucRcXFx0U3/oRvSTkxMNHJEJYu1uzsAVpmZZXpcrTaX6OiJCJGHp2dn/P1efOp9CrWaxB+XcbF3mE7k2Njg+Z9RVN3wRzGRAwVp5sCNcynk52mKvW5RFIhCOnTAy8vLIkUO6KapRYE/R4qc8ocUOpL7UiEqCoB8ae5+Iho2bEhQUBBqtZoNGzaUqVG31NHfQaWmlulhL136qkQLdmafPMXlF18k/uOPEdnZODRtQtDv6/EaOxblfTI03fwccXa3Q6PWcuNs8lMd3+QpSKfGwn0psr5V+UYKHck9yUhNpV6y7ke84qBBRo7GNFEoFISFhWFjY8PVq1eJKhCOZoFe6JTh6uK6gp3fA09fsFOTkUncR7O5MmAAudH/olSp8Js1k8D//he7atUe+F59NXOAmFPmNVL3WCQlwYkTur8t/AIvjcjlGyl0JPfk5IoVuAJpCgX+BYuDSR4fNzc3OnfuDMD27dtJLeMRkFKjjIVOkYKdvi88VcHO9J07uRQaSvLy5aDVUiEsjGpbNuParx+KR8wa01czv3o60SIrmAO6CvVCQJ06cI9V6i2FlJQUjh07BsgRnfKKFDqSe1LYn4N1qRa5N3uaN29OQEAAeXl5bN682TwujCqV7t8yEjrnz39ETs417O0rUrPmB0+0j/y4OK6NHs310WNQ37qFTaVKVFqyhIqffoK1h8dj7UtfzTztdg6p8dlPFI/Jo/fnWPjFXb9+Ts2aNfH39zd2OJJ7IIWO5J5If07JoVQq6dOnD0qlknPnznHq1Cljh/T0lOGIztMW7BQaDUn/Xc6lXqFk7NwF1tZ4jBhB0MYNOLdt80Qx2dpb41fdFYCrljp9VciIbMnIsg/lHyl0JMXITEsjRO/PKVjEUfJ0eHt7065dOwD+/PNPMss4W6nEKSMzsq5g53uAvmBni8d6f050NFcGvMSt2bPRZmXh0KgRVdetxXvCWyifspq2wadz2gKFjvTnGJD+nPKPFDqSYpz8+WfcgHSFAv+CVX4lT0/btm3x9vYmKyuLbdu2GTucp6MMRnSEoWBn4mMX7NRmZnJr7sdc7tefnFOnULq44Dt9OoE/r8C+Zs0SiS8wxILTzPft0/lzateG+9QWtASkP8c0kEJHUozEdesAuOjvL/05JYi1tTV9+vRBoVBw4sQJzp8/b+yQnpzCHp1S8hw9acHO9N27uRgWRtKyZTqzca+eBG3ehNtLAx7ZbPwoWHSauZy2AnTr52i1WmrUqCH9OeUYKXQkxagQGQlIf05pEBAQQMuCReg2btxIbm6ukSN6QvQjOlotZGWV+O6LFOysOv6RCnbm34rn+rjxXB/1H9Q3Y7Hx96fS999R8YsvsCmFrCCLTjOXRmRATluZClLoSIpQ2J/jL/05pULHjh1xdXUlLS2NnTt3GjucJ8PREfSjIyU8fSWEhuh/3y4o2NmEwMDhD26v0ZD0yy9cCg0lfds2sLLCfdhrBG3aiHOBL6q0sMg086Qk+Ocf3d9S6ABS6JR3pNCRFOHEL79If04pY2trS58+fQA4cuQIV69eNXJET4BCUWqG5JhrP5CSchgrKyfq1vkMhcLqvm1zzp7lysCB3JoxE21GBvb161N17Rp83n4bpaNjicZ1LywyzVzvzwkOBl9fY0djNFJTU6U/x0SQQkdShKS1awG45O+PwsbGyNGYL0FBQTRq1AiADRs2kJ+fb+SInoBSMCSnZ5zh4sUvAKhRYwoODpXv2U6bnU38Z59xue8L5PxzAqWTEz4fvE+Vlb9gHxxcYvE8DItMM5f+HKCoP6dixYrGDkfyAKTQkRTBpWD9nDzpzyl1unXrhrOzM4mJiezdu9fY4Tw+Jbxo4KMW7MzYt49LvcNIXLIUNBpcunUjaMtm3AcNQmF1/9Gf0sLi0sxlfStA1rcyJaTQkRjITE8nJCkJkP6cssDBwYHQgunBv//+m9jYWCNH9JiU8IjOwwp2qhMSuDFhAteGjyD/xg2s/fwIWLCAgK+/wsaIKc4WlWaenAzHj+v+tvALvPTnmA5S6EgMnPj5Z9yBDOnPKTNq165NnTp10Gq1bNiwAY3GhC6UJSh0UlKOGgp2BgfPKlKwU2i1JK/+lYuhvUnb8icolbi/8grVNm3EpVPHpz7202JRaeZ6f06tWhbvz9EX6ZUjOuUfKXQkBhL1/hw/P+nPKUN69uyJvb09sbGxREREGDucR6eEzMhqdQano/8PfcFOb6/uhtdyzp3j6qDBxE2bhjYtDfu6dany26/4vDsZpZPTUx23pCiSZn46ycjRlDLSnwPc8edUr16dgIAAY4cjeQhS6EgMSH+OcXBxcaF7d93F/a+//iIx0US8HiU0onOvgp3anBziv5zH5b4vkH3sGEpHR3zee5cqv67GoW7dp428xDGkmZ+6bd5p5lLoALK+lakhhY4E0Plz6kl/jtFo2LAhQUFBqNVqNmzYgFarNXZID6cEzMj3KtiZeeAAl/o8S+J334FajXOnTgRt3oT7kCFGMRs/ChaRZp6SIv05BUh/jmkhhY4EgJO//GLw5/hJf06Zo1AoCAsLw8bGhqtXrxrm/8s1Tzmik5eXeKdgZ6XXcNFW58akScS8Noz8mBisfXwI+PYbKi2Yj42fX0lFXSpYRJp5YX9OOf//KE3S0tKILFg9XvpzTAMpdCTAXf4cW1sjR2OZuLm50blzZwB27NhBailXBn9qnkLoCCE4U6hgp8c/VbnYK5S0DRtBocAtPJygzZtw6dKlhIMuPcw+zVyWfQDu+HOqVasm/TkmghQ6EgBcCu5Qclu1MnIklk3z5s2pWLEiubm5bN68uXz7PZ7CjBwbt5aE2ztQYI37zw7cen8G2tRU7GrXpsqvq/Gd8h5Wzs4lHHDpUjnEHTDjNHPpzwHktJUpIoWOhMz0dOrq/Tkvv2zkaCwbpVLJs88+i1Kp5Ny5c5w+fdrYId2fJ/ToZGdf59y5GQA4b1Sg2f4vCgcHvCdNoupvv+JQr15JR1omuPs5mW+aeUoKFJQ7sPQRHSl0TA8pdCScXLkSDyBTocA/LMzY4Vg83t7etCsoRrllyxYyMzONHNF9eIKpKyE0nDz0BhpNJrYXFDhvBef27am2aSMer72Kwtq6lIItfcw6zVzvz6lZE/z9jR2N0UhLS5Pr55ggUuhIuF3gz7ko/TnlhrZt2+Lt7U1WVhbbtm0zdjj35jGFjjo5mVOL+pGuPYMiBzw2eRHw5TwCFi3ExkxqBZltmrks+wDoVjDXaDQEBQVRqVIlY4cjeUSk0JHgcvQoAHnSn1NusLa2pk+fPigUCk6cOMH58+eNHVJxHlHoCCFIWf87Z4Z2Iz7oBAB+11pR6+ftVOjRo1ipB1PGbNPMpREZkNNWpooUOhZO4fpWftKfU64ICAigRYsWAGzcuJHc3FwjR3QXhYXOfUYvci9fJmboq9z8YDKJfZPBBtxsmhI8YjlWLi5lGGzZYJZp5tKfY0AKHdNECh0L58SqVdKfU47p1KkTrq6upKWlsWvXLmOHUxS9GVmjgaysIi9p8/JIWLCAy88+R9ahQ6Q/q0BdSWBj7UbdFvPNahTnbswuzXz/ftBqoUYNMJMpxidBrp9jukihY+EkrlkDwCVfX+nPKYfY2trSp08fAA4fPszVq1eNHFEhHB1BWfATUmj6KuvoUS4/9zy3v/4GkZeH8vkQMjrnAxBc+6MiBTvNEbNLM5dp5UBRf07lypWNHY7kMZBCx8JxluvnlHuCgoJo1KgRABs2bCA/P9/IERWgUBSZvtKkpHDz/fe5OjicvEuXsPLwwOfzWdwOS+BeBTvNFbNLM5dCB5D1rUwZKXQsmMz0dEIKCkhKf075plu3bjg7O5OYmMjevXuNHc4dCoROxubNXOwVSuoaXQafa//+VNuymVtBR4sV7DR3zCrNPDVV+nMK0Ptz5LSV6SGFjgVzYtUqPIEshQL/gukRSfnEwcGB0IIaZH///TdxcXFGjkiH1sEBgMQv56FJSsK2ejUCf16B38wZJOUfLVaw01IwmzRzvT+nenWL9uekp6dztCA7VQod00MKHQtGX9/qovTnmAS1a9emdu3aaLVa/vjjDzQa4/k/RF4et7/7npxr1wCwUirxGj+OoHXrcGzSRFew8993AV3BTje3FkaL1RiYTZq5nLYC7vhzqlatSmBgoLHDkTwmUuhYMM4FdyjSn2M69OrVC3t7e2JjYzl48KBRYsiKOsblF/qR8OWXaAuyp3zHjMZz5EgUtrbFCnYGBU00SpzGxGzSzKXQAWRauakjhY6FkpWRQd0Cf47vSy8ZORrJo+Li4kL37jpD7+7du0lMLLuLqCYtjdhp07k6cCC5589j5eaGbYFJ2rrQiKChYKfChrp1PsfKyq7MYixPmHyaeWoqFJQ7sHR/jjQimzZS6FgoJ1atwgudP6ei9OeYFA0bNiQoKAi1Ws2GDRvQarWlejwhBGlbtnCxVygpq1cDoHqhL0FbNnOu4NgrFi5kxowZXLkSyblzMwEIqjoeF5c6pRpbecbk08wL+3MCAowdjdHIyMjgyJEjgPTnmCpS6FgotwvWz7no64vCzjLvuE0VhUJBWFgYNjY2XL161VBksDTIu36dayPe4MaEiWhu38a2alXypn5A+pAhWLu54VxQ4NE+N5fPPvuE9b/3QaPJQKVqQmDg8FKLyxRw93PC2c2E08z19a0s/OKu9+dUqVJF+nNMFCl0LBSDP6dlSyNHInkS3Nzc6NSpEwA7duwg7TEqiD8KIj+fxCVLuNQ7jMx9+1DY2OA5ejRpH07nmZEjef/99wGoUr8+AP26duXIkTnUr2+PQmFPndqfolBYlWhMpoZCoSAwxITTzKU/B5D+HHNACh0LJCsz844/R66fY7K0aNGCihUrkpuby6ZNm0osjTn7n3+43K8/8Z99jsjJwbF5c6r+8Qfuo0bSf+BAatWqxY8//ghAlqeWC8PcONH4ENdvfA1ArZofkJHhYDSzdHnCZNPM09KgYDFRSx/RkULH9LE2dgCSsufEqlW0RPpzTB2lUsmzzz7LokWLOHfuHKdPnyYkJOSJ96dJTyfhy3kkr1wJQmClUuH9zjuonn8OhULBli1buHjxIgcPHsTZ2ZmJE18kKWkn4QNdEYo0QMGK5cm4u68jOXk7u3fv5sKFC1hZWe7Izt1p5q4+jsYO6dHQ+3OqVYNKlYwdjdGQ/hzzQI7oWCAJ+vpWPj7Sn2PieHt7065dOwC2bNlC1l3FNR8FIQRp27ZzKbQ3yb/8AkKgevZZgv7cgmvf5w0FOJctW0bDhg1p3rw5WVmXSUraxbJlySz/JQWUOpGzbFkySUm7GD78Wa5cuWLIVrFUTDbNXE5bAXDgwAGDP6dKlSrGDkfyhMgRHQvEueAOJUf6c8yCtm3bEh0dTXx8PFu3bqVv376P/N78mzeJmzmLjN27AbAJrIzf9Ok43WNtpenTp6PValEoFNyMXUN4uAcgWLYsmZ9/TiY/H4YOdWNwuAfuHv8CEBMTUyLnaMoE1vXgxtlkYk4n0qCziYyOSKEDyGkrc0GO6FgYWZmZsr6VmWFtbW2ocH7ixAnOnz//0PcItZrEH5dxsXeYTuTY2OD5n1EEbdhwT5EDUKdOHcPUWE72dQSCweFu2NhAfj7Y2MDgcDfQqMmN2EQjwMZa3kuZXJp5WppcP6cAWd/KPJBCx8LQr5+TrVDg/+yzxg5HUkIEBATQsmCEbtOmTeTm5t63bfap01x5cQDxH3+MyMrCoUkTgtavw2vsWJQPmMqMiopiwIAB5OfnY+8QgKLAk6MXOfn5sGK5Lo3acV80UcAL06bB7Nlw5UpJnq5JYXJp5n//DRoNBAVJf07B6Lcc0TFtpNCxMPT+nIvSn2N2dOrUCVdXV1JTU9m1a1ex1zUZmcTNns2VF18kJzoaZYUK+M6cQeDy/2JXvfpD929jY8Ovv/7K2rVr8ffrx/LliSxblszQoW78uTWIoUPdWLYsmRW/pOCveAbs7bG/dAmmTIGqVaFdO/j+e0g2gYt9CWJyaeZy2grQ+XPUajWBgYHSn2PiSKFjYTgVrJ8j/Tnmh62tLWFhYQAcPny4iD8mfdcuLvXuTfJ/l4NWS4Xevam2ZTNu/fujUD7az0C9evXo2bMnb775JhcupOPu3pmhQ90JH+IJKBkc7snQoe4kJgYS/cYHEBcHP/wAnTqBQgH79sEbb4CvL/TtC+vWwQNGnswJQ5q5KZSDkEIHkP4cc0IKHQsiKzOTkNu3AfCT9a3MkmrVqtGooP7Uhg0byL52jWujR3P9zdGo4+KwqVSJSkuWUPGzT7H29Hzs/f/8888EBgbStm1bWrbsz/z5kVSuPBxv755o1J3Izm7Axo3HddlWKhW8+irs2gUxMfDJJ1C/PuTlwfr18MILOtEzYgTs3atLZzZTDGnmCdmk3Hr8zLgyQ66fY0DWtzIfpNCxIE6sXo030p9j7nTr1g1nR0fcDhzgUu8wMnbuAmtrPIYPJ2jDHzi3bfPE+3Zzc2PPnj28/vrrVKlSBUfHKvy0LI0mjRfRvft3nDuXwm+//cbEiXdVLA8IgLffhn/+0W2TJkHFipCSAosX6y6qVavCe+9BdPTTdUA5xGTSzPX+nKpVoXJlY0djNDIzMzl8+DAghY45IFMiLIjC/pwQe3sjRyMpLRSXL9Nrz14UFy8CYFW3LpVnz8a+Vs0S2b+LiwtffPGF4XHPnj3x9fWladOmNG/e3LDuzn2pX1+3zZmjq6e0YgWsWaMb9ZkzR7c1agSDB8PLL4OfX4nEbWxMIs1cv+6RhV/c9f6cypUrS3+OGSBHdCwIJ/36OS1aGDkSSWmgzczk1sefcLn/iyguXkRjb8fRpk3Y3bULNtWrldpxW7duzZtvvkmLFi0eLnIKo1RCx46wdKnOz/Prr9Cnjy6F69gxmDhRNxLUrRv897+Qnl5q51AWmESaufTnANKfY25IoWMhZGVmUrfAn+Mr/TlmR/pff3ExLIykH38EjQaXnj0IWL+eGyEhxMbFlf+6Uw4O0L8//PEHxMbCggXQurXOt7NjB7zyCvj4wMCBsGWLLpfdxCj3aebp6VCQrGDp/hwpdMwLKXQshBO//ooPOn9OxeeeM3Y4khIi/1Y818eN5/rIUahvxmLj70+l7xYR8OWXuFatSvfu3QHYvXs3iYnl2BtSGA8PGDVK5xe5eBFmzoSaNSE7G1auhNBQnb9n7Fg4fBhMpFimQqGgcnlOMy/szwkMNHY0RkP6c8wPKXTMnH379lG/fn3WjhkDQHSFCqgtsMhiUlISTZo0ITg4mGeeeYZvv/2W1NRUY4f1xAiNhqRffuFSaCjp27aBlRXuw14jaNNGnAvdjTds2JCgoCDUajUbN240rQraoFu07v334cwZOHIExo0Db29ISIBvvoEWLaBWLZgxQyeKHoOpU6dSu3ZtGjZsyPDhwzl27FgpncQdAsthmvlvv/1GSEgIS8LDAbhevTpaM86AexgRERHSn2NmSKFjhty8eZPFixcD0KxZMzp27MgzGp0n4PfUVOrVq0deXp4xQywTcnJy+Pzzz1Gr1bi7u9O3b1969eqFu7s748ePJyAggEuXLhk7zMcm5+xZrgwcyK0ZM9FmZGBfvz5V1/yGz9tvo3QsWh1boVAQFhaGjY0NV65cIUq/tL+poVBA06Ywbx7cuAF//gmDBoGjI5w/D9OmQfXquumuBQugYJr2bjZv3szRgumZHj160KNHD1q2bMnWrVtp3Lgx7733XqmeRnlJMz9z5gy//voroKuV1qlTJ7oU3ABN2bGDLl26mJ4oLiEKT1s9ludMUn4RFkxqaqoARGpqqrFDKTHi4+NF9erVRcWKFUVycrIQQojMjAwRpxvgF3/PnSt2795t1BjLgvz8fNG7d29hZ2cnjhw5Uuz169evizVr1hghsidHk5Ulbn32mYiuGyKiawWLM42biMTlK4RWrX7oew8cOCCmTZsmZs+ebVafd5GeLsTy5UJ07y6EUilEwedcWFsLERYmxOrVQmRlCSGE2Lx5s7CyshKvvvqq0Gq1RXaTn58vfvvtN3Hr1q1SD3n9F1Hi2zd2ieM7Y0r9WPfiwoULwsvLS9SvX1/k5eXpnkxPF8LKSggQR9esEZGRkUaJrTzQpk0bAYilS5caOxTJA3ic63eJj+jMmTOHZs2a4eLigre3N8899xxnz569W1wxffp0/P39cXBwoEOHDpw+fbpIm9zcXMaMGYOnpydOTk706dOH69evF2mTnJxMeHg4KpUKlUpFeHg4KSkpJX1KJsXkyZNJTExEnZ9H9+7d2PDrajbMnMqRlg3ZXa8WwQNepEOHDiQmJvLdd9+Z7V3bsmXL2LRpExWcXRjz5mh2r99Oyp+XSVx5htStl/G2c+eFF14gJyeHn376idv3GQEoL2Ts28elsD4kLl4CajUuXbsStGUz7oMHoXiEqUh/f39u3bpFbm4uP/74o/lMTTg769LQt27VjfR8+SU0aQJqNWzcCAMGgI8P6iFDWPzyy3Rq355t27fQqlULtm1bzoULn3Dq1DiuXP2SXr2a4O3tzfHjx9m8eXOphayfvoox0vTVyJEjcXR0JC4hgTbPPMNP23YyK+I4I9+dxUcT38etZ28aN27M9evX+emnn4wSo7GQ/hzzRCFK+ErXo0cPXnrpJZo1a4ZarWbKlCmcPHmS6OhonJycAPj444/56KOPWLZsGTVr1mTWrFns3buXs2fP4uLiAsCoUaPYuHEjy5Ytw8PDg4kTJ5KUlERkZCRWBT/sPXv25Pr163z//fcAjBgxgipVqrBx48ZHijUtLQ2VSkVqaioVKlQoyW4wCsnJyfj7+/Paa6+xYMECqni4UdPXk661a6BEAAp2nLlA1SYteCH8Fbp06cKePXto166dsUMvUYQQNG7cGBcXF/bt20fTiiG0q9KMsa2HoFQqUSgVzNv/E7bBrkyYPZmAgABmzJjBpEmTjB16MdQJCdyaM5e0LVsAsPbzw/eD93Hp1Omx9hMVFUWPHj144403sLKy4tixY/znP/+hW7du5jk8/++/8PPPujV6rl41PJ3t7s63SUmsq2NHzaYODBrsjlKpQKFQsmJ5Iu7unUlLU7F161YuX76MdSlUX0+8mcGqGYexslYy7ItnsLEtO8/c2bNnCQ4OZubMmXzwwQfY1G2AbdNWVBj8OqCb6kz7eQnd3ZzpVTeY119/nYsXL1K1atUyi9GY7Ny5k65du1KpUiWuXr1qnt8NM+Gxrt+lO7ikm0oBxJ49e4QQQmi1WuHr6yvmzp1raJOTkyNUKpVYtGiREEKIlJQUYWNjI1atWmVoc+PGDaFUKsXWrVuFEEJER0cLQBw8eNDQJiIiQgDizJkzjxSbuU1dLV26VCgUCrF9+3bh6ewoutWtIQDRvW5N8dmLoaJ73ZoCED1CaorEC+dFSNWqYvSrrwqRkWFW279HjwpHEN/MnStquwWIiW1fE4CY2HaYuPbOXjGx7TDd42eGifyELDFw4EBRv359Y//3FUGr0YikVavFmWbNRXStYBFdu46Imz1HaDIynmh/kZGRAhBvvfWWmDZtmpg0aZJwcHAQzZs3F1u3bi02lWM2aDRC7NsnNgUEiFRrayFAZFa0FkOHuApADB3qJnbuChJDh7oVPHYXh/f8JhxB7N60qVQ+n9r0dLFiwg6x6LVN4srBK2X63Zj17rvCX6USB3ftEk4VKwunoaMEIJxeHSV8/ndMOL2qe+z86ihxOjFZuLi4iI8++sjY/4tlxpQpUwQgwsPDjR2K5CE8zvW71IXO+fPnBSBOnjwphBDi4sWLAhBRUVFF2vXp00cMGTJECCHErl27BCCSkpKKtKlfv76YOnWqEEJ3UVepVMWOp1KpxA8//HDPWHJyckRqaqphu3btmlkJnczMTHH58mURGRkpetarJT7t38sgbqyUSoPo+bxfT7G3Xq07fgYz3lLajRDX3v6fQdzYWtkYRM+VSbvF8YX/EzNmzBDe3t7G/u8zkHPunLj88kCdwKkVLC4931dknTz1VPvUC50RI0aIadOmiWnTpom33npLVKpUSQCiefPmYseOHSV0BuWPhIQEcSsmRlz47DOxcZib2Lm9qkHc2NhwR/RsryrOD3Mz+ue2LLZZr48R/juOGMQNNrrvhtOro4TPjqPi9Z1/i7p164oxY8YY+7+vzGjbtq0A6c8xBYzq0blrtIgJEybQtm1bQkJCAIiLiwPAx8enSFsfHx/Da3Fxcdja2uLm5vbANt7e3sWO6e3tbWhzN3PmzDH4eVQqFZUqldNl2J8QR0dHQzqku5MDAF3r1sBKqUSj1WKlVNK1bg0AUgteN3fUKl9Awfg2r2BrZUOeJh9bKxvGt3kFBJz6+zhZWVnYl4OSGNqcHOK/nMel5/uSHRWFwtERn3cnU+XX1TiE1C3x41WoUIFXX32Vli1bcvjwYd56660SP0Z5wdPTE+9KlUjt2JEIXxuEEgaHu2Fjo1t70MZG9xggx9fGyNGWDdd8/REocA4fQeGOcA4fgQC2HTtRbr4bZUFWVhaHDh0CoL2FL5hobpRqravRo0dz4sQJ9u/fX+y1u+c+hRAPnQ+9u8292j9oP++++y4TJkwwPE5LSzMrsZOWlkb//v0JCwsjKTMbgB2nzxtEjkarZcfp83SuU52UnqFMb9uFKlWqMHToUOMGXgqMHz8epVKJ05k4RiiUfPX3TwaRk6fJZ97fPzGm9WBC2jRE43iN/v37GzXezAMHiJ3+IfkxMQA4d+qE7wfvY1NKdZ6EEFy8eJG9e/dy7do1mjdvzkcffVQqxyoP7N69mylTpvDFF19wK063qvKK5ckGkZOfr3s8cKAblxt3Y1bvFD799NNS+33Iy1Hz07t/o9UIBkxpjquP48PfVALExMQwdOhQxowZw+o9h7FTKslY/j2FOyJj+fc4DxxG1wYh2HTrZnYevvsRERFBfn4+AQEBBAUFGTscSQlSakJnzJgxbNiwgb179xIQEGB43tfXF9CNyPgV+hGPj483jPL4+vqSl5dHcnJykVGd+Ph4WrdubWhz69atYsdNSEgoNlqkx87ODjs7u6c/uXKKi4sLt27d4pdffuH85WtotFq2nz5P97o16Vq3BjtOn2fb6XMoFPDL14tx8/U3dsilRq61NWvWrMFZY0+2Vs3n+39gYtthjG/zCvP+/onP9y8FBcx9+xsaeHY0WpzqxERuffwxaRt0Bnprb298Pngfly5dSsUIKYTgwoULRQTO4sWLzdeUXICfnx8RERH8+eefbN2ajloj+GlZCkOHujE43I0Vy5NZtiwZUDB//kzC+lYp1XhsncCrth83ziZz9UoOrkFepXo8Pb7VqnH6yhX+u3Yt6UeiyFeryVy2EKdXR+EcPoKM5d+T+eNCFMD7335J1a5tyySu8oBcP8d8KfGpKyEEo0ePZt26dfzvf/8r5tavWrUqvr6+7Nixw/BcXl4ee/bsMYiYJk2aYGNjU6RNbGwsp06dMrRp1aoVqamphlRAgEOHDpGammpoY2koFAqmTp1KREQEtzOyOBd3m251a9C1djUUWi3dQmrSI6Qmtr4BfPTZF+aTYnwP3nrrLbKysriSfJ2/Lh9mQptXGdNqMALB+LavMPGZYWT7KQgf85pRVkgWQpCydi2XeoXqRI5CgdvgwQRt2UyFrl1L7Yd27dq1/Pzzz/j5+bF161YOHjxI9+7dzf6HPTg4mAEDBvDJJ59w44aai4eyGTrElcEDXRFCweBwT4YOdScmxoN9+84+fIclgCHN/FTZpZnb2try3nvv8fvvv6O5EUPekQM4vTIS54HDUAiBKnwEzq+OonrSLdYu+MZsl5+4F7K+lflS4kLnzTffZMWKFfzyyy+4uLgQFxdHXFwc2dm6qRSFQsH48eOZPXs269ev59SpUwwdOhRHR0cGDhwIgEqlYtiwYUycOJFdu3Zx7NgxBg8eTL169ejSpQsAtWvXpkePHgwfPpyDBw9y8OBBhg8fTu/evalVq1ZJn5bJ0LdvX6ZNm4aVQkFSnprIqzdwvxhDzeuxVLGvgEtQTTbs/B9xcXFm/SNWs2ZNli5dio2VDf8mXqTbmL6oOgZiHawio6YVVnVU/LjxZ86dO4darS7T2HIvXSImfAixU95Hk5qKXXAwVVavwvf9KVg5O5fKMb29vfH396d69eoWJXAK88MPP9CkSROsrRX0u+XI/J0ZVPrHlwoVOnL7dmMuXPRi374rZSZ8jVXNfOzYsQwfPhysrXFPSmDByy/wn8redFc50ik7mfopCRz/Y125X1uqJCnsz5FCxwwpaSc0cM/txx9/NLTRarVi2rRpwtfXV9jZ2Yl27doZsrL0ZGdni9GjRwt3d3fh4OAgevfuLWJiiq4kmpiYKAYNGiRcXFyEi4uLGDRokGE14EfB3NLLC7Np0ybRt29fAYht/v5CgHgHRIMGDcTixYuFRqMxdohlQlRUlPj888+FEEJoNBrD57FixYriww8/FOnp6WUWiyYnR8R/9bWIDqknomsFi38bNhK3lywV2vz8Mjl+Tk6O+aaRPyK5ubli7ty5IrNlSyFArOrQQQDCyspKvPDCC+LQoUNlFotWqxXLJu8X376xS1w+kVBmx9WzYsUKw3IdK1euNHw32rZta3Krhj8t+kzfgIAAi/+OmAqPc/0u8QUDTQlzWzDwbtq3b8/evXuJfOYZGu/bR9yrr+KzdKlF3cUXRqPRsGXLFipUqECbNm1KZTG4+5F58BBx06eTd+UKAE7t2+H7wVRsAyqWWQySAnJzwdUVcnI498cfnLeyomHDhlSsWPb/F7t/PkP0vpvU6xBAu5dqlvnx9Vy/fp1jx45RrVo16tSpY7Q4jMXUqVOZOXMmgwYNYsWKFcYOR/IIPM71u+x+6SVlSnZ2NgcPHgQgsF492LcPX0dHXXFEC8XKyoqwsLAyPaY6OZn4Tz4ldf16XQxenvhOmYKLhU0blSsOH4acHPDxoWZYGDWN+P8QWNeD6H03jV7NPCAgoEjSiKUh/TnmjRQ6ZsrBgwfJy8vD398f98BA3ZNpacYNyoIQQpD6xx/Ez/0YTUoKKBS4vjQA77fewsoMRw9NioKLGh06GF34313NvKzSzCV3kP4c80cKHTOlSKqkq6vuSSl0yoS8K1eInf4hWQUjanY1auA740McGzUycmQSoKjQMTK29tb4VXfVpZmfTpRCxwjobworVqxItWrVjB2OpBQo1ZWRJcajyFCsfgRBCp1SRZuXR8KCBVzq8yxZBw+isLPDa8IEqq5bK0VOeSE3Fw4c0P1dTla/NUaaueQOe/bsAeT6OeaMFDpmSGF/jhQ6ZUPW0aNcfr4vt7/+BpGXh1ObNgRt2ojniOEobCyjpIBJoPfneHtDcLCxowGMl2Yu0SH9OeaPnLoyQwr7c6pXrw76FaSl0ClxNCkpxH/+OSm/rQHAysMDn3ffpUJoL3l3WB4pR/4cPe5+Tji72ZGRnMuNs8lUqedp7JAshsI3hbK+lfkiR3TMkGJDsXJEp8QRQpC6cRMXQ3sbRI5r//5U27wJVe9QKXLKKwXfjfLgz9GjUCioHFIwfXU6ycjRWBbFbgolZokc0TFDig3F6oWOEUodmCN5MTHEfTiDzL//BsC2ejX8PvwQxyZNjByZ5IEU9ueUI6ED5SfN3NKQ9a0sAyl0zIycnJyi/hy4I3RyciAvD2xtjROciSPy8kj8cRm3FyxA5OaisLXF8z+j8HjtNRSyT8s/R45Adna58ufokWnmxkH6cywDKXTMjIMHD5Kbm1t0KNbF5U6D9HTw8DBOcCZMVtQx4qZNI/f8eQAcW7bEb/o0bKtUMW5gkkdH789p377c+HP0yDTzsicnJ0eun2MhSI+OmaG/Q2nfvv2doVgbG3Bw0P0tfTqPhSYtjdjp07k6cCC5589j5eaG/8dzqfzjD1LkmBrlaP2ceyHTzMuWe94USswSKXTMjPsOxUpD8mMhhCDtzz+5GBpKyqrVAKj69iVoy2ZUzz4r5/NNjby8cuvP0SPTzMuWe94USswSOXVlRtzTn6OnQgVdmrkUOg8l7/p14mbMIHPvPgBsq1TB98MPcWrR3MiRSZ4YvT/Hywtq1zZ2NPdEppmXLdKfYznIER0zQj8U6+fnR40aNYq+KEd0HorIzydx6VIu9Q4jc+8+FDY2eI4eTdUNf0iRY+qUw/Vz7kammZcdD7wplJgdckTHjHhgqqQUOg8k+59/iJ02ndwzZwBwbNYM3w+nYxcUZOTIJCVCYSNyOUammZcND7wplJgdUuiYEQ8cipVC555oMjJI+OJLkleuBCGwUqnwnjQJVd/n5by9uZCXBwVrHpVXf44emWZeNsj6VpaFnLoyEx46FCuFThGEEKRt386lXqEk//ILCIHq2T4E/bkF1xf6yh8/c0Lvz/H0hDp1jB3NA9GnmQNyVKcUkf4cy0KO6JgJDx2KVal0/0qhQ/7Nm8TNnEXG7t0A2ARWxm/6dJxatTJyZJJSwQT8OYUJrOvBjbPJxJxOpEGnSsYOx+zIyckhIiICkPWtLAUpdMyEhy5lLkd0EGo1SStWkPD1N4isLLCxwWPYa3iOHInS3t7Y4UlKi3JY3+pBVA5x58A6uHFWl2ZuY2tl7JDMikOHDpGbm4uvry81a9Y0djiSMkAKHTOh8JzzPbFwoZN96jRxU6eSEx0NgEPjxvh9OB07aUQ0bwr7c0zk7l2mmZcusr6V5SGFjhlQeChWCp2iaDIyuf3N1yQtXwFaLcoKFfD+v4m49uuHQiktambP0aOQlWUS/hw9+jTz6H03iTmdJIVOCSP9OZaHFDpmgH4o9oGpkhYodNJ37SJu5izUcXEAVAgNxefdyVh7yguHxVA4rdyEhK1MMy8d5Po5lokUOmbAIw3F6oVOamrZBGVE8uPiuPXRR6Tv2AmATUAAvtOm4fxMWyNHJilzynl9q/sh08xLh8OHD5OTk4OPj4/051gQUuiYAYVrttwXCxjRERoNyb+sJGHePLSZmWBtjcerr+L5n1Eo9UVNJZZDfr7JrJ9zN7o0cxU3zqbIauYliPTnWCZS6Jg4j+TPAbMXOjn//kvs1GnknDwJgEODBvjOmIF9LXnXZrGYoD+nMIF1PblxNkWmmZcg0p9jmUihY+I8cqqkmQodbVYWCd98S9J//wsaDUpnZ7wnTsB1wABpNrZ09NNW7dqZlD9Hj0wzL1ke+aZQYnZIoWPiPPJQrF7oZGaCRgNWpv+jmf7XX8TNmIH6ZiwALj164PPeu9h4exs5Mkm5wET9OXpkmnnJUtifU6tWLWOHIylDTO82R1KERx6K1QsdgPT0UounLMiPj+f6+Le4PnIU6pux2Pj7E7BoIQHzvpQiR6IjPx/279f9baJCR1YzL1lkfSvLRQodE+axhmLt7MDWVve3iU5fCa2W5JUrudQrlPStW8HKCvfXXiNo00ZcTPRiJikl9P4cDw+oW9fY0TwxgXV1QkemmT89j5S0ITFL5NSVCfPYS5lXqAC3b5uk0Mk5e464qVPJ/ucfAOzr1cNvxofY165t5Mgk5RITXT/nbmSaecmQm5vLgQMHAOnPsUSk0DFhHjtV0gSFjjY7m9sLFpD44zJQq1E6OeE1fjxuA19GYQY+I0kpoa9vZeJ37zLNvGTQ+3O8vb0JDg42djiSMsZ0b3Ukj58qaWKZVxn79nMprA+Ji5eAWo1L1y4Ebd6Ee/hgKXIk98cM/DmFCayrMyHHyOmrJ0aun2PZyBEdE+WJUiVVKt2/5VzoqG/f5tacuaRt3gyAta8vvh+8j0vnzkaOTGISREbqsgvd3SEkxNjRPDWGNPNzMs38SXlo0WOJWSOFjoly+PDhx/PnQLkf0RFaLSlr1hD/2edo09JAqcQ9fDCeY8Zi5exk7PAkpoKZ+HP0yDTzp0P6cyRS6JgoTzQUW46FTu6FC8ROm052ZCQA9nXq4DtjBg4hppsxIzESJr5+zt3IauZPx5EjR8jOzpb+HAtGCh0T5YmWMi+HQkebk8PtRYtIXPoD5OejcHTEa+wY3AcPRmEtP56Sx8TM/Dl6ZDXzJ6dwWrn051gm8kpigjzxUublTOhkHjhA7Icfkn81BgDnjh3x/eB9bPz9jRxZ+ef27dtMnjyZ7OxsvLy8eOmll2jRooX8IY+KMit/jh6ZZv7kyPpWEtOfwLZACi9l/sj+HLgjdFJTSyewR0SdlMSNSZOIeW0Y+VdjsPb2puLXXxGwYL4UOQ9ACMHu3bsB8PDwICkpiRs3brBu3TpatWpFkyZNiImJMXKURsbE61vdD32aOcjFAx+HvLw86c+RSKFjijxxqqSRR3SEEKSsXcelnr1I27ARFArcBg0iaPMmKnTrJkcjHsKkSZPo1KkTkZGRKBQK1q1bx19//cWVK1fYsmULoaGhBAQEGDtM42Jm/pzCVK6rLwchhc6jovfneHl5UVsuLmqxyKkrE+SJh2KNKHRyL10ibtp0so4cAcCuVi38ZnyIQ4MGZR6LKfLHH3/w2Wef8dVXX9GkSRNIvAjHlkNKDErXyvRsHk7Pnj0B+Oeff6hVqxb29vZGjrqMMVN/jp7AEA8i1l2UaeaPgVw/RwJS6JgcT+zPAaMIHW1uLonfLybx++8R+fko7O3xGjMa9yFDUNjYlFkcps7XX39N69atGTt2LNPf6IvV+T/5oL0DIAAFM2d/jKZGT4a9/xUNGzbkv//9L+Hh4cYOu2yJioKMDHBzg3r1jB1NiSPTzB8fWd9KAnLqyuQo7M+pVavW4725jIVO5qHDXH72OW7Pn4/Iz8ep3TMEbdqEx7BhUuQ8BpcvX+Z///sfo0aNgsSLWJ3/k6m7c5j5VxYILTP/ymLq7hyszv9JJcc8unbtypIlS4wddtljZuvn3I2sZv545OXl8ffffwPSn2PpyBEdE+OphmLLSOiok5OJ//QzUtetA8DKyxPf997DpUcPOXz8BLi6urJu3To6tWsNf03hg3Z2IART/8pl1r5c8jQwo4MdH7Szh/2LaNmyJT/++KOxwy57zKS+1YOQaeaPjt6f4+npSZ06dYwdjsSISKFjYjxVqmQpCx0hBKl//EH8x5+gSU4GwPWlAXhPmICV/tiSRyczEa4dwi0mgucTD8L84aDNB+CD9nYGkWNrpXuMVgP/nc/oPY7UyM2FX3/VXfR9fIx8ImWAWg379un+NuO7d5lm/uhIf45EjxQ6JsRT+XPgjtBJTwettkSH9/OuXCH2ww/JijgIgF2NGvh++CGOjRuV2DHMGiEg+TLEHISYCIg5BLfPFm9n4wj52czck2MQOXkamLknlw+esYNULd6JiYQDDBige0/t2rqLf8eOOuHj7V2GJ1ZGFPbn1K9v7GhKDVnN/NGR9a0keqTQMSGeyp8Dd4SOELpF1VxcnjomkZdH4tKl3F64CJGXh8LODs8338Tj1aHSh/MgNGq4dbKQsDkIGbeKt/OsBZVbMm/9Ybb9m8rmDX/w0UsNmPpXrm66qr0dM/fkMvWvXFAo+GDJATh5DbF7N4o9e+Cff+Dff3XbwoW6fdapoxM+HTqYj/Ax0/Vz7kXluh7cOJtCzOlEGnSqZOxwyiXSnyMpjBQ6JkThO5QnGop1cAArK9BodNNXTyl0siIjiZ06jbyLFwFwat0a3+nTsK1c+an2a5bkZsD1I3eEzfWjkJ9ZtI3SBio2hsotoXIrqNQCHN0BaKTaw4SOHZn0yfc41ejJDLGFD9raghY+6OAICgVZgZ34bN3/mDBhAspnn9XtMykJ9u7VCYG//tIJn+ho3bZgga6NXvh07KgTCqYofMx4/Zy7Cax7J81cnafBWqaZF+Po0aNkZWVJf44EkELHpHjqpcwVClCpdBe/tDSoWPGJdqNJSSH+889J+W0NAFYeHvhMnkyF3qFyLlxPelyBqCkQNnEnQWiKtrFTQeUWd4SNfyOwcbjn7tq3b8+8efMYN24cvXr14vcX3offZ0GwP7m9XiLI3YEpny8l589IBgwYQKVKBXf67u7w3HO6DSAxUedl2b1bJw5OnCgufOrWLTri4+VV8v1TkhT255ixEVmPu3+hNPNzKQQWZGJJ7iDrW0kKI4WOiZCbm1syS5lXqHBH6DwmQgjSNm3m1ty5aBJ1WR+u/fvhPXEiVq6uTx6TqSME3D53ZwoqJgKSrxRvp6pcIGpa6ISNV+3HmmYZO3Ys/v7+bN68GZsbmbArlx8jbvGfpV+Sl5dHnz59+PLLL++InHvh4VFc+BQe8TlxAk6f1m3z5+vahITcET7t2pU/4XPsmM6f4+pq1v4cPYWrmV89lSiFzj2Q9a0khZFCx0R4an+OnifMvMqLiSHuwxlkFsx721arht+H03Fs2vTJYzFV1LkQ+08hYXMQsu9e10QBPiEFwqZgUz19eYZ+/frRr18/6NcPAL927ZjTvTv9+vV7svIPHh7w/PO6DeD27aLC5+RJOHVKt337ra5NYeHTvj14GnnhusL+HCvLmMaRaeb3Jz8/X/pzJEWQQsdEKLFUyccUOiI/n8Qfl+kW/cvNRWFri+eokbgPG4bS1vbJ4zAlslPg2uE7wuZGJGhyi7axtoeAZjpfTeVWUKkZ2KtKL6YLFwDoMXo0PUJDS26/np7Qt69ugzvCRz/VpRc9hYVPvXpFR3zKWvhYkD9Hj0wzvz/SnyO5Gyl0TIQSW8r8MYRO1rFjxE2dRu758wA4tmyJ77Sp2FWt+nQxlHdSrhXNhoqPRldqoRCOHjpBo/fX+NYH6zISfkIYhA7Vq5fuse4WPgkJRUd8Tp3SjfqcPAnffKNrU1j4tG+vGzUqLSxk/Zy7kWnm96fwb6XSzDPwJI+GFDrlnJkzZ3Lu3DlDxlXbtm2fan83MzLwB/Zu3Ih93bo0a9as2AiRJi2N+C++IGX1ryAEVq6ueE9+B9Wzz5qfsU+r0QmZwsIm7Ubxdu7VCk1DtQKP6jpzdxnz999/s37BAj7LzESrUBBnZ4d/WQbg5QUvvKDbAOLjiwqf06eLC5/69YuO+JSA8Ll+/TofffQRftevMzU9HY2LC1YW4M8pjEwzvzeyvpXkbqTcLYdERkaSk5MD6IyHx44dQ6PRZez07NmTzZs3P9b+kpOTyc7OBiC+YL+7N2ygRYsWNG3alA0bNgAFZuM//+RiaCgpq1aDEKief56gP7fg+txz5iFy8rLgyn7Y+ymseAE+rgKL2sKW/4NTa3UiR2EF/o2h5Zvw4nL4v/MwNgqeWwCNh4BnjTIVOVlZWURFRQFQsWJF0gr+vgpUrl6dIUOGoNVqyyyeInh76/xC336rG925dQt++w3+8x9d2jroDM5ff60bFfL0hAYNYNw4+P13nTH+ERFCGAz5vr6+nD9/HvcTJwDYnJ5Ou44diY+PL+kzLLcE1tUJRn2auUTnz9lfUMFe+nMkeuSITjljx44dhIWF8e677zJ16lTef/99hBBMnTqVrl27UqNGDZo0afLI+4uPj6dDhw60atWKpUuX0rBdOzh8mA/GjqVZly5888032NjYkHf9BnEzZ5C5Zy8AtlWq4Pvhhzi1aF5ap/pI5ObmYmtr++QiK/N20dGa2OOgVRdtY+us89fop6ICmoKt01PHXhJkZ2fTvXt3Ll68yMWLF6lSpQrfv/02DBtGQMeOfPncczg5OZWfIXq98CkwS3PrVtERn+honfDRix+FoviIj7t7sd0KIRg7dizz588nOjqa4OBgdu7cCb17Q0wMlYcMoX3lyniVt4ywUiI3Nxc3P0eZZn4Xen+Oh4cHdevWNXY4knKCyQudBQsW8OmnnxIbG0vdunWZN28ezzzzjLHDeiKSk5Pp168frVq1YuF337N5y5+Mnjydtefz8Qx7G/eWDfm/Ec/i6+nE7du3yc7OfmAqsRCC/v37k5yczKRJkwDIA1I8vcg/cpSmFQP4/dtvyfhrD5fem4LIzkZhY4PHiBF4jBiO0s6ujM783ly7do3WLZoRUKky02fMpFu3bg8WPEJA0qWiwibxfPF2zr4Q2OqOsPGuC1bl86vwzjvvcPToUZxcnGjfsT1jPxjL7ZQN3BwZgH9lO55/pQ+BFQLRarWcPHmSBg0aGDvkovj4QP/+ug10wmfPnjvC599/dYsY/vMPfPVVUeHTsSM88wy4u7Nq1Sq+/fZb3CtUYOiQIXw0ZiwhcXGoT57ExtOLOi8OoGFoLwBOnDhB3bp1sTLTDKxr167RskUrKlUK4M3nZ0KylUwzL0D6cyT3QiGEEA9vVj5ZvXo14eHhLFiwgDZt2vDdd9+xZMkSoqOjqfwIq/OmpaWhUqlITU2lQjkoOvnFF18wefJkNm/eTLdu3bCrWBv7Ko1QtdbVLLKysiL575V0Cfbi3wM7aNSoEcuXL7/v/g4ePEirVq3YuHEjvXv3ZvKLA8ja/T9GuXvoLihKJQvj49EgGO3pxQU7O7qtX4ddUFBZnfIDiYqKokmTJlRzt+ZikpqWzZsVFTyafIg7UVTYZCYU35FX8B1vTeWW4BpoFH/N45KWloa/vz8DBw5k8eLFONZwxKmuE35h3qAAhUJJ3MZ4OlTsQNcGXRk5ciRXr17F379MXTtPx72ET2EUCmjQgJWxsRxTqVh87hxVHRxo7ejIKE8vlAU/XwuTknDs1JHwqVMJCQkxfObNEf33wktVET+3KozoPgMbJ8HwzzqZx/TyU9CjRw+2bdvG119/zZgxY4wdjqQUeazrtzBhmjdvLkaOHFnkueDgYDF58uRHen9qaqoARGpqammE99jUrl1bvPzyyyIyMlJYu/kLVdtBAhCqtoNE4DubDI9dnxkkps/8VFSwsREpt24JkZcnhFothFZbZH+vvPKKqFq1qtBoNCL38mUxxtNLAGKMh6eIrhUsxnh4Gh5vHzlSAOLcuXNGOvviREZGCkAcHe4ktg5yFJ2CbEXXICuxZGBVcfvz1kI7y1eIaRWKbjM8hVjSTYjtU4U486cQmYnGPo0n5vvvvxdKpVL8+eefwtbHVng9r/v/837eW4QsCxHez3sLQPg87yNOXT8lHB0dxezZs40d9tMRGyvEqlVCjBwpRHCwELpxOsOWbWMjxnh43Ptz7Oklcq9cEU2bNhV9+vQx9pmUGvrvxaS+C8Xo0E/EV8O3iW/f2CW6PNNLbN26VWjv+h2wFPLy8oSTk5MAxD///GPscCSlzONcv012RCcvLw9HR0d+++03ntcvdgaMGzeO48ePG7KUCpObm0tu7p31T9LS0qhUqVK5GdHZsGED1atXJycnh85vfU2Flv1IPbCK1P0/66ZWNGpUbQfh0epFRhxaxzt7fyq2D+09NgEke3mR7ubOwsREvkm8jY1CQb4QjPHwZISHBytzspkdE0OFChWwM/KUlZ78/HxSUlKIHOFEYz8rhBDF7lhTcuBwnJJDsQoOxyo5nqAgV2Med7UajQa1Wo1SqcSuix2eoZ4kbEggfn08CmsFQi3wft4br95epP8vnZurb2JtbY1LCRRrLS94a7W0zM2ldW4ubTUaXN09SHS/9+d4uIcHv2Rm8lVSInl5ebjfw+tjDui/F+/0XUglr5qG78Wuf35l/cHvsLWxxcHRAVtLWeeqAI1GQ1JSEu7u7iQkJMipKzPncUZ0yqcx4RG4ffs2Go0GHx+fIs/7+PgQFxd3z/fMmTOHDz/8sCzCeyL69OkD6IamrVW6woqubV4mNWK1rtq1lTWubV5GaDVcV9278KKSe6fSpVjrKomP8vRkUVIi+UJgo1AwytMTjRC45esMumlPUBqirNCLHCEEa6LVfLgnl/OJWvKMlHBUlgR46lY99n7Wm4SNCQi1QGGtwPtZb4RGoK2gRa1Wo1arDRl75kACcBpYWvD4WxsbOnL/z7GXVmvIMExIuMc0phmi/150qt+flMzb7D65Fk26Fo021ciRGYcXXnhBihxJEUxW6Oi5+w7/Xnf9et59910mTJhgeKwf0Skv7Nmzh/3799OzZ0/Uqbo02ZS/VxpEDho1KX+vxLXVi1yoHkBVDw/W/Porjvb2KIQArRa0WsPfyYmJHDpwgJ7du6PduBF2/8XC+HjDxSFfCBbevs1Ib29a9gnDaskSli9fTv1ysh5JdHQ0L774ouGxEILtFzVM25vPoWv5NKgXwvzZ42jVqpURoyw90tLSWLJkCY0aNWLWnlkAxP8RbxA5Qi2I/yMe7zBvOjftzIlGJ+jcuTNDhw41buAljBCC5cuXY2VlxcXFS+gILLx9u9jneISnJ/W6dCEcQXx8PJ9//rmxQy8V7vW9OHvjGJsjf+RyXDT16tVn7NgxZvu9eBDW1tbUqFHD2GFIyhulN4NWuuTm5gorKyuxbt26Is+PHTtWtGvX7pH2Ud48OvPnzxdKpVJs3rz5oR6dywkZQq1WP3B/a9asEYA4fvz4gz06Bd6GuLi4cjW/f7dHp2UlWwGIls2bWYQXITMzU6hUKjFkyJCHenSupl4VQoiHfiZMlXbt2olGjRqJQBsbMfohHh0hzLcfhCjq0flPr7kiyLeOAESL5i0s4nshkQjxeNdvkx3fs7W1pUmTJuzYsaPI8zt27KB169ZGiurpCA8Px8PDgylTpqBOvknO5ShUbQbi2moACsCj7UBcnxlEVZs0XK3zH5o+26dPHypVqsSoUaNQe3vj2KkjYzy9GOXjA0olo3x8GOPpRXaD+uS4ueHj41MuszYGrM2lx89Z4NeArVu3cuDgIbp3714uYy1JHB0dGTVqFL/88gt5t/LIOJmB13NeeId5o0CB33N++PT1ob5jfU7uOwlgtinVEydO5NixY1zNz+fvrCze9PBghKcnQqEwfI6VrVuxZPNmhBBm2w+F+XHXLBZsmYxXZRe2bt1KxMEIi/heSCSPi0lPXU2YMIHw8HCaNm1Kq1at+P7774mJiWHkyJHGDu2JcHFxYcOGDXTp0gVrW3tquNswaWI4N+0DuZacjTr1Fv+ezGHflk3s2rWLF/TL8N8HGxsb1qxZQ6dOnejQoQPfffcddT/5hJQ1a8m/cQO1uztB6em8/cXneM6Zw5w5c8roTB8Nb29vKvn74hVQifmPso6OGTJjxgwOHTrEX3v/wjPPkzmvzyHBN4GbGTdxES6kNExh4ZyF5F3Po1evXmbbP3369GH8+PF8O28e1x0d6fP5F3jdTkB94ybCy4vGCKYuXIg2MpL+/fub9cKB3t7eVPQPICCgIstnLLXI74VE8liU/gBT6TJ//nwRGBgobG1tRePGjcWePXse+b3lbepKz/Hjx0WXLl1EXFycEEKIIUOGCE9P3fB8vXr1xMaNGx9rf0ePHhW1a9cWW7ZsEUIIsWjRItG1a1dhZ2cnbG1txbhx40R+fn6Jn0dJkJOTY/FD8Xl5eeL//u//xGeffSaEEGL//v3Cz89PWFlZCWdnZzFmzBiRlZVl5CjLhoULF4rXX39dCCFERkaGCAgIEA4ODkKpVIrnn39eXLt2zcgRlg3yeyGxdCwivbwkKG8LBt6PH374gZiYGLp06UKbNm2e6O5N/9+sUChYvHgxW7dupXnz5rz22mtmffdrjpw8eZK1a9dSsWJFBgwYUK4/u6VJWloan376Ka6urgwYMICAgABjhySRSMqIx7l+S6FjAkJHIpFIJBLJHR7n+m2yZmSJRCKRSCSShyGFjkQikUgkErNFCh2JRCKRSCRmixQ6EolEIpFIzBYpdCQSiUQikZgtUuhIJBKJRCIxW6TQkUgkEolEYrZIoSORSCQSicRskUJHIpFIJBKJ2SKFjkQikUgkErNFCh2JRCKRSCRmi7WxAzAm+jJfaWlpRo5EIpFIJBLJo6K/bj9KuU6LFjrp6ekAVKpUyciRSCQSiUQieVzS09NRqVQPbGPR1cu1Wi03b97ExcUFhUJh7HDuS1paGpUqVeLatWsWXWVd9oMO2Q86ZD/okP1wB9kXOiyhH4QQpKen4+/vj1L5YBeORY/oKJVKAgICjB3GI1OhQgWz/dA+DrIfdMh+0CH7QYfshzvIvtBh7v3wsJEcPdKMLJFIJBKJxGyRQkcikUgkEonZIoWOCWBnZ8e0adOws7MzdihGRfaDDtkPOmQ/6JD9cAfZFzpkPxTFos3IEolEIpFIzBs5oiORSCQSicRskUJHIpFIJBKJ2SKFjkQikUgkErNFCh2JRCKRSCRmixQ6EolEIpFIzBYpdMo5CxYsoGrVqtjb29OkSRP27dtn7JCemDlz5tCsWTNcXFzw9vbmueee4+zZs0XaCCGYPn06/v7+ODg40KFDB06fPl2kTW5uLmPGjMHT0xMnJyf69OnD9evXi7RJTk4mPDwclUqFSqUiPDyclJSU0j7FJ2LOnDkoFArGjx9veM6S+uHGjRsMHjwYDw8PHB0dadiwIZGRkYbXLaEv1Go177//PlWrVsXBwYGgoCBmzJiBVqs1tDHHfti7dy9hYWH4+/ujUCj4/fffi7xeluccExNDWFgYTk5OeHp6MnbsWPLy8krjtIvxoH7Iz8/nnXfeoV69ejg5OeHv78+QIUO4efNmkX2YQz+UGkJSblm1apWwsbERixcvFtHR0WLcuHHCyclJXL161dihPRHdu3cXP/74ozh16pQ4fvy4CA0NFZUrVxYZGRmGNnPnzhUuLi5i7dq14uTJk2LAgAHCz89PpKWlGdqMHDlSVKxYUezYsUNERUWJjh07igYNGgi1Wm1o06NHDxESEiIOHDggDhw4IEJCQkTv3r3L9HwfhcOHD4sqVaqI+vXri3Hjxhmet5R+SEpKEoGBgWLo0KHi0KFD4vLly2Lnzp3iwoULhjaW0BezZs0SHh4eYtOmTeLy5cvit99+E87OzmLevHmGNubYD1u2bBFTpkwRa9euFYBYv359kdfL6pzVarUICQkRHTt2FFFRUWLHjh3C399fjB49utT7QIgH90NKSoro0qWLWL16tThz5oyIiIgQLVq0EE2aNCmyD3Poh9JCCp1yTPPmzcXIkSOLPBccHCwmT55spIhKlvj4eAGIPXv2CCGE0Gq1wtfXV8ydO9fQJicnR6hUKrFo0SIhhO5Lb2NjI1atWmVoc+PGDaFUKsXWrVuFEEJER0cLQBw8eNDQJiIiQgDizJkzZXFqj0R6erqoUaOG2LFjh2jfvr1B6FhSP7zzzjuibdu2933dUvoiNDRUvPbaa0We69u3rxg8eLAQwjL64e4LfFme85YtW4RSqRQ3btwwtFm5cqWws7MTqamppXK+9+Negu9uDh8+LADDTa859kNJIqeuyil5eXlERkbSrVu3Is9369aNAwcOGCmqkiU1NRUAd3d3AC5fvkxcXFyRc7azs6N9+/aGc46MjCQ/P79IG39/f0JCQgxtIiIiUKlUtGjRwtCmZcuWqFSqctV3b775JqGhoXTp0qXI85bUDxs2bKBp06b0798fb29vGjVqxOLFiw2vW0pftG3bll27dnHu3DkA/vnnH/bv30+vXr0Ay+mHwpTlOUdERBASEoK/v7+hTffu3cnNzS0yjVpeSE1NRaFQ4OrqClhuPzwqFl29vDxz+/ZtNBoNPj4+RZ738fEhLi7OSFGVHEIIJkyYQNu2bQkJCQEwnNe9zvnq1auGNra2tri5uRVro39/XFwc3t7exY7p7e1dbvpu1apVREVFceTIkWKvWVI/XLp0iYULFzJhwgTee+89Dh8+zNixY7Gzs2PIkCEW0xfvvPMOqampBAcHY2VlhUaj4aOPPuLll18GLOszoacszzkuLq7Ycdzc3LC1tS13/ZKTk8PkyZMZOHCgoTK5JfbD4yCFTjlHoVAUeSyEKPacKTJ69GhOnDjB/v37i732JOd8d5t7tS8vfXft2jXGjRvH9u3bsbe3v287c+8HAK1WS9OmTZk9ezYAjRo14vTp0yxcuJAhQ4YY2pl7X6xevZoVK1bwyy+/ULduXY4fP8748ePx9/fnlVdeMbQz9364F2V1zqbQL/n5+bz00ktotVoWLFjw0Pbm2g+Pi5y6Kqd4enpiZWVVTEXHx8cXU9ymxpgxY9iwYQO7d+8mICDA8Lyvry/AA8/Z19eXvLw8kpOTH9jm1q1bxY6bkJBQLvouMjKS+Ph4mjRpgrW1NdbW1uzZs4evv/4aa2trQ4zm3g8Afn5+1KlTp8hztWvXJiYmBrCcz8Tbb7/N5MmTeemll6hXrx7h4eG89dZbzJkzB7CcfihMWZ6zr69vseMkJyeTn59fbvolPz+fF198kcuXL7Njxw7DaA5YVj88CVLolFNsbW1p0qQJO3bsKPL8jh07aN26tZGiejqEEIwePZp169bxv//9j6pVqxZ5vWrVqvj6+hY557y8PPbs2WM45yZNmmBjY1OkTWxsLKdOnTK0adWqFampqRw+fNjQ5tChQ6SmppaLvuvcuTMnT57k+PHjhq1p06YMGjSI48ePExQUZBH9ANCmTZtiSwycO3eOwMBAwHI+E1lZWSiVRX+OraysDOnlltIPhSnLc27VqhWnTp0iNjbW0Gb79u3Y2dnRpEmTUj3PR0Evcs6fP8/OnTvx8PAo8rql9MMTU5bOZ8njoU8vX7p0qYiOjhbjx48XTk5O4sqVK8YO7YkYNWqUUKlU4q+//hKxsbGGLSsry9Bm7ty5QqVSiXXr1omTJ0+Kl19++Z7ppAEBAWLnzp0iKipKdOrU6Z5plPXr1xcREREiIiJC1KtXr9ykEt+LwllXQlhOPxw+fFhYW1uLjz76SJw/f178/PPPwtHRUaxYscLQxhL64pVXXhEVK1Y0pJevW7dOeHp6ikmTJhnamGM/pKeni2PHjoljx44JQHzxxRfi2LFjhmyisjpnfVp1586dRVRUlNi5c6cICAgos7TqB/VDfn6+6NOnjwgICBDHjx8v8tuZm5trVv1QWkihU86ZP3++CAwMFLa2tqJx48aGVGxTBLjn9uOPPxraaLVaMW3aNOHr6yvs7OxEu3btxMmTJ4vsJzs7W4wePVq4u7sLBwcH0bt3bxETE1OkTWJiohg0aJBwcXERLi4uYtCgQSI5ObkMzvLJuFvoWFI/bNy4UYSEhAg7OzsRHBwsvv/++yKvW0JfpKWliXHjxonKlSsLe3t7ERQUJKZMmVLkQmaO/bB79+57/ia88sorQoiyPeerV6+K0NBQ4eDgINzd3cXo0aNFTk5OaZ6+gQf1w+XLl+/727l7927DPsyhH0oLhRBClN34kUQikUgkEknZIT06EolEIpFIzBYpdCQSiUQikZgtUuhIJBKJRCIxW6TQkUgkEolEYrZIoSORSCQSicRskUJHIpFIJBKJ2SKFjkQikUgkErNFCh2JRCKRSCRmixQ6EolEIpFIzBYpdCQSiUQikZgtUuhIJBKJRCIxW/4fWx/G1AG10YcAAAAASUVORK5CYII=\n", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-20-4fed13948551>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 44\u001b[0m plot_comp=plot_comp)\n\u001b[1;32m 45\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 46\u001b[0;31m \u001b[0mcost\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrecorder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mproblem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptimize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/_topfarm.py\u001b[0m in \u001b[0;36moptimize\u001b[0;34m(self, state, disp)\u001b[0m\n\u001b[1;32m 444\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 445\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_driver\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 447\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcleanup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 448\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdisp\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/problem.py\u001b[0m in \u001b[0;36mrun_driver\u001b[0;34m(self, case_prefix, reset_iter_counts)\u001b[0m\n\u001b[1;32m 564\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_clear_iprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 565\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_scaled_context_all\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 566\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 567\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mrun_once\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/drivers/random_search_driver.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0mn_iter\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0msuccess\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mobj_value_x1\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mobj_value_x0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 190\u001b[0;31m \u001b[0mobj_value_x1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuccess\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobjective_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrecord\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 191\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/drivers/random_search_driver.py\u001b[0m in \u001b[0;36mobjective_callback\u001b[0;34m(self, x, record)\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miter_count\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 225\u001b[0;31m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_solve_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 226\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0;31m# Tell the optimizer that this is a bad point.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/group.py\u001b[0m in \u001b[0;36m_solve_nonlinear\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1560\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1561\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mRecording\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'._solve_nonlinear'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miter_count\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1562\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_nonlinear_solver\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msolve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1563\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1564\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_guess_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py\u001b[0m in \u001b[0;36msolve\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0;31m# If this is not a parallel group, transfer for each subsystem just prior to running it.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 40\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_gs_iter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 41\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0mrec\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/solvers/solver.py\u001b[0m in \u001b[0;36m_gs_iter\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 648\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msubsys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mloc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 650\u001b[0;31m \u001b[0msubsys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_solve_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 651\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 652\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_reconf_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubsys\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/explicitcomponent.py\u001b[0m in \u001b[0;36m_solve_nonlinear\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 218\u001b[0m self._discrete_outputs)\n\u001b[1;32m 219\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 220\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_inputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_outputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 221\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_inputs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_only\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/cost_models/electrical/simple_msp.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(self, inputs, outputs)\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 92\u001b[0;31m \u001b[0mXYPlotComp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 93\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhdisplay\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/plotting.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(self, inputs, outputs)\u001b[0m\n\u001b[1;32m 199\u001b[0m \u001b[0mcost0\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcost\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 200\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 201\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_current_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 202\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_title\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcost0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcost\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 203\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegendloc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/cost_models/electrical/simple_msp.py\u001b[0m in \u001b[0;36mplot_current_position\u001b[0;34m(self, x, y)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0melnet_layout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmst\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mindices\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0melnet_layout\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0mXYPlotComp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_current_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m \"\"\"\n\u001b[1;32m 1604\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalize_kwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLine2D\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1605\u001b[0;31m \u001b[0mlines\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1606\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1607\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 314\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 315\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_plot_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 316\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 317\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_next_color\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_plot_args\u001b[0;34m(self, tup, kwargs, return_kwargs)\u001b[0m\n\u001b[1;32m 537\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 539\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ml\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 537\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 539\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ml\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 530\u001b[0m \u001b[0mlabels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mn_datasets\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 531\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 532\u001b[0;31m result = (make_artist(x[:, j % ncx], y[:, j % ncy], kw,\n\u001b[0m\u001b[1;32m 533\u001b[0m {**kwargs, 'label': label})\n\u001b[1;32m 534\u001b[0m for j, label in enumerate(labels))\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_makeline\u001b[0;34m(self, x, y, kw, kwargs)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[0mdefault_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getdefaults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 353\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setdefaults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdefault_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 354\u001b[0;31m \u001b[0mseg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLine2D\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 355\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mseg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 356\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/lines.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, xdata, ydata, linewidth, linestyle, color, marker, markersize, markeredgewidth, markeredgecolor, markerfacecolor, markerfacecoloralt, fillstyle, antialiased, dash_capstyle, solid_capstyle, dash_joinstyle, solid_joinstyle, pickradius, drawstyle, markevery, **kwargs)\u001b[0m\n\u001b[1;32m 395\u001b[0m \u001b[0;31m# update kwargs before updating data to give the caller a\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[0;31m# chance to init axes (and hence unit support)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 397\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 398\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpickradius\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpickradius\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mind_offset\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mupdate\u001b[0;34m(self, props)\u001b[0m\n\u001b[1;32m 1062\u001b[0m raise AttributeError(f\"{type(self).__name__!r} object \"\n\u001b[1;32m 1063\u001b[0m f\"has no property {k!r}\")\n\u001b[0;32m-> 1064\u001b[0;31m \u001b[0mret\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1065\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1066\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpchanged\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mset_label\u001b[0;34m(self, s)\u001b[0m\n\u001b[1;32m 1085\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1086\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_label\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1087\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpchanged\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1088\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstale\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1089\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mpchanged\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 365\u001b[0m \u001b[0mremove_callback\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 366\u001b[0m \"\"\"\n\u001b[0;32m--> 367\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"pchanged\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 368\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 369\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mis_transform_set\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36mprocess\u001b[0;34m(self, s, *args, **kwargs)\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0mcalled\u001b[0m \u001b[0;32mwith\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m \u001b[0;32mand\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 265\u001b[0m \"\"\"\n\u001b[0;32m--> 266\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mcid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mref\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 267\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mref\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], - "source": [ - "## Some user options\n", - "#@markdown Which IRR Cost model to use\n", - "IRR_COST = 'DTU' #@param [\"DTU\", \"NREL\"]\n", - "\n", - "#@markdown Minimum spacing between the turbines\n", - "min_spacing = 2 #@param {type:\"slider\", min:2, max:10, step:1}\n", - "\n", - "#@markdown Minimum spacing between the turbines\n", - "cable_cost_per_meter = 750. #@param {type:\"slider\", min:0, max:10000, step:1}\n", - "\n", - "## Electrical grid cable components (Minimum spanning tree from Topfarm report 2010)\n", - "elnetlength = ElNetLength(n_wt=n_wt)\n", - "elnetcost = ElNetCost(n_wt=n_wt, output_key='electrical_connection_cost', cost_per_meter=cable_cost_per_meter)\n", - "\n", - "# The Topfarm IRR cost model components\n", - "irr_dtu_comp = CostModelComponent(input_keys=[('aep',np.zeros(n_wt)), ('electrical_connection_cost', 0.0)], n_wt=n_wt, \n", - " cost_function=irr_dtu, output_key=\"irr\", output_unit=\"%\", objective=True, \n", - " income_model=True)\n", - "irr_nrel_comp = CostModelComponent(input_keys=[('aep', np.zeros(n_wt)), ('electrical_connection_cost', 0.0)], n_wt=n_wt, \n", - " cost_function=irr_nrel, output_key=\"irr\", output_unit=\"%\", objective=True, \n", - " income_model=True)\n", - "irr_cost_models = {'DTU': irr_dtu_comp, 'NREL': irr_nrel_comp}\n", - "\n", - "\n", - "## The Topfarm AEP component, returns an array of AEP per turbine\n", - "aep_comp = CostModelComponent(input_keys=['x','y'], n_wt=n_wt, cost_function=aep_func, \n", - " output_key=\"aep\", output_unit=\"GWh\", objective=False, output_val=np.zeros(n_wt))\n", - "\n", - "## Plotting component\n", - "plot_comp = XYCablePlotComp(memory=0, plot_improvements_only=False, plot_initial=False)\n", - "\n", - "\n", - "## The group containing all the components\n", - "group = TopFarmGroup([aep_comp, elnetlength, elnetcost, irr_cost_models[IRR_COST]])\n", - "\n", - "problem = TopFarmProblem(\n", - " design_vars={'x':site.initial_position[:,0],\n", - " 'y':site.initial_position[:,1]},\n", - " cost_comp=group,\n", - " driver=EasyRandomSearchDriver(randomize_func=RandomizeTurbinePosition_Circle(), max_iter=100),\n", - " constraints=[SpacingConstraint(min_spacing * windTurbines.diameter(0)),\n", - " XYBoundaryConstraint(site.boundary)],\n", - " expected_cost=1.0,\n", - " plot_comp=plot_comp)\n", - "\n", - "cost, state, recorder = problem.optimize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercises\n", - "- Try to see what is the effect of increasing or decreasing the cost of the cable\n", - "- Change between IRR cost model. Ask Witold about the difference between DTU and NREL models" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "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.9.5" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Roads and Cables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Try this yourself](https://colab.research.google.com/github/DTUWindEnergy/TopFarm2/blob/master/docs/notebooks/roads_and_cables.ipynb) (requires google account)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": {}, + "outputs": [], + "source": [ + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In colab, use the \"inline\" backend" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# non-updating, inline plots\n", + "%matplotlib inline\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "# ...or updating plots in new window\n", + "#%matplotlib qt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's import a few classes" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from topfarm.cost_models.cost_model_wrappers import CostModelComponent\n", + "from topfarm import TopFarmGroup, TopFarmProblem\n", + "from topfarm.easy_drivers import EasyRandomSearchDriver, EasyScipyOptimizeDriver\n", + "from topfarm.drivers.random_search_driver import RandomizeTurbinePosition_Circle\n", + "from topfarm.constraint_components.spacing import SpacingConstraint\n", + "from topfarm.constraint_components.boundary import XYBoundaryConstraint\n", + "from topfarm.cost_models.electrical.simple_msp import ElNetLength, ElNetCost, XYCablePlotComp\n", + "from topfarm.cost_models.utils.spanning_tree import mst\n", + "\n", + "from py_wake.site import UniformWeibullSite\n", + "from py_wake.site.shear import PowerShear\n", + "\n", + "import matplotlib.pylab as plt\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "def get_site():\n", + " f = [0.035972, 0.039487, 0.051674, 0.070002, 0.083645, 0.064348,\n", + " 0.086432, 0.117705, 0.151576, 0.147379, 0.10012, 0.05166]\n", + " A = [9.176929, 9.782334, 9.531809, 9.909545, 10.04269, 9.593921,\n", + " 9.584007, 10.51499, 11.39895, 11.68746, 11.63732, 10.08803]\n", + " k = [2.392578, 2.447266, 2.412109, 2.591797, 2.755859, 2.595703,\n", + " 2.583984, 2.548828, 2.470703, 2.607422, 2.626953, 2.326172]\n", + " ti = 0.001\n", + " h_ref = 100\n", + " alpha = .1\n", + " site = UniformWeibullSite(f, A, k, ti, shear=PowerShear(h_ref=h_ref, alpha=alpha))\n", + " spacing = 2000\n", + " N = 5\n", + " theta = 76 # deg\n", + " dx = np.tan(np.radians(theta))\n", + " x = np.array([np.linspace(0,(N-1)*spacing,N)+i*spacing/dx for i in range(N)])\n", + " y = np.array(np.array([N*[i*spacing] for i in range(N)]))\n", + " initial_positions = np.column_stack((x.ravel(),y.ravel()))\n", + " eps = 2000\n", + " delta = 5\n", + " site.boundary = np.array([(0-delta, 0-delta),\n", + " ((N-1)*spacing+eps, 0-delta),\n", + " ((N-1)*spacing*(1+1/dx)+eps*(1+np.cos(np.radians(theta))), (N-1)*spacing+eps*np.sin(np.radians(theta))-delta),\n", + " ((N-1)*spacing/dx+eps*np.cos(np.radians(theta)), (N-1)*spacing+eps*np.sin(np.radians(theta)))])\n", + " site.initial_position = initial_positions\n", + " return site" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting up the site to optimize\n", + "We will use the IEA-37 site, using the DTU 10MW reference turbine" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of turbines: 25\n" + ] + } + ], + "source": [ + "from py_wake.examples.data.dtu10mw import DTU10MW\n", + "\n", + "site = get_site()\n", + "n_wt = len(site.initial_position)\n", + "windTurbines = DTU10MW()\n", + "Drotor_vector = [windTurbines.diameter()] * n_wt \n", + "power_rated_vector = [float(windTurbines.power(20)/1000)] * n_wt \n", + "hub_height_vector = [windTurbines.hub_height()] * n_wt \n", + "rated_rpm_array = 12. * np.ones([n_wt])\n", + "\n", + "print('Number of turbines:', n_wt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Quickly plotting the site boundary and initial position" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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xvz85z83brfbvPrqq2bnzp3me9/7Xoe3ew4fPty89dZbZvv27ebrX/96h7cyXnbZZaa4uNgUFxebcePGOe7W165ofdeVMerPli1bTHJysnn88cfNZ599Zl566SXTt29fs2rVKmtMPPfolltuMRdccIF1e/mrr75qhg4dah588EFrTDz1p6GhwezYscPs2LHDAGb58uVmx44d1h1DvdWL4K3T1113ndm+fbt56623zPDhwx1xe3m4HrW0tJh58+aZ4cOHm9LS0pD37aamJus5YrFHCjo94NlnnzUjR440qamp5sorr7RuuY4lQIcfv//9760xfr/fPPbYY8bj8RiXy2WuueYas3PnzpDnOXnypLnrrrvM4MGDTZ8+fcycOXNMRUVFyJgvv/zS3HzzzSY9Pd2kp6ebm2++2dTV1fXCq4ystkFH/TFm3bp1Ji8vz7hcLnPJJZeY559/PuTr8dyj+vp6c88995gRI0aYtLQ0M3r0aPPoo4+G/FGKp/688847Hb7n3HLLLcaY3u3FgQMHzI033mj69OljBg8ebO666y7T2NjYky+/S8L1qLy8/Kzv2++88471HLHYowRjjOm940ciIiIivUfX6IiIiEjMUtARERGRmKWgIyIiIjFLQUdERERiloKOiIiIxCwFHREREYlZCjoiIiISsxR0REREJGYp6IiIiEjMUtARERGRmKWgIyIiIjFLQUdERERi1v8PKebldwWk8fIAAAAASUVORK5CYII=\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(site.initial_position[:,0], site.initial_position[:,1], 'o')\n", + "ind = list(range(len(site.boundary))) + [0]\n", + "pt = plt.plot(site.boundary[ind,0], site.boundary[ind,1], '-')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting up the AEP calculator\n", + "- Using the Gaussian wake model from Bastankhah & Porté Agel\n", + "- Based on 16 wind direction to speed things up (not critical here because we will be using the RandomSearch algorithm)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian\n", + "from py_wake.aep_calculator import AEPCalculator\n", + "\n", + "## We use the Gaussian wake model\n", + "wake_model = IEA37SimpleBastankhahGaussian(site, windTurbines)\n", + "\n", + "## The AEP is calculated using n_wd wind directions\n", + "n_wd = 16\n", + "wind_directions = np.linspace(0., 360., n_wd, endpoint=False)\n", + "\n", + "def aep_func(x, y, **kwargs):\n", + " \"\"\"A simple function that takes as input the x,y position of the turbines and return the AEP per turbine\"\"\"\n", + " return wake_model(x=x, y=y, wd=wind_directions).aep().sum('wd').sum('ws').values*10**6" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([48951465.12270607, 48201050.47235204, 48074496.39187684,\n", + " 48091563.80680869, 48445617.28814225, 48836394.16658428,\n", + " 48071863.46810313, 47814362.6852063 , 47837628.23097131,\n", + " 48208400.31612337, 48842864.111101 , 48084779.74156096,\n", + " 47877873.48662869, 47893042.54928257, 48272147.94935018,\n", + " 48739999.86619873, 47999291.34685232, 47768651.4696867 ,\n", + " 47854282.08031107, 48249587.04727601, 48779201.65440664,\n", + " 48053197.5070104 , 47829089.74539277, 47887992.1373282 ,\n", + " 48326743.1406377 ])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aep_func(site.initial_position[:,0], site.initial_position[:,1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting up the NREL IRR cost model\n", + "Based on the 2006 NREL report" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "from topfarm.cost_models.economic_models.turbine_cost import economic_evaluation as EE_NREL\n", + "\n", + "def irr_nrel(aep, electrical_connection_cost, **kwargs):\n", + " return EE_NREL(Drotor_vector, power_rated_vector, hub_height_vector, aep, electrical_connection_cost).calculate_irr()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting up the DTU IRR cost model\n", + "Based on Witold's recent work" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "from topfarm.cost_models.economic_models.dtu_wind_cm_main import economic_evaluation as EE_DTU\n", + "\n", + "distance_from_shore = 10.0 # [km]\n", + "energy_price = 0.2 / 7.4 # [DKK/kWh] / [DKK/EUR] -> [EUR/kWh]\n", + "project_duration = 20 # [years]\n", + "water_depth_array = 20 * np.ones([n_wt])\n", + "Power_rated_array = np.array(power_rated_vector)/1.0E3 # [MW]\n", + "\n", + "ee_dtu = EE_DTU(distance_from_shore, energy_price, project_duration)\n", + "\n", + "\n", + "def irr_dtu(aep, electrical_connection_cost, **kwargs):\n", + " ee_dtu.calculate_irr(\n", + " rated_rpm_array, \n", + " Drotor_vector, \n", + " Power_rated_array,\n", + " hub_height_vector, \n", + " water_depth_array, \n", + " aep, \n", + " electrical_connection_cost)\n", + " return ee_dtu.IRR" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting up the Topfarm problem" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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RGffvn0C5NrzdatbX0sRrQejT58+OXp+3n77bfH19ZXatWvf8VyFmeiEh4cLIG+99Vaej8n2888/i4eHh8TExEhUVJRUqFBB5s+fLykpKfLee+9JnTp17toDt3fvXgFk2bJltz0WGhoqBw8ezPEDyOTJk3Pcd+zYMfMxMTExYm9vn2sS7ufnJzVq1Mj3NYqIBAcHi7W1tbz22mvm+95++22xsbHJkfyIiGzbtk0AWbRo0R3PFxUVJZUqVTJf99ChQ6V3794SFxcnBw4cEEdHR9m2bVuOY9LT0wWQiRMn3tc1KGWPqtFRlFy0adMGo9HIpUuXADhx4gRGo5F27drh4uJi/gGYP38+Li4ut61PEhMTA2jFuPfjbuvd5HctnIIm1+uO8lJPcutrCeDu7s4///xDREQE//33H5GRkUydOpVz587RpUuXQos7L/JbIxMdHc3EiRP5+uuvcXFxwd/fH71ez0svvYS9vT1vvfUWFy5c4Ny5c3c8R/bfSPbfzM0qV65Mq1atcvyAtr7Rzfc1adLEfMzZs2dJTU2ldevWt52vVatWBAUFkZSUlK/rBKhatSqVK1fOcS1Hjx6lSpUqeHl55Wib/dx3q6WZOHEivr6+DB48GID169czZswYnJ2dad26NT179uSff/7JccyD/rtSyp7cp5UoShm3fft29Ho9tWrVAmDEiBG5LlTXrVs3HnvsMV5//XUaN26c47FLly6h1+vzPfumJPjll18AaNeu3T3b3vpa3szd3R13d3dAK7BOTk6+bQHGovLzzz8Debumm02YMIHWrVszaNAgQEsC09PTMRqNWFtbmxMKuUtRure3N/b29ly8ePE+o8+pcuXKgDbDbfjw4eb7RYR9+/bh4uKSY+ZYXl24cIGQkBAGDBiQ47m2bt1KaGgoVapUMd+fvehh1apVcz3X9u3bWblyZY5ESERITk42305KSrrtdctOmBs1apTv+JWySSU6Spk2atQoypcvT5s2bfDw8CAqKoqVK1fy66+/8uabb5qn09aoUYMaNWrkeo4qVarkmgTt27eP5s2bm3t+LOXy5cscPHgQwPxBumrVKuBGr0B2u9q1azN8+HB++uknAJYtW8bq1avp27cv3t7exMXFsXLlSlasWMGIESNo1qyZ+Xny+lqC1gsGULt2beLi4li/fj0//fQTM2fOpGXLljniP3TokHnq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\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-20-4fed13948551>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 44\u001b[0m plot_comp=plot_comp)\n\u001b[1;32m 45\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 46\u001b[0;31m \u001b[0mcost\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrecorder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mproblem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptimize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/_topfarm.py\u001b[0m in \u001b[0;36moptimize\u001b[0;34m(self, state, disp)\u001b[0m\n\u001b[1;32m 444\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 445\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 446\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_driver\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 447\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcleanup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 448\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdisp\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/problem.py\u001b[0m in \u001b[0;36mrun_driver\u001b[0;34m(self, case_prefix, reset_iter_counts)\u001b[0m\n\u001b[1;32m 564\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_clear_iprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 565\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_scaled_context_all\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 566\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 567\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mrun_once\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/drivers/random_search_driver.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0mn_iter\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0msuccess\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mobj_value_x1\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mobj_value_x0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 190\u001b[0;31m \u001b[0mobj_value_x1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuccess\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobjective_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrecord\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 191\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/drivers/random_search_driver.py\u001b[0m in \u001b[0;36mobjective_callback\u001b[0;34m(self, x, record)\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miter_count\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 225\u001b[0;31m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_solve_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 226\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0;31m# Tell the optimizer that this is a bad point.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/group.py\u001b[0m in \u001b[0;36m_solve_nonlinear\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1560\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1561\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mRecording\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'._solve_nonlinear'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miter_count\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1562\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_nonlinear_solver\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msolve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1563\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1564\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_guess_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py\u001b[0m in \u001b[0;36msolve\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0;31m# If this is not a parallel group, transfer for each subsystem just prior to running it.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 40\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_gs_iter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 41\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0mrec\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/solvers/solver.py\u001b[0m in \u001b[0;36m_gs_iter\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 648\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msubsys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mloc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 650\u001b[0;31m \u001b[0msubsys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_solve_nonlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 651\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 652\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_reconf_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubsys\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/openmdao/core/explicitcomponent.py\u001b[0m in \u001b[0;36m_solve_nonlinear\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 218\u001b[0m self._discrete_outputs)\n\u001b[1;32m 219\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 220\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_inputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_outputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 221\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_inputs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_only\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/cost_models/electrical/simple_msp.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(self, inputs, outputs)\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 92\u001b[0;31m \u001b[0mXYPlotComp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 93\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhdisplay\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/plotting.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(self, inputs, outputs)\u001b[0m\n\u001b[1;32m 199\u001b[0m \u001b[0mcost0\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcost\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 200\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 201\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_current_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 202\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_title\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcost0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcost\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 203\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegendloc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Projects/2021-course wind farm design/Industry week/topfarm/TopFarm2/topfarm/cost_models/electrical/simple_msp.py\u001b[0m in \u001b[0;36mplot_current_position\u001b[0;34m(self, x, y)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0melnet_layout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmst\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mindices\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0melnet_layout\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0mXYPlotComp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_current_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, scalex, scaley, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m \"\"\"\n\u001b[1;32m 1604\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalize_kwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLine2D\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1605\u001b[0;31m \u001b[0mlines\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1606\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1607\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 314\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 315\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_plot_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 316\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 317\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_next_color\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_plot_args\u001b[0;34m(self, tup, kwargs, return_kwargs)\u001b[0m\n\u001b[1;32m 537\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 539\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ml\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 537\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 539\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ml\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 541\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 530\u001b[0m \u001b[0mlabels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mn_datasets\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 531\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 532\u001b[0;31m result = (make_artist(x[:, j % ncx], y[:, j % ncy], kw,\n\u001b[0m\u001b[1;32m 533\u001b[0m {**kwargs, 'label': label})\n\u001b[1;32m 534\u001b[0m for j, label in enumerate(labels))\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_makeline\u001b[0;34m(self, x, y, kw, kwargs)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[0mdefault_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getdefaults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 353\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setdefaults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdefault_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 354\u001b[0;31m \u001b[0mseg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLine2D\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 355\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mseg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 356\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/lines.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, xdata, ydata, linewidth, linestyle, color, marker, markersize, markeredgewidth, markeredgecolor, markerfacecolor, markerfacecoloralt, fillstyle, antialiased, dash_capstyle, solid_capstyle, dash_joinstyle, solid_joinstyle, pickradius, drawstyle, markevery, **kwargs)\u001b[0m\n\u001b[1;32m 395\u001b[0m \u001b[0;31m# update kwargs before updating data to give the caller a\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[0;31m# chance to init axes (and hence unit support)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 397\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 398\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpickradius\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpickradius\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mind_offset\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mupdate\u001b[0;34m(self, props)\u001b[0m\n\u001b[1;32m 1062\u001b[0m raise AttributeError(f\"{type(self).__name__!r} object \"\n\u001b[1;32m 1063\u001b[0m f\"has no property {k!r}\")\n\u001b[0;32m-> 1064\u001b[0;31m \u001b[0mret\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1065\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1066\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpchanged\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mset_label\u001b[0;34m(self, s)\u001b[0m\n\u001b[1;32m 1085\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1086\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_label\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1087\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpchanged\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1088\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstale\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1089\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/artist.py\u001b[0m in \u001b[0;36mpchanged\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 365\u001b[0m \u001b[0mremove_callback\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 366\u001b[0m \"\"\"\n\u001b[0;32m--> 367\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"pchanged\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 368\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 369\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mis_transform_set\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniforge3/envs/tensorconda/lib/python3.8/site-packages/matplotlib/cbook/__init__.py\u001b[0m in \u001b[0;36mprocess\u001b[0;34m(self, s, *args, **kwargs)\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0mcalled\u001b[0m \u001b[0;32mwith\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m \u001b[0;32mand\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 265\u001b[0m \"\"\"\n\u001b[0;32m--> 266\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mcid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mref\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 267\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mref\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "## Some user options\n", + "#@markdown Which IRR Cost model to use\n", + "IRR_COST = 'DTU' #@param [\"DTU\", \"NREL\"]\n", + "\n", + "#@markdown Minimum spacing between the turbines\n", + "min_spacing = 2 #@param {type:\"slider\", min:2, max:10, step:1}\n", + "\n", + "#@markdown Minimum spacing between the turbines\n", + "cable_cost_per_meter = 750. #@param {type:\"slider\", min:0, max:10000, step:1}\n", + "\n", + "## Electrical grid cable components (Minimum spanning tree from Topfarm report 2010)\n", + "elnetlength = ElNetLength(n_wt=n_wt)\n", + "elnetcost = ElNetCost(n_wt=n_wt, output_key='electrical_connection_cost', cost_per_meter=cable_cost_per_meter)\n", + "\n", + "# The Topfarm IRR cost model components\n", + "irr_dtu_comp = CostModelComponent(input_keys=[('aep',np.zeros(n_wt)), ('electrical_connection_cost', 0.0)], n_wt=n_wt, \n", + " cost_function=irr_dtu, output_key=\"irr\", output_unit=\"%\", objective=True, \n", + " income_model=True)\n", + "irr_nrel_comp = CostModelComponent(input_keys=[('aep', np.zeros(n_wt)), ('electrical_connection_cost', 0.0)], n_wt=n_wt, \n", + " cost_function=irr_nrel, output_key=\"irr\", output_unit=\"%\", objective=True, \n", + " income_model=True)\n", + "irr_cost_models = {'DTU': irr_dtu_comp, 'NREL': irr_nrel_comp}\n", + "\n", + "\n", + "## The Topfarm AEP component, returns an array of AEP per turbine\n", + "aep_comp = CostModelComponent(input_keys=['x','y'], n_wt=n_wt, cost_function=aep_func, \n", + " output_key=\"aep\", output_unit=\"GWh\", objective=False, output_val=np.zeros(n_wt))\n", + "\n", + "## Plotting component\n", + "plot_comp = XYCablePlotComp(memory=0, plot_improvements_only=False, plot_initial=False)\n", + "\n", + "\n", + "## The group containing all the components\n", + "group = TopFarmGroup([aep_comp, elnetlength, elnetcost, irr_cost_models[IRR_COST]])\n", + "\n", + "problem = TopFarmProblem(\n", + " design_vars={'x':site.initial_position[:,0],\n", + " 'y':site.initial_position[:,1]},\n", + " cost_comp=group,\n", + " driver=EasyRandomSearchDriver(randomize_func=RandomizeTurbinePosition_Circle(), max_iter=100),\n", + " constraints=[SpacingConstraint(min_spacing * windTurbines.diameter(0)),\n", + " XYBoundaryConstraint(site.boundary)],\n", + " expected_cost=1.0,\n", + " plot_comp=plot_comp)\n", + "\n", + "cost, state, recorder = problem.optimize()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercises\n", + "- Try to see what is the effect of increasing or decreasing the cost of the cable\n", + "- Change between IRR cost model. Ask Witold about the difference between DTU and NREL models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "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.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/notebooks/wake_steering_and_loads.ipynb b/docs/notebooks/wake_steering_and_loads.ipynb index 4bd77b65..82a8b256 100644 --- a/docs/notebooks/wake_steering_and_loads.ipynb +++ b/docs/notebooks/wake_steering_and_loads.ipynb @@ -42,15 +42,10 @@ }, "outputs": [], "source": [ - "%%capture\n", - "try:\n", - " import py_wake\n", - "except:\n", - " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git\n", - "try:\n", - " import topfarm\n", - "except:\n", - " !pip install topfarm" + "# Install TopFarm if needed\n", + "import importlib\n", + "if not importlib.util.find_spec(\"topfarm\"):\n", + " !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git" ] }, { @@ -543,15 +538,6 @@ "# simulationResult = wfm(x,y,wd=wdir[0], ws=wsp[0], yaw=state['yaw_ilk'][:,0,0])\n", "# simulationResult.flow_map().plot_wake_map()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ByIaS1WJ7C2T" - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/source/examples.rst b/docs/source/examples.rst index aeac0393..bc784978 100644 --- a/docs/source/examples.rst +++ b/docs/source/examples.rst @@ -23,4 +23,5 @@ You can also `launch them via Binder <https://mybinder.org/v2/git/https%3A%2F%2F examples_nblinks/wake_steering_and_loads_nb examples_nblinks/layout_and_loads_nb examples_nblinks/bathymetry_nb + examples_nblinks/exclusion_zones_nb diff --git a/docs/source/examples_nblinks/exclusion_zones_nb.nblink b/docs/source/examples_nblinks/exclusion_zones_nb.nblink new file mode 100644 index 00000000..88bcff01 --- /dev/null +++ b/docs/source/examples_nblinks/exclusion_zones_nb.nblink @@ -0,0 +1,3 @@ +{ + "path": "../../notebooks/exclusion_zones.ipynb" +} \ No newline at end of file diff --git a/examples/docs/example_2_wake_comparison.py b/examples/docs/example_2_wake_comparison.py index 5de212f4..b1b317e6 100644 --- a/examples/docs/example_2_wake_comparison.py +++ b/examples/docs/example_2_wake_comparison.py @@ -18,8 +18,6 @@ from topfarm.constraint_components.spacing import SpacingConstraint from topfarm.cost_models.py_wake_wrapper import PyWakeAEPCostModelComponent from topfarm.easy_drivers import EasyScipyOptimizeDriver from topfarm.plotting import XYPlotComp, NoPlot -from topfarm.cost_models.dummy import DummyCost -from py_wake.wind_farm_models.wind_farm_model import WindFarmModel def main(): @@ -63,7 +61,9 @@ def main(): constraints=[SpacingConstraint(min_spacing), XYBoundaryConstraint(boundary)], driver=EasyScipyOptimizeDriver(), - plot_comp=plot_comp()) + plot_comp=plot_comp(), + expected_cost = 1e-4, + ) # GCL: define the wake model and optimization problem tf_gcl = get_tf(GCL(site, wt)) @@ -129,5 +129,4 @@ def main(): folder, file = os.path.split(__file__) fig.savefig(folder + "/figures/" + file.replace('.py', '.png')) - main() diff --git a/examples/docs/example_8_irr_opt_with_capacityconst_turbine_type.py b/examples/docs/example_8_irr_opt_with_capacityconst_turbine_type.py index 99d404b4..c0e8dbb3 100644 --- a/examples/docs/example_8_irr_opt_with_capacityconst_turbine_type.py +++ b/examples/docs/example_8_irr_opt_with_capacityconst_turbine_type.py @@ -19,7 +19,7 @@ import time def cube_power(ws_cut_in=3, ws_cut_out=25, ws_rated=12, power_rated=5000): def power_func(ws): ws = np.asarray(ws) - power = np.zeros_like(ws, dtype=np.float) + power = np.zeros_like(ws, dtype=float) m = (ws >= ws_cut_in) & (ws < ws_rated) power[m] = power_rated * ((ws[m] - ws_cut_in) / (ws_rated - ws_cut_in))**3 power[(ws >= ws_rated) & (ws <= ws_cut_out)] = power_rated @@ -31,7 +31,7 @@ def dummy_thrust(ws_cut_in=3, ws_cut_out=25, ws_rated=12, ct_rated=8 / 9): # temporary thrust curve fix def ct_func(ws): ws = np.asarray(ws) - ct = np.zeros_like(ws, dtype=np.float) + ct = np.zeros_like(ws, dtype=float) if ct_rated > 0: # ct = np.ones_like(ct)*ct_rated m = (ws >= ws_cut_in) & (ws < ws_rated) @@ -46,7 +46,7 @@ def dummy_thrust(ws_cut_in=3, ws_cut_out=25, ws_rated=12, ct_rated=8 / 9): # ----------- SELECT OBJECTIVE & TURN ON/OFF CONSTRAINT -------------- # obj = False # objective AEP (True), IRR (False) # max_con_on = False # max installed capacity constraint ON (True), OFF (False) -def main(obj=False, max_con_on=True): +def main(obj=True, max_con_on=True): if __name__ == '__main__': start = time.time() try: @@ -160,6 +160,6 @@ def main(obj=False, max_con_on=True): plt.show() -for ii in [True, False]: +for ii in [True]: for jj in [True, False]: main(obj=ii, max_con_on=jj) diff --git a/examples/docs/figures/example_1_constrained_layout_optimization.png b/examples/docs/figures/example_1_constrained_layout_optimization.png index fb807e756aa66f285a0e2b5840a9757f12c2c6ea..4bb559973ecf54cbdcb90f51cdfbd139fba640ab 100644 GIT binary patch literal 30777 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 literal 30088 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%0Asr{kt-}| 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 YCan9}zN*0;1pKKgX}qjbu>A0U0G4v)xBvhE diff --git a/examples/docs/figures/example_2_wake_comparison.png b/examples/docs/figures/example_2_wake_comparison.png index 8ee7955e33881c0a77078cf76c07c363446ad9ce..199d9fd247b18065eb534651fc36c0e2df27e133 100644 GIT binary patch literal 8476 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 E1+HzQk^lez literal 8247 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 L4pDr<<Bxv<sizG$ diff --git a/examples/optimization_course/exclusion_zones.py b/examples/optimization_course/exclusion_zones.py new file mode 100644 index 00000000..c58b2eb6 --- /dev/null +++ b/examples/optimization_course/exclusion_zones.py @@ -0,0 +1,198 @@ +import numpy as np +import matplotlib.pyplot as plt +import time + +from topfarm.cost_models.cost_model_wrappers import CostModelComponent +from topfarm.easy_drivers import EasyScipyOptimizeDriver, EasyRandomSearchDriver +from topfarm.drivers.random_search_driver import RandomizeTurbinePosition +from topfarm import TopFarmProblem +from topfarm.plotting import NoPlot, XYPlotComp +from topfarm.constraint_components.boundary import XYBoundaryConstraint +from topfarm.constraint_components.spacing import SpacingConstraint +from topfarm.examples.data.parque_ficticio_offshore import ParqueFicticioOffshore + +from py_wake.deficit_models.gaussian import IEA37SimpleBastankhahGaussian +from py_wake.examples.data.iea37._iea37 import IEA37_WindTurbines + +plt.close('all') + +site = ParqueFicticioOffshore() +site.bounds = 'ignore' +x_init, y_init = site.initial_position[:,0], site.initial_position[:,1] +boundary = site.boundary +# # # Wind turbines and wind farm model definition +windTurbines = IEA37_WindTurbines() +wfm = IEA37SimpleBastankhahGaussian(site, windTurbines) + +wsp = np.asarray([10, 15]) +wdir = np.arange(0,360,45) +maximum_water_depth = -52 +n_wt = x_init.size +maxiter = 100 + +def aep_func(x, y, **kwargs): + simres = wfm(x, y, wd=wdir, ws=wsp) + aep = simres.aep().values.sum() + water_depth = np.diag(wfm.site.ds.interp(x=x, y=y)['water_depth']) + return [aep, water_depth] + +tol = 1e-8 +ec = 1e-2 +min_spacing = 260 + +cost_comp = CostModelComponent(input_keys=[('x', x_init),('y', y_init)], + n_wt=n_wt, + cost_function=aep_func, + objective=True, + maximize=True, + output_keys=[('AEP', 0), ('water_depth', np.zeros(n_wt))] + ) +problem = TopFarmProblem(design_vars={'x': x_init, 'y': y_init}, + constraints=[XYBoundaryConstraint(boundary), + SpacingConstraint(min_spacing)], + post_constraints=[('water_depth', {'lower': np.ones(n_wt) * maximum_water_depth})], + cost_comp=cost_comp, + driver=EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol), + # driver=EasyRandomSearchDriver(RandomizeTurbinePosition()), + plot_comp=XYPlotComp(), + expected_cost=ec) + +if 1: + tic = time.time() + cost, state, recorder = problem.optimize() + toc = time.time() + print('Optimization took: {:.0f}s'.format(toc-tic)) + + plt.figure() + plt.plot(recorder['water_depth'].min((1))) + plt.plot([0,recorder['water_depth'].shape[0]],[maximum_water_depth, maximum_water_depth]) + plt.xlabel('Iteration') + plt.ylabel('Max depth [m]') + plt.show() + +values = site.ds.water_depth.values +x = site.ds.x.values +y = site.ds.y.values +levels = np.arange(int(values.min()), int(values.max())) +max_wd_index = int(np.argwhere(levels==maximum_water_depth)) +# Y, X = np.meshgrid(y, x) + +fig1, ax1 = plt.subplots(1) +cs = plt.contour(x, y , values.T, levels) +lines = [] +for line in cs.collections[max_wd_index].get_paths(): + lines.append(line.vertices) +fig2, ax2 = plt.subplots(1) +site.ds.water_depth.plot(ax=ax2, levels=100) +for line in lines: + ax2.plot(line[:, 0], line[:,1], 'r') +problem.model.plot_comp.plot_current_position(state['x'], state['y']) +ax2.set_title(f'Max Water Depth Boundary: {maximum_water_depth} m') + + +xs = np.hstack((lines[0][:,0],lines[1][:,0])) +ys = np.hstack((lines[0][:,1],lines[1][:,1])) + +plt.figure() +plt.plot(xs,ys) + +cost_comp2 = CostModelComponent(input_keys=[('x', x_init),('y', y_init)], + n_wt=n_wt, + cost_function=aep_func, + objective=True, + maximize=True, + output_keys=[('AEP', 0), ('water_depth', np.zeros(n_wt))] + ) +problem2 = TopFarmProblem(design_vars={'x': x_init, 'y': y_init}, + constraints=[XYBoundaryConstraint([(boundary, 1), (np.asarray((xs,ys)).T, 0)], boundary_type='multi_polygon'), + SpacingConstraint(min_spacing)], + # post_constraints=[('water_depth', {'lower': np.ones(n_wt) * maximum_water_depth})], + cost_comp=cost_comp2, + driver=EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol), + # driver=EasyRandomSearchDriver(RandomizeTurbinePosition()), + plot_comp=XYPlotComp(), + expected_cost=ec) + +if 1: + tic = time.time() + cost2, state2, recorder2 = problem2.optimize() + toc = time.time() + print('Optimization took: {:.0f}s'.format(toc-tic)) + + plt.figure() + plt.plot(recorder2['water_depth'].min((1))) + plt.plot([0,recorder2['water_depth'].shape[0]],[maximum_water_depth, maximum_water_depth]) + plt.xlabel('Iteration') + plt.ylabel('Max depth [m]') + plt.show() + +values = site.ds.water_depth.values +x = site.ds.x.values +y = site.ds.y.values +levels = np.arange(int(values.min()), int(values.max())) +max_wd_index = int(np.argwhere(levels==maximum_water_depth)) +Y, X = np.meshgrid(y, x) + +fig1, ax1 = plt.subplots(1) +cs = plt.contour(x, y , values.T, levels) +# lines = [] +# for line in cs.collections[max_wd_index].get_paths(): +# lines.append(line.vertices) +fig2, ax2 = plt.subplots(1) +site.ds.water_depth.plot(ax=ax2, levels=100) +# for line in lines: +# ax2.plot(line[:, 0], line[:,1], 'r') +ax2.plot(xs, ys) +problem2.model.plot_comp.plot_current_position(state2['x'], state2['y']) +ax2.set_title(f'Max Water Depth Boundary: {maximum_water_depth} m') + + +cost_comp3 = CostModelComponent(input_keys=[('x', x_init),('y', y_init)], + n_wt=n_wt, + cost_function=aep_func, + objective=True, + maximize=True, + output_keys=[('AEP', 0), ('water_depth', np.zeros(n_wt))] + ) +problem3 = TopFarmProblem(design_vars={'x': x_init, 'y': y_init}, + constraints=[XYBoundaryConstraint([(boundary, 1), (np.asarray((xs,ys)).T, 0)], boundary_type='multi_polygon'), + SpacingConstraint(min_spacing)], + # post_constraints=[('water_depth', {'lower': np.ones(n_wt) * maximum_water_depth})], + cost_comp=cost_comp3, + driver=EasyScipyOptimizeDriver(optimizer='SLSQP', maxiter=maxiter, tol=tol), + # driver=EasyRandomSearchDriver(RandomizeTurbinePosition()), + plot_comp=XYPlotComp(), + expected_cost=ec) + +if 1: + tic = time.time() + cost3, state3, recorder3 = problem3.optimize() + toc = time.time() + print('Optimization took: {:.0f}s'.format(toc-tic)) + + plt.figure() + plt.plot(recorder3['water_depth'].min((1))) + plt.plot([0,recorder3['water_depth'].shape[0]],[maximum_water_depth, maximum_water_depth]) + plt.xlabel('Iteration') + plt.ylabel('Max depth [m]') + plt.show() + +values = site.ds.water_depth.values +x = site.ds.x.values +y = site.ds.y.values +levels = np.arange(int(values.min()), int(values.max())) +max_wd_index = int(np.argwhere(levels==maximum_water_depth)) +Y, X = np.meshgrid(y, x) + +fig1, ax1 = plt.subplots(1) +cs = plt.contour(x, y , values.T, levels) +# lines = [] +# for line in cs.collections[max_wd_index].get_paths(): +# lines.append(line.vertices) +fig2, ax2 = plt.subplots(1) +site.ds.water_depth.plot(ax=ax2, levels=100) +# for line in lines: +# ax2.plot(line[:, 0], line[:,1], 'r') +ax2.plot(xs, ys) +problem3.model.plot_comp.plot_current_position(state3['x'], state3['y']) +ax2.set_title(f'Max Water Depth Boundary: {maximum_water_depth} m') diff --git a/setup.py b/setup.py index 21f7b3d0..24aee412 100644 --- a/setup.py +++ b/setup.py @@ -31,6 +31,7 @@ setup(name='topfarm', 'numpy-financial', # for irr calculations 'openmdao==2.6', # for optimization 'pytest', # for testing + 'pycodestyle', # for testing 'pytest-cov', # for calculating coverage 'py_wake>=2', # for calculating AEP 'scipy', # constraints @@ -39,5 +40,6 @@ setup(name='topfarm', 'scikit-learn', # load surrogate 'mock', # replace variables during tests 'tensorflow', # loads examples with surrogates + 'shapely', # for multiple polygon boundaries and exclusion zones ], zip_safe=True) diff --git a/topfarm/constraint_components/boundary.py b/topfarm/constraint_components/boundary.py index d754c747..3737c520 100644 --- a/topfarm/constraint_components/boundary.py +++ b/topfarm/constraint_components/boundary.py @@ -1,7 +1,12 @@ import numpy as np +from numpy import newaxis as na from scipy.spatial import ConvexHull from topfarm.constraint_components import Constraint, ConstraintComponent +from topfarm.utils import smooth_max, smooth_max_gradient import topfarm +from shapely.geometry import Polygon, MultiPolygon +from shapely.ops import cascaded_union +import warnings class XYBoundaryConstraint(Constraint): @@ -10,16 +15,27 @@ class XYBoundaryConstraint(Constraint): Parameters ---------- - boundary : array_like (n,2) - boundary coordinates + boundary : array_like (n,2) or list of tuples (array_like (n,2), boolean) + boundary coordinates. If boundary is array_like (n,2) it indicates a single boundary and can be used with + boundary types: 'convex_hull', 'polygon', 'rectangle','square'. If boundary is list of tuples (array_like (n,2), boolean), + it is multiple boundaries where the boolean is 1 for inclusion zones and 0 for exclusion zones and can be used with the + boundary type: 'multi_polygon'. boundary_type : 'convex_hull', 'polygon', 'rectangle','square' - 'convex_hull' (default): Convex hul around boundary points\n - 'polygon': Polygon boundary (may be non convex). Less suitable for gradient-based optimization\n - 'rectangle': Smallest axis-aligned rectangle covering the boundary points\n - 'square': Smallest axis-aligned square covering the boundary points + - 'multi_polygon': Mulitple polygon boundaries incl. exclusion zones (may be non convex).\n + """ - self.boundary = np.array(boundary) + if boundary_type == 'multi_polygon': + if np.ndim(boundary[0][0]) < 2: + self.multi_boundary = [(np.asarray(boundary), 1)] + else: + self.multi_boundary = boundary + boundary = boundary[0][0] + self.boundary = np.asarray(boundary) self.boundary_type = boundary_type self.const_id = 'xyboundary_comp_{}_{}'.format(boundary_type, int(self.boundary.sum())) self.units = units @@ -28,6 +44,8 @@ class XYBoundaryConstraint(Constraint): if not hasattr(self, 'boundary_comp'): if self.boundary_type == 'polygon': self.boundary_comp = PolygonBoundaryComp(n_wt, self.boundary, self.const_id, self.units) + elif self.boundary_type == 'multi_polygon': + self.boundary_comp = MultiPolygonBoundaryComp(n_wt, self.multi_boundary, self.const_id, self.units) else: self.boundary_comp = ConvexBoundaryComp( n_wt, self.boundary, self.boundary_type, self.const_id, self.units) @@ -310,14 +328,18 @@ class PolygonBoundaryComp(BoundaryBaseComp): self.nTurbines = n_wt self.const_id = const_id self.zeros = np.zeros(self.nTurbines) - vertices = np.array(xy_boundary) - self.nVertices = vertices.shape[0] self.units = units + self.boundary_properties = self.get_boundary_properties(xy_boundary) + BoundaryBaseComp.__init__(self, n_wt, xy_boundary=self.boundary_properties[0], const_id=const_id, units=units) + self._cache_input = None + self._cache_output = None + + def get_boundary_properties(self, xy_boundary): + vertices = np.array(xy_boundary) def edges_counter_clockwise(vertices): if np.any(vertices[0] != vertices[-1]): vertices = np.r_[vertices, vertices[:1]] - x1, y1 = vertices[:-1].T x2, y2 = vertices[1:].T double_area = np.sum((x1 - x2) * (y1 + y2)) # 2 x Area (+: counterclockwise @@ -327,26 +349,21 @@ class PolygonBoundaryComp(BoundaryBaseComp): else: return vertices[:-1], x1, y1, x2, y2 - xy_boundary, self.x1, self.y1, self.x2, self.y2 = edges_counter_clockwise(vertices) - BoundaryBaseComp.__init__(self, n_wt, xy_boundary=xy_boundary, const_id=self.const_id, units=self.units) - self.min_x, self.min_y = np.min([self.x1, self.x2], 0), np.min([self.y1, self.y2], ) - self.max_x, self.max_y = np.max([self.x1, self.x2], 1), np.max([self.y1, self.y2], 0) - self.dx = self.x2 - self.x1 - self.dy = self.y2 - self.y1 - self.x2y1 = self.x2 * self.y1 - self.y2x1 = self.y2 * self.x1 - self.length = ((self.y2 - self.y1)**2 + (self.x2 - self.x1)**2)**0.5 - self.edge_unit_vec = (np.array([self.dy, -self.dx]) / self.length) - v = np.hstack((self.edge_unit_vec, self.edge_unit_vec[:, :1])) - self.xy2_vec = v[:, :-1] + v[:, 1:] - self.xy1_vec = np.hstack((self.xy2_vec[:, -1:], self.xy2_vec[:, 1:])) - - self.dEdgeDist_dx = -self.dy / self.length - self.dEdgeDist_dy = self.dx / self.length - self._cache_input = None - self._cache_output = None - - def calc_distance_and_gradients(self, x, y): + xy_boundary, x1, y1, x2, y2 = edges_counter_clockwise(vertices) + dx = x2 - x1 + dy = y2 - y1 + length = ((y2 - y1)**2 + (x2 - x1)**2)**0.5 + edge_unit_vec = (np.array([dy, -dx]) / length) + v = np.hstack((edge_unit_vec, edge_unit_vec[:, :1])) + xy2_vec = v[:, :-1] + v[:, 1:] + xy1_vec = np.hstack((xy2_vec[:, -1:], xy2_vec[:, 1:])) + dEdgeDist_dx = -dy / length + dEdgeDist_dy = dx / length + edge_vect_j = np.array([x2 - x1, y2 - y1]) + edge_vect_len_j = np.linalg.norm(edge_vect_j, axis=0) + return (xy_boundary, x1, y1, x2, y2, dEdgeDist_dx, dEdgeDist_dy, edge_unit_vec, dx, xy1_vec, xy2_vec, edge_vect_j, edge_vect_len_j) + + def _calc_distance_and_gradients(self, x, y, boundary_properties=None): """ distances point(x,y) to edge((x1,y1)->(x2,y2)) +/-: inside/outside @@ -360,33 +377,32 @@ class PolygonBoundaryComp(BoundaryBaseComp): ddist_dx = sign * 2*x-2*x1 / (2 * distances^.5) ddist_dy = sign * 2*y-2*y1 / (2 * distances^.5) """ - if np.all(np.array([x, y]) == self._cache_input): - return self._cache_output - - X, Y = [np.tile(xy, (len(self.x1), 1)).T for xy in [x, y]] # dim = (ntb, nEdges) + boundary_properties = boundary_properties or self.boundary_properties + _, x1, y1, x2, y2, dEdgeDist_dx, dEdgeDist_dy, edge_unit_vec, dx, xy1_vec, xy2_vec, _, _ = boundary_properties + X, Y = [np.tile(xy, (len(x1), 1)).T for xy in [x, y]] # dim = (ntb, nEdges) X1, Y1, X2, Y2, ddist_dX, ddist_dY = [np.tile(xy, (len(x), 1)) - for xy in [self.x1, self.y1, self.x2, self.y2, self.dEdgeDist_dx, self.dEdgeDist_dy]] + for xy in [x1, y1, x2, y2, dEdgeDist_dx, dEdgeDist_dy]] # perpendicular distances to edge (dot product) - d12 = (self.x1 - X) * self.edge_unit_vec[0] + (self.y1 - Y) * self.edge_unit_vec[1] + d12 = (x1 - X) * edge_unit_vec[0] + (y1 - Y) * edge_unit_vec[1] # nearest point on edge - px = X + d12 * self.edge_unit_vec[0] - py = Y + d12 * self.edge_unit_vec[1] + px = X + d12 * edge_unit_vec[0] + py = Y + d12 * edge_unit_vec[1] # distances to start and end points - d1 = np.sqrt((self.x1 - X)**2 + (self.y1 - Y)**2) - d2 = np.sqrt((self.x2 - X)**2 + (self.y2 - Y)**2) + d1 = np.sqrt((x1 - X)**2 + (y1 - Y)**2) + d2 = np.sqrt((x2 - X)**2 + (y2 - Y)**2) # use start or end point if nearest point is outside edge - use_xy1 = (((self.dx != 0) & (px < self.x1) & (self.x1 < self.x2)) | - ((self.dx != 0) & (px > self.x1) & (self.x1 > self.x2)) | - ((self.dx == 0) & (py < self.y1) & (self.y1 < self.y2)) | - ((self.dx == 0) & (py > self.y1) & (self.y1 > self.y2))) - use_xy2 = (((self.dx != 0) & (px > self.x2) & (self.x2 > self.x1)) | - ((self.dx != 0) & (px < self.x2) & (self.x2 < self.x1)) | - ((self.dx == 0) & (py > self.y2) & (self.y2 > self.y1)) | - ((self.dx == 0) & (py < self.y2) & (self.y2 < self.y1))) + use_xy1 = (((dx != 0) & (px < x1) & (x1 < x2)) | + ((dx != 0) & (px > x1) & (x1 > x2)) | + ((dx == 0) & (py < y1) & (y1 < y2)) | + ((dx == 0) & (py > y1) & (y1 > y2))) + use_xy2 = (((dx != 0) & (px > x2) & (x2 > x1)) | + ((dx != 0) & (px < x2) & (x2 < x1)) | + ((dx == 0) & (py > y2) & (y2 > y1)) | + ((dx == 0) & (py < y2) & (y2 < y1))) px[use_xy1] = X1[use_xy1] py[use_xy1] = Y1[use_xy1] @@ -394,11 +410,11 @@ class PolygonBoundaryComp(BoundaryBaseComp): py[use_xy2] = Y2[use_xy2] distance = d12.copy() - v = (px[use_xy1] - X[use_xy1]) * self.xy1_vec[0, np.where(use_xy1)[1]] + \ - (py[use_xy1] - Y[use_xy1]) * self.xy1_vec[1, np.where(use_xy1)[1]] + v = (px[use_xy1] - X[use_xy1]) * xy1_vec[0, np.where(use_xy1)[1]] + \ + (py[use_xy1] - Y[use_xy1]) * xy1_vec[1, np.where(use_xy1)[1]] sign_use_xy1 = np.choose(v >= 0, [-1, 1]) - v = (px[use_xy2] - X[use_xy2]) * self.xy2_vec[0, np.where(use_xy2)[1]] + \ - (py[use_xy2] - Y[use_xy2]) * self.xy2_vec[1, np.where(use_xy2)[1]] + v = (px[use_xy2] - X[use_xy2]) * xy2_vec[0, np.where(use_xy2)[1]] + \ + (py[use_xy2] - Y[use_xy2]) * xy2_vec[1, np.where(use_xy2)[1]] sign_use_xy2 = np.choose(v >= 0, [-1, 1]) d12[use_xy2] @@ -415,8 +431,13 @@ class PolygonBoundaryComp(BoundaryBaseComp): ddist_dX[use_xy2] = sign_use_xy2 * (2 * X[use_xy2] - 2 * X2[use_xy2]) / (2 * length) ddist_dY[use_xy2] = sign_use_xy2 * (2 * Y[use_xy2] - 2 * Y2[use_xy2]) / (2 * length) - closest_edge_index = np.argmin(np.abs(distance), 1) + return distance, ddist_dX, ddist_dY + def calc_distance_and_gradients(self, x, y): + if np.all(np.array([x, y]) == self._cache_input): + return self._cache_output + distance, ddist_dX, ddist_dY = self._calc_distance_and_gradients(x, y) + closest_edge_index = np.argmin(np.abs(distance), 1) self._cache_input = np.array([x, y]) self._cache_output = [np.choose(closest_edge_index, v.T) for v in [distance, ddist_dX, ddist_dY]] return self._cache_output @@ -467,3 +488,280 @@ class CircleBoundaryComp(PolygonBoundaryComp): not_center = dist != self.radius dx[not_center], dy[not_center] = -np.cos(theta[not_center]), -np.sin(theta[not_center]) return np.diagflat(dx), np.diagflat(dy) + + +class MultiPolygonBoundaryComp(PolygonBoundaryComp): + def __init__(self, n_wt, xy_multi_boundary, const_id=None, units=None, method='nearest'): + ''' + + + Parameters + ---------- + n_wt : TYPE + DESCRIPTION. + xy_multi_boundary : TYPE + DESCRIPTION. + const_id : TYPE, optional + DESCRIPTION. The default is None. + units : TYPE, optional + DESCRIPTION. The default is None. + method : {'nearest' or 'smooth_min'}, optional + 'nearest' calculate the distance to the nearest edge or point'smooth_min' + calculates the weighted minimum distance to all edges/points. The default is 'nearest'. + + Returns + ------- + None. + + ''' + self.xy_multi_boundary = xy_multi_boundary + PolygonBoundaryComp.__init__(self, n_wt, xy_boundary=xy_multi_boundary[0][0], const_id=const_id, units=units) + self.bounds_poly = [Polygon(x) for x, _ in xy_multi_boundary] + self.types_bool = [1 if x in ['i', 'include', True, 1, None] else 0 for _, x in xy_multi_boundary] + self.boundaries = self._calc_resulting_polygons() + self.boundary_properties_list = [self.get_boundary_properties(bound) for bound, _ in self.boundaries] + self.n_edges = np.asarray([len(bound) for bound, _ in self.boundaries]) + self.n_edges_tot = np.sum(self.n_edges) + self.start_at = np.cumsum(self.n_edges) - self.n_edges + self.end_at = self.start_at + self.n_edges + self.method = method + + def _calc_resulting_polygons(self): + domain = [] + for i in range(len(self.bounds_poly)): + b = self.bounds_poly[i] + if len(domain) == 0: + if self.types_bool[i]: + domain.append(b) + else: + warnings.warn("First boundary should be an inclusion zone or it will be ignored") + pass + else: + if self.types_bool[i]: + temp = [] + for j, d in enumerate(domain): + if d.intersects(b): + b = cascaded_union([d, b]) + else: + if d.contains(b): + warnings.warn("Boundary is fully contained preceding polygon and will be ignored") + pass + elif b.contains(d): + b = d + warnings.warn("Boundary is fully containing preceding polygon and will override it") + pass + else: + temp.append(d) + if j == len(domain) - 1: + temp.append(b) + domain = temp + else: + temp = [] + for j, d in enumerate(domain): + if d.intersects(b): + nonoverlap = (d.symmetric_difference(b)).difference(b) + if isinstance(nonoverlap, type(Polygon())): + temp.append(nonoverlap) + elif isinstance(nonoverlap, type(MultiPolygon())): + for x in nonoverlap: + if x.area > 1e-3: + temp.append(x) + else: + if b.contains(d): + warnings.warn("Exclusion boundary fully consumes preceding polygon") + pass + else: + if d.contains(b): + d = Polygon(d.exterior.coords, [b.exterior.coords]) + temp.append(d) + domain = temp + self.res_poly = domain + boundaries = [] + for bound in domain: + x, y = bound.exterior.xy + boundaries.append((np.asarray([x, y]).T[:-1, :], 1)) + for interior in bound.interiors: + x, y = interior.xy + boundaries.append((np.asarray([x, y]).T[:-1, :], 0)) + + return boundaries + + def _calc_distance_and_gradients(self, x, y, boundary_properties): + ''' + x_xn_vect_ij is the vector from edge start point (p1) to x + x_xn_len_ij is the signed length of x_xn_vect_ij which is used to assess x is closer to the edge or either of the end points + overlapping_ij assesses if x is closer to an edge or the end points + Dp_ij is the distance from edge start point to x + Dp_ij_res is the distance from the point to the closest of the edge ends + De_ij is the distance from x to an edge + inside_edge_ij is a boolen array that desribes if the point lies on the correct side of the edge + turns_left indicates if an angle between two consecutive edges is going into the boundary (concave) or out of the boundary (convex). + ''' + _, x1, y1, x2, y2, dEdgeDist_dx, dEdgeDist_dy, _, _, _, _, edge_vect_j, edge_vect_len_j = boundary_properties + x = np.asarray(x) + y = np.asarray(y) + shape_ij = (len(x), len(x1)) + x_xn_vect_ij = np.array([x[:, na] - x1[na, :], y[:, na] - y1[na, :]]) + x_xn_len_ij = np.sum(x_xn_vect_ij * edge_vect_j[:, na, :], axis=0) / edge_vect_len_j[na, :] + + D_ij = np.zeros(shape_ij) + dDdx_ij = np.zeros(shape_ij) + dDdy_ij = np.zeros(shape_ij) + + before_ij = 0 > x_xn_len_ij + overlapping_ij = (0 <= x_xn_len_ij) & (x_xn_len_ij <= edge_vect_len_j) + after_ij = x_xn_len_ij > edge_vect_len_j + inside_edge_ij = np.cross(edge_vect_j[:, na, :], x_xn_vect_ij, axisa=0, axisb=0) > 0 + outside_edge_ij = np.logical_not(inside_edge_ij) + turns_left_ij = np.broadcast_to(np.cross(np.roll(edge_vect_j, 1, axis=1), edge_vect_j, axis=0) > 0, shape_ij) + turns_right_ij = np.logical_not(turns_left_ij) + + De_ij = np.abs((x2[na, :] - x1[na, :]) * (y1[na, :] - y[:, na]) - (x1[na, :] - x[:, na]) * (y2[na, :] - y1[na, :])) / np.sqrt((x2[na, :] - x1[na, :]) ** 2 + (y2[na, :] - y1[na, :]) ** 2) + Dp_ij = np.sqrt((x[:, na] - x1[na, :]) ** 2 + (y[:, na] - y1[na, :]) ** 2) + + D_ij[overlapping_ij] = De_ij[overlapping_ij] + D_ij[before_ij] = Dp_ij[before_ij] + D_ij[after_ij] = np.roll(Dp_ij, -1, axis=1)[after_ij] + + dDdx_ij[before_ij] = (x[:, na] - x1[na, :])[before_ij] / Dp_ij[before_ij] + dDdx_ij[after_ij] = np.roll((x[:, na] - x1[na, :]), -1, axis=1)[after_ij] / np.roll(Dp_ij, -1, axis=1)[after_ij] + dDdx_ij[overlapping_ij] = np.broadcast_to(dEdgeDist_dx[na, :], shape_ij)[overlapping_ij] + dDdy_ij[before_ij] = (y[:, na] - y1[na, :])[before_ij] / Dp_ij[before_ij] + dDdy_ij[after_ij] = np.roll((y[:, na] - y1[na, :]), -1, axis=1)[after_ij] / np.roll(Dp_ij, -1, axis=1)[after_ij] + dDdy_ij[overlapping_ij] = np.broadcast_to(dEdgeDist_dy[na, :], shape_ij)[overlapping_ij] + + D_ij[outside_edge_ij & overlapping_ij] *= -1 + D_ij[before_ij & turns_left_ij] *= -1 + D_ij[after_ij & np.roll(turns_left_ij, -1, axis=1)] *= -1 + D_ij[before_ij & turns_right_ij & np.roll(outside_edge_ij, 1, axis=1) & outside_edge_ij] *= -1 + D_ij[after_ij & np.roll(turns_right_ij, -1, axis=1) & np.roll(outside_edge_ij, -1, axis=1) & outside_edge_ij] *= -1 + + dDdx_ij[before_ij & turns_left_ij] *= -1 + dDdx_ij[after_ij & np.roll(turns_left_ij, -1, axis=1)] *= -1 + dDdx_ij[before_ij & turns_right_ij & np.roll(outside_edge_ij, 1, axis=1) & outside_edge_ij] *= -1 + dDdx_ij[after_ij & np.roll(turns_right_ij, -1, axis=1) & np.roll(outside_edge_ij, -1, axis=1) & outside_edge_ij] *= -1 + + dDdy_ij[before_ij & turns_left_ij] *= -1 + dDdy_ij[after_ij & np.roll(turns_left_ij, -1, axis=1)] *= -1 + dDdy_ij[before_ij & turns_right_ij & np.roll(outside_edge_ij, 1, axis=1) & outside_edge_ij] *= -1 + dDdy_ij[after_ij & np.roll(turns_right_ij, -1, axis=1) & np.roll(outside_edge_ij, -1, axis=1) & outside_edge_ij] *= -1 + + return D_ij, dDdx_ij, dDdy_ij + + def calc_distance_and_gradients(self, x, y): + ''' + + + Parameters + ---------- + x : 1d array + Array of x-positions. + y : 1d array + Array of y-positions. + + Returns + ------- + D_ij : 2d array + Array of point-edge distances. index 'i' is points and index 'j' is total number of edges. + sign_i : 1d array + Array of signs of the governing distance. + dDdk_jk : 2d array + Jacobian of the distance matrix D_ij with respect to x and y. + + ''' + if np.all(np.array([x, y]) == self._cache_input): + return self._cache_output + Dist_ij = np.zeros((len(x), self.n_edges_tot)) + dDdk_ijk = np.zeros((len(x), self.n_edges_tot, 2)) + for n, (bound, bound_type) in enumerate(self.boundaries): + sa = self.start_at[n] + ea = self.end_at[n] + distance, ddist_dX, ddist_dY = self._calc_distance_and_gradients(x, y, self.boundary_properties_list[n]) + if bound_type == 0: + distance *= -1 + ddist_dX *= -1 + ddist_dY *= -1 + Dist_ij[:, sa:ea] = distance + dDdk_ijk[:, sa:ea, 0] = ddist_dX + dDdk_ijk[:, sa:ea, 1] = ddist_dY + + sign_i = np.sign(Dist_ij[np.arange(Dist_ij.shape[0]), np.argmin(abs(Dist_ij), axis=1)]) + self.alpha = - 1600 / np.max(np.abs(Dist_ij)) + self._cache_input = np.array([x, y]) + self._cache_output = [Dist_ij, dDdk_ijk, sign_i] + return self._cache_output + + def distances(self, x, y): + Dist_ij, _, sign_i = self.calc_distance_and_gradients(x, y) + if self.method == 'smooth_min': + return smooth_max(np.abs(Dist_ij), self.alpha, axis=1) * sign_i + elif self.method == 'nearest': + return Dist_ij[np.arange(x.size), np.argmin(np.abs(Dist_ij), axis=1)] + + def gradients(self, x, y): + ''' + The derivate of the smooth maximum with respect to x and y is calculated with the chain rule: + dS/dk = dS/dD * dD/dk + where S is smooth maximum, D is distance to edge and k is the spacial dimension + ''' + Dist_ij, dDdk_ijk, sign_i = self.calc_distance_and_gradients(x, y) + if self.method == 'smooth_min': + dSdDist_ij = smooth_max_gradient(np.abs(Dist_ij), self.alpha, axis=1) + dSdkx_i, dSdky_i = (dSdDist_ij[:, :, na] * dDdk_ijk).sum(axis=1).T + elif self.method == 'nearest': + dSdkx_i, dSdky_i = dDdk_ijk[np.arange(x.size), np.argmin(np.abs(Dist_ij), axis=1), :].T + return np.diagflat(dSdkx_i), np.diagflat(dSdky_i) + + +def main(): + import matplotlib.pyplot as plt + plt.close('all') + i1 = np.array([[2, 17], [6, 23], [16, 23], [26, 15], [19, 0], [14, 4], [4, 4]]) + e1 = np.array([[0, 10], [20, 21], [22, 12], [10, 12], [9, 6], [2, 7]]) + i2 = np.array([[12, 13], [14, 17], [18, 15], [17, 10], [15, 11]]) + e2 = np.array([[5, 17], [5, 18], [8, 19], [8, 18]]) + i3 = np.array([[5, 0], [5, 1], [10, 3], [10, 0]]) + e3 = np.array([[6, -1], [6, 18], [7, 18], [7, -1]]) + e4 = np.array([[15, 9], [15, 11], [20, 11], [20, 9]]) + multi_boundary = [(i1, 'i'), (e1, 'e'), (i2, 'i'), (e2, 'e'), (i3, 'i'), (e3, 'e'), (e4, 'e')] + N_points = 50 + xs = np.linspace(-1, 30, N_points) + ys = np.linspace(-1, 30, N_points) + y_grid, x_grid = np.meshgrid(xs, ys) + x = x_grid.ravel() + y = y_grid.ravel() + n_wt = len(x) + MPBC = MultiPolygonBoundaryComp(n_wt, multi_boundary) + distances = MPBC.distances(x, y) + delta = 1e-9 + distances2 = MPBC.distances(x + delta, y) + dx_fd = (distances2 - distances) / delta + dx = np.diag(MPBC.gradients(x + delta / 2, y)[0]) + + plt.figure() + plt.plot(dx_fd, dx, '.') + + plt.figure() + for n, bound in enumerate(MPBC.boundaries): + x_bound, y_bound = bound[0].T + x_bound = np.append(x_bound, x_bound[0]) + y_bound = np.append(y_bound, y_bound[0]) + line, = plt.plot(x_bound, y_bound, label=f'{n}') + plt.plot(x_bound[0], y_bound[0], color=line.get_color(), marker='o') + + plt.legend() + plt.grid() + plt.axis('square') + plt.contourf(x_grid, y_grid, distances.reshape(N_points, N_points), 50) + plt.colorbar() + + plt.figure() + ax = plt.axes(projection='3d') + ax.contour3D(x.reshape(N_points, N_points), y.reshape(N_points, N_points), distances.reshape(N_points, N_points), 50) + ax.set_xlabel('x') + ax.set_ylabel('y') + ax.set_zlabel('z') + + +if __name__ == '__main__': + main() diff --git a/topfarm/cost_models/cost_model_wrappers.py b/topfarm/cost_models/cost_model_wrappers.py index 36dae546..3f477bf2 100644 --- a/topfarm/cost_models/cost_model_wrappers.py +++ b/topfarm/cost_models/cost_model_wrappers.py @@ -74,6 +74,9 @@ class CostModelComponent(ExplicitComponent): super().__init__(**kwargs) assert isinstance(n_wt, int), n_wt self.input_keys = list(input_keys) + self.input_keys_only = list([(i, i[0])[isinstance(i, tuple)] for i in self.input_keys]) + self.additional_input = additional_input + self.all_input_keys = self.input_keys_only + list([(i, i[0])[isinstance(i, tuple)] for i in self.additional_input]) self.cost_function = cost_function self.cost_gradient_function = cost_gradient_function self.n_wt = n_wt @@ -82,7 +85,6 @@ class CostModelComponent(ExplicitComponent): self.output_keys = output_keys self.out_keys_only = list([(o, o[0])[isinstance(o, tuple)] for o in self.output_keys]) self.output_unit = output_unit - self.additional_input = additional_input self.additional_output = [((x, np.zeros(self.n_wt)), x)[isinstance(x, tuple)] for x in additional_output] self.max_eval = max_eval or 1e100 self.objective = objective @@ -120,30 +122,22 @@ class CostModelComponent(ExplicitComponent): for key, val in self.additional_output: self.add_output(key, val=val) - input_keys = list([(i, i[0])[isinstance(i, tuple)] for i in self.input_keys]) - self.inp_keys = input_keys + list([(i, i[0])[isinstance(i, tuple)] for i in self.additional_input]) - self.input_keys = input_keys - if self.cost_gradient_function: if self.objective: - self.declare_partials('cost', input_keys, method='exact') - # else: + self.declare_partials('cost', self.input_keys_only, method='exact') for o in self.out_keys_only: - self.declare_partials(o, input_keys, method='exact') + self.declare_partials(o, self.input_keys_only, method='exact') else: if self.step == {}: if self.objective: - self.declare_partials('cost', input_keys, method='fd') - # else: + self.declare_partials('cost', self.input_keys_only, method='fd') for o in self.out_keys_only: - self.declare_partials(o, input_keys, method='fd') + self.declare_partials(o, self.input_keys_only, method='fd') else: - for i in input_keys: + for i in self.input_keys_only: if self.objective: self.declare_partials('cost', i, step=self.step[i], method='fd') - # else: for o in self.out_keys_only: - # self.declare_partials(o, input_keys, method='fd') self.declare_partials(o, i, step=self.step[i], method='fd') @property @@ -165,11 +159,11 @@ class CostModelComponent(ExplicitComponent): return t = time.time() if self.additional_output: - c, additional_output = self.cost_function(**{x: inputs[x] for x in self.inp_keys}) + c, additional_output = self.cost_function(**{x: inputs[x] for x in self.all_input_keys}) for k, v in additional_output.items(): outputs[k] = v else: - c = self.cost_function(**{x: inputs[x] for x in self.inp_keys}) + c = self.cost_function(**{x: inputs[x] for x in self.all_input_keys}) if not isinstance(c, list): c = [c] if self.objective: @@ -187,7 +181,7 @@ class CostModelComponent(ExplicitComponent): t = time.time() if self.cost_gradient_function: for k, dCostdk in zip(self.input_keys, - self.cost_gradient_function(**{x: inputs[x] for x in self.inp_keys})): + self.cost_gradient_function(**{x: inputs[x] for x in self.all_input_keys})): if dCostdk is not None: if not isinstance(dCostdk, list): dCostdk = [dCostdk] diff --git a/topfarm/tests/notebook.py b/topfarm/tests/notebook.py new file mode 100644 index 00000000..e8694423 --- /dev/null +++ b/topfarm/tests/notebook.py @@ -0,0 +1,178 @@ +import json +import os +from os.path import dirname +from os.path import join as pjoin +import re +import ssl +import sys +import matplotlib.pyplot as plt +from _io import StringIO + + +class Notebook(): + pip_header = """# Install TopFarm if needed +import importlib +if not importlib.util.find_spec("topfarm"): + !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/TopFarm2.git""" + + def __init__(self, filename): + self.filename = filename + try: + self.nb = self.load_notebook(self.filename) + except Exception as e: + raise Exception('Error in ', os.path.relpath(filename)) from e + + def __repr__(self): + return "hej" + + def load_notebook(self, filename): + with open(filename, encoding='utf-8') as fid: + nb = json.load(fid) + return nb + + def save(self, filename=None): + filename = filename or self.filename + with open(filename, 'w') as fid: + json.dump(self.nb, fid, indent=4) + + def __getitem__(self, key): + return self.nb[key] + + def __setitem__(self, key, value): + self.nb[key] = value + + def __getattribute__(self, name): + try: + return object.__getattribute__(self, name) + except AttributeError: + if name in self.nb.keys(): + return self.nb[name] + raise + + def insert_markdown_cell(self, index, text): + self.cells.insert(index, {"cell_type": "markdown", + "metadata": {}, + "source": [x + "\n" for x in text.split("\n")] + }) + + def insert_code_cell(self, index, code): + self.cells.insert(index, + {"cell_type": "code", + "execution_count": 0, + "metadata": {}, + "outputs": [], + "source": code, + }) + + def replace_include_tag(self): + cells = [] + for cell in self.nb['cells']: + if cell['cell_type'] == 'code' and len(cell['source']) > 0 and '%%include' in cell['source'][0]: + filename = pjoin(dirname(self.filename), cell['source'][0].replace('%%include', '').strip()) + nb = Notebook(filename) + nb.replace_include_tag() + cells.extend(nb.cells) + else: + cells.append(cell) + return cells + + def get_code(self): + code = [] + for cell in self.cells: + if cell['cell_type'] == "code": + if "".join(cell['source']).strip() != "": + code.append("".join(cell['source'])) + return code + + def get_text(self): + txt = [] + for cell in self.cells: + if cell['cell_type'] == "markdown": + if "".join(cell['source']).strip() != "": + txt.append("".join(cell['source'])) + return txt + + def check_code(self): + code = "\n".join(self.get_code()) + + def fix(line): + for p in ['%', '!']: + if line.strip().startswith(p): + line = line.replace(p, "pass #") + return line + + lines = [fix(x) for x in code.split("\n")] + + # import * only allowed at module level + # So extract and remove from code lines + module_imports = [x for x in lines if x.startswith('from') and x.endswith('import *')] + for x in module_imports: + lines.remove(x) + + if len(lines) == 1 and lines[0] == '': + return + try: + import contextlib + + with contextlib.redirect_stdout(StringIO()): + with contextlib.redirect_stderr(StringIO()): + # execute module level imports (stored in x dict) and use a locals in execution of code + g, x = {}, {} + exec("\n".join(module_imports), g, x) + + code_str = "def test():\n " + "\n ".join(lines) + "\ntest()" + exec(code_str, x, {}) + plt.close('all') + except Exception as e: + raise type(e)("Code error in %s\n%s\n" % (self.filename, str(e))).with_traceback(sys.exc_info()[2]) + + def check_links(self): + txt = "\n".join(self.get_text()) + for link in re.finditer(r"\[([^]]*)]\(([^)]*)\)", txt): + label, url = link.groups() + # print(label) + # print(url) + if url.startswith('attachment') or '#' in url: + continue + if url.startswith("../_static"): + assert os.path.isfile(os.path.join(os.path.dirname(self.filename), url)) + return + + try: + import urllib.request + context = ssl._create_unverified_context() + assert urllib.request.urlopen(url, context=context).getcode() == 200 + except Exception as e: + print("%s broken in %s\n%s" % (url, self.filename, str(e))) + + # traceback.print_exc() + + # print(txt) + + def check_pip_header(self): + + code = self.get_code() + if not code: + return + if code[0].strip() != self.pip_header: + for i, cell in enumerate(self.cells): + if cell['cell_type'] == "code": + break + self.insert_code_cell(i, self.pip_header) + self.save() + raise Exception("""pip install header was not present in %s. +It has now been auto insert. Please check the notebook and commit the changes""" % os.path.abspath(self.filename)) + + def remove_empty_end_cell(self): + while self.cells[-1]['cell_type'] == 'code' and all([x.strip() == "" for x in self.cells[-1]['source']]): + self.nb['cells'] = self.cells[:-1] + self.save() + + +if __name__ == '__main__': + import topfarm + nb = Notebook(os.path.dirname(topfarm.__file__) + '/../docs/notebooks/constraints.ipynb') + nb.check_code() + nb.check_links() + nb.remove_empty_end_cell() + nb.check_pip_header() diff --git a/topfarm/tests/test_notebooks.py b/topfarm/tests/test_notebooks.py index fa6b4e94..fd3c5802 100644 --- a/topfarm/tests/test_notebooks.py +++ b/topfarm/tests/test_notebooks.py @@ -1,37 +1,53 @@ import os -from _notebooks.notebook import Notebook + import pytest + +from topfarm.tests.notebook import Notebook import topfarm -from topfarm.cost_models.cost_model_wrappers import CostModelComponent -from topfarm.drivers.random_search_driver import RandomSearchDriver -from topfarm.easy_drivers import EasyDriverBase -from py_wake.tests.check_speed import timeit def get_notebooks(): - path = os.path.dirname(topfarm.__file__) + "/../_notebooks/elements/" - return [Notebook(path + f) for f in [f for f in os.listdir(path) if f.endswith('.ipynb')]] + def get(path): + return [Notebook(path + f) for f in [f for f in os.listdir(path) if f.endswith('.ipynb')]] + path = os.path.dirname(topfarm.__file__) + "/../docs/notebooks/" + return get(path) + +notebooks = get_notebooks() -@pytest.mark.parametrize("notebook", get_notebooks()) + +@pytest.mark.parametrize("notebook", notebooks, ids=[os.path.basename(nb.filename) for nb in notebooks]) def test_notebooks(notebook): - if os.path.basename(notebook.filename) in ['loads.ipynb', 'roads_and_cables.ipynb', - 'wake_steering_and_loads.ipynb', 'layout_and_loads.ipynb']: + if os.path.basename(notebook.filename) in [ + # 'bathymetry.ipynb', # ok + # 'constraints.ipynb', # ok + # 'cost_models.ipynb', # ok + # 'drivers.ipynb', # ok + # 'exclusion_zones.ipynb', # ok + 'layout_and_loads.ipynb', # gives error from tensorflow on synnefo machine + # 'problems.ipynb', # ok + 'roads_and_cables.ipynb', # fails + 'wake_steering_and_loads.ipynb']: # ok but many warnings from tensorflow pytest.xfail("Notebook, %s, has known issues" % notebook) import matplotlib.pyplot as plt def no_show(*args, **kwargs): pass plt.show = no_show # disable plt show that requires the user to close the plot - print(notebook.filename) + try: + plt.rcParams.update({'figure.max_open_warning': 0}) notebook.check_code() notebook.check_links() + notebook.remove_empty_end_cell() + notebook.check_pip_header() + pass except Exception as e: raise Exception(notebook.filename + " failed") from e finally: - plt.close() + plt.close('all') + plt.rcParams.update({'figure.max_open_warning': 20}) if __name__ == '__main__': - print([os.path.basename(n.filename) for n in get_notebooks()]) + print("\n".join([f.filename for f in get_notebooks()])) diff --git a/topfarm/utils.py b/topfarm/utils.py index 5d353773..cae99827 100644 --- a/topfarm/utils.py +++ b/topfarm/utils.py @@ -99,6 +99,47 @@ def smart_start(XX, YY, ZZ, N_WT, min_space, radius=None, random_pct=0, plot=Fal return xs, ys +def smooth_max(X, alpha, axis=0): + ''' + Returns the smooth maximum of a matrix for positive values of alpha and smoth minimum for negative values of alpha + Parameters + ---------- + X : ndarray + Matrix of which the smooth maximum is calculated. + alpha : float + smoothness parameter. + axis : int, optional + Axis along which the smooth maximum is calculated. The default is 0. + + Returns + ------- + ndarray + Matrix of smooth maximum values. + + ''' + return (X * np.exp(alpha * X)).sum(axis=axis) / np.exp(alpha * X).sum(axis=axis) + + +def smooth_max_gradient(X, alpha, axis=0): + ''' + Parameters + ---------- + X : ndarray + Matrix of which the smooth maximum derivative is calculated. + alpha : float + smoothness parameter. + axis : int, optional + Axis along which the smooth maximum is calculated. The default is 0. The default is 0. + + Returns + ------- + ndarray + Matrix of smooth maximum derivatives. + + ''' + return np.exp(alpha * X) / np.expand_dims(np.exp(alpha * X).sum(axis=axis), axis) * (1 + alpha * (X - np.expand_dims(smooth_max(X, alpha, axis=axis), axis))) + + def main(): if __name__ == '__main__': N_WT = 30 -- GitLab