{ "cells": [ { "cell_type": "markdown", "id": "16b032fa", "metadata": {}, "source": [ "## Initial Imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "01530e24", "metadata": { "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from scm.base import ChemicalSystem, Bond, Units\n", "from scm.plams import Settings, AMSJob, view" ] }, { "cell_type": "markdown", "id": "56160332", "metadata": {}, "source": [ "## Setup Dimer\n", "\n", "We first create intial system of two Helium atoms at some minimum separation." ] }, { "cell_type": "code", "execution_count": 2, "id": "2199b980-c087-4138-aa23-9af5665e8df7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "System\n", " Atoms\n", " He 0 0 0\n", " He 2.2 0 0\n", " End\n", " BondOrders\n", " 1 2 1\n", " End\n", "End\n" ] } ], "source": [ "d_min = 2.2\n", "d_max = 4.2\n", "\n", "he_dimer = ChemicalSystem()\n", "he_dimer.add_atom(\"He\", coords=[0.0, 0.0, 0.0])\n", "he_dimer.add_atom(\"He\", coords=[d_min, 0.0, 0.0])\n", "he_dimer.bonds.add_bond(0, 1, Bond(1.0))\n", "print(he_dimer)" ] }, { "cell_type": "markdown", "id": "3b0be3e9", "metadata": {}, "source": [ "## Calculation Settings\n", "\n", "We then set up the calculation settings. We will perform a PES scan over the He-He bond, taking 11 distances in our chosen range. For the engine we will use ADF with TZP/PBE+GrimmeD3." ] }, { "cell_type": "code", "execution_count": 3, "id": "ec75cdb8", "metadata": {}, "outputs": [], "source": [ "settings = Settings()\n", "settings.input.ams.task = \"PESScan\"\n", "settings.input.ams.pesscan.scancoordinate.npoints = 11\n", "settings.input.ams.pesscan.scancoordinate.distance = f\"1 2 {d_min} {d_max}\"\n", "settings.input.adf.basis.type = \"TZP\"\n", "settings.input.adf.xc.gga = \"PBE\"\n", "settings.input.adf.xc.dispersion = \"Grimme3\"" ] }, { "cell_type": "markdown", "id": "67532028", "metadata": {}, "source": [ "## Create and Run PESScan Job\n", "\n", "The PES scan can now be run:" ] }, { "cell_type": "code", "execution_count": 4, "id": "b3519a92-6081-4afb-bed4-a78cfcdb31af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[09.04|17:55:44] JOB plamsjob STARTED\n", "[09.04|17:55:44] JOB plamsjob RUNNING\n", "[09.04|17:55:51] JOB plamsjob FINISHED\n", "[09.04|17:55:51] JOB plamsjob SUCCESSFUL\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "job = AMSJob(molecule=he_dimer, settings=settings)\n", "job.run()" ] }, { "cell_type": "markdown", "id": "5105885e", "metadata": {}, "source": [ "## Results\n", "\n", "Results can be easily extracted using the `get_pesscan_results` method. We plot the energy as a function of the bond length, and the geometries either various points along the curve." ] }, { "cell_type": "code", "execution_count": 5, "id": "d5b8f5e7-fa08-4c37-8f04-48ee9ad389e7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DistanceEnergy
02.20.230174
12.4-0.053810
22.6-0.126581
32.8-0.121580
43.0-0.093658
53.2-0.066451
63.4-0.044789
73.6-0.029741
83.8-0.019515
94.0-0.012803
104.2-0.008633
\n", "
" ], "text/plain": [ " Distance Energy\n", "0 2.2 0.230174\n", "1 2.4 -0.053810\n", "2 2.6 -0.126581\n", "3 2.8 -0.121580\n", "4 3.0 -0.093658\n", "5 3.2 -0.066451\n", "6 3.4 -0.044789\n", "7 3.6 -0.029741\n", "8 3.8 -0.019515\n", "9 4.0 -0.012803\n", "10 4.2 -0.008633" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "results = job.results.get_pesscan_results()\n", "df = pd.DataFrame({\"Distance\": results[\"RaveledPESCoords\"][0], \"Energy\": results[\"PES\"]})\n", "df[\"Distance\"] *= Units.conversion_factor(\"Bohr\", \"Angstrom\")\n", "df[\"Energy\"] *= Units.conversion_factor(\"Hartree\", \"kcal/mol\")\n", "df" ] }, { "cell_type": "code", "execution_count": 6, "id": "ae536a3f", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUQAAAEnCAYAAADRijoyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/C0lEQVR4nO3deVxUVf8H8M8MywzrALIMCIIoIiaIoiDmLgVpGT8xlUdzeUiyMDPKNRWXHjG3tKy0fEQtNVrMnrQ0JMENEVFyQUVxYQfZhn2bub8/gKsj2wzMBnzfr9d9CXfOPfO9TPPt3HvOPYfDMAwDQggh4Ko7AEII0RSUEAkhpAElREIIaUAJkRBCGlBCJISQBpQQCSGkASVEQghpQAmREEIaaKs7gK5AIpEgKysLRkZG4HA46g6HEPIMhmFQWloKGxsbcLmttwEpISpAVlYW7Ozs1B0GIaQV6enpsLW1bbUMJUQFMDIyAlD/Bzc2NlZzNISQZ5WUlMDOzo79nraGEqICNF4mGxsbU0IkREPJcjuLOlUIIaQBJURCCGlACZEQQhpQQiSEkAaUEFUoW1SJi6n5yBZVqjsUQkgzqJdZRSIT0rDi6A1IGIDLAcKnuGL6sF7qDosQ8gxqIapAtqiSTYYAIGGAlUdvUkuREA1DCVEFHuaXs8mwkZhh8Ci/Qj0BEUKaRQlRBXqbG4D73JhQLQ4HDub66gmIENIsSogqYC3QQ/gUVzTmRA6AjVMGwlqgp86wCCHPoYSoItOH9cISP2cAwIt9e1CHCiEaiBKiCr1gIwAAPCmtUXMkhJDmUEJUIVvT+kvkjKIKMAzTRmlCiKpRQlShnib1CbG8Royiilo1R0MIeR4lRBXi62jB0ogHoL6VSAjRLJQQVezpZTMNyiZE01BCVDE7s/qxh+mF1EIkRNNQQlQxaiESorkoIaqYnWl9C5HuIRKieSghqphtQ0JMpxYiIRqHEqKK0VhEQjRXp0uIX375JRwcHMDn8+Hl5YXLly+3WPbbb7/FqFGjYGpqClNTU/j4+DQpzzAM1qxZA2tra+jp6cHHxwf37t1TWvw2JnrgcICqWgkKyumJFUI0SadKiJGRkQgNDUVYWBiuXr2KQYMGwdfXF3l5ec2Wj4mJQWBgIM6cOYO4uDjY2dnh5ZdfRmZmJltm8+bN+Pzzz7F7927Ex8fDwMAAvr6+qKqqUso56GpzITTmA6CeZkI0DtOJeHp6MiEhIezvYrGYsbGxYcLDw2U6vq6ujjEyMmIOHDjAMAzDSCQSRigUMlu2bGHLFBcXMzwejzly5IjMcYlEIgYAIxKJZCo/9esLjP2y48z/kjJlfg9CSPvI8/3sNC3EmpoaJCYmwsfHh93H5XLh4+ODuLg4meqoqKhAbW0tzMzMAAAPHz5ETk6OVJ0CgQBeXl6t1lldXY2SkhKpTR52bMcKtRAJ0SSdJiHm5+dDLBbDyspKar+VlRVycnJkqmPZsmWwsbFhE2DjcfLWGR4eDoFAwG52dnbynAqNRSREQ3WahNhRmzZtwg8//IBff/0VfD6/Q3WtWLECIpGI3dLT0+U63tascSwiJURCNEmnWXXP3NwcWlpayM3Nldqfm5sLoVDY6rFbt27Fpk2bcPr0abi5ubH7G4/Lzc2FtbW1VJ3u7u4t1sfj8cDj8dpxFvXYFiJ1qhCiUTpNC1FXVxceHh6Ijo5m90kkEkRHR8Pb27vF4zZv3owNGzbg5MmTGDp0qNRrvXv3hlAolKqzpKQE8fHxrdbZUezTKsWVkDy/+hQhRG06TQsRAEJDQzFnzhwMHToUnp6e2LFjB8rLyzFv3jwAwOzZs9GzZ0+Eh4cDAD799FOsWbMGhw8fhoODA3tf0NDQEIaGhuBwOFi8eDE++eQTODk5oXfv3li9ejVsbGzg7++vtPOwFvChxeWgpk6C/LJqWBp37BKeEKIYnSohTp8+HU+ePMGaNWuQk5MDd3d3nDx5ku0USUtLA5f7tNH79ddfo6amBlOnTpWqJywsDGvXrgUALF26FOXl5QgODkZxcTFGjhyJkydPdvg+Y2u0terHImYWVyK9qIISIiEagsMw9PxYR5WUlEAgEEAkEsHY2FimY6bviUP8w0LsnOGO1917KjlCQroveb6fneYeYldjRz3NhGgcSohq0tjTTI/vEaI5KCGqia0ptRAJ0TSUENXErrGFSI/vEaIxKCGqSePTKlnFlRDTWERCNAIlRDURGvOhzeWgVswgr1Q5U40RQuRDCVFNtLgc2Jg0dqzQfURCNAElRDV6djkBQoj6UUJUIzvqaSZEo1BCVCMai0iIZqGEqEa2ZjRRLCGahBKiGj2dBoxaiIRoAkqIatT4tEpWcRXqxBI1R0MIoYSoRpZGPOhqcSGWMMgpobGIhKgbJUQ14nI56GlKYxEJ0RSUENWMxiISojkoIaoZzXpDiOaghKhmtjTrDSEao9MlxC+//BIODg7g8/nw8vLC5cuXWyx769YtBAQEwMHBARwOBzt27GhSZu3ateBwOFJb//79lXgG0mjRekI0R6dKiJGRkQgNDUVYWBiuXr2KQYMGwdfXF3l5ec2Wr6iogKOjIzZt2tTq2s0vvPACsrOz2e38+fPKOoUmGpcSyKSESIjadaqEuH37dsyfPx/z5s3DgAEDsHv3bujr62Pfvn3Nlh82bBi2bNmCGTNmtLqwvLa2NoRCIbuZm5sr6xSaaGwhZosqUUtjEQlRK5mWIQ0NDZW74lWrVsHMzEzu41pSU1ODxMRErFixgt3H5XLh4+ODuLi4DtV979492NjYgM/nw9vbG+Hh4ejVq1eL5aurq1FdXc3+XlJS0u73tjDkgafNRXWdBNnFVejVQ7/ddRFCOkamhLhjxw54e3tDV1dXpkrPnz+PhQsXKjQh5ufnQywWs2swN7KyssKdO3faXa+Xlxf2798PZ2dnZGdnY926dRg1ahRu3rwJIyOjZo8JDw/HunXr2v2ez+JwOLA11UPqk3JkFFVQQiREjWReqP7XX3+FpaWlTGVbSiSa6JVXXmF/dnNzg5eXF+zt7fHjjz8iKCio2WNWrFgh1WouKSmBnZ1du2OwNdVH6pNy6mkmRM1kSogREREQCAQyV7pnz54mLbmOMjc3h5aWFnJzc6X25+bmttphIi8TExP069cP9+/fb7EMj8dr9Z6kvOxo1htCNIJMnSpz5syRKwH861//goGBQbuDao6uri48PDwQHR3N7pNIJIiOjoa3t7fC3qesrAypqamwtrZWWJ1taRycTfMiEqJeMl8ya4LQ0FDMmTMHQ4cOhaenJ3bs2IHy8nLMmzcPADB79mz07NkT4eHhAOo7YpKTk9mfMzMzkZSUBENDQ/Tt2xcA8NFHH+G1116Dvb09srKyEBYWBi0tLQQGBqrsvGgsIiGaQaaEaGpqCg6HI1OFhYWFHQqoNdOnT8eTJ0+wZs0a5OTkwN3dHSdPnmQvz9PS0sDlPm30ZmVlYfDgwezvW7duxdatWzFmzBjExMQAADIyMhAYGIiCggJYWFhg5MiRuHTpEiwsLJR2Hs+jpQQI0QwchmHaXBT4wIEDMlc4Z86cDgXUGZWUlEAgEEAkEsHY2Fju4wvKquHxyWlwOMCdDX7gaWspIUpCuid5vp8ytRC7Y5JTJTMDXejpaKGyVoys4ir0Nlfs/VdCiGzadQ9RLBbj2LFjuH37NoD6R98mT54MLS1q2bQHh8OBnZkeUnLLkFFUQQmREDWROyHev38fEydORGZmJpydnQHUD1S2s7PDiRMn0KdPH4UH2R3YmuojJbeMJoolRI3kfpZ50aJF6NOnD9LT03H16lVcvXoVaWlp6N27NxYtWqSMGLsFmiiWEPWTu4UYGxuLS5cuST2W16NHD2zatAkvvviiQoPrThp7mtOpp5kQtZG7hcjj8VBaWtpkf1lZmczPOpOmqIVIiPrJnRBfffVVBAcHIz4+HgzDgGEYXLp0CQsWLMDkyZOVEWO30DgvIo1FJER95E6In3/+Ofr06QNvb2/w+Xzw+Xy8+OKL6Nu3L3bu3KmMGLuFxhbik9JqVNWK1RwNId2T3PcQTUxM8Ntvv+HevXvstFsuLi7so3CkfQR6OjDkaaOsug4ZRZXoa2mo7pAI6Xba/Syzk5MTnJycFBlLt9Y4L+KdnFJkFFVQQiREDeROiAzD4Oeff8aZM2eQl5cHiUR62vujR48qLLjuxtZUH3dySqmnmRA1kTshLl68GHv27MG4ceNgZWUl86QPpG3U00yIesmdEL/77jscPXoUEydOVEY83Rr1NBOiXnL3MgsEAjg6Oiojlm6PbSHSRLGEqIXcCXHt2rVYt24dKiupFaNoNFEsIeol9yXztGnTcOTIEVhaWsLBwQE6OjpSr1+9elVhwXU3jUsJFJTXoLy6Dga8TjWhOSGdntzfuDlz5iAxMRGzZs2iThUFE+jpwJivjZKqOmQWV6KfVedZvZCQrkDuhHjixAmcOnUKI0eOVEY83Z6dmT5uZZUgo6iCEiIhKib3PUQ7O7t2TZNPZNN4H5HmRSRE9eROiNu2bcPSpUvx6NEjJYTTti+//BIODg7g8/nw8vLC5cuXWyx769YtBAQEwMHBARwOBzt27Ohwncpmyy44RT3NhKia3Alx1qxZOHPmDPr06QMjIyOYmZlJbcoUGRmJ0NBQhIWF4erVqxg0aBB8fX2Rl5fXbPmKigo4Ojpi06ZNLS5mL2+dymZHPc2EqI1Mq+49a//+/a12pChzQSovLy8MGzYMu3btAlC/UL2dnR3ee+89LF++vNVjHRwcsHjxYixevFhhdTbq6Kp7zzqdnIu3Dl7BwJ7GOP7eqA7VRQhRwqp7APD3339jzJgxmDt3bkfja5eamhokJiZixYoV7D4ulwsfHx/ExcWptM7q6mpUV1ezv5eUlLTr/Ztja0YtRELUReZL5rfeegsWFhb417/+hcjISIUmAVnk5+dDLBazi9I3srKyQk5OjkrrDA8Ph0AgYDc7O7t2vX9zGu8hFlfUorSqVmH1EkLaJnNCfPDgAWJiYjBgwABs27YNVlZWeOmll/DFF18gLS1NmTFqnBUrVkAkErFbenq6wuo25GnDVL9+sDu1EglRLbk6Vdzc3LBq1SpcvnwZqampCAgIwJ9//glnZ2e4u7tjzZo1uHLlilICNTc3h5aWFnJzc6X25+bmtthhoqw6eTwejI2NpTZFokkeCFEPuXuZG9nY2GDBggX4448/kJ+fj1WrVuHRo0fw8/PDxo0bFRkjAEBXVxceHh6Ijo5m90kkEkRHR8Pb21tj6lSEp2MRaegNIaqkkIdlDQwMMHXqVEydOhVisRiFhYWKqLaJ0NBQzJkzB0OHDoWnpyd27NiB8vJyzJs3DwAwe/Zs9OzZE+Hh4QDqO02Sk5PZnzMzM5GUlARDQ0N2yYO26lSHp2MRqYVIiCrJlBA///xzmSrjcDh47733YGFh0aGgWjJ9+nQ8efIEa9asQU5ODtzd3XHy5Em2UyQtLQ1c7tNGb1ZWFgYPHsz+vnXrVmzduhVjxoxBTEyMTHWqgx1NFEuIWsg0DrF3796yVcbh4MGDBx0OqrNR5DhEADhzJw/z9ifAxdoYf75PYxEJ6QiFj0N8+PChQgIjsqGlBAhRj3Z3qhDlabyHWFpVB1EljUUkRFXa1amSkZGB//3vf0hLS0NNTY3Ua9u3b1dIYN2Znq4WzA11kV9Wg/TCCgh6CtQdEiHdgtwJMTo6GpMnT4ajoyPu3LmDgQMH4tGjR2AYBkOGDFFGjN1ST1N95JfVIKOoEgMpIRKiEnJfMq9YsQIfffQRbty4AT6fj19++QXp6ekYM2YM3njjDWXE2C1RTzMhqid3Qrx9+zZmz54NANDW1kZlZSUMDQ2xfv16fPrppwoPsLuisYiEqJ7cCdHAwIC9b2htbY3U1FT2tfz8fMVF1s3ZmVELkRBVk/se4vDhw3H+/Hm4uLhg4sSJ+PDDD3Hjxg0cPXoUw4cPV0aM3VJjC5GWEiBEdeROiNu3b0dZWRkAYN26dSgrK0NkZCScnJyoh1mBnh2LyDAMrW5IiArInRAdHR3Znw0MDLB7926FBkTq9TSpT4jlNWIUV9TC1EBXzRER0vXJfQ8xISEB8fHxTfbHx8crbeqv7oivowVLIx4AIJ3uIxKiEnInxJCQkGYnRM3MzERISIhCgiL1bGnBKUJUSu6EmJyc3OwA7MGDB7NTbRHFeDpRLLUQCVEFuRMij8drMsM0AGRnZ0NbWyHTK5IGtGg9Iaold0J8+eWX2TVFGhUXF2PlypV46aWXFBpcd2dHi9YTolJyN+m2bt2K0aNHw97enp18NSkpCVZWVvjuu+8UHmB3Rk+rEKJacifEnj174vr16zh06BD++ecf6OnpYd68eQgMDISOjo4yYuy2nu1UobGIhCif3AmxpKQExsbGCA4ObvLa/fv32bVKSMfZmOiBwwEqa8UoKK+BuSFP3SER0qXJfQ9x0qRJqKqqarL/7t27GDt2rCJiatWXX34JBwcH8Pl8eHl54fLly62W/+mnn9C/f3/w+Xy4urrijz/+kHp97ty54HA4Upufn58yT0FmutpcCI35AGgFPkJUQe6EaGhoiClTpqCuro7dd/v2bYwdOxYBAQEKDe55kZGRCA0NRVhYGK5evYpBgwbB19cXeXl5zZa/ePEiAgMDERQUhGvXrsHf3x/+/v64efOmVDk/Pz9kZ2ez25EjR5R6HvKgsYiEqI7cCfHo0aMQiUSYOXMmGIbBzZs3MXbsWAQGBmLnzp3KiJG1fft2zJ8/H/PmzcOAAQOwe/du6OvrY9++fc2W37lzJ/z8/LBkyRK4uLhgw4YNGDJkCHbt2iVVjsfjQSgUspupqalSz0MedtSxQojKyJ0Q9fT0cOLECdy9exfTpk3DhAkTMHv2bKVP7FBTU4PExET4+Piw+7hcLnx8fBAXF9fsMXFxcVLlAcDX17dJ+ZiYGFhaWsLZ2RnvvPMOCgoKWo2luroaJSUlUpuysGMRaegNIUonU0J8/svP5XIRGRmJ+Ph4BAQEYPXq1UpPDPn5+RCLxU3WS7ayskJOTk6zx+Tk5LRZ3s/PDwcPHkR0dDQ+/fRTxMbG4pVXXoFYLG4xlvDwcAgEAnazs7PrwJm1jobeEKI6MvUym5iYNDvkg2EY7N69G3v27GGHhbSWSDTRjBkz2J9dXV3h5uaGPn36ICYmBhMmTGj2mBUrViA0NJT9vaSkRGlJ0ZYmiiVEZWRKiGfOnFF2HG0yNzeHlpZWk8cGc3NzIRQKmz1GKBTKVR6on97M3Nwc9+/fbzEh8ng88HiqGQLz7D1EiYQBl0tjEQlRFpkS4pgxY5QdR5t0dXXh4eGB6Oho+Pv7AwAkEgmio6OxcOHCZo/x9vZGdHQ0Fi9ezO6LioqCt7d3i++TkZGBgoICWFtbKzL8drMW8KHF5aCmToL8smpYNgzDIYQonkz3EK9fvw6JRCJzpbdu3ZIalqMooaGh+Pbbb3HgwAHcvn0b77zzDsrLyzFv3jwAwOzZs7FixQq2/Pvvv4+TJ09i27ZtuHPnDtauXYsrV66wCbSsrAxLlizBpUuX8OjRI0RHR+P1119H37594evrq/D420Nb65mxiHQfkRClkikhDh48uM2e12d5e3sjLS2t3UG1ZPr06di6dSvWrFkDd3d3JCUl4eTJk2zHSVpaGrKzs9nyI0aMwOHDh/HNN99g0KBB+Pnnn3Hs2DEMHDgQAKClpYXr169j8uTJ6NevH4KCguDh4YFz586p7JJYFra0JCkhKsFhGIZpqxCXy0VwcDD09fVlqvSrr75CcnKy1HIDXVlJSQkEAgFEIhGMjY0VXv9HP/2DnxMzsMTXGSHj6NFIQuQhz/dTpnuIo0ePxt27d2UOwNvbG3p6ejKXJ617Oi8itRAJUSaZEmJMTIySwyCtobGIhKiG3E+qENWzo3uIhKgEJcROwLZhbZXM4kqIJW3e8iWEtBMlxE5AaMyHNpeDWjGDvNKmU68RQhSDEmInoMXlwMaEpgEjRNnkTojl5eXKiIO0gXqaCVE+uROilZUV/v3vf+P8+fPKiIe0gOZFJET55E6I33//PQoLCzF+/Hj069cPmzZtQlZWljJiI8+gp1UIUT65E6K/vz+OHTuGzMxMLFiwAIcPH4a9vT1effVVHD16VCnPMJOn04DRovWEKE+7O1UsLCwQGhqK69evY/v27Th9+jSmTp0KGxsbrFmzBhUV1JJRJPaSuZj+roQoi9zLkDbKzc3FgQMHsH//fjx+/BhTp05FUFAQMjIy8Omnn+LSpUv466+/FBlrt9b4tEpWcRXqxBJoa9EAAUIUTe6EePToUURERODUqVMYMGAA3n33XcyaNQsmJiZsmREjRsDFxUWRcXZ7lkY86GpxUSOWIKekik2QhBDFkTshzps3DzNmzMCFCxcwbNiwZsvY2Njg448/7nBw5Ckul4Oepnp4mF+OjKJKSoiEKIHcCTE7O7vNacD09PQQFhbW7qBI82wbEmJ6YQWGO/ZQdziEdDlyJ8S6urpmV9fjcDjg8XjQ1dVVSGCkKZr1hhDlkjshtrQCXyNbW1vMnTsXYWFh4HLpxr8iPR2LSAmREGWQOyHu378fH3/8MebOnQtPT08AwOXLl3HgwAGsWrUKT548wdatW8Hj8bBy5UqFB9yd0aL1hCgZI6fx48czkZGRTfZHRkYy48ePZxiGYQ4ePMg4OzvLW7VMdu3axdjb2zM8Ho/x9PRk4uPjWy3/448/Ms7OzgyPx2MGDhzInDhxQup1iUTCrF69mhEKhQyfz2cmTJjApKSkyBWTSCRiADAikUju85FH4uNCxn7ZcWZEeLRS34eQrkSe76fc17QXL17E4MGDm+wfPHgw4uLiAAAjR45UyiJTkZGRCA0NRVhYGK5evYpBgwbB19cXeXl5LcYaGBiIoKAgXLt2Df7+/vD398fNmzfZMps3b8bnn3+O3bt3Iz4+HgYGBvD19UVVleZNs9XYQswWVaJWLPsqiIQQGcmbbZ2cnJhly5Y12b9s2TKmX79+DMMwTEJCAmNjYyNv1W3y9PRkQkJC2N/FYjFjY2PDhIeHN1t+2rRpzKRJk6T2eXl5MW+//TbDMPWtQ6FQyGzZsoV9vbi4mOHxeMyRI0dkjktVLUSJRML0+/gPxn7ZceZxfrlS34uQrkKpLcStW7fis88+w6BBg/DWW2/hrbfegru7O3bs2IFt27YBABISEjB9+nSFJu6amhokJibCx8eH3cflcuHj48O2TJ8XFxcnVR4AfH192fIPHz5ETk6OVBmBQAAvL68W61QnDodDkzwQokRyd6pMnjwZd+/exZ49e9iV+F555RUcO3YMDg4OAIB33nlHoUECQH5+PsRiMbsGcyMrKyvcuXOn2WNycnKaLZ+Tk8O+3rivpTLNqa6uRnV1Nft7c8OQlMXWVB+pT8qpY4UQJZArIdbW1sLPzw+7d+9GeHi4smLSeOHh4Vi3bp1a3puG3hCiPHJdMuvo6OD69evKiqVV5ubm0NLSQm5urtT+3NxcCIXCZo8RCoWtlm/8V546AWDFihUQiUTslp6eLvf5tJedGQ3OJkRZ5L6HOGvWLPz3v/9VRiyt0tXVhYeHB6Kjo9l9EokE0dHR8Pb2bvYYb29vqfIAEBUVxZbv3bs3hEKhVJmSkhLEx8e3WCcA8Hg8GBsbS22qQksJEFIvW1SJi6n5yBYprnHQrkf39u3bh9OnT8PDwwMGBgZSr2/fvl1hwT0vNDQUc+bMwdChQ+Hp6YkdO3agvLwc8+bNAwDMnj0bPXv2ZC/n33//fYwZMwbbtm3DpEmT8MMPP+DKlSv45ptvANR3UixevBiffPIJnJyc0Lt3b6xevRo2Njbw9/dX2nl0BC0lQLozsaR+5cmDcY+wO+YBGABcDhA+xRXTh/XqcP1yJ8SbN29iyJAhAICUlBSp11p7pE8Rpk+fjidPnmDNmjXIycmBu7s7Tp48yXaKpKWlST0uOGLECBw+fBirVq3CypUr4eTkhGPHjmHgwIFsmaVLl6K8vBzBwcEoLi7GyJEjcfLkSfD5fKWeS3s1thBzS6tQXScGT1tLzRER0rpsUSUe5pejt7kBrAV6LZZjGAYllXXIElUiq7h+yyyuQjb7exVySqqarE0uYYCVR29idD+LVuuXBYdhGFr5vINKSkogEAggEomUfvnMMAwGrDmFyloxznw0Fr3NDdo+iBA1iUxIw4qjNyBh6ltyH73sjMG9TNmElyWqevpzcSXKa8Rt1snl1CfB5x2ZPxzefZrOAiXP97PdM2bfv38fqampGD16NPT09MAwjNJbiKS+FW5npoeU3DJkFFVQQiQap04swYP8cly8n491vyejMXdJGGDzqbttHm9moAsbEz5sBHqwMdGr/9mk4WeBHuokEozefEYqKWpxOHAw7/gcoXInxIKCAkybNg1nzpwBh8PBvXv34OjoiKCgIJiamrKDs4ny2JrqNyREuo9I1Ku0qhZ3ckqRnFVSv2WX4G5uKWrqWn601NqYjz6Whk8T3TOJz1qgBz3dtm8DhU9xxcqjNyFmGGhxONg4ZWCHL5eBdiTEDz74ADo6OkhLS5NaJmD69OkIDQ2lhKgC1NNMlKWl+30MwyBbVMUmvdvZ9f8+Lmj+v0FDnjb6WBjgeoYIz17danGAoyEjOpy8pg/rhdH9LPAovwIO5voKSYZAOxLiX3/9hVOnTsHW1lZqv5OTEx4/fqyQoEjrqKeZKMOz9/s4HOAND1sY83WQ3JD8iitqmz3ORsCHi7UxBtgYY0DDv3am+uByOYhMSFNKSw4ArAV6CqurkdwJsby8vNklBAoLC8Hj8RQSFGkdzYtIFIlhGJxLycfyX26wrTmGAX68kiFVTpvLQV9LQzbpDbA2hou1MUwNWp4lX1ktOWWROyGOGjUKBw8exIYNGwDU3+SXSCTYvHkzxo0bp/AASVP0tArpKFFlLS7cz0fM3TzEpjxBbkl1s+V8X7DCBBcrDLA2hpOVYbuGeSmjJacscifEzZs3Y8KECbhy5QpqamqwdOlS3Lp1C4WFhbhw4YIyYiTPaWwhPimtRlWtGHwdGotIWscwDG5llSA25Qli7z5BYlqR1Hg+njYH1XXSY1m0OBysnfxCp0lmiiB3Qhw4cCBSUlKwa9cuGBkZoaysDFOmTEFISAisra2VESN5jkBPB4Y8bZRV1yGjqBJ9LQ3VHRLRQKKKWpy7/wQxd58gNuUJnpRKtwIdLQwwtp8lxjpbwLO3GX5LylTa/b7Ool3jEAUCAa27rEaN8yLeySlFRlEFJcRu6vkeYYmEQXJ2CWLu5iHm7hNcSy+WagXq6Wjhxb49MKafBcY6W7K3Xhp1tvt9ytCuhFhcXIzLly8jLy8PEon0eKPZs2crJDDSOltT/YaESPcRuyOpHmEAg3uZIq2wAvll0q3AvpaGGNuQAIf1Nm3zHmBnut+nDHInxN9//x0zZ85EWVkZjI2NpZ5O4XA4lBBVhHqau6+MogosP3oDjQ/dMgCuphUBAPR1tTCijznGOltgTD+LJq1A0jq5E+KHH36If//739i4cWOzw2+IalBPc/dTUFaNyCvp2HfuIZqbgeDjiS6YPcKeJvzoALkTYmZmJhYtWkTJUM3YmbPpaZUuLym9GAfjHuH49ewWH4nT4nDw6iBrSoYdJHdC9PX1xZUrV+Do6KiMeIiMaCmBrq2qVozj17NxMO4RrmeI2P1utgLM9nZAVa0YYb/d6tY9wsogd0KcNGkSlixZguTkZLi6ukJHR0fq9cmTJyssONIy24bH9wrKa1BRUwd93XZPXEQ0SHphBb6Pf4wfE9JR1PConK4WF6+6WWP2CAe425mwZSe4WHbrHmFlkHs+xGcnYG1SGYcDsbjt+cy6GlXOh/gst7WnUFJVh78+GI1+VkYqe1+iWBIJg3P38/Fd3CNE38lj7w/2NNHDzOG9MH2oHXoY0mOx7aXU+RCfH2ZD1MfOTB+3skqQUVRBCbETElXW4ufEDHx/6TEe5pez+0c5mePN4faY4GIFLS7NMapKdJ3Vidma6jUkRLqPqOmeHURdVF6L7y49wrFrWaisrb+iMuJpY+pQW8wabo8+FjTQXl1kTogTJ07EkSNHIBAIAACbNm3CggULYGJiAqB+4thRo0YhOTlZKYGSphrvI9K8iJrt2UHUz+svNMKb3vbwd+8JAx61T9RN5mVIT506herqp6PgN27ciMLCQvb3uro63L3b9vTg7VVYWIiZM2fC2NgYJiYmCAoKQllZWavHVFVVISQkBD169IChoSECAgKarMHM4XCabD/88IPSzkOR7KinWeNlFVdg+S9Nk+H4/paIDB6OP98fhZle9pQMNYTMCfH5vhdVr001c+ZM3Lp1C1FRUTh+/DjOnj2L4ODgVo/54IMP8Pvvv+Onn35CbGwssrKyMGXKlCblIiIikJ2dzW6augTp82xpoliN9rigHO8euormvinzRznCy7EHrUOkYTrF/5Zu376NkydPIiEhAUOHDgUAfPHFF5g4cSK2bt0KGxubJseIRCL897//xeHDhzF+/HgA9YnPxcUFly5dwvDhw9myJiYmEAqFqjkZBbI1o8f3NFFVrRhfx6Ti69jUZgdSK2pBJKJ4MrcQGy8nn9+nCnFxcTAxMWGTIQD4+PiAy+UiPj6+2WMSExNRW1sLHx8fdl///v3Rq1cvxMXFSZUNCQmBubk5PD09sW/fvjZbv9XV1SgpKZHa1KGxhVhcUYt7uaVqiYFIi76di5c+i8XO6HuoqZNgZF9zfPhyP2g1fFdoELVmk7mFyDAM5s6dyy4TUFVVhQULFsDAoH4ZzGfvLypaTk4OLC0tpfZpa2vDzMwMOTk5LR6jq6vLdvo0srKykjpm/fr1GD9+PPT19fHXX3/h3XffRVlZGRYtWtRiPOHh4Vi3bl37T0hBTlzPYn9+ecdZbJriiunDeqkxou4rvbAC635Pxunb9feohcZ8rH51ACa6CsHhcDDVw5YGUXcCMifEOXPmSP0+a9asJmXknelm+fLl+PTTT1stc/v2bbnqlNfq1avZnwcPHozy8nJs2bKl1YS4YsUKhIaGsr+XlJTAzs5OqXE+L1tUiRVHb7C/Mwyw8uhNjO5nQV84FaqqFePbsw+w68x9VNdJoM3lIGhkbyya4CTVUdLdp9XqLGROiBEREQp/8w8//BBz585ttYyjoyOEQiHy8vKk9tfV1aGwsLDFe39CoRA1NTUoLi6WaiXm5ua2er/Qy8sLGzZsQHV1dYuLZvF4PLUvqPUwv7xJz6WYYfAov4K+eCoSm/IEYb/dxKOGpTiHO5phw+sD4USD5DsttXaqWFhYwMLCos1y3t7eKC4uRmJiIjw8PAAAf//9NyQSCby8vJo9xsPDAzo6OoiOjkZAQAAA4O7du0hLS4O3t3eL75WUlARTU1O1J7y29DY3AJcDqaTI5YBu1qtAZnElNvyejJO36m+9WBrx8PEkF0weZEO9xp1cp+hldnFxgZ+fH+bPn4/du3ejtrYWCxcuxIwZM9ge5szMTEyYMAEHDx6Ep6cnBAIBgoKCEBoaCjMzMxgbG+O9996Dt7c328P8+++/Izc3F8OHDwefz0dUVBQ2btyIjz76SJ2nKxNrgR7Cp7iya2AAgIe9KbUOlaimToK95x/gi+j7qKwVQ4vLwdwRDljs4wQjvk7bFRCN1ykSIgAcOnQICxcuxIQJE8DlchEQEIDPP/+cfb22thZ3795FRcXTISifffYZW7a6uhq+vr746quv2Nd1dHTw5Zdf4oMPPgDDMOjbty+2b9+O+fPnq/Tc2qtxDYy/buUg7H/JuJZWjIyiCrb3mSjOhfv5WP3bTTx4Uv/M8TAHU6x/fSBcrFU3mQdRPrlnuyFNqWu2m2fN2huP8/fz8S+vXtj4f65qiaEryhFVYcOJZJy4ng0AMDfUxcqJLvi/wT3p8riTUOpsN0QzLZrghPP38/HTlXQsHNcXNiZ06dxe2aJK3M8rQ/yDAuy78AgVNWJwOcCbw+0R+rIzBHp0edxVUULsIjx7m2G4oxkuPSjE7thUrH99oLpD6pQiE9KkFnACgCG9TLD+9YEY2FOgvsCISsj8pArRfO9P6AcA+OFyOnJEVWqOpvNJLyzH8l+kkyGHA3wROJiSYTdBCbELGe5oBk8HM9SIJdgdm6rucDqVvJIqBH+X2GQiBoYB0gpp8ozughJiF8LhcLBoghMA4MjlNOSVUCtRFhdT8zHx8/O4nd30eXCaiKF7oYTYxbzYtweG9DJBdZ0Ee84+UHc4Gk0iYfBF9D3M2huP/LJqOFsZ4cOXaCKG7ow6VboYDoeD9336Yc6+yzgU/xgLxvSBhZFmP3WjDgVl1fjgx39wNuUJAOAND1usf30g9HS1MHUoTcTQXVELsQsa7WSOQXYmqKqVYO85aiU+78qjQkz6/DzOpjwBX4eLzVPdsOWNQdDTrV/k3VqgB+8+PSgZdkOUELsgDoeD9yf0BQAcjHuMgjLlTc3WmTAMg2/OpmL6N5eQU1IFRwsDHAt5EdOGqnamIqK5KCF2UeOcLeHaU4DKWjH2nn+o7nDUTlRRi/kHE7HxjzsQSxhMHmSD/y0cif5CevSOPEUJsYt6tsf54MVHKCqvUXNE6vNPejEmfXEOp2/nQleLi//830DsnOEOQ1rYiTyHEmIX5uNiiQHWxiivEWPfhe7XSmQYBgcuPsLU3ReRUVSJXmb6OPruCMz0sqfnkEmzKCF2Yc+2EvdfeARRRa2aI1Kd0qpaLDx8DWH/u4VaMQPfF6zw+3sj6YkT0ipKiF3cywOs0F9ohNLqum7TSkzOKsFrX5zHiRvZ0OZysPrVAdg9y4MmZSBtooTYxXG5HLw3vr6VuO/CQ5RUdd1WIsMw+OFyGvy/uoBHBRWwEfDx4wJvBI3sTZfIRCaUELuBVwYK4WRpiNKqOuy/8Ejd4ShFRU0dPvzxHyw/egM1dRKMc7bAiUWjMKSXqbpDI50IJcRugMvl4L2Ge4n/Pf8QpV2olZgtqsRPV9Ixcec5HL2WCS0uB8v8+uO/c4bB1EBX3eGRTobGHXQTk1ytsfN0ClKflONg3GOEjOur7pA6LDIhrX66robfjXja2DtnKLwce6g1LtJ5dZoWYmFhIWbOnAljY2OYmJggKCgIZWVlrR7zzTffYOzYsTA2NgaHw0FxcbFC6u2MtJ65l7j33AOUV9epOaKOeVxQjmXPJEMAKK+pQ68eNDMNab9OkxBnzpyJW7duISoqCsePH8fZs2cRHBzc6jEVFRXw8/PDypUrFVpvZ/WqmzV6mxugqKIW3116rO5w2i2zuBL/3p/QZL+EAR7lVzRzBCGy6RSLTN2+fRsDBgxAQkIChg4dCgA4efIkJk6ciIyMDHYp0pbExMRg3LhxKCoqklq0vqP1NtKERaZk9XNiBj766R/0MNDFuWXjoK/bue6anLv3BIuOXENRM2MqtTgcnF8+jiZlIFLk+X52ihZiXFwcTExM2KQFAD4+PuByuYiPj1d5vdXV1SgpKZHaOgt/dxv0MtNHQXkNDl1KU3c4MpNIGOz6+x5m77uMoopaDOxpjGV+zjR3IVGoTtE8yMnJgaWlpdQ+bW1tmJmZIScnR+X1hoeHY926de1+X3XS1uJi4bi+WPrLdew5+wCzhtuz015pKlFlLT78MQmnb+cBAKYPtcO6118AX0cL/oN70tyFRGHU2kJcvnw5OBxOq9udO3fUGWKzVqxYAZFIxG7p6enqDkku/zekJ2xN9ZBfVo0jlzW7ldj41Mnp23nQ1ebi0wBXfDrVDXwdmruQKJ5aW4gffvgh5s6d22oZR0dHCIVC5OXlSe2vq6tDYWEhhEJhu9+/vfXyeDzweJ13FmodLS5CxvXFiqM3sDs2Ff/y6sUmGE3yc2IGPv71BqrrJLA11cPXMz3gakvPIhPlUWtCtLCwgIWFRZvlvL29UVxcjMTERHh4eAAA/v77b0gkEnh5ebX7/ZVVb2cQMMQWX0TfQ5aoCpEJ6ZgzwkHdIbGq68RY93syDsfXt17HOltgx3R3mOjTQGuiXJ2iU8XFxQV+fn6YP38+Ll++jAsXLmDhwoWYMWMG2xOcmZmJ/v374/Lly+xxOTk5SEpKwv379wEAN27cQFJSEgoLC2Wut6vS1ebinYbB2V/HpKK6TqzmiOplFldi2u44HI5PA4cDLPZxwr45wygZEtVgOomCggImMDCQMTQ0ZIyNjZl58+YxpaWl7OsPHz5kADBnzpxh94WFhTEAmmwREREy1ysLkUjEAGBEIlFHT1OlqmrrGK//nGbslx1nDsY9Unc4zNmUPMZ93SnGftlxxm3tKebMnVx1h0S6AHm+n51iHKKm60zjEJ934OIjhP3vFmwEfMQsGQddbdVfNEgkDL6KuY9tUSlgGMC1pwBfzRwCOzN66oR0XJcbh0iUZ/owO1ga8ZAlqsIvVzNU/v6iiloEf3cFW/+qT4YzhtnhpwXelAyJWlBC7Ob4Olp4e0wfAMCXZ+6jVixR2XvfyhLhtV1Ph9RsDnDDpgA3jezxJt0DJUSCf3n2grkhDxlFlfj1aqZK3vPnxAxM+eoi0gorYGuqh6PvjMC0YbQcKFEvSogEerpaeHu0IwBg15n7qFNSKzFbVInYlDws/uEaPvrpH1TXSTDW2QLHaa0ToiE6xaN7RPlmDu+F3bGpSCuswLGkLEz1sFVo/ZEJaVhx9AYkz3ThfeDTD++N7wsul6b3J5qBEiIBAOjramP+aEds+vMOvjxzH/7uNtDWat8FRHWdGOmFlUgrLMej/AokZ4nw83OX4lwOMG2YLSVDolEoIRLWm8PtsSc2FQ/zy/FZVApmedu3+IxwRU0dHhdU4HFBOR4VVLA/Py6oQJaoEm0N5mqcu5CeQSaahBIiYRnwtOHZ2wynbuXiy5hUfB2binfH9kU/oREe59cnvrTC+n+flFa3XpeuFux7GMDBXB9mBjwcuvRYanZrLQ4HDuY0tIZoFkqIhJUtqkRUci77u4Sp72Rpiam+Dnr1MIBDD33Y9zCAvZk+HMzrf+5hoCu19KdrT2OsPHoTYoahuQuJxqKESFgP88ulOj0a9bcywkBbwdPE10Mf9mYGEOjLvvD79GG9MLqfBc1dSDQaJUTC6m1uAC4HUklRi8NBxL+HKSSBWQv0KBESjUbjEAnLWqCH8CmuNC0/6baohUik0KUt6c4oIZIm6NKWdFd0yUwIIQ0oIRJCSANKiIQQ0oASIiGENKCESAghDaiXWQEal6UpKSlRcySEkOc1fi9lWT6KEqIClJaWAgDs7GjGZ0I0VWlpKQSC1iciplX3FEAikSArKwtGRkZSExpompKSEtjZ2SE9Pb3TrQ7YEjonzafu82EYBqWlpbCxsQGX2/pdQmohKgCXy4WtrWJnmFYmY2PjLvFFexadk+ZT5/m01TJsRJ0qhBDSgBIiIYQ0oITYjfB4PISFhYHH46k7FIWhc9J8nel8qFOFEEIaUAuREEIaUEIkhJAGlBAJIaQBJURCCGlACbGLCA8Px7Bhw2BkZARLS0v4+/vj7t27rR6zf/9+cDgcqY3P56so4rZ9/fXXcHNzYwf0ent7488//2z1mJ9++gn9+/cHn8+Hq6sr/vjjDxVFKxt5z0nTP6Pnbdq0CRwOB4sXL261nKZ+TpQQu4jY2FiEhITg0qVLiIqKQm1tLV5++WWUl5e3epyxsTGys7PZ7fHjxyqKuG22trbYtGkTEhMTceXKFYwfPx6vv/46bt261Wz5ixcvIjAwEEFBQbh27Rr8/f3h7++Pmzdvqjjylsl7ToBmf0bPSkhIwJ49e+Dm5tZqOY3+nBjSJeXl5TEAmNjY2BbLREREMAKBQHVBKYCpqSmzd+/eZl+bNm0aM2nSJKl9Xl5ezNtvv62K0NqttXPqLJ9RaWkp4+TkxERFRTFjxoxh3n///RbLavLnRC3ELkokEgEAzMzMWi1XVlYGe3t72NnZtdlSUSexWIwffvgB5eXl8Pb2brZMXFwcfHx8pPb5+voiLi5OFSHKTZZzAjrHZxQSEoJJkyY1+fs3R5M/J5rcoQuSSCRYvHgxXnzxRQwcOLDFcs7Ozti3bx/c3NwgEomwdetWjBgxArdu3dKYySpu3LgBb29vVFVVwdDQEL/++isGDBjQbNmcnBxYWVlJ7bOyskJOTo4qQpWZPOfUGT6jH374AVevXkVCQoJM5TX5c6KE2AWFhITg5s2bOH/+fKvlvL29pVomI0aMgIuLC/bs2YMNGzYoO0yZODs7IykpCSKRCD///DPmzJmD2NjYFhNIZyDPOWn6Z5Seno73338fUVFRGt3ZIytKiF3MwoULcfz4cZw9e1buFoSOjg4GDx6M+/fvKyk6+enq6qJv374AAA8PDyQkJGDnzp3Ys2dPk7JCoRC5ublS+3JzcyEUClUSq6zkOafnadpnlJiYiLy8PAwZMoTdJxaLcfbsWezatQvV1dXQ0tKSOkaTPye6h9hFMAyDhQsX4tdff8Xff/+N3r17y12HWCzGjRs3YG1trYQIFUMikaC6urrZ17y9vREdHS21LyoqqtX7c5qgtXN6nqZ9RhMmTMCNGzeQlJTEbkOHDsXMmTORlJTUJBkCGv45qbtXhyjGO++8wwgEAiYmJobJzs5mt4qKCrbMm2++ySxfvpz9fd26dcypU6eY1NRUJjExkZkxYwbD5/OZW7duqeMUmli+fDkTGxvLPHz4kLl+/TqzfPlyhsPhMH/99RfDME3P58KFC4y2tjazdetW5vbt20xYWBijo6PD3LhxQ12n0IS856Tpn1Fznu9l7kyfE10ydxFff/01AGDs2LFS+yMiIjB37lwAQFpamtQU6kVFRZg/fz5ycnJgamoKDw8PXLx4UWPuz+Xl5WH27NnIzs6GQCCAm5sbTp06hZdeeglA0/MZMWIEDh8+jFWrVmHlypVwcnLCsWPHWu1YUjV5z0nTPyNZdKbPiab/IoSQBnQPkRBCGlBCJISQBpQQCSGkASVEQghpQAmREEIaUEIkhJAGlBAJ6SYkEgmCg4NhbW2N4OBg0Ii7pighEtJNnDp1CikpKfjzzz9x584dnDx5Ut0haRxKiKRbGDt2rNS09g4ODtixY4fa4lGWtWvXsksNPH9+AoEApqam6Nu3L8zMzJrMlfnscgVtLQHQVVFCJM2aO3cu/P39m+yPiYkBh8NBcXFxh+pvKSGtXbsW7u7uHapbFgkJCQgODpapbGdLni+88AKys7ObnN+IESNQU1MDgUAAsVgMLy8vqdenT5+O7OxszZhkQU0oIZJuycLCAvr6+uoOQym0tbUhFAqbnF9tbS0SEhKwdOlSJCQkoK6uTup1PT09CIVC6OrqqjJcjUIJkXTY+fPnMWrUKOjp6cHOzg6LFi1qc3EreezduxcuLi7g8/no378/vvrqq1bLl5eXY/bs2TA0NIS1tTW2bdvWpMyzrT6GYbB27Vr06tULPB4PNjY2WLRoEYD6S+3Hjx/jgw8+YC8nAaCgoACBgYHo2bMn9PX14erqiiNHjki9x9ixY7Fo0SIsXboUZmZmEAqFWLt2rVSZ4uJivP3227CysgKfz8fAgQNx/Phx9nVF/m1PnDgBXV1drF+/HlpaWhqz0p0moYRIOiQ1NRV+fn4ICAjA9evXERkZifPnz2PhwoUKqf/QoUNYs2YN/vOf/+D27dvYuHEjVq9ejQMHDrR4zJIlSxAbG4vffvsNf/31F2JiYnD16tUWy//yyy/47LPPsGfPHty7dw/Hjh2Dq6srAODo0aOwtbXF+vXr2VXvAKCqqgoeHh44ceIEbt68ieDgYLz55pu4fPmyVN0HDhyAgYEB4uPjsXnzZqxfvx5RUVEA6nt9X3nlFVy4cAHff/89kpOTsWnTJnYOQUX/bSMiIhAYGAgdHR0EBgYiIiKiXfV0aeqdfYxoqjlz5jBaWlqMgYGB1Mbn8xkATFFREcMwDBMUFMQEBwdLHXvu3DmGy+UylZWVLdZvb2/P6OrqNqlfR0eHGTRoEFuuT58+zOHDh6WO3bBhA+Pt7d1svaWlpYyuri7z448/svsKCgoYPT09qTn67O3tmc8++4xhGIbZtm0b069fP6ampqbFWBvLtmbSpEnMhx9+yP4+ZswYZuTIkVJlhg0bxixbtoxhGIY5deoUw+Vymbt37zZbX3v+tmFhYVJ/v0Y5OTmMtrY2k5SUxDAMw1y7do3R0dFh8vLympRta9W8roxaiKRF48aNk5oJOSkpCXv37pUq888//2D//v0wNDRkN19fX0gkEjx8+BAbN26Uei0tLY09dsmSJU3qX7BgAft6eXk5UlNTERQUJFXHJ598gtTU1GZjTk1NRU1NjVSHgZmZGZydnVs8zzfeeAOVlZVwdHTE/Pnz8euvvza5v/Y8sViMDRs2wNXVFWZmZjA0NMSpU6ekzg9AkzWKra2tkZeXBwBISkqCra0t+vXr1+x7tPW3lcf333+P/v37Y9CgQQAAd3d39OvXD4cOHZKrnq6OJoglLTIwMGDX/miUkZEh9XtZWRnefvtt9p7bs3r16oUFCxZg2rRp7D4bGxv2Z3Nz8yb1PzsUpKysDADw7bffNukRbW5q+vays7PD3bt3cfr0aURFReHdd9/Fli1bEBsbCx0dnWaP2bJlC3bu3IkdO3bA1dUVBgYGWLx4MWpqaqTKPX88h8OBRCIBUN+J0Zq2/rbyiIiIQHJyMrS1n37lJRIJ9u/f322H2DSHEiLpkCFDhiA5OblJYmvU3Hg3WVlZWcHGxgYPHjzAzJkzZTqmT58+0NHRQXx8PJs0ioqKkJKSgjFjxrR4nJ6eHl577TW89tprCAkJQf/+/XHjxg0MGTIEurq6EIvFUuUvXLiA119/HbNmzQJQn1xSUlLkmsnazc0NGRkZSElJabaV2NbfVlYJCQlITk5GTEyM1GdRXFyM0aNH49q1axg8eHCH3qOroIRIOmTZsmUYPnw4Fi5ciLfeegsGBgZITk5GVFQUdu3a1eH6161bh0WLFkEgEMDPzw/V1dW4cuUKioqKEBoa2qS8oaEhgoKCsGTJEvTo0QOWlpb4+OOPpaawf97+/fvZcXn6+vr4/vvvoaenB3t7ewD1PdJnz57FjBkzwOPxYG5uDicnJ/z888+4ePEiTE1NsX37duTm5sqVEMeMGYPRo0cjICAA27dvR9++fXHnzh1wOBz4+fkp7G8bEREBT09PjB49uslr3t7eiIiIoITYgO4hkg5xc3NDbGwsUlJSMGrUKAwePBhr1qyRujTuiLfeegt79+5FREQEXF1dMWbMGOzfv7/VVQW3bNmCUaNG4bXXXoOPjw9GjhwJDw+PFsubmJjg22+/xYsvvgg3NzecPn0av//+O3r06AEAWL9+PR49eoQ+ffrAwsICALBq1SoMGTIEvr6+GDt2LIRCYbMD2dvyyy+/YNiwYQgMDMSAAQOwdOlStjWqiL9tVVUVjhw5goCAgGZfDwgIwOHDh5tc6ndXtKYKIV3I2rVrcezYMSQlJbW7jrFjx8Ld3b1TPZ2jKNRCJKSLuXHjBgwNDdscwP68Q4cOwdDQEOfOnVNSZJqPWoiEdCGFhYUoLCwEUP94okAgkPnY0tJS5ObmAqi/jWBubq6UGDUZJURCCGlAl8yEENKAEiIhhDSghEgIIQ0oIRJCSANKiIQQ0oASIiGENKCESAghDSghEkJIA0qIhBDS4P8BHd6EYfsaRnwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "fig, ax = plt.subplots(figsize=(3, 3))\n", "ax.plot(df[\"Distance\"], df[\"Energy\"], \".-\")\n", "ax.set_xlabel(\"He-He distance [Å]\")\n", "ax.set_ylabel(\"Energy [kcal/mol]\")\n", "ax;" ] }, { "cell_type": "code", "execution_count": 7, "id": "20706354", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minimum energy -0.13 kcal/mol at a separation of 2.6Å\n", "[09.04|17:55:53] Starting Xvfb...\n", "[09.04|17:55:53] Xvfb started\n" ] }, { "data": { "image/png": "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JBL0fXgnkCG1wG4lOgJZnpT2GtOXVdNehySGVHd2Z/DH5MKSa3E3YIjB0zVPL7jopfP+vv+EqBgCj3SpPTVDP68AAd6Y8alTp36OkHgfxPUNeC/yibkMxjVwNNRXOREvld3wzH3LKA15+XiVz1xYtIVcsoNPUU3P++dfvFC9Ew6MqRLbuGhZT1jUg3vhhRfmR0Z2/FGSxN9BKH3bmUWfwNu4fpQ61M43Z/NxLo515b2OtAeRtoFGOzkZXSx6EMk8wt+peROmLvj7X3xl6hHNqy7i4/X4AqRNPDU19QjEVQXrX8R3vHkVkLyYmI4BPXCJHrzZyUsTXIIbGUyVcctuPukkUMAlH/H6BOHv7JL/5cuzye0/eeqF+fHx9XvxuOSSC3yP8cPDw9XYua/ZKPogR9oxrpXAhTpMJ3Z0o5ywv1ZYNISLeCs8YMYP8BikjRYwLoK8bfrMcvjIzPT0j1RUKU5v0CeYMQl6+bdCXA/De9VS5yXpBrm15C0PhxyzZCgUYSFk5j18hEH+rw0Onsd4J9TM1dvfPvaKv/f06dNLY3BAE6B5PfsvJyyeL+LiBtR/Nwz8DOQ7QvnG6P3BkITCwlpeR5Mu7WqNMvoLUUUNjI3MN3yy3DTffOXCyifN8tlpzamI6hu+SM41ODhYKxaLn0VrH4bAMF8X45Hs4CNpgnAs86luYWHcS16xx1w+/PMEi46X5f9xmMTA9qePP5++Yn85UfFXrcrg0r+R57D4vXv3bsW8n3tg1V0IrTeyUXonTBCUgVGGQX7nyZwgm8bwMIPxkR8uJ+YLczPpPwXBYfnBWOvyxiPQwRrO4QCa+zh4ey/KEJvOhxzIGZN0coh3EWRbjuGfgrQ8/inIydLXjTkxl/XemS6xXHJhfRtdOgbiAgsXexDvRrzTe3szlL+P7bAlSI31ncPWMew/jizrKJLJGe7EwjroOi9rFE/U5XVFQHSDGpFV4X3OnTuHoig6hM0DEM9BrLcLf8KK8Pc8fNrPcPJPz06v/huj/J+MsI7Xe2GrjN2bXSgohlVd/ncRIAfkYlMLc2FcIIrb6IWbOrmrUl7HQkOp87UJ3Npj6qEA0ptoyfnher0IQl67jyl/byLy1BRFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEfgfRuC/AbYFn16nUHI1AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx_min = df[\"Energy\"].idxmin()\n", "\n", "print(\n", " f\"Minimum energy {df['Energy'][idx_min]:.2f} kcal/mol at a separation of {df['Distance'][idx_min]:.1f}Å\"\n", ")\n", "\n", "view(results[\"Molecules\"][idx_min], height=150, width=150)" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-all", "executable": "/usr/bin/env plams", "main_language": "python", "notebook_metadata_filter": "-all" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }