{ "cells": [ { "cell_type": "markdown", "id": "b1c3bca2-5c8c-4d02-a6f3-970ef4579ddb", "metadata": {}, "source": [ "# Solving eigenvalue problems\n", "\n", "You can use the `krylovevsolver` library in your Python script or Jupyter Notebook.\n", "\n", "First, import the necessary modules." ] }, { "cell_type": "code", "execution_count": 1, "id": "f6367f4f-1a90-47c2-ab85-3d307e1a87e8", "metadata": {}, "outputs": [], "source": [ "from krylovevsolver import KrylovSolver # solver\n", "from krylovevsolver.dff import Filter, FilterGenerator # for filter functions\n", "\n", "# Netgen/NGSolve imports for generating mesh and visualisation purposes\n", "from ngsolve import *\n", "from netgen.geom2d import SplineGeometry\n", "from ngsolve.webgui import Draw" ] }, { "cell_type": "markdown", "id": "1dc28cd8-27e0-4cc7-a8db-1ccae913657c", "metadata": {}, "source": [ "## Weak formulation of the problem\n", "\n", "Now, you need to derive the weak formulation of your problem. In this example, we consider the eigenvalue problem of the negative Laplace operator with Neumann boundary conditions, which is commonly used in wave equations. We aim to find eigenvalues $\\omega^2$ and eigenfunctions $u$, such that:\n", "\n", "$$\n", "-\\Delta u = \\omega^2 u \\quad \\text{in} \\ \\Omega\n", "$$\n", "$$\n", "\\frac{\\partial u}{\\partial \\nu} = 0 \\quad \\text{on} \\ \\partial\\Omega.\n", "$$\n", "\n", "The weak form is given by:\n", "$$\n", "\\int_\\Omega \\nabla u \\cdot \\nabla \\varphi \\, dx = \\omega_h^2 \\int_\\Omega u \\varphi \\, dx.\n", "$$\n", "\n", "We denote the expression in the left-hand side integral as $s$, and the expression in the right-hand side integral as $m$. To implement this for your specific problem, you need to use operators supported by the `netgen` and `ngsolve` libraries. In our particular example:\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "d3a9142e-b70a-407f-84b0-89ac85b9d88a", "metadata": {}, "outputs": [], "source": [ "from ngsolve.comp import ProxyFunction\n", "from ngsolve.fem import CoefficientFunction\n", "\n", "def s(u: ProxyFunction, v: ProxyFunction) -> CoefficientFunction:\n", " return grad(u)*grad(v)\n", "\n", "def m(u: ProxyFunction, v: ProxyFunction) -> CoefficientFunction:\n", " return u*v" ] }, { "cell_type": "markdown", "id": "e0c714e3-b879-4311-953f-3005a90565fa", "metadata": {}, "source": [ "The weak formulation of the negative Laplacian eigenvalue problem is already provided in the `wave_equation` module, so you can simply import the necessary functions into your code." ] }, { "cell_type": "code", "execution_count": 3, "id": "b0735e65-54f8-431c-9acf-fe22b7bf1586", "metadata": {}, "outputs": [], "source": [ "from krylovevsolver.wave_equation import s,m " ] }, { "cell_type": "markdown", "id": "4e936ceb-7da1-42cc-821c-69086499075c", "metadata": {}, "source": [ "If you want to solve another problem, you have to reformulate it and manually implement the `s` and `m` functions accordingly.\n", "\n" ] }, { "cell_type": "markdown", "id": "eb2b97e0-2c6c-4265-8522-be76c93d0db0", "metadata": {}, "source": [ "## Deriving a Discrete Filter Function (DFF)\n", "\n", "In the next step, you need to derive an appropriate **discrete filter function** (**dff**). Choose the following parameters:\n", "\n", "- `tau` (time-step),\n", "- `L` (number of time-steps), \n", "- region of interest (`om_min` to `om_max`), where you are searching for eigenvalues.\n", "\n", "Keep in mind that you are selecting the target interval **for the square roots of the eigenvalues**, not the eigenvalues themselves. For further guidance on parameter selection, refer to the mathematical background section.\n", "\n", "**Note** (**CFL condition**): The square roots of all eigenvalues of your discretized FEM model **must** lie below $\\omega_{\\mathrm{end}} = 2/\\tau$. Therefore, you should ensure that $\\tau < 2/\\omega$. Otherwise, the Krylov iteration will not converge to the desired eigenvalues.\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "1d5dc682-2de9-4463-81cc-0a41267be5b1", "metadata": {}, "outputs": [], "source": [ "tau = 0.0056 # controlled interval up to omega_end = 2/tau = 360\n", "L = 100\n", "om_min, om_max = 6, 8" ] }, { "cell_type": "markdown", "id": "ae2ff0f7-5f84-40ab-a846-c0bf1d4be852", "metadata": {}, "source": [ "Define a `FilterGenerator` object from the `krylovevsolver.dff` module with parameters: `L` (number of time-steps), `tau` (time-step), `om_min` and `om_max` (target interval) and `om_end` (end of controlled interval, recommended value: `2/tau`). Use one of methods `chebyshev()`, `l2()`, or `fourier()` to generate a `Filter` object. This is your filter function (here denoted as `alpha`). Plot the filter (the `plot()` method) to check if it has the desired shape. The obtained dff should have higher values within your target interval and be close 0 outside this interval, in the rest of the controlled region from 0 to `om_end`.\n", "\n", "The `FilterGenerator.chebyshev()` method uses least-squares collocation on Chebyshev nodes over the interval $(0, \\omega_{\\mathrm{end}}^2)$. You must specify the number of nodes. If the result is unsatisfactory, you can try increasing the number of nodes. Be cautious: if your target interval is small and falls between two neighboring Chebyshev knots, you may get a constant-zero function, which is undesirable.\n", "\n", "`FilterGenerator.l2()` method uses $L_2$-minimization with a quadrature rule. Optionally, you can specify the number of sample points in each unit interval for better accuracy.\n", "\n", "`FilterGenerator.fourier()` method uses the inverse Fourier transform. It is the most efficient and reliable method, but it is specifically designed for the negative Laplacian eigenvalue problem only." ] }, { "cell_type": "code", "execution_count": 5, "id": "722625fd-f0c3-4519-b90f-235ed96aa054", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Note: Fourier method works for negative Laplacian problem only!\n", "[Info]: cond(QTQ) = 2.0000000000003135, det(QTQ) = 1.577721810444296e+270\n", "[Info]: det(X) = 4.882581193687453e+214, cond(X) = 348.2338016957765\n" ] } ], "source": [ "# Use one of following:\n", "alpha = FilterGenerator(L, tau, om_min, om_max, 2/tau).fourier() # for negative Laplacian only!\n", "alpha = FilterGenerator(L, tau, om_min, om_max, 2/tau).chebyshev(1000) # 1000 determines number of Chebyshev nodes for collocation\n", "alpha = FilterGenerator(L, tau, om_min, om_max, 2/tau).l2()" ] }, { "cell_type": "code", "execution_count": 6, "id": "2ab14933-acb0-4c52-b76f-0a5cd46bc352", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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9u3b65x/zz33oLS0FIsWLcI999yDlStXYv78+Y0+v61btwIAevfuXee2PXv2oFOnTggICDA53r9/fwDA3r17G22/PuXl5SgsLMSpU6fw3//+F7/++iuGDRtW57zU1FQEBATAy8sLN998c6Pj+1qtFl9//TUGDhyIuLg4m6/PHJ1OhyeffBL/+te/0KNHD6vua+51O3ToUADAtGnTsHfvXuTk5GDNmjV4//338dRTT5kderGmP+zVF/Z+3oD1z90VXgeNtdm7d2/8/fffdY536dIFU6ZMscs11HddtT/f6vtnz6J6az4fHPFZ0q9fP+Pn8Zw5cwAA//nPf4zH1qxZA5lMZva+9uyzpj43R/ajJe+bTZs2ISAgABcvXkTnzp3h5+eHgIAAPPbYY6isrGzw2s25bmtYzPnyyy9x8eJFLFiwwOL7mMseCIJg0X0TExPRu3dvfPXVV5gwYUKdD6oXXngBOp0OBw4cQGhoKADg0UcfxeTJkzFv3jw88sgj8Pb2Np7fs2dPrFq1qtHHffHFF6HVarFlyxa0a9cOADBlyhR07twZzzzzDP744w+T83v16oVPPvnE+HNRURE++eQTvPbaaw0+ztGjRwGgTo0PAFy+fBlRUVF1jovHLl261OjzqM///d//GYsUpVIp7rjjDrz77rvG2z09PXHnnXdizJgxCAsLw+HDh/Hmm29i8ODB2Lp1K3r16mW23d9++w1FRUW47777bL62+ixbtgznzp3Dpk2brL6vudftqFGj8NJLL+GVV17Bjz/+aDz+wgsvYOHChSb3t6U/7NUX9n7egOXP3ZVeB4212a5dO3z++ed2ezxL/f3337j55pstOvfMmTN2C+Cs+XxwxGdJnz590KdPHwDAp59+CgCYPn06OnXq1Oh97dlnTX1ujuhHa943J06cQFVVFcaPH49p06Zh0aJFyMrKwv/+9z8UFxfjq6++avD6a2PAUu3o0aN44oknMGDAAEydOtXi+y1dutSiF7G1BEHAd999h3vuuQeCIJhkbkaOHInVq1dj9+7duPHGG43HH3300Ubb1el02LhxIyZMmGAMVgDDi/Lee+/FRx99BKVSaRJl12538ODB+P777+ucV1tRURE8PDzg5+dX57aKigqzxcheXl7G2201c+ZM3HXXXbh06RK+/vpr6HQ6aDQa4+0DBw7EwIEDjT+PGzcOd911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z6Njx45Yt24dunfvbjznmWeeQXl5OR5++GEUFxdj0KBB2LBhA7y8HFdfQURERC2HTUW3aWlpSEtLM3tbVlZWnWN333037r777nrbk0gkWLBgARYsWGDL5RAREZGb415CRERE5PIYsBAREZHLY8BCRERELo8BCxEREbk8BixERETk8hiwEBERkctjwEJEREQujwELERERubwWuVtzbYIgALBum2pLabVaqFQqKJVKh+0ETexnZ2E/Ow/72jnYz87hqH4Wv7fF7/GGuEXAUlpaCgCIjY1t5ishIiIia5WWliIwMLDBcySCJWGNi9Pr9bh06RL8/f0hkUjs2rZSqURsbCxycnIQEBBg17apBvvZOdjPzsO+dg72s3M4qp8FQUBpaSmio6NN9iE0xy0yLFKpFK1bt3boYwQEBPDN4ATsZ+dgPzsP+9o52M/O4Yh+biyzImLRLREREbk8BixERETk8hiwNEKhUGDu3LlQKBTNfSlujf3sHOxn52FfOwf72TlcoZ/douiWiIiI3BszLEREROTyGLAQERGRy2PAQkRERC6PAQsRERG5PAYsRERE5PIYsDRi6dKliIuLg5eXF5KTk7Fjx47mvqQWa9GiRejXrx/8/f0RHh6OCRMm4NixYybnVFZW4oknnkBoaCj8/Pxw5513Ii8vr5mu2D28+uqrkEgkmDlzpvEY+9l+Ll68iPvvvx+hoaHw9vZGjx498M8//xhvFwQBc+bMQVRUFLy9vZGSkoITJ0404xW3PDqdDrNnz0Z8fDy8vb3Rvn17vPTSSyYb5rGfrffnn39i7NixiI6OhkQiwbp160xut6RPr1y5gvvuuw8BAQEICgrCtGnTUFZW5pgLFqheq1evFjw9PYXly5cLhw4dEqZPny4EBQUJeXl5zX1pLdLIkSOFFStWCAcPHhT27t0rjBkzRmjTpo1QVlZmPOfRRx8VYmNjhczMTOGff/4RbrjhBmHgwIHNeNUt244dO4S4uDghMTFRmDFjhvE4+9k+rly5IrRt21Z48MEHhe3btwunT58WfvvtN+HkyZPGc1599VUhMDBQWLdunbBv3z5h3LhxQnx8vFBRUdGMV96yvPzyy0JoaKjw888/C2fOnBG++eYbwc/PT3j77beN57Cfrbd+/XrhhRdeENauXSsAEL7//nuT2y3p01GjRgk9e/YUtm3bJvz1119Chw4d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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "alpha.plot(0, 100)" ] }, { "cell_type": "markdown", "id": "c17a6f8d-8931-4bfa-ba6d-87be1667ebc8", "metadata": {}, "source": [ "This is a great example of a discrete filter function. It has significantly higher values in the target interval and values close to 0 outside the region of interest." ] }, { "cell_type": "markdown", "id": "55be0ad0-e203-40d2-a98d-6b18be131b8e", "metadata": {}, "source": [ "## Defining domain and mesh\n", "\n", "Define the domain and generate the mesh using `netgen` and `ngsolve` packages. For more details, see [documentation](https://docu.ngsolve.org/latest/). The resulting mesh should be a `ngsolve.comp.Mesh` object." ] }, { "cell_type": "code", "execution_count": 14, "id": "95bcc616-870a-4df0-89cb-bcb9c996d7fb", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cac29d2cdd0d47b5973737304dd96e4b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "WebGuiWidget(layout=Layout(height='50vh', width='100%'), value={'gui_settings': {}, 'ngsolve_version': '6.2.24…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "BaseWebGuiScene" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "geo = SplineGeometry()\n", "p1,p2,p3,p4 = [ geo.AppendPoint(x,y) for x,y in [(0,0), (2,0), (0,1), (1,1) ] ]\n", "geo.Append([\"line\", p1, p2])\n", "geo.Append([\"line\", p2, p4])\n", "geo.Append([\"spline3\", p4, p3, p1])\n", "\n", "mesh = Mesh(geo.GenerateMesh(maxh=0.05)) # maxh specifies maximal cell size\n", "Draw(mesh)" ] }, { "cell_type": "markdown", "id": "ae401406-12e8-4460-b833-ea0478f9e933", "metadata": {}, "source": [ "## Solving the problem\n", "\n", "Finally, you can solve your eigenvalue problem using Krylov iteration. Create a `KrylovSolver` object with your functions `s` and `m`, `mesh`, number of time-steps `L`, time-step `tau`, dff `alpha` and maximal number of Krylov iterations `m_max`." ] }, { "cell_type": "code", "execution_count": 21, "id": "399cc37d-711d-4181-b10e-6675cce81354", "metadata": {}, "outputs": [], "source": [ "solver = KrylovSolver(s, m, mesh, L, tau, alpha, m_max = 20)" ] }, { "cell_type": "markdown", "id": "8789252a-6fe1-4ada-b05f-7a63854d3b66", "metadata": {}, "source": [ "Use the `discretize()` method to create the solution space (`KrylovSolver.fes`) and discretization matrices. You can just call the method without any argument and use default parameters, or specify keywords supported by `ngsolve.comp.H1`. In our example, we choose splines of order 2. Calling the `KrylovSolver.solve()` method performs the Krylov iteration." ] }, { "cell_type": "code", "execution_count": 22, "id": "eab8e02f-542c-43d5-a856-f4626f76c2f1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Triangularization done after 0.03071 seconds:\n", "\t2430 degrees of freedom.\n", "Discretization matrices computed after 1.22886 seconds.\n", "Krylov iteration done after 26.89160 seconds.\n" ] } ], "source": [ "solver.discretize(order=2)\n", "solution = solver.solve()" ] }, { "cell_type": "markdown", "id": "99fe3a3d-fc0d-4ee8-8bff-050c6a37ce7f", "metadata": {}, "source": [ "Plot your results using `KrylovSolver.plot()` or `KrylovSolver.plot2()` method. Specify start and end of your plot. The `KrylovSolver.plot()` method scales the eigenvalue axis in $\\omega$, whereas `KrylovSolver.plot2()` scales the axis in $\\omega^2$. \n", "\n", "Each catched eigenvalue (horizontal axis) in each step (vertical axis) is marked as an \"x\". A vertical line of \"x\"s indicates proper computation of that eigenvalue. The dff is also plotted for reference." ] }, { "cell_type": "code", "execution_count": 23, "id": "e447c804-bbe9-4259-81b5-806db6cb38ca", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjnklEQVR4nO3deVxU9f4/8NcwyKDmmgqCIGqm4p4mYaYWllsWWVlmLpV2My2L7KYViEyKmZq5X8u0769FsxvaYpZSbtctF0pzyZ2BgKQri5osw+f3x+cyCMwgy8ycZV7Px2MeeM6ccz7vz+ecM+ftOZ9zjkEIIUBEREREmueldABERERE5BxM7IiIiIh0gokdERERkU4wsSMiIiLSCSZ2RERERDrBxI6IiIhIJ5jYEREREekEEzsiIiIinWBiR0RERKQTTOyIiIiIdELxxC4+Ph6333476tWrh2bNmiEyMhInT54sNc21a9cwadIk3Hzzzbjpppvw8MMPIyMjo8LlCiEQExOD5s2bo3bt2hgwYABOnTrlyqoQERGRSu3YsQPDhg1DQEAADAYDNmzYUOH0X375Je699140bdoU9evXR3h4OL7//nv3BFsDiid227dvx6RJk7B3715s2bIFBQUFuO+++3DlyhXbNC+//DK+/vprrF+/Htu3b8cff/yB4cOHV7jcuXPnYtGiRVixYgX27duHunXrYuDAgbh27Zqrq0REREQqc+XKFXTt2hVLly6t1PQ7duzAvffei02bNuHgwYO4++67MWzYMBw+fNjFkdaMQQghlA7iehcvXkSzZs2wfft29O3bF9nZ2WjatCk+/fRTPPLIIwCAEydOoEOHDtizZw/uuOOOcssQQiAgIACvvPIKpk6dCgDIzs6Gn58f1qxZg8cff9ytdSIiIiL1MBgMSEhIQGRkZJXm69ixIx577DHExMS4JjAnUPyMXVnZ2dkAgMaNGwMADh48iIKCAgwYMMA2Tfv27REcHIw9e/bYXca5c+eQnp5eap4GDRogLCzM4TxERESkLXl5ecjJySn1ycvLc0lZRUVFyM3NteUnauWtdADXKyoqwksvvYQ777wTnTp1AgCkp6fDx8cHDRs2LDWtn58f0tPT7S6neLyfn1+l58nLyyu1MRQWFuL48eMICgqCl5fq8l8iIiKPVlRUBLPZjA8++KDU+BkzZiA2Ntbp5c2bNw+XL1/GiBEjnL5sZ1JVYjdp0iQcPXoUu3btcnvZ8fHxmDlzptvLJSIiour78ccf0aNHD9uwyWRyehmffvopZs6ciY0bN6JZs2ZOX74zqSaxmzx5Mr755hvs2LEDLVq0sI339/dHfn4+srKySp21y8jIgL+/v91lFY/PyMhA8+bNS83TrVs3u/NMnz4dUVFRtmGLxYJOnTph9+7dpZahJ4sWGfDuu0Z4ewsUFhrw8stWvPhixV0u3TWPs6khhoo4O77qLq8q86mlTZWMQy1tQKQ27tg30tLS0Lt3b7Rp0wb169d36rKvt3btWowfPx7r168v1cVLtYTCioqKxKRJk0RAQID4/fffy32flZUlatWqJb744gvbuBMnTggAYs+ePQ6X6e/vL+bNm2cbl52dLUwmk/jss88qFZfFYhEAhMViqWKNtCEuTghA/rU3rOQ8zqaGGCri7Piqu7yqzKeWNlUyDrW0AZHauGvfqMlxGoBISEi44XSffvqp8PX1FRs2bKhGhMpQPLGbOHGiaNCggdi2bZtIS0uzfa5evWqb5rnnnhPBwcHixx9/FAcOHBDh4eEiPDy81HLatWsnvvzyS9vwnDlzRMOGDcXGjRvFr7/+Kh588EHRqlUr8ffff1cqLj0ndo52sqocyF01j7OpIYaKODu+6i6vKvOppU2VjEMtbUCkNu7cN6p6nM7NzRWHDx8Whw8fFgDEggULxOHDh8WFCxeEEEJMmzZNjB492jb9J598Iry9vcXSpUtL5SdZWVnOq4QLKH4pdvny5QCA/v37lxq/evVqjBs3DgDw7rvvwsvLCw8//DDy8vIwcOBALFu2rNT0J0+etN1RCwD//Oc/ceXKFTz77LPIyspCnz59sHnzZvj6+rq0PlpgtQJxcUB0dOnxxcNWq3LzOJsaYqiIs+Or7vKqMp9a2lTJONTSBkRqo+Z948CBA7j77rttw8Xdr8aOHYs1a9YgLS0NycnJtu9XrlyJwsJCTJo0CZMmTbKNL55erVT3HDu1SElJQVBQECwWS6k+f0RERKQ8Hqft43M8iIiIiHSCiR0RERGRTjCxIyIiItIJJnZEREREOsHEjoiIiEgnmNgRERER6QQTOyIiIiKdYGJHREREpBNM7IiIiIh0gokdERERkU4wsXOS2FjAbLb/ndksv1cLd8XqinKUamdXlevq+mhhHSixTrW0vxI5g7u3ee5jymFi5yRGIxATU35DNpvleKNRmbjscVesrihHqXZ2Vbmuro8W1oES61RL+yuRM7h7m+c+piBBdlksFgFAWCyWSs8TFycEIP/aG1YTd8XqinKUamdXlevq+mhhHSixTrW0vxI5g7u3eVeXV53jtCdgYudAdTeY4g3Xx0f9Bwl3xeqKcpRqZ1eV6+r6aGEdKLFOtbS/EjmDu7d5V5bHxM4+gxBCKHvOUJ1SUlIQFBQEi8WCFi1aVGlekwnIzwd8fIC8PBcF6CTuitUV5SjVzq4q19X10cI6UGKdaml/JXIGd2/zriqvJsdpPWMfOyczm0s24Px8x51H1cBdsbqiHKXa2VXluro+WlgHSqxTLe2vRM7g7m2e+5gClD5lqFbsY6fectjHTvnls48dkfawj51nYGLnQFU3GEcbrBoPFu6K1RXlKNXOrirX1fXRwjpQYp1qaX8lcgZ3b/PuKI+JnX3eyp4v1A+rFYiLA6KjS48vHrZa3R+TI+6K1RXlKNXOrirX1fXRwjpQYp1qaX8lcgZ3b/Pcx5TDmyccYKdMIiIi9eJx2j7ePEFERESkE0zsiIiIiHSCiR0RERGRTjCxIyIiItIJJnZEREREOsHEjoiIiEgnmNgRERER6QQTOyIiIiKdYGJHREREpBNM7IiIiIh0gomdk8TGAmaz/e/MZvm9WrgrVleX4842d1VZWlwXSm7rWtjPtBAjkStxH1AWEzsnMRqBmJjyG7PZLMcbjcrEZY+7YnV1Oe5sc1eVpcV1oeS2roX9TAsxErkS9wGFCbLLYrEIAMJisVR6nrg4IQD5196wmrgrVleX4842d1VZWlwXSm7rWtjPtBAjkSu5Yx+oznHaEzCxc6C6G0zxxuvjo/4fcnfF6upy3NnmripLi+tCyW1dC/uZFmIkciVX7wNM7OwzCCGEsucM1SklJQVBQUGwWCxo0aJFleY1mYD8fMDHB8jLc1GATuKuWF1djjvb3FVlaXFdKLmta2E/00KMRK7kyn2gJsdpPWMfOyczm0s24vx8xx1I1cBdsbq6HHe2uavK0uK6UHJb18J+poUYiVyJ+4BClD5lqFbsY6eNctjHTply2MeuYlqIkciV2MdOOUzsHKjqBuNoo1XjD7q7YnV1Oe5sc1eVpcV1oeS2roX9TAsxErmSu/YBJnb2eSt7vlA/rFYgLg6Iji49vnjYanV/TI64K1ZXl+PONndVWVpcF0pu61rYz7QQI5ErcR9QluI3T+zYsQPvvPMODh48iLS0NCQkJCAyMtL2vcFgsDvf3Llz8eqrr9r9LjY2FjNnziw1rl27djhx4kSl42KnTCIiIvXicdo+xW+euHLlCrp27YqlS5fa/T4tLa3U58MPP4TBYMDDDz9c4XI7duxYar5du3a5InwiIiIi1VD8UuzgwYMxePBgh9/7+/uXGt64cSPuvvtutG7dusLlent7l5uXiIiISM8UP2NXFRkZGfj222/xzDPP3HDaU6dOISAgAK1bt8aoUaOQnJzshgiJiIiIlKP4Gbuq+Oijj1CvXj0MHz68wunCwsKwZs0atGvXDmlpaZg5cybuuusuHD16FPXq1bM7T15eHvKue3pibm4uAKCwsBAFBQXOqwQRERHVWGFhodIhqJKmErsPP/wQo0aNgq+vb4XTXX9pt0uXLggLC0PLli3x+eefOzzbFx8fX+6GCwBITExEkyZNahY4EREROVVmZqbSIaiSZhK7nTt34uTJk1i3bl2V523YsCFuvfVWnD592uE006dPR1RUlG04NTUVoaGhiIiIQGBgYLViJiIiItdITU1VOgRV0kxit2rVKvTo0QNdu3at8ryXL1/GmTNnMHr0aIfTmEwmmEwm23BOTg4AeRNGrVq1qh4wERERuYy3t2ZSGLdS/OaJy5cvIykpCUlJSQCAc+fOISkpqdTNDjk5OVi/fj3Gjx9vdxkRERFYsmSJbXjq1KnYvn07zp8/j927d+Ohhx6C0WjEyJEjXVoXIiIiIiUpnu4eOHAAd999t224+HLo2LFjsWbNGgDA2rVrIYRwmJidOXOm1LX2lJQUjBw5En/99ReaNm2KPn36YO/evWjatKnrKkJERESkMMXfPKFWfKI1ERGRevE4bZ/il2L1LjYWMJvtf2c2y++V4I641Fr3qnJlPaq7bFfEVNllamW9aiVOIr3gPqcOTOxczGgEYmLKb+xmsxxvNOo3LrXWvapcWY/qLtsVMVV2mVpZr1qJk0gvuM+phCC7LBaLACAsFkuNlxUXJwQg/9obVoo74lJr3avKlfWo7rJdEVNll6mV9aqVOIn0wp37nDOP03rCxM4BZ28wxRu3j4+6DizuiEutda8qV9ajust2RUyVXaZW1qtW4iTSC3ftc0zs7OPNEw64olOmyQTk5wM+PsB1by9TnDviUmvdq8qV9ajusl0RU2WXqZX1qpU4ifTCHfscb56wj33s3MRsLtnI8/MddzB1N3fEpda6V5Ur61HdZbsipsouUyvrVStxEukF9zmFKX3KUK3Yx047ZbgD+9i5vmxX0EqcRHqh5j5227dvF/fff79o3ry5ACASEhJuOM9PP/0kunfvLnx8fESbNm3E6tWraxa0GzCxc8BZiV1lD4zu5o641Fr3qnJlPaq7bFfEVNMkTm3rVStxEumFu/e5qh6nN23aJN544w3x5ZdfViqxO3v2rKhTp46IiooSx44dE4sXLxZGo1Fs3rzZCdG7juJvntA7qxWIiwOio0uPLx62Wt0fU3G5ro5LrXWvKlfWo7rLdkVMlV2mVtarVuIk0gu173ODBw/G4MGDKz39ihUr0KpVK8yfPx8A0KFDB+zatQvvvvsuBg4c6Kowa4w3TzjATplERETqVXycPnbsGAIDA23jTSYTTCZThfMaDAYkJCQgMjLS4TR9+/bFbbfdhoULF9rGrV69Gi+99BKys7NrGr7L8OYJIiIi0qzQ0FA0aNDA9omPj3fKctPT0+Hn51dqnJ+fH3JycvD33387pQxX4KVYIiIi0ix7Z+w8GRM7IiIi0qx69eqhfv36Tl+uv78/MjIySo3LyMhA/fr1Ubt2baeX5yy8FEtERERURnh4OBITE0uN27JlC8LDwxWKqHKY2BEREZHuXb58GUlJSUhKSgIAnDt3DklJSUhOTgYATJ8+HWPGjLFN/9xzz+Hs2bP45z//iRMnTmDZsmX4/PPP8fLLLysRfqUxsSMiIiLdO3DgALp3747u3bsDAKKiotC9e3fExMQAANLS0mxJHgC0atUK3377LbZs2YKuXbti/vz5+OCDD1T9qBOAjztxiI87ISIiUi8ep+3jGTsiIiIinWBiR0RERKQTTOyIiIiIdILPsXOD2FjAaCz//jwAMJvl+/NiY90dlevjUmu91aC4bazW8m1U3DbF31enjVzZ9u5cr9yG3IdtTe7Cbc21eMbODYxGICZGbrDXM5vleKNRn3Gptd5qUNw2O3eWbqPitikeX902cmXbu3O9chtyH7Y1uQu3NRcTZJfFYhEAhMViccry4uKEAORfe8NKcXVcaq23GhS3xT332P9b0zZyZdu7c71yG3IftjW5izO2NWcfp/WCiZ0DrthgijdcHx91/Vi6Oi611lsNitvGaCz919mJtSva3p3rlduQ+7CtyV1quq0xsbOPz7FzwFXPxzGZgPx8wMcHyMtz2mJrzNVxqbXealDcNsWc3UaubHt3rlduQ+7DtiZ3qcm2xufY2cc+dm5kNpdswPn55fsXKMXVcam13mpQ3DbFfUqMRue2kSvb3p3rlduQ+7CtyV24rbmI0qcM1Yp97LSxfC1jHzv1leXp2NbkLuxj5zpM7Bxw5gbjaINV+kfT1XGptd5qUDapK/vjVtPkzpVt7871ym3IfdjW5C7O2taY2NnH59i5gdUKxMWVf2ZP8bDV6v6Yist1ZVxqrbcaFLeN1Qr071/SJte3Tf/+1W8jV7a9O9crtyH3YVuTu3Bbcy3ePOEAO2USERGpF4/T9vHmCSIiIiKdYGJHREREpBNM7IiIiIh0gokdERERkU4wsSMiIiLSCSZ2RERERDrBxI6IiIhIJ5jYEREREekEEzsiIiIinVA8sduxYweGDRuGgIAAGAwGbNiwodT348aNg8FgKPUZNGjQDZe7dOlShISEwNfXF2FhYdi/f7+LakBERESkDoondleuXEHXrl2xdOlSh9MMGjQIaWlpts9nn31W4TLXrVuHqKgozJgxA4cOHULXrl0xcOBA/Pnnn84Ov8piYwGz2f53ZrP8Xi+xqKmuanR9+5Rtq+vbp7pt5ar2V9t6VVs8RFQx7rOupXhiN3jwYLz11lt46KGHHE5jMpng7+9v+zRq1KjCZS5YsAATJkzAU089hdDQUKxYsQJ16tTBhx9+6Ozwq8xoBGJiym/UZrMcbzTqJxY11VWNrm+f6/99ffvUpK1c1f5qW69qi4eIKsZ91sWEigAQCQkJpcaNHTtWNGjQQDRt2lTceuut4rnnnhOZmZkOl5GXlyeMRmO55YwZM0Y88MADlY7FYrEIAMJisVSlCpUSFycEIP/aG3YnV8eiprqq0fXtUfzvssM1aStXtb/a1qva4iGiijljn3XlcVrLDEIIoXBuaWMwGJCQkIDIyEjbuLVr16JOnTpo1aoVzpw5g9dffx033XQT9uzZA6OdtP6PP/5AYGAgdu/ejfDwcNv4f/7zn9i+fTv27dtnt+y8vDzk5eXZhlNTUxEaGopz584hMDDQeZX8n1mzvDBzphE+PgL5+QbMmGHFG28UOb0cNcSiprqqUdn2AeDUtnJV+6ttvaotHiKqWE332dTUVLRq1QoWiwUtWrRwYaTa4q10ADfy+OOP2/7duXNndOnSBW3atMG2bdsQERHhtHLi4+Mxc+bMcuMTExPRpEkTp5VTrHt3wNv7fuTnG+HtbUX37t9g0yanF6OKWNRUVzUq2z4AnNpWrmp/ta1XtcVDRBWr6T6bmZnpuuA0TPWJXVmtW7dGkyZNcPr0abuJXZMmTWA0GpGRkVFqfEZGBvz9/R0ud/r06YiKirINF5+xi4iIcNkZu8LC4v+pGHH48P2KnrFzZSxqqqsalW0fAE5tK1e1v9rWq9riIaKK1XSfTU1NdWF0Gqb0teDrwU4fu7IsFoswGAxi48aNDqfp1auXmDx5sm3YarWKwMBAER8fX+lY2MdOG8vXOvaxcw61xUNEFWMfO9dRPLHLzc0Vhw8fFocPHxYAxIIFC8Thw4fFhQsXRG5urpg6darYs2ePOHfunNi6dau47bbbRNu2bcW1a9dsy7jnnnvE4sWLbcNr164VJpNJrFmzRhw7dkw8++yzomHDhiI9Pb3Scblqg3G08SpxIHJ1LGqqqxrZS+oq+ndNll+Z8Uovt7rUFg8RVcxZ+ywTO/sUvxR74MAB3H333bbh4suhY8eOxfLly/Hrr7/io48+QlZWFgICAnDffffBbDbDZDLZ5jlz5kypa+2PPfYYLl68iJiYGKSnp6Nbt27YvHkz/Pz83FcxB6xWIC4OiI4uPb542GrVTyxqqqsaXd8+sbHl28pqLXmeU3XaylXtr7b1qrZ4iKhi3GddS1V3xapJSkoKgoKCeLcNERGRCvE4bZ/iDygmIiIiIudgYkdERESkE0zsiIiIiHSCiR0RERGRTjCxIyIiItIJJnZEREREOsHEjoiIiEgnmNgRERER6QQTOyIiIiKdYGJHREREpBNM7FQoNhYwm+1/ZzaXvD9UC+W4qy5a5cr26d8fiIiw/11EhPy+urhe9Y3rl9yN25zzMLFTIaMRiIkpv5GbzXK80aidctxVF61yZfsYjcCPP5ZP7iIi5PiaLpvrVb+4fsnduM05kSC7LBaLACAsFosi5cfFCQHIv/aGtVSOu+qiVa5sn3vukcu65x77wzXB9apvXL/kblXd5pQ+TqsVEzsH1LDBFG/UPj6u/UF1RznuqotWubJ9ipO54o8zkrpiXK/6xvVL7laVbU4Nx2k1MgghhLLnDNUpJSUFQUFBsFgsaNGihWJxmExAfj7g4wPk5Wm7HHfVRatc2T4GQ8m/nb3Hc73qG9cvuVtltzm1HKfVhn3sVMxsLtm48/MddyzVQjnuqotWubJ97PWxcxauV33j+iV34zbnBEqfMlQrpU/xso+d52AfO1Ijrl9yN/axcw4mdg4oucE42pid/cPqjnLcVRetcmX7OErinJHccb3qG9cvuVt1tjkmdvZ5K3u+kOyxWoG4OCA6uvT44mGrVTvluKsuWuXK9rFagXvuARITS49PTJSXY2u6bK5X/eL6JXfjNuc8vHnCAXbKJCIiUi8ep+3jzRNEREREOsHEjoiIiEgnmNgRERER6QQTOyIiIvIYS5cuRUhICHx9fREWFob9+/dXOP3ChQvRrl071K5dG0FBQXj55Zdx7do1N0VbdUzsiIiIyCOsW7cOUVFRmDFjBg4dOoSuXbti4MCB+PPPP+1O/+mnn2LatGmYMWMGjh8/jlWrVmHdunV4/fXX3Rx55TGxIyIiIo+wYMECTJgwAU899RRCQ0OxYsUK1KlTBx9++KHd6Xfv3o0777wTTzzxBEJCQnDfffdh5MiRNzzLpyQmdkRERKRZubm5yMnJsX3yHLxgNj8/HwcPHsSAAQNs47y8vDBgwADs2bPH7jy9e/fGwYMHbYnc2bNnsWnTJgwZMsT5FXESJnZERESkWaGhoWjQoIHtEx8fb3e6zMxMWK1W+Pn5lRrv5+eH9PR0u/M88cQTiIuLQ58+fVCrVi20adMG/fv3V/WlWL55goiIiDTr2LFjCAwMtA2bTCanLXvbtm2YPXs2li1bhrCwMJw+fRpTpkyB2WxGdNnXZKgEEzsiIiLSrHr16qF+/fo3nK5JkyYwGo3IyMgoNT4jIwP+/v5254mOjsbo0aMxfvx4AEDnzp1x5coVPPvss3jjjTfg5aW+C5/qi4gAALGxgNls/zuzWX6vhXLcVQ8tc2UbxcYCd99tf/lms/yuOsvneiUiZ3LHb4qPjw969OiBxOteoF1UVITExESEh4fbnefq1avlkjej0QgAUOsbWZnYqZTRCMTElN/QzWY5/n/blerLcVc9tMyVbWQ0Atu2lV9+8bK3bave8rleiciZ3PWbEhUVhffffx8fffQRjh8/jokTJ+LKlSt46qmnAABjxozB9OnTbdMPGzYMy5cvx9q1a3Hu3Dls2bIF0dHRGDZsmC3BUx1BdlksFgFAWCwWxWKIixMCkH/tDWulHHfVQ8tc2UbFyypeXtlhNcZMRJ6nqr8p1T1OL168WAQHBwsfHx/Rq1cvsXfvXtt3/fr1E2PHjrUNFxQUiNjYWNGmTRvh6+srgoKCxPPPPy8uXbpUxdq5DxM7B9SQ2AlRsmH7+Lj2oOnqctxVDy1zZRtdn8w5I6kru1yuVyJyhqr8pqjlOK02BiFUepFYYSkpKQgKCoLFYkGLFi0UjcVkAvLzAR8fwMHjeTRRjrvqoWWubKPiZQPOXT7XKxE5U2V/U9R0nFYT9rFTObO5ZAPPz3fcuVTt5birHlrmyjYqXnYxZy2f65WInIm/KU6g9ClDtVLDKV72sfMc7GNHRJ7OXX3s9I6JnQNKbzCONmhXJ13OLsdd9dAyV7aRoySupskd1ysROVN1flOUPk6rFR9QrFJWKxAXB5R9sHXxsNWqjXLcVQ8tc2UbWa1A//7APfeUXn7xv3/8sXrL53olImfib4rzKH7zxI4dO/DOO+/g4MGDSEtLQ0JCAiIjIwEABQUFePPNN7Fp0yacPXsWDRo0wIABAzBnzhwEBAQ4XGZsbCxmzpxZaly7du1w4sSJSsfFTplERETqxeO0fYrfPHHlyhV07doVS5cuLffd1atXcejQIURHR+PQoUP48ssvcfLkSTzwwAM3XG7Hjh2RlpZm++zatcsV4RMRERGphuKXYgcPHozBgwfb/a5BgwbYsmVLqXFLlixBr169kJycjODgYIfL9fb2dvjuNyIiIiI9UvyMXVVlZ2fDYDCgYcOGFU536tQpBAQEoHXr1hg1ahSSk5PdEyARERGRQhQ/Y1cV165dw2uvvYaRI0eifv36DqcLCwvDmjVr0K5dO6SlpWHmzJm46667cPToUdSrV8/uPHl5eci77kmIubm5AIDCwkIUFBQ4tyJERERUI4WFhUqHoEqaSewKCgowYsQICCGwfPnyCqe9/tJuly5dEBYWhpYtW+Lzzz/HM888Y3ee+Pj4cjdcAEBiYiKaNGlSs+CJiIjIqTIzM5UOQZU0kdgVJ3UXLlzAjz/+WOHZOnsaNmyIW2+9FadPn3Y4zfTp0xEVFWUbTk1NRWhoKCIiIhAYGFjt2ImIiMj5UlNTlQ5BlVSf2BUndadOncJPP/2Em2++ucrLuHz5Ms6cOYPRo0c7nMZkMsFkMtmGc3JyAMibMGrVqlX1wImIiMhlvL1Vn8IoQvGbJy5fvoykpCQkJSUBAM6dO4ekpCQkJyejoKAAjzzyCA4cOIBPPvkEVqsV6enpSE9PR/51L76MiIjAkiVLbMNTp07F9u3bcf78eezevRsPPfQQjEYjRo4c6e7qEREREbmN4unugQMHcPfdd9uGiy+Hjh07FrGxsfjqq68AAN26dSs1308//YT+/fsDAM6cOVPqWntKSgpGjhyJv/76C02bNkWfPn2wd+9eNG3a1LWVISIiIlKQ4old//79UdHLLyrzYozz58+XGl67dm1NwyIiIiLSHMUvxZJjsbGA2Wz/O7NZfq/VMpWom5q5uj2cuXyuO/dgOxOVqGh/oNKY2KmY0QjExJTfmM1mOd5o1G6ZStRNzVzdHs5cPtede7CdiUo42h/IDkF2WSwWAUBYLBZF44iLEwKQf+0Na7lMJeqmZq5uD2cun+vOPdjORCXKbv+vvKKO47TaMLFzQC2JnRAlG7OPj/t+1N1VphJ1UzNXt4czl8915x5sZ6ISpfcH9Ryn1cQgRCXuTvBAKSkpCAoKgsViQYsWLZQOByYTkJ8P+PgA1735TBdlKlE3NXN1ezhz+Vx37sF2JipRvD94e6egsFA9x2m1YB87DTCbS37U8/Pd08fAXWUqUTc1c3V7OHP5XHfuwXYmKnH9/sBXxTqg9ClDtVLLpVj2sfMc7GNHZbGdiUqwj13lMLFzQA2JnaMfcVf+uLurTCXqpmaubg9nLp/rzj3YzkQl7G33ajhOq5HiDygmx6xWIC4OiI4uPb542GrVbplK1E3NXN0ezlw+1517sJ2JSjjaH6g83jzhgNpuniAiIqISPE7bx5sniIiIiHSCiR0RERGRTjCxIyIiItIJJnZEREREOsHEjoiIiEgnmNgRERER6QQTOyIiIiKdYGJHREREpBNM7IiIiIh0gokdERERkU4wsdOA2FjAbLb/ndksv9dz+ZWhhRhrSuk6VrZ8peMkIv2p6HeFSmNipwFGIxATU36jNpvleKNR3+VXhhZirCml61jZ8pWOk4j0x9HvCtkhyC6LxSIACIvFonQoQggh4uKEAORfe8N6L78ytBBjTSldx8qWr3ScRKQ/ZX9HXnlFXcdptWBi54DaEjshSjZqHx9lDpJKl18ZWoixppSuY2XLVzpOItKf0r8r6jtO2xMSEiJatWpV5c97771XrfIMQgih7DlDdUpJSUFQUBAsFgtatGihdDg2JhOQnw/4+AB5eZ5XfmVoIcaaUrqOlS1f6TiJSH+Kf1e8vVNQWKi+43RZ27dvr9Z8ISEhaNmyZZXn865WaaQIs7nkIJmfL4ejoz2n/MrQQow1pXQdK1u+0nESkf6U/V3Rgn79+rm3QKeeb9QRtV2KVbrPktLlV4YWYqwppevIPnZEpBS99LHLz88XycnJ4sSJE+Kvv/5y+vKZ2DmgpsSusgdPvZZfGVqIsaaUrmNNkzg9rQsici97vx9qOk7fSE5Ojli2bJno27ev8PX1FV5eXsJgMAgvLy8RHBwsxo8fL/bv3++UsngpVgOsViAurvxlrOJhq1Xf5VeGFmKsKaXrWNnylY6TiPTH0e+KFixYsACzZs1CmzZtMGzYMLz++usICAhA7dq18d///hdHjx7Fzp07cd999yEsLAyLFy9G27Ztq10eb55wQK03TxAREZF2jtMjR47Em2++iY4dO1Y4XV5eHlavXg0fHx88/fTT1S6PZ+yIiIiIXOSzzz6r1HQmkwnPPfdcjcvjmyeIiIiIdIJn7IiIiIjcYO7cuUhKSkJ6ejpq166N0NBQDB8+HOHh4U4rg2fsiIiIiNxg8eLFyMzMRLNmzQAAa9euRZ8+fTBo0CBkZ2c7pQyesSMiIiJyA4vFUm7c3r17MXHiREyaNAkff/xxjctgYkdERESkkDvuuAOrV69G3759nbI8JnZEREREbrZ69WrUq1cPvr6+2LBhA26++WanLJeJHREREZGb7du3D+vXr0dWVhaGDh2Kr776yinL5c0TRERERG62YsUKZGZm4ptvvsHZs2dx6NAhpyyXiR0RERGRG/Tt2xf79u2zDRsMBgwePBgff/wxpk+f7pQyqpXY/fnnn04pHAB27NiBYcOGISAgAAaDARs2bCj1vRACMTExaN68OWrXro0BAwbg1KlTN1zu0qVLERISAl9fX4SFhWH//v1Oi1ktYmMBs9n+d2az/F5L5biK1uO3R6k66bEtiejG9LTvVzU/yMrKwqRJk9C8eXOYTCbceuut2LRpU7XK7tixI+6880707t0b8+fPxw8//IDdu3dj1apV+Pvvv6u1zLKqldg98sgjsDp4k3dhYWGVlnXlyhV07doVS5cutfv93LlzsWjRIqxYsQL79u1D3bp1MXDgQFy7ds3hMtetW4eoqCjMmDEDhw4dQteuXTFw4ECnJqRqYDQCMTHldzazWY43GrVVjqtoPX57lKqTHtuSiG5ML/t+VfOD/Px83HvvvTh//jy++OILnDx5Eu+//z4CAwOrVf7y5cvxyy+/4NZbb0VcXBwGDRqEPn36YNmyZZg2bVpNqlZCVMOwYcPE888/X258Zmam6NevX3UWKYQQAoBISEiwDRcVFQl/f3/xzjvv2MZlZWUJk8kkPvvsM4fL6dWrl5g0aZJt2Gq1ioCAABEfH1/pWCwWiwAgLBZL1SrhZnFxQgDyr71hrZXjKlqP3x6l6qTHtiSiG1Pbvl+d43RV84Ply5eL1q1bi/z8/BrHW1ZhYaE4efKk2Ldvn0hPT3facg1CCFHVZDArKwu9evXCtGnT8PTTTwMAjh8/jvvvvx/t27fHt99+W60k02AwICEhAZGRkQCAs2fPok2bNjh8+DC6detmm65fv37o1q0b3nvvvXLLyM/PR506dfDFF1/YlgMAY8eORVZWFjZu3Gi37Ly8POTl5dmGU1NTERoainPnzlU7M3eXWbO8MHOmET4+Avn5BsyYYcUbbxRpthxX0Xr89ihVJz22JRHdmJr2/dTUVLRq1QrHjh0rdZw2mUwwmUzlpq9OfjBkyBA0btwYderUwcaNG9G0aVM88cQTeO2112Cs5GnK5ORkBAcHV6leNck7qvW4k4YNG+Lf//43+vfvj06dOuHSpUt47LHH8Mwzz+Cdd96pdjBlpaenAwD8/PxKjffz87N9V1ZmZiasVqvdeU6cOOGwrPj4eMycObPc+MTERDRp0qSqobtV9+6At/f9yM83wtvbiu7dv0E1L/+rohxX0Xr89ihVJz22JRHdmJr2/czMTABAaGhoqfEzZsxArJ1Of9XJD86ePYsff/wRo0aNwqZNm3D69Gk8//zzKCgowIwZMyoV5+23347IyEiMHz8et99+u91psrOz8fnnn+O9997Ds88+ixdffLFSy7an0ond8OHD0a1bN9unc+fOWLJkCYYMGYJr165h8eLFeOqpp6odiNKmT5+OqKgo23DxGbuIiAhNnLErLCz+H5QRhw/f77Izdu4ox1W0Hr89StVJj21JRDempn0/NTUVAOyesXOWoqIiNGvWDCtXroTRaESPHj2QmpqKd955p9KJ3bFjxzBr1izce++98PX1RY8ePRAQEABfX19cunQJx44dw2+//YbbbrsNc+fOxZAhQ2oWdGWv2U6dOlUMGDBANG3aVBgMBtG4cWNx9913i8aNG4sJEyaIpKSkGl+DRpk+dmfOnBEAxOHDh0tN17dvX/Hiiy/aXUZeXp4wGo2lliOEEGPGjBEPPPBApWNhHztlynEVrcdvD/vYEZE7qW3fr+pxujr5Qd++fUVERESpcZs2bRIARF5eXpXivXr1qli/fr2YMmWKiIyMFAMHDhSjRo0S8+bNE0eOHKnSsipSrZsnUlJSxDfffCPeeust8cgjj4hbbrlFeHl5CR8fH9GlS5fqB+Pg5ol58+bZxmVnZ1fq5onJkyfbhq1WqwgMDNTdzROOdipn72zuKsdVtB6/PUrVSY9tSUQ3psZ9v7o3T1QlP5g+fbpo2bKlsFqttnELFy4UzZs3r37gLlatPnaBgYEIDAzE0KFDbeMuX76MpKQk/PLLL1Va1uXLl3H69Gnb8Llz55CUlITGjRsjODgYL730Et566y20bdsWrVq1QnR0NAICAkp1fIyIiMBDDz2EyZMnAwCioqIwduxY9OzZE7169cLChQtx5coVTV8qtsdqBeLigOjo0uOLhx08kUa15biK1uO3R6k66bEtiejG9LLv3yg/GDNmDAIDAxEfHw8AmDhxIpYsWYIpU6bghRdewKlTpzB79uwa9YEr6+LFi2jatKnTlletM3bO9NNPPwkA5T5jx44VQsizdtHR0cLPz0+YTCYREREhTp48WWoZLVu2FDNmzCg1bvHixSI4OFj4+PiIXr16ib1791YpLi2csSMiIvJU1T1OV5Qf9OvXz5Z/FNu9e7cICwsTJpNJtG7dWsyaNUsUFhZWO+7k5GTx6quvitzcXCGEEA8//LCYMmWKSElJKRVjdVXrcSeeICUlBUFBQbBYLGjRooXS4RAREdF1tHqcTkxMxLvvvovXX38dvXv3xurVqxEbG4uMjAzccccdKCwshNFoxPbt26u1fL4rloiIiMhNIiIiUK9ePfTu3RuAfNzazz//jGvXrmHRokVo0qQJRo8eXe3lM7EjIiIiUkhgYKDtPbFdunRBQkIC5s+fX+3lVevmCSIiIiKqnoEDB9r+vWDBAgwaNAh9+/ZF165d8ccff8DX17fay+YZOyIiIiI3GjdunO3f3bt3x8GDBzFo0CBcvHgRdevWxVdffVXtZfOMHREREZGC6tSpg4ceeggPPfRQjZfFM3ZERERETvLcc89h586dtuFNmzahZcuWaNy4MSIiIrB582YAQFxcHIYOHYr4+Hj8+eefTiufiR0RERGRk/Ts2RNjxoyxDU+dOhXDhw/H559/ju7duyMyMhKPPvoo5s6di+DgYHz99dfo3r07fv/9d6eUz0uxRERERE6yb98+jBo1yjZ84cIFTJkyBSEhIRgwYADat2+Pf/zjH1iwYAGmTJkCAHjppZfwxhtvYP369TUun2fsiIiIiJxk9+7dGD9+vG04JCQE+/fvtw2PGjUKQgjceeedtnHPP/88du3a5ZTymdjpVGwsYDbb/85slt8rsSy900tb6aUenoTrjEgd5syZgzfeeMM2/Oqrr+KZZ55BXFwcfv75ZxiNRuzatQvt27e3TXP16lVcuXLFKeUzsdMpoxGIiSn/Q282y/FGozLL0ju9tJVe6uFJuM6I1GHYsGH45JNPbMPjxo3DmjVr8MMPPyA8PBz16tXDxIkT8cILL2Dx4sXYunUrXnzxRYSHhzsngGq/ZVbnqvtyYTWJixMCkH/tDSu1LL3TS1vppR6ehOuMPIkWj9O5ubli165dYsmSJWL8+PGiZ8+eonbt2sJgMIjAwEAxfPhwERsbK7788stql8HEzgEtbjD2FP+w+/jU/AfemcvSO720lV7q4Um4zshT6OU4XVhYKI4ePSo+/vhjMXXqVDFgwADRrFmzai/PIIQQzjn3py8pKSkICgqCxWJBixYtlA6nRkwmID8f8PEB8vLUsyy900tb6aUenoTrjDyBno7TzsQ+djpnNpf8wOfnO+5c7e5l6Z1e2kov9fAkXGdE6tKqVSu0bt26yp9FixZVqzw+x07HijtNx8UB0dElw4AcVmpZeqeXttJLPTwJ1xmR+qxZs6Za84WEhFSvQKddJNYZrV+7d9RpujqdqZ25LL3TS1vppR6ehOuMPI3Wj9OuwjN2OmW1lvyv/XrFw1arMsvSO720lV7q4Um4zogIAHjzhAPslElERKRePE7bx5sniIiIiHSCiR0RERGRTjCxIyIiItIJJnZEREREOsHEjoiIiEgnmNgRERER6QQTOyIiIiKdYGJHREREpBNM7IiIiIh0gokdERERkU4wsfMwsbGA2Wz/O7NZfu/M+TydHtpND3UgIvIUTOw8jNEIxMSUP1CbzXK80ejc+TydHtpND3UgIvIYguyyWCwCgLBYLEqH4nRxcUIA8q+9YWfP5+n00G56qAMR6Yuej9M1YRBCCKWTSzVKSUlBUFAQLBYLWrRooXQ4Tld8tsXHB8jPB+LigOho183n6fTQbnqoAxHph96P09XFxM4BT9hgTCZ5gPbxAfLyXD+fp9NDu+mhDkSkD55wnK4O9rHzUGZzyQE6P99x53hnzefp9NBueqgDEZHeMbHzQMWX1OLi5FmXuDj7neOdNZ+n00O76aEOREQeQdkufuql106Zjjq936gzfHXn83R6aDc91IGI9Eevx+ma8lY6sST3slrtd3ovHrZanTufp9NDu+mhDkREnoI3TzjATplERETqxeO0fZroYxcSEgKDwVDuM2nSJLvTr1mzpty0vr6+bo6aiIiIyL00cSn2559/hvW66z1Hjx7Fvffei0cffdThPPXr18fJkydtwwaDwaUxEhERESlNE4ld06ZNSw3PmTMHbdq0Qb9+/RzOYzAY4O/v7+rQiIiIiFRDE4nd9fLz8/Hxxx8jKiqqwrNwly9fRsuWLVFUVITbbrsNs2fPRseOHR1On5eXh7zrnriam5sLACgsLERBQYHzKkBEREQ1VlhYqHQIqqS5xG7Dhg3IysrCuHHjHE7Trl07fPjhh+jSpQuys7Mxb9489O7dG7/99pvDDpbx8fGYOXNmufGJiYlo0qSJs8InIiIiJ8jMzFQ6BFXS3F2xAwcOhI+PD77++utKz1NQUIAOHTpg5MiRMDt4omrZM3apqakIDQ3FuXPnEBgYWOO4iYiIyHlSU1PRqlUr3hVbhqbO2F24cAFbt27Fl19+WaX5atWqhe7du+P06dMOpzGZTDCZTLbhnJwcAIC3tzdq1apVvYCJiIjIJby9NZXCuI0mHndSbPXq1WjWrBmGDh1apfmsViuOHDmC5s2buygyIiIiIuVpJrErKirC6tWrMXbs2HJZ+pgxYzB9+nTbcFxcHH744QecPXsWhw4dwpNPPokLFy5g/Pjx7g6biIiIyG00cx5z69atSE5OxtNPP13uu+TkZHh5leSoly5dwoQJE5Ceno5GjRqhR48e2L17N0JDQ90ZMhEREZFbae7mCXfhq0qA2FjAaCz/jlAAMJvlO0JjY90dVeVoOfaa8NR6E5XFfUH/eJy2TzOXYsn9jEYgJkb+CF7PbJbjjUZl4qoMLcdeE55ab6KyuC+QxxJkl8ViEQCExWJROhRFxcUJAci/9obVTMux14Sn1puoLO4L+sbjtH28FOsAT/GWKP4fro8PkJ8PxMXZv7yhRlqOvSY8td5EZXFf0C8ep+1jYucAN5jSTCb5o+jjA1z3HGdN0HLsNeGp9SYqi/uCPvE4bR/72NENmc0lP4r5+eX7rKiZlmOvCU+tN1FZ3BfI0zCxowoVX8aIi5P/042Ls98hWY20HHtNeGq9icrivkD2LF26FCEhIfD19UVYWBj2799fqfnWrl0Lg8GAyMhI1wZYU8p28VMvdsp03NFYCx2QtRx7TXhqvYnK4r6gf9U5Tq9du1b4+PiIDz/8UPz2229iwoQJomHDhiIjI6PC+c6dOycCAwPFXXfdJR588MEaRu5amnlAMbmf1Wq/o3HxsNXq/pgqS8ux14Sn1puoLO4LZM+CBQswYcIEPPXUUwCAFStW4Ntvv8WHH36IadOm2Z3HarVi1KhRmDlzJnbu3ImsrCw3Rlx1vHnCAXbKdBIhgKwsICMD+PPPkr9ZWUBuLnD5svybmwtcvQoUFgJFRfJX12qV/zYYAF9f2QP6+r8NGgCNGgGNG8tPo0bAzTcDgYGAvz/AF0QTEelWVY/T+fn5qFOnDr744otSl1PHjh2LrKwsbNy40e58M2bMwK+//oqEhASMGzcOWVlZ2LBhg5Nq4Xw88lHNZWcDx48D587Jz9mzJf9OTZU9lt3Ny0smd4GBQIsWQHAwcOutQNu28m9QkJyGiIg0LTc3Fzk5ObZhk8kEk8lUbrrMzExYrVb4+fmVGu/n54cTJ07YXfauXbuwatUqJCUlOTVmV2JiR5V37Rrw66/AkSPAb7+VfFJTbzxv/fqAn1/Jp2FDoF49+bnpJvm3bl15ls1olEmX0Sg/Vqvs+ZyXJ2PIywP+/lsmlJcuAf/9b8nfixeBtDR55u+PP+Tn55/Lx+PrC7RpA4SGAl27At26yb+BgfIMIRERaULZ98DPmDEDsU54X1xubi5Gjx6N999/H02aNKnx8tyFiR3ZZ7XKs3A//wzs3y///vorUFBgf/qAAOCWW4BWrUp/goNlIufr677Yi4rk5d7UVCAlRX7Onwd+/11+zpyRCWJxYrp+fcm8jRvLJO/224HwcPlp1sx9sRMRUZUcO3YMgYGBtmF7Z+sAoEmTJjAajcjIyCg1PiMjA/7+/uWmP3PmDM6fP49hw4bZxhUVFQEAvL29cfLkSbRp08YZVXAqJnYkFRYChw8D27cD27YBO3cC153atrn5Zpn4dOoEdOwoP6Gh8gycWhRfhvX3B3r0KP99YSGQnCyTvCNHgF9+AZKSgBMn5Fm/H3+Un2Jt2pQkef37Ax068KweEZFK1KtXD/Xr17/hdD4+PujRowcSExNtfeyKioqQmJiIyZMnl5u+ffv2OHLkSKlxb775JnJzc/Hee+8hKCjIKfE7GxM7TyUEcPIksGkTsHUrsGuXvIHhenXrAj17yrNXxZ+QEO0nNd7eQOvW8jNoUMn44rN4hw8D+/YBu3cDx47JM3xnzgAffyyna94cuOceICJCfoKDlakHERFVSVRUFMaOHYuePXuiV69eWLhwIa5cuWK7S3bMmDEIDAxEfHw8fH190alTp1LzN/zfSYyy49WEiZ0nuXoV+Oknmcx99528ueF6DRsCffsC/frJT7duso+bp/D1lWf4evQAxo+X4y5dkknenj3Af/4jP2lpwCefyA8gL0EPGgQMGybbzcFlACIiUtZjjz2GixcvIiYmBunp6ejWrRs2b95su6EiOTkZXhq/sY6PO3FAN487uXQJ+Oor4N//Bn74ofSLEn185KXFgQPlGajOnT0rkauOa9dkkrd1K5CYKPse/q/PBQB5I8jAgTLJGzIEaNpUuViJiHRMN8dpJ2Ni54CmN5jMTGDjRuCLL2QCUlhY8l1wsEw4hgyRyVzdusrFqQfZ2fIs6DffyM/1nXINBuCuu4ARI4CHH5Z9/oiIyCk0fZx2ISZ2Dmhug7l6VSZz/+//yTNz1z9WvVMn4JFHgOHD5b+13kdOrYqKgIMHga+/lp/rn3vk5SUv044YIdcD77QlIqoRzR2n3YSJnQOa2GCKiuTdq//3f/KRHdff/NC9u0zmHn4YaNdOuRg9WXKyPGv6+eeyn14xLy9508XYscBDDwF16igXIxGRRmniOK0AJnYOqHqDSU0FPvgAWL0auHChZHxICDB6NPDkk/LtCm4SGyu75pV9JyMAmM3y5KETnhVZI4rHeP68TL4//xw4cKBkfL16wGOPAePGAb17u+xsquL1JyJyMlUfpxWk7Vs/PElREbB5szzD07KlPApfuCDf6DB+PLBjh3wkR1ycW5M6QCYMMTEyQbie2SzHq+F+DMVjDAkBXn1V3mxx+rRcf61aybOsH3wA9Okj19usWfJtGU6meP2JiMg9BNllsVgEAGGxWJQNJCNDiPh4IVq1EkI+fU5++vUT4pNPhLh6Vdn4/icuToYVF2d/WA1UF6PVKsS2bUKMGydE3bol69ZoFGL4cCG2bJHTOInq6k9EVAOqOU6rDBM7BxTfYI4cEeLpp4Xw8Sk54DdsKMSUKUIcO6ZMTDdQnCgUh6zGhEG1MebmCvHRR0LcdVfpBL5tWyHmzxfir7+cUoxq609EVEWKH6dVin3sHFDk2r0Q8o7WBQvk32K33w48/7y8o1LlHe1NJiA/Xz4i7/pH5qmJ6mM8ehRYsULeFFN8Q4yvLzByJPDSS0CXLjVavOrrT0RUCexjZx/72KlBXh6wapV8FMmgQTKp8/KSd7Xu3g3s3y8716s8qTObSxKG/Pzy/bnUQAsxolMnYMkS2dfuX/+SbwC5dk3eLNO1K3DvvbK/ZTX+T6aJ+hMRUbUxsVPS1avAe+/Jl8yPHy/fS3rTTfKszOnT8i7K8HClo6yU4k74cXEyT42Ls99ZX0laiLGUm24Cnn0WOHRIJvgjRsiEf+tWYPBgmQB+8IFM+ipBc/UnIqKqU/pasFq59Np9drYQc+YI0bRpSV+qgAAh3nlHiKws55fnYo464aupc74WYqyUc+eEiIoSol69km2naVMhZs4U4r//dTibbupPRPQ/7GNnn7fSiaVHuXQJWLRInqW7dEmOCwkBpk2Tl1o1+vJ4q1We/Sn7jLTi4etfgqEULcRYKSEhwPz58lTbqlVyW0pOBmbMAObNk30xX34Z+N8LrYvppv5ERFQh3jzhgFM7ZebmAgsXygNvTo4c164d8PrrskN8rVo1jpc8VGGhfLtFfDzw669ynK8vMGGCfG5eUJCy8RERuQhvnrCPfexc6e+/5R2urVvLMyw5OUDnzvLtA7/9BowZw6SOasbbG3j8cfle2q++Anr1kn3uFi8u6bt5+rTSURIRkZswsXOFggJ5N+MttwCvvAJkZgJt2wJr18oD8KOP8lH/5FwGAzBsGLB3L7BlC9C/v9wOV60C2reXCd71r58jIiJdYmLnTEIAn30mD6TPPScfVxEUJA+ux47Jd4J6scnJhQwGYMAA4KefgP/8R949a7XKbbBtW2DyZJe8soyIiNSBWYaz/Oc/wB13AE88AZw9CzRrJm+UOHUKePppecmMyJ169wY2bZLb5j33yDN4S5fKS7RTpwIXLyodIRERORkTu5o6c0Y+SLhPH/kg4bp15YPBzp4FXnhBs3e6ko707g0kJgI//ij/fe2avLO2VSvgzTeB7GylIyQiIidhYldd//0vEBUFdOgA/Pvf8hLrhAmyo/qbb8oEj0hN7r4b2LUL+O47oEcP4MoVYNYseQZv0SL5KgoiItI0JnZVVVgo7zi85Rbg3Xfl5a2BA4FffgFWrgT8/ZWOkMgxg0G+tu7nn4GEBPkfk7/+AqZMkf/+/PNqvaqMiIjUgYldVezcKc90vPiifMBwp07ynZ2bN8t/E2mFwQBERspn3xX/h+TsWXmDzx13ADt2KB0hERFVAxO7ykhLA558EujbVx4IGzUCli0DDh+WZ+uItMrbu6QLwcyZsgvB/v1Av37Agw8Cx48rHSEREVUBE7sb8PnXv4BbbwU++USe5Xj2WeD334GJE3mnK+lH3bryIdpnzsht22iUDzzu3Bl46aWSV+AREZGqqT6xi42NhcFgKPVp3759hfOsX78e7du3h6+vLzp37oxNmzZVu3zft94CLl+WT/Tfv18+eLhJk2ovj6TYWHnzsD1ms/yeKuaSNvTzk2ejf/tNnrGzWuX7aNu2BVas4EtliYhUTvWJHQB07NgRaWlpts+uXbscTrt7926MHDkSzzzzDA4fPozIyEhERkbi6NGj1Sq7qFEj4IMPgD17gJ49q1sFKsNolCeIyiYmZrMczxdz3JhL27BdO2DDBvkWi44d5Q0WEycCt90GbNtWgwUTEZFLCZWbMWOG6Nq1a6WnHzFihBg6dGipcWFhYeIf//hHlcq1WCwCgLAcOVKl+ajy4uKEAORfe8N0Y25pw4ICIZYsEaJRI7lwQIiHHxbi7FknFkJEVDW247TFonQoqqKJTmKnTp1CQEAAfH19ER4ejvj4eAQHB9udds+ePYiKiio1buDAgdiwYUOFZeTl5SEvL882nJubCwAovOkmFBQU1KwCZNe0aYDV6oWYGCPeeksgP9+AGTOsmDatCGzyynFbGz77LPDww/CKi4PXv/4Fw7//DfHNNyh6+WUUTZsG1KnjxMKIiG6ssLBQ6RBUSfWJXVhYGNasWYN27dohLS0NM2fOxF133YWjR4+iXr165aZPT0+Hn59fqXF+fn5IT0+vsJz4+HjMnDmz3PjExEQ0YZ86l+neHfD2vh/5+UZ4e1vRvfs3qEGXSI/k1jYcOBD12rVD51Wr0PTIERjnzEHeqlX4dcIEZPTq5aJCiYjKy8zMVDoEVVJ9Yjd48GDbv7t06YKwsDC0bNkSn3/+OZ555hmnlTN9+vRSZ/pSU1MRGhqKiIgIBAYGOq0cKm3WLC8UFhrh4yOQn2/E4cP34403ipQOS1MUacOJE1G4cSOMU6eiTnIy7pg9G0X33w/rggVASIhryyYigjxOU3mqT+zKatiwIW699VacPn3a7vf+/v7IyMgoNS4jIwP+N3gjhMlkgum697rm5OQAALy9vVGrVq0aRk32mM3y0WlxcUB0tOF/nf6NMBqNiI5WOjptULQNH30UGDIEeOstYN48eH3zDbwSE+Ur9V55he9JJiKX8uYjx+zSxF2x17t8+TLOnDmD5s2b2/0+PDwciYmJpcZt2bIF4eHh7giPKqn4zk2ZkMhx0dFy2N6dnlSeKtqwbl0gPl6+Uq9/f+Dvv4E33gC6dgXK7IdEROR6qk/spk6diu3bt+P8+fPYvXs3HnroIRiNRowcORIAMGbMGEyfPt02/ZQpU7B582bMnz8fJ06cQGxsLA4cOIDJkycrVQWyw2otnZAUK05M+Li0G1NVG4aGAj/+CHz8sXwW3smTwIABwMiR8s0tRETkFgYh1P3G78cffxw7duzAX3/9haZNm6JPnz6YNWsW2rRpAwDo378/QkJCsGbNGts869evx5tvvonz58+jbdu2mDt3LoYMGVKlclNSUhAUFASLxYIWLVo4s0pE+paVJbPLZcuAoiKgQQPg7bflq8u8VP9/SSLSCB6n7VN9YqcUbjBENXToEPDcc8DPP8vhu+4CVq4EbvDmGCKiyuBx2j7+95mIXOO22+QbWxYulH3xdu6Ufe/i4oD8fKWjIyLSJSZ2ROQ6RiMwZYp89+yQITKhmzFDPnxv926loyMi0h0mdkTkei1bAt98A3z6KdC0KXDsGNCnDzBpEvC/RwsREVHNMbEjIvcwGORdssePA+PGybfOLlsm76jduFHp6IiIdIGJHRG51803A6tXA1u3Am3aAKmpQGQk8PjjwMWLSkdHRKRpTOyISBkREcCvvwKvvSb74q1bB3TsCHzxhdKRERFpFhM7IlJOnTrAnDnA3r1Ap07yjN2jjwIjRgB//ql0dEREmsPEjoiU17MncOCAfM+s0QisXy/P3q1bJ/viERFRpTCxIyJ1MJnkC2737we6dAEyM2W/u4cfBtLTlY6OiEgTmNiRpsXGOn7ZvdksvyeNue02+baK2FjA2xtISJBn7z75xKln77jtEJEeMbEjTTMagZiY8gdos1mONxqViYtqyMdHPsj4wAH5MOP//hd48kl592xamlOK4LZDRHrkrXQARDURHS3/xsSUDBcfmOPiSr4njeraFdi3D3j7bblCv/pKvpps2TJ5mbYGuO0QkR4ZhGDPZHv4cmFtKT4g+/jIt1bxwKxDR44ATz0FHDwoh0eMkAnezTfXaLHcdoi0icdp+5jYOcANRntMJnlg9vEB8vKUjoZcoqAAmD1bZmNWK+DvD3zwATB0aI0Wy22HSHt4nLaPfexIF8zmkgNzfr7jTvGkcbVqyb53e/cCHTrIu2Xvvx8YP77a75zltkNEesLEjjTv+n5ReXnyr71O8aQjPXvKS7JRUfIdtKtWyf5427dXaTHcdohIb3jzBGmavc7u9jrFkw7Vrg3Mnw888AAwbhxw/jxw993Ayy8Ds2YBvr4Vzs5th4j0iIkdaZrVar+ze/Gw1er+mMjN+vWT75yNipL97RYsAL77Dvi//5Nn9hzgtkNEesSbJxxgp0wiDfr2W9nfLj1dPojuzTeBN96QffOISFd4nLaPfeyISD+GDgWOHpWPQrFagZkzgfBw4PhxpSMjInILJnZEpC833wysWwd89hnQqJG8yeK224ClS536SjIiIjViYkdE+vT44/Ls3X33AdeuAZMnA0OGyMu0REQ6xcSOiPQrIEDeSLFokbxLdvNmoFMnICFB6ciISCFLly5FSEgIfH19ERYWhv379zuc9v3338ddd92FRo0aoVGjRhgwYECF06sBEzsi0jcvL+CFF+Ql2W7dgL/+AoYPlzdZ5OYqHR0RudG6desQFRWFGTNm4NChQ+jatSsGDhyIP//80+7027Ztw8iRI/HTTz9hz549CAoKwn333YfU1FQ3R155vCvWAd5tQ6RD+fnyIXVz58r+dq1bAx9/LG+wICJNqc5xOiwsDLfffjuWLFkCACgqKkJQUBBeeOEFTJs27YbzW61WNGrUCEuWLMGYMWNqFL+r8IwdEXkOHx9gzhxg2zYgOBg4exbo00e+pqygQOnoiMiF8vPzcfDgQQwYMMA2zsvLCwMGDMCePXsqtYyrV6+ioKAAjRs3dlWYNcbEjog8T9++8qHGTz4JFBXJJxXfeSfw++9KR0ZEVZSbm4ucnBzbJy8vz+50mZmZsFqt8PPzKzXez88P6ZW8qeq1115DQEBAqeRQbZjYEZFnatAA+H//D1i7FmjYEPj5Z6B7d2DlSj4WhUhDQkND0aBBA9snPj7eJeXMmTMHa9euRUJCAnxv8MpCJfGVYkTk2R57TJ6tGzsW+PFH4B//AL7+Gli1CmjWTOnoiOgGjh07hsDAQNuwyWSyO12TJk1gNBqRkZFRanxGRgb8/f0rLGPevHmYM2cOtm7dii5dutQ8aBfiGTsiohYtgC1b5HtmfXyAb74BOneWf4lI1erVq4f69evbPo4SOx8fH/To0QOJiYm2cUVFRUhMTER4BTdQzZ07F2azGZs3b0bPCt4/rRZM7MhjxcYCZrP978xm+T15EC8v4OWXgQMHZFL355/AsGHAc88BV64oHR0ROUFUVBTef/99fPTRRzh+/DgmTpyIK1eu4KmnngIAjBkzBtOnT7dN//bbbyM6OhoffvghQkJCkJ6ejvT0dFy+fFmpKtwQEzvyWEajfPJF2eTObJbjjUZl4iKFde4M7N8PvPKKHP7Xv2Tfu59/VjYuIqqxxx57DPPmzUNMTAy6deuGpKQkbN682XZDRXJyMtLS0mzTL1++HPn5+XjkkUfQvHlz22fevHlKVeGG+Bw7B/gcO89QnMTFxQHR0eWHycP9+CMwZgyQmioz/dhYYNo0wJvdk4mUxuO0fTxjRx4tOlomcTExgMnEpI7KuOce4MgReYOF1So3jL59gTNnlI6MiMguJnbk8aKjZX/5/Hz5l0kdldKoEfDZZ/INFfXrA3v2yFeTrV7Nx6IQkeowsSOPZzaXJHX5+Y5vqCAPZjAAo0bJhxr37Qtcvgw8/TTwyCPy3bNERCrBxI482vV96vLySi7LMrkju1q2lP3u3n4bqFUL+PJLebPF998rHRkREQAmduTB7N0ocX2fOyZ3ZJfRCPzzn8C+fUCHDkBaGjBoEDBlCvD330pHR0QejokdeSyr1f6NEsXJndWqTFykEd27AwcPAi+8IIcXLQJ69gQOH1Y2LiLyaKpP7OLj43H77bejXr16aNasGSIjI3Hy5MkK51mzZg0MBkOpj5rf60bKiI11fKNEdDQfUEyVULu2TOi++w7w9weOHQPCwoC5c/k/AyJShOoTu+3bt2PSpEnYu3cvtmzZgoKCAtx33324coMnwdevXx9paWm2z4ULF9wUMRF5nEGD5GNRIiOBggLgtdeAiAiAvztE5Gaqf8rm5s2bSw2vWbMGzZo1w8GDB9G3b1+H8xkMhhu+1JeIyGmaNJE3U6xeLfvbbd8OdOkCLFsm76glInID1Z+xKys7OxsA0Lhx4wqnu3z5Mlq2bImgoCA8+OCD+O2339wRHhF5MoNBPgYlKQkIDwdycoAnnwSeeAK4dEnp6IjIA2jqlWJFRUV44IEHkJWVhV27djmcbs+ePTh16hS6dOmC7OxszJs3Dzt27MBvv/3m8LUjeXl5yMvLsw2npqYiNDQU586dQ2BgoNPrQkQ6V1gIr7ffhtdbb8FgtUK0aAHrhx9C9O+vdGREupCamopWrVrxlWJlaCqxmzhxIr777jvs2rWrSiuxoKAAHTp0wMiRI2F28AyL2NhYzJw5s9z4Dz74AE2aNKl2zETk2Rr+/jt6vPsubkpLgzAYcPrBB3Fi1CgU1aqldGhEmpaZmYnx48czsStDM4nd5MmTsXHjRuzYsQOtWrWq8vyPPvoovL298dlnn9n9nmfsiMhlLl+G1z//CeMHHwAAROfOKPzoI6BTJ4UDI9IunrGzT/U3Twgh8MILLyAhIQHbtm2rVlJntVpx5MgRDBkyxOE0JpMJJpPJNpyTkwMA8Pb2Ri3+z5qIaqJRI+D994Fhw4Dx42E4cgS1wsOBOXOAF18EvDTX3ZlIcd7eqk9hFKH6X5NJkybh448/xqeffop69eohPT0d6enp+Pu6J7yPGTMG06dPtw3HxcXhhx9+wNmzZ3Ho0CE8+eSTuHDhAsaPH69EFYiIpAcekI9FGTpUvsPu5ZeBgQOB1FSlIyMinVB9Yrd8+XJkZ2ejf//+aN68ue2zbt062zTJyclIS0uzDV+6dAkTJkxAhw4dMGTIEOTk5GD37t0IDQ1VogpERCX8/ICvvwaWL5cPON66Vb5v9osvlI6MiHRAM33s3C0lJQVBQUG8dk9ErnPypHzG3cGDcnjsWPkmi/r1lY2LSAN4nLZP9WfsiIh0q107YM8e4I03ZD+7jz4CunYFKnicExFRRZjYEREpqVYt4K235JsqQkKA8+eBfv1kspefr3R0RKQxTOyIiNSgTx/gl1/k5diiImD2bKB3b+DECaUjIyINYWJHRKQW9esDa9YA69fLR6QcPAjcdpvsd1dUpHR0RKQBTOyIiNTmkUfkY1HuvRf4+29gyhRgwAB5mZaIqAJM7IiI1CgwENi8GVi6FKhTB/jpJ/lYlA8+APgwAyJygIkdEZFaeXkBzz8v+9716QNcvgxMmCAfcPzHH0pHR0QqxMSOiEjtbrkF2LYNmDcPMJmA776T75n99FOevSOiUpjYERFpgdEIvPIKcOgQ0KMHcOmSfLjxo48CFy8qHR0RqQQTOyIiLQkNlQ81josDvL2Bf/8b6NgRSEhQOjIiUgEmdkREWlOrFhAdDezfLy/JXrwIDB8OjB4tz+QRkcdiYkdEpFXduwMHDgDTpskbLT7+WCZ6mzcrHRkRKYSJHRGRlplMQHw88J//ALfeKu+WHTwYePppnr0j8kBM7IiI9OCOO4DDh+XDjA0GYPVq2ffuq6+UjoyI3Mhb6QCIiMhJ6tQBFi6Ub6545hng99+BBx8ERo4E3nsPaNpU6QhJC65dA/78U57xtffJyQGuXpVvRSn7uXZNvv5OCPsfo1GeZfbxkX+v/7evr3ytnqNPo0ZAkybyU6eO0q2kWkzsiIj0pk8fICkJiI2Vz7777DNgyxZgyRJgxAh5Ro8806VLwLlzwNmzQHIykJZW/pOVpXSUN+bri5saNVI6ClUyCMGnW9qTkpKCoKAgWCwWtGjRQulwiIiq5+efZX+7o0flcGQksGwZ0Ly5omGRC2VmAsePy8/vv8sk7tw5+cnOrtwyfHzkGbLiT8OGJf9u0ECeMatdu/TH11d+jEb5n4frP17/6/lltQL5+UBeXvm/f/8N5ObKM4JlP9nZMim9eFFODyAHQAOAx+kyeMaOiEjPbr8dOHgQmD0bmDUL2LBBvsVi4UJgzBievdOy7Gx5ZvaXX2QSd+yY/HujB1b7+QGtWgEtWwIBATLJL/tp2FCd24YQwJUrQGYmLh89CgwbpnREqsPEjohI73x85GXZ4cPl2buDB4Fx44C1a4F//QsIDlY6QrqRzEz51pFDh+RNMocOAadPO56+ZUv5MOv27YHWrWUi16oVEBKi7f5pBgNw003ATTehyJspjD1sFSIiT9GlC7B3LzB/PjBjhnzeXceO8mze88/LS2ikPKtVnn37z3+A3bvl58wZ+9MGBwPdusn1GBoKdOggk7m6dd0aMqkHEzsiIk/i7Q289pq8W/aZZ2TS8OKL8uHGK1cCXbsqHaHnyc+XCfdPP8n1sXev7FdWVtu2wG23yQdTF/9t0sT98ZKqMbEjIvJE7dsDO3cCK1YA06fL15P16AG88oo8m6fly3VqZ7XKy6k//ggkJgK7dsnHh1zvppvkswl795afsDDZ743oBpjYERF5Ki8veQk2MlKetfv3v4G5c4H164Hly4GBA5WOUD9SU4FNm4DvvpM3r5R9K0izZsDddwN9+8pErlMneXaVqIq41RARebqAAOCLL4CvvwYmTZKPxRg0SD7Y+N135V2UVDVWq3zUzDffAN9+K+9evV79+kC/fkBEhPx07KjOu1BJc5jYERGRNGyYPGsUHQ0sWiQfbPzdd8A778i7ab34FsoK/f038P33QEKCPDuXmVnyncEA9OoFDB0K3HefvOzNM3LkAtyqiIioxE03ybN0Tz4JTJgg+4JNmAD83//JBxt36qR0hOpy5YpM4r74Qp6Zu3Kl5Lv69eXl7Pvvl2dAmzVTLk7yGEzsiIiovB495A0VixbJM3g7d8rHakyZIm+uqF9f6QiVc/ky8NVXMpnbvFmeqSsWFAQ8/LC86/jOO4FatZSLkzwSz6sTEZF93t5AVJR8ptrw4bLf2IIF8o7aTz+VbwHwFIWFMol78knZ53DUKHnJ9e+/5QOA//lPmQhfuCDPePbvz6SOFMEzdkREVLGWLeUds5s3Ay+8IN94MGqUfO7d0qWy478eCSHf0vHxx7K/4Z9/lnzXti0wYgTwyCPy2X+88YFUgokdERFVzqBBwJEj8s0Vs2YB27eXvjxbr57SETpHejrw0UfAmjXAiRMl45s2BR5/XJ61u/12JnOkSrwUS0RElefrC7zxhrw8GxkpL1HOny8vz65dq93Ls1arvAli+HDZT27aNJnU+frKZO7bb+Wz6BYtkne3MqkjlWJiR0REVRcSIvuYffst0KYN8Mcf8rl3/frJF9RrRXIyEBsLtGolH0WSkCCT1fBwYNUqICNDXoYdMoR95kgTmNgREVH1DRkCHD0KxMUBtWvLu2d79pTPvUtLUzo6+4qK5PP5hg6VCerMmYDFAjRuDLz0kqzP7t2yDp589y9pEhM7IiKqGV9f+UiUkyflTRVCAKtXA7feCsTHA9euKR2hlJMjL6W2by8T0k2bZKz33CPPyqWmyjta9XozCHkEJnZEROQcQUHyDtI9e2Q/tMuXgddfBzp0kM98U6r/3YkTwOTJQGCgvNHj1CmgQQPg5ZflvxMTZT86X19l4iNyIiZ2RETkXHfcIZO7//f/ZDJ1/jzw6KPu7X8nhHy918CBMrFculQmmqGhwPLlQEqKfCbfLbe4Jx4iN2FiR0REzuflJR8LcvKkfBRKcf+7Hj3k+PPnXVNuQYE8a9i9u3w8yw8/yDtYH3wQ2LpV9p977jn56jQiHWJiR0RErlO3rrzr9ORJ4Ikn5LhPPgHatZOXQjMznVNObq7sH9emDTB6NPDLL7Lsl14CzpwBNmwAIiL4mBLSPSZ2RETkekFBMqE7cEAmWPn5wMKFMhGbPRu4erV6y01Pl/34goPl688sFvnKr9mz5b/ffVc+yoTIQ2gmsVu6dClCQkLg6+uLsLAw7N+/v8Lp169fj/bt28PX1xedO3fGpk2b3BQpERE51KOHvCT6/ffyrRU5OfKBx7fcArz/vnyGXGWkpAAvvigfVxIfD2RlybtwV66Ul3mnTwcaNXJdPUiz9J5PaCKxW7duHaKiojBjxgwcOnQIXbt2xcCBA/Hn9e/tu87u3bsxcuRIPPPMMzh8+DAiIyMRGRmJo0ePujlyIiKy6777St7DGhIin3n37LNA587yDtqiIvvzXbgATJwoz/QtXgzk5cmbNRISgOPHgQkTeHcrOeQR+YTQgF69eolJkybZhq1WqwgICBDx8fF2px8xYoQYOnRoqXFhYWHiH//4R6XLtFgsAoCwWCzVC5qIiCrn2jUhFi4U4uabhZD3swrRpYsQCQlCFBXJac6cEWL8eCG8vUum6ddPiMTEkmnIo1TnOK1EPuFuqj9jl5+fj4MHD2LAgAG2cV5eXhgwYAD27Nljd549e/aUmh4ABg4c6HB6IiJSkMkkny935oy8g7Z+feDXX4GHHpKXbkePlpdZP/hAXqqNiAC2bZOfe+7hDRFUKZ6ST3grHcCNZGZmwmq1ws/Pr9R4Pz8/nDhxwu486enpdqdPT093WE5eXh7y8vJsw9nZ2QAAi8WCwsr2+SAiopoZNw548EH4rlqF2qtXw3D4MHD4MAAgv18//P3CC7D26CGnddUjU0gT0v73yrrs7GzUv+7VbyaTCSaTqdz07sonlKb6xM5d4uPjMXPmzHLje/furUA0RERUzvbt8kN0nU6dOpUanjFjBmJjY5UJRgVUn9g1adIERqMRGRkZpcZnZGTA39/f7jz+/v5Vmh4Apk+fjqioKNtwYWEhjh8/jqCgIHh5qf6KtV25ubkIDQ3FsWPHUK9ePaXD8VhcD+rA9aAOXA/qoIf1UFRUhOTkZISGhsLbuySdsXe2DnBfPqE01Sd2Pj4+6NGjBxITExEZGQlArszExERMnjzZ7jzh4eFITEzESy+9ZBu3ZcsWhIeHOyzH3qnbO++8s8bxKyknJwcAEBgYWOo0NbkX14M6cD2oA9eDOuhlPQQHB1d6WnflE0pTfWIHAFFRURg7dix69uyJXr16YeHChbhy5QqeeuopAMCYMWMQGBiI+Ph4AMCUKVPQr18/zJ8/H0OHDsXatWtx4MABrFy5UslqEBERkYI8IZ/QRGL32GOP4eLFi4iJiUF6ejq6deuGzZs32zo0Jicnl7pc2rt3b3z66ad488038frrr6Nt27bYsGFDuevwRERE5Dk8IZ8wCCGE0kGQa+Tl5SE+Ph7Tp0932OeAXI/rQR24HtSB60EduB70i4kdERERkU5o83ZPIiIiIiqHiR0RERGRTjCxIyIiItIJJnY6lZqaiieffBI333wzateujc6dO+PAgQNKh+VRrFYroqOj0apVK9SuXRtt2rSB2WwGu7W61o4dOzBs2DAEBATAYDBgw4YNpb4XQiAmJgbNmzdH7dq1MWDAAJw6dUqZYHWsovVQUFCA1157DZ07d0bdunUREBCAMWPG4I8//lAuYJ260f5wveeeew4GgwELFy50W3zkfEzsdOjSpUu48847UatWLXz33Xc4duwY5s+fj0aNGikdmkd5++23sXz5cixZsgTHjx/H22+/jblz52Lx4sVKh6ZrV65cQdeuXbF06VK738+dOxeLFi3CihUrsG/fPtStWxcDBw7EtWvX3BypvlW0Hq5evYpDhw4hOjoahw4dwpdffomTJ0/igQceUCBSfbvR/lAsISEBe/fuRUBAgJsiI5cRpDuvvfaa6NOnj9JheLyhQ4eKp59+utS44cOHi1GjRikUkecBIBISEmzDRUVFwt/fX7zzzju2cVlZWcJkMonPPvtMgQg9Q9n1YM/+/fsFAHHhwgX3BOWBHK2HlJQUERgYKI4ePSpatmwp3n33XbfHRs7DM3Y69NVXX6Fnz5549NFH0axZM3Tv3h3vv/++0mF5nN69eyMxMRG///47AOCXX37Brl27MHjwYIUj81znzp1Deno6BgwYYBvXoEEDhIWFYc+ePQpGRtnZ2TAYDGjYsKHSoXiUoqIijB49Gq+++io6duyodDjkBJp48wRVzdmzZ7F8+XJERUXh9ddfx88//4wXX3wRPj4+GDt2rNLheYxp06YhJycH7du3h9FohNVqxaxZszBq1CilQ/NY6enpAGB7ynwxPz8/23fkfteuXcNrr72GkSNHavq9pVr09ttvw9vbGy+++KLSoZCTMLHToaKiIvTs2ROzZ88GAHTv3h1Hjx7FihUrmNi50eeff45PPvkEn376KTp27IikpCS89NJLCAgI4Hog+p+CggKMGDECQggsX75c6XA8ysGDB/Hee+/h0KFDMBgMSodDTsJLsTrUvHlzhIaGlhrXoUMHJCcnKxSRZ3r11Vcxbdo0PP744+jcuTNGjx6Nl19+2fZyaXI/f39/AEBGRkap8RkZGbbvyH2Kk7oLFy5gy5YtPFvnZjt37sSff/6J4OBgeHt7w9vbGxcuXMArr7yCkJAQpcOjamJip0N33nknTp48WWrc77//jpYtWyoUkWe6evVqqZdJA4DRaERRUZFCEVGrVq3g7++PxMRE27icnBzs27cP4eHhCkbmeYqTulOnTmHr1q24+eablQ7J44wePRq//vorkpKSbJ+AgAC8+uqr+P7775UOj6qJl2J16OWXX0bv3r0xe/ZsjBgxAvv378fKlSuxcuVKpUPzKMOGDcOsWbMQHByMjh074vDhw1iwYAGefvpppUPTtcuXL+P06dO24XPnziEpKQmNGzdGcHAwXnrpJbz11lto27YtWrVqhejoaAQEBCAyMlK5oHWoovXQvHlzPPLIIzh06BC++eYbWK1WWx/Hxo0bw8fHR6mwdedG+0PZhLpWrVrw9/dHu3bt3B0qOYvSt+WSa3z99deiU6dOwmQyifbt24uVK1cqHZLHycnJEVOmTBHBwcHC19dXtG7dWrzxxhsiLy9P6dB07aeffhIAyn3Gjh0rhJCPPImOjhZ+fn7CZDKJiIgIcfLkSWWD1qGK1sO5c+fsfgdA/PTTT0qHris32h/K4uNOtM8gBB+DT0RERKQH7GNHREREpBNM7IiIiIh0gokdERERkU4wsSMiIiLSCSZ2RERERDrBxI6IiIhIJ5jYEREREekEEzsiIiIinWBiR0RERKQTTOyIiIiIdIKJHREREZFOMLEjIl2bOHEi+vTpY/e7Fi1aYM6cOW6OiIjIdbyVDoCIyFV+++03rFy5Ejt37rT7fYcOHZCUlOTeoIiIXIhn7IhIt9555x3cfvvt6N27t93vGzdujPT0dDdHRUTkOkzsiEiXCgsL8eWXX+Lhhx+2jfvHP/6BVatW2YZzc3NRu3ZtJcIjInIJJnZEpEtnzpxBbm4uOnfuDAAoKirC+vXrUa9ePds0v/76K0JDQ5UKkYjI6ZjYEZEuZWVlAQBuuukmAMD333+PS5cuwdfXFwCwd+9epKam4qGHHlIqRCIip+PNE0SkSy1btoTBYMBnn32GunXrYurUqRg6dCg2btyIoKAgPPfccxgwYIDDO2aJiLTIIIQQSgdBROQK8fHxmDNnDmrXro3Zs2ejR48eePDBB5GZmYlhw4Zh2bJlaNSokdJhEhE5DRM7IiIiIp1gHzsiIiIinWBiR0RERKQTTOyIiIiIdIKJHREREZFOMLEjIiIi0gkmdkREREQ6wcSOiIiISCeY2BERERHpBBM7IiIiIp1gYkdERESkE0zsiIiIiHSCiR0RERGRTvx/n61mtS6h+OoAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "solver.plot(5, 15)" ] }, { "cell_type": "markdown", "id": "d1c174c7-d6f0-4e82-b450-3c84e522f924", "metadata": {}, "source": [ "You can increase the number of Krylov iterations, just increasing the `m_max` value." ] }, { "cell_type": "code", "execution_count": 24, "id": "99cd60bf-3b0b-4f1f-8ca7-b112101a0ea3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Krylov iteration done after 26.75535 seconds.\n" ] }, { "data": { "image/png": "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BaW4uDiMGzcOMTExaN68ObZt24ZJkybh8ccfNzu1oHH+/HkcOnTI9TwtLQ3bt29H9erVERMTg2HDhuHNN9/ENddcg4YNG2L06NGIiopC7969zUva5krbJ3Xq1MEDDzyArVu34ptvvkFeXp6rf2P16tURHh5uVtq2dqXzpHjDukyZMqhduzauu+462amSXswefkve+frrr0WLFi1ERESEaNKkiZgzZ47ZKQWts2fPiqFDh4qYmBhRtmxZ0ahRIzFq1CiRnZ1tdmpB46effhIA3B7x8fFCCG1ak9GjR4vIyEgREREhYmNjxYEDB8xN2uZK2ydpaWkl/gyA+Omnn8xO3baudJ4UxylNrM8hBKfBJyIiIrI69qkjIiIisgE26oiIiIhsgI06IiIiIhtgo46IiIjIBtioIyIiIrIBNuqIiIiIbICNOiIiIiIbYKOOiIiIyAbYqCMiIiKyATbqiIiIiGyAjToiIiIiG2Cjjogs75lnnkHnzp1L/FndunUxfvx4yRkREckXZnYCRESB2LNnD+bMmYOff/65xJ83bdoU27dvl5sUEZEJeKeOiCzt7bffxk033YROnTqV+PPq1avj5MmTkrMiIpKPjToisqzc3Fx89dVX6NOnj+u1p556Ch9++KHr+blz51CuXDkz0iMikoqNOiKyrMOHD+PcuXNo2bIlACA/Px8LFy5EpUqVXO/ZuXMnmjVrZlaKRETSsFFHRJaVkZEBAKhYsSIAYPny5Thz5gzKli0LANiwYQPS09Nx3333mZUiEZE0HChBRJZVv359OBwOLFiwABUqVMBLL72Eu+66C0uXLkW9evXw9NNPo0ePHh5HxhIR2YlDCCHMToKIyF8pKSkYP348ypUrh7feegtt2rTBvffei9OnTyMuLg4zZ85EtWrVzE6TiMhwbNQRERER2QD71BERERHZABt1RERERDbARh0RERGRDbBRR0RERGQDbNQRERER2QAbdUREREQ2wEYdERERkQ2wUUdERERkA2zUEREREdkAG3VERERENsBGHREREZENsFFHREREZAP/BzoPdJ2KlKZ3AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "solver.m_max = 40\n", "solver.plot(5, 15)" ] }, { "cell_type": "markdown", "id": "54d1ac4c-f1ad-49ad-98c2-f236b5697eec", "metadata": {}, "source": [ "All results of the iteration are stored in a `dict`-like object of class `Results`, available through the `results` property. The key in this quasi-dictionary is the iteration number, where -1 indicates the last iteration. The value is a tuple containing two numpy arrays: `eigvals` and `eigvecs`. The first one contains all eigenvalues ($\\omega^2$), second one is a matrix and contains corresponding eigenvectors in columns. `eigvecs[:,i]` is an eigenvector to `eigvals[i]`." ] }, { "cell_type": "code", "execution_count": 30, "id": "dbc13985-954d-4448-91ad-c04600bfa51f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0.00356379 -0.00798236 0.01463473 ... 0.00649149 0.0159756\n", " -0.00902061] is an eigenvector to eigenvalue 10419.925113995045.\n" ] } ], "source": [ "eigvals, eigvecs = solver.results[-1]\n", "print(f\"{eigvecs[:,2]} is an eigenvector to eigenvalue {eigvals[2]}.\")" ] }, { "cell_type": "markdown", "id": "59e9267c-1b5f-4b23-a0e4-fc235f87d713", "metadata": {}, "source": [ "Use `KrylovSolver.get_single_result()` method to get a single computed eigenpair with the eigenvalue ($\\omega^2$) closest to a given value and in desired iteration (-1 refers to the last iteration). E.g. if you want to get eigenvalue, such that $\\omega \\approx 7$:" ] }, { "cell_type": "code", "execution_count": 31, "id": "9cb4d134-168f-4762-92ec-81bec1c9b1c7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "51.86626038886238\n" ] } ], "source": [ "eigval, eigvec = solver.get_single_result(7*7, -1)\n", "print(eigval)" ] }, { "cell_type": "markdown", "id": "0acc3b40-9ca7-47c8-a67f-aa7f4b7162e1", "metadata": {}, "source": [ "Using `ngsolve` you can easily visualize computed eigenfunction. Just define an `ngsolve.comp.GridFunction` object, update its `vec.data` property with the computed eigenvector and use the `ngsolve.webgui.Draw()` method." ] }, { "cell_type": "code", "execution_count": 32, "id": "93588edb-4c8d-43a9-b054-9715322fbebc", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7aa82e4287dc4b7ea23e619bc7a3b688", "version_major": 2, "version_minor": 0 }, "text/plain": [ "WebGuiWidget(layout=Layout(height='50vh', width='100%'), value={'gui_settings': {}, 'ngsolve_version': '6.2.24…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "BaseWebGuiScene" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solution = GridFunction(solver.fes, multidim=solver.mesh.nv)\n", "solution.vec.data += eigvec\n", "Draw(solution, mesh, deformation=True)" ] } ], "metadata": { "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.12.1" } }, "nbformat": 4, "nbformat_minor": 5 }