diff --git a/HexagonalLatticeBands.ipynb b/HexagonalLatticeBands.ipynb new file mode 100644 index 00000000..a111f81c --- /dev/null +++ b/HexagonalLatticeBands.ipynb @@ -0,0 +1,772 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Band structure calculation of hexagonal lattices\n", + "\n", + "In this notebook, we demonstrate the approach for simulating band diagrams of periodic structures defined in hexagonal lattices. We will reproduce the TM band diagram calculation presented in the paper by `Tsung-li Liu, Kasey J. Russell, Shanying Cui, and Evelyn L. Hu, \"Two-dimensional hybrid photonic/plasmonic crystal cavities\", Optics Express, (2014).` [DOI:10.1364/OE.22.008219](https://doi.org/10.1364/oe.22.008219).\n", + "\n", + "For calculating band diagrams of periodic structures in a **square** lattice, please refer to our [band diagrams for a photonic crystal slab](https://www.flexcompute.com/tidy3d/examples/notebooks/Bandstructure/) example notebook.\n", + "\n", + "\n", + "\n", + "Due to the rectangular nature of the FDTD simulation domain, a primitive hexagonal unit cell **cannot** be represented directly; therefore, it is necessary to use a rectangular supercell of size $(a \\times \\sqrt{3}a$), constructed from two primitive real-space lattice vectors. However, this supercell enlarges the real-space period and reduces the Brillouin zone, which introduces artificial band folding.\n", + "\n", + "To suppress these folded modes, we apply **matching dipoles**. For each dipole placed in the supercell, a second dipole is added at the position shifted by the primitive lattice vector $\\vec{r}$ of the true hexagonal cell. The second dipole is driven with a Bloch phase factor \n", + "\n", + "$$e^{-i 2\\pi\\,\\vec{b}\\cdot\\vec{r}}$$\n", + "\n", + "where $\\vec{b}$ is the Bloch wavevector. This enforces the correct Bloch periodicity of the primitive cell, ensuring that only the physical (unfolded) Bloch modes are excited, and allowing the band diagram to be computed using the standard high-symmetry points of the hexagonal Brillouin zone.\n", + "\n", + "This notebook is structured as follows:\n", + "\n", + "[1)](#1) Definition of the K-points for the hexagonal lattice \n", + "[2)](#2) Supercell definition and base simulation setup \n", + "[3)](#3) Function for creating matching dipoles for a given Bloch vector \n", + "[4)](#4) Band diagram calculation\n", + "\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from typing import Callable\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import tidy3d as td\n", + "from tidy3d import web\n", + "\n", + "# Defining a random seed for reproducibility\n", + "np.random.seed(12)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## K-points definition \n", + "\n", + "For a hexagonal lattice, we can define the two real-space lattice vectors as \n", + "$a_1 = (a,\\,0)$ and \n", + "$a_2 = a(\\cos(\\pi/3),\\,\\sin(\\pi/3))$.\n", + "\n", + "To transform these vectors into reciprocal space, we use the standard definition, where $a_3$ is simply (0,0,1).\n", + "\n", + "$b_i = 2\\pi\\, \\frac{a_j \\times a_k}{a_1 \\cdot (a_2 \\times a_3)}$,\n", + "\n", + "\n", + "Hence, the vectors in the reciprocal space are:\n", + "\n", + "$ b_1 = \\frac{2\\pi}{a}(1,-\\frac{1}{\\sqrt{3}}) $ \n", + "$ b_2 = \\frac{2\\pi}{a}(0,\\frac{2}{\\sqrt{3}}) $\n", + "\n", + "For band calculations, we only need to sweep points in the irreducible Brillouin zone (IBZ), which in reduced reciprocal coordinates corresponds to the triangular region defined by the points\n", + "\n", + "- $\\Gamma = (0,\\,0)$ \n", + "- $M = \\left(0,\\,\\tfrac{1}{\\sqrt{3}}\\right)$ \n", + "- $K = \\left(\\tfrac{1}{3},\\,\\tfrac{1}{\\sqrt{3}}\\right)$.\n", + "\n", + "The code bellow illustrates the real and reciprocal space." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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pk34/PPPodFosHz5crRu3RonT55ElSpVAAD//vsvwsLC0KtXLxQrVgy3bt3CihUr0KRJE1y8eBEuLi4AgFevXqFhw4a4dOkSBg0aBB8fHzx9+hR//fUX7t27B3d3dxgMBnz00Uc4evQohg0bhooVK+LChQtYvHgxrl69mu66B1n59ttv8dFHH6Fv375ISUnBb7/9hu7du2Pnzp1o164dAOCXX37BkCFDUKtWLQwbNgwAUKZMGbi6uuLq1avYuHEjFi9eDHd3dwAQT0reZok+btmyBQkJCRg+fDgKFCiAkydP4vvvv8e9e/ewZcsWo7Z6vR5+fn6oXbs2FixYgP3792PhwoUoU6YMhg8fDgAQBAEdO3bE0aNH8emnn6JixYr4448/MGDAgCzHtmbNmihdujQ2b96cpv2mTZuQL18++Pn5AQAePXqEOnXqiCf8BQsWxN9//43BgwcjLi5OnAqt1+vRvn17HDhwAL169cLo0aPx8uVLhISEICIiAi1atMCKFSswfPhwdO7cGV26dAEA8Ru1/fv3o02bNihdujSmT5+OxMREfP/996hfvz7Cw8PTnEB0794dZcuWxdy5c8UPXl27dkVkZCRGjRqFkiVL4vHjxwgJCcGdO3csupgsETmm9zlnyM77UEb0ej1at26NOnXqYN68edizZw+mTZsGnU6HmTNnGrUNDg5GUlIShg0bBo1Gg/z582f7+PvgwQPUqlULsbGxGDZsGCpUqID79+/j999/R0JCAtRqNc99eO6TKZ5/GAsJCcGNGzfg7++PwoULIzIyEj/88AMiIyNx/PjxNOsv9ejRA6VKlUJQUBDCw8Px008/oVChQvjmm2/ENkOGDMH69evRp08f1KtXD//884/4t/M+Xr58KSYrnz17Jl4St3r16kwft27dOvz8888YOnRojmaQjhw5Ennz5sX06dNx5coVrFixArdv3xbXuAJeJ7By5cqFgIAA5MqVC//88w+mTp2KuLg4zJ8/HwAwadIkvHjxAvfu3cPixYsBALly5TJ6rq+//hpyuRzjxo3DixcvMG/ePPTt2xcnTpzIdrwOTSAikwgODhYACPv37xeePHki3L17V/j999+FggULChqNRrh7967Ytnnz5kLVqlWFpKQksc5gMAj16tUTypYtK9YlJSUJer3e6Hlu3rwpaDQaYebMmUZ1AITg4OBMYzxz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TE96x4mDBw+Kv6fUH7VaLVSoUEGYM2eOkJKSIrZt3Lhxmrbp/bwZ79tS+3To0CFh2LBhQr58+YRcuXIJffv2FWJiYoza/u9//xPq1KkjODs7C0WKFBG+/PJLYe/evQIAo9f+q1evhD59+gh58+YVAIivu9S+bdmyJd1xyO65tKOTCQJX3yIiYzKZDCNGjEh3GjMRERHZj4EDB+L33383WtPFEfHcR3q1atVCiRIlsGXLFqlDIRu2du1a+Pv7499//83RTEOSDi/fIyIiIiIiIsnExcXh3LlzWLdundShEJGFMSlFREREREREknFzc+NNRYgcFO++R0REREREREREFsc1pYiIiIiIiIiIyOI4U4qIiIiIiIiIiCyOSSkiIiIiIiIiIrI4LnRuAgaDAQ8ePEDu3Lkhk8mkDoeIiIhMTBAEvHz5EkWKFIFczu/03gfPm4iIiOxfds+dmJQygQcPHqB48eJSh0FERERmdvfuXRQrVkzqMGwaz5uIiIgcR1bnTkxKmUDu3LkBvB5sNzc3k+5bq9Vi3759aNWqFVQqlUn3bS0coY8A+2lPHKGPAPtpbxyhn+bsY1xcHIoXLy6+59O7M+d5k7VxhNddVjgGHAOAYwBwDACOQSpHGYfsnjsxKWUCqVPP3dzczJKUcnFxgZubm93+wTpCHwH20544Qh8B9tPeOEI/LdFHXm72/sx53mRtHOF1lxWOAccA4BgAHAOAY5DK0cYhq3MnLopAREREREREREQWx6QUERERERERERFZHJNSRERERERERERkcUxKERERERERERGRxTEpRUREREREREREFsekFBERERERERERWRyTUkREREREREREZHFMShERERERERERkcUxKUVERERERERERBbHpBQREREREREREVkck1JERERERERERGRxTEoREREREREREZHFMSlFREREREREREQWx6QUERERERERERFZHJNSRERERERERERkcUxKERERERERERGRxdlUUurw4cPo0KEDihQpAplMhu3bt2f5mNDQUPj4+ECj0cDLywtr165N02bZsmUoWbIknJycULt2bZw8edL0wRMRERERERERkcimklLx8fGoXr06li1blq32N2/eRLt27dC0aVOcPXsWY8aMwZAhQ7B3716xzaZNmxAQEIBp06YhPDwc1atXh5+fHx4/fmyubhAREREREREROTyl1AHkRJs2bdCmTZtst1+5ciVKlSqFhQsXAgAqVqyIo0ePYvHixfDz8wMALFq0CEOHDoW/v7/4mF27dmHNmjWYMGGC6TtBRERERERERES2lZTKqWPHjqFFixZGdX5+fhgzZgwAICUlBadPn0ZgYKC4XS6Xo0WLFjh27FiG+01OTkZycrJYjouLAwBotVpotVoT9gDi/ky9X2viCH0E2E974gh9BNhPe+MI/TRnH+153IiIiIikYtdJqejoaHh4eBjVeXh4IC4uDomJiXj+/Dn0en26bS5fvpzhfoOCgjBjxow09fv27YOLi4tpgn9LSEiIWfZrTRyhjwD7aU8coY8A+2lvHKGf5uhjQkKCyfdJRERE5OjsOillLoGBgQgICBDLcXFxKF68OFq1agU3NzeTPpdWq0VISAhatmwJlUpl0n1bC0foI8B+2hNH6CPAftobR+inOfuYOiuaiIiIiEzHrpNShQsXxqNHj4zqHj16BDc3Nzg7O0OhUEChUKTbpnDhwhnuV6PRQKPRpKlXqVRmO9E3576thSP0EWA/7Ykj9BFgP+2NI/TTHH209zEjIiIikoJN3X0vp+rWrYsDBw4Y1YWEhKBu3boAALVaDV9fX6M2BoMBBw4cENsQEREREREREZHp2VRS6tWrVzh79izOnj0LALh58ybOnj2LO3fuAHh9WV3//v3F9p9++ilu3LiBL7/8EpcvX8by5cuxefNmjB07VmwTEBCAH3/8EevWrcOlS5cwfPhwxMfHi3fjIyIiIiIiIiIi07Opy/dOnTqFpk2biuXUdZ0GDBiAtWvX4uHDh2KCCgBKlSqFXbt2YezYsfj2229RrFgx/PTTT/Dz8xPb9OzZE0+ePMHUqVMRHR0Nb29v7NmzJ83i50REREREREREZDo2lZRq0qQJBEHIcPvatWvTfcyZM2cy3e/IkSMxcuTI9w2PiIiIiIiIiIiyyaYu3yMiIiIiIiIiIvvApBQREREREREREVkck1JERERERERERGRxTEoREREREREREZHFMSlFREREREREREQWx6QUERERERERERFZHJNSRERERERERERkcUxKERERERERERGRxTEpRUREREREREREFsekFBERERERERERWRyTUkREREREREREZHFMShERERERERERkcUxKUVERERERERERBbHpBQREREREREREVkc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9P+UciUGNuqK9l4NoFQos34AEREROTSZTIZu3brh0qVLmDVrFlxcXIy2x8XFYdy4cahSpQp27drF9aaIssCkFJEFCIKAe8+iEZP4gm9MRFZEpVRiUONu6FC2IdRKldThEBERkY1wdnbG5MmTceXKFfTr1y/N9qioKLRv3x5t27bFpUuXJIiQyDYwKUVERERERET0DooVK4ZffvkFYWFh+PDDD9Ns37NnD6pVq4YJEyZIEB2R9WNSioiIHJbBYMDNx3fx4OUTGAwGqcMhIiIiG1W3bl0cP34ca9euReHChY226XQ6rFixAgCwZs0a6PV6KUIkskpMShERkcNK1qVgwKovMePoT1zvjYiIiN6LXC7HgAEDcPXqVUyYMAFqtTpNm7Fjx8LHxwcHDx6UIEIi68OkFBEREREREZGJ5M6dG0FBQbh06RI6d+6cZvv58+fRrFkzdO3aFTdv3pQgQiLrwaQUERERERERkYmVLl0a27Ztw/79+1GpUqU027dt24aKFSti0qRJePXqlQQREkmPSSkiC5DJZChXuCQ8c7lDJpNJHQ4REREREVlI8+bNceTIEQBAvnz5jLYlJydj7ty5KFeuHH7++WeucUkOh0kpIgtwUTvhwKRfML3hUDipNFKHQ0REREREFqRUKgEAZ86cweeffw6FQmG0/eHDhxgwYADq1q2LEydOSBEikSSYlCIiIiIiIiKygHz58uHbb7/F+fPn0apVqzTbT548iTp16qB///64f/++BBESWRaTUkREREREREQWVKlSJezZswc7duyAl5dXmu2//PILypcvj7lz5yIpKUmCCIksg0kpIgtISElC8zkfY/qRH3nbeSIropQr0atue7QsVRtKhVLqcIiIiMiByGQytG/fHhEREZg/fz5y585ttD0+Ph6TJk1CxYoVsXXrVgiCIFGkRObDpBSRBQiCgKvRt/Dw1VO+mRBZEZVSic9a9EW3Cs2gVqqkDoeIiIgckEajwbhx4xAVFYXBgwenuTHSrVu30K1bNzRr1gznzp2TKEoi82BSioiIiIiIiEhiHh4e+Omnn3Dq1Ck0aNAgzfbQ0FD4+Phg+PDhePLkiQQREpkek1JEROSwDAYDHsY+wdOEWN6CmYiIiKyCj48PDh8+jN9++w3Fixc32mYwGLBy5UqULVsWS5YsgVarlShKItNgUoqIiBxWsi4FPb//HJMOreB6b0RERGQ1ZDIZevbsicuXL2P69OlwdnY22v7ixQuMHTsW1apVw549eySKkuj9MSlFREREREREZIVcXFwwbdo0XLlyBb17906z/fLly2jTpg3atWuHK1euSBAh0fthUoqIiIiIiIjIihUvXhwbNmzAkSNH4OPjk2b77t27UaVKFXzxxReIjY21fIBE74hJKSILkMlkKJa/MAo450lzNw0iIiIiIqLsaNCgAf7991+sXr0aHh4eRtt0Oh0WLVqEcuXK4ccff4Rer5coSqLsY1KKyAJc1E44NmML5jb5DE4qjdThEBERERGRjZLL5Rg0aBCuXr2KL7/8EiqVymj7kydPMGzYMNSsWROHDx+WKEqi7GFSioiIiIiIiMjGuLm54ZtvvkFkZCQ++uijNNvPnj2Lxo0bo0ePHrh9+7YEERJlzWaSUs+ePUPfvn3h5uaGvHnz4v/au/PwqMrz/+OfyWxJgBBWA8qOEhAQ0JKCCChbxKpVurBYJCCIAlZBBbSoQGVRXH6lVLGFUAvIV60bFpGACyJ7ICwhIkFwQQJVhIBAMjN5fn/QjIzZYTKTmXm/risXzDn3PLnvZ2ZOTu6cZcSIETp16lSp8ePGjVOrVq0UExOjxo0b67777tOJEyd84iwWS5GvZcuWVXY5AAAAAABctMsvv1xvv/22Vq1apTZt2hRZ/9prrykxMVGPPfaYfvzxxyBkCJQsZJpSQ4YMUWZmptLS0vTuu+9q7dq1GjVqVInx3377rb799lvNmTNHu3fv1qJFi7Ry5UqNGDGiSGxqaqoOHz7s/fr1r39diZUgEp3JP6ubnh6pGetTlefKD3Y6AP7HGmXVr6/pox6NO8kaZQ12OgAAABesT58+2rFjh+bOnatatWr5rDt79qymT5+uVq1aacmSJTLGBClLwFdINKWysrK0cuVK/eMf/1BSUpK6deumuXPnatmyZfr222+LfU7btm3173//WzfffLNatGihG264QU8++aSWL18ut9vtExsfH6+EhATvV3R0dCDKQgQpMEY7v/pMX57IUYEpCHY6AP7HYbNr/I3DNfjKfnLaHcFOBwAA4KLYbDaNHTtW+/bt05gxY2S1+v7R7dChQ7rjjjt07bXXasuWLUHKEviJLdgJlMeGDRsUHx+va665xrusd+/eioqK0qZNm3TbbbeVa5wTJ04oLi5ONptv2WPGjNFdd92l5s2ba/To0UpJSSn1Dml5eXnKy8vzPs7NzZUkuVwuuVyuipRWpsLx/D1uVRIJNbrPq83j8cjjDt87YRTe5SOc7/YRCTVKkVdnOG+DpMjY1lZmjeE8bwCA8FOnTh399a9/1ejRo3X//fdrzZo1Pus3bNigzp07a9iwYZoxY4YaNGgQpEwR6UKiKZWTk6P69ev7LLPZbKpdu7ZycnLKNcZ3332n6dOnFznlb9q0abrhhhsUGxurVatW6d5779WpU6d03333lTjWzJkzNXXq1CLLV61apdjY2HLlU1FpaWmVMm5VEs415rl/OmUve0eWnLbwPyLj8+2ZwU6h0kVCjVJ412mM0an8M5LObcNL+4NEuAjnbW2hyqjx9OnTfh8TAIDK1rZtW6Wlpemdd97R+PHj9cUXX/isX7RokV5//XU9+uijuv/++zlrCAEX1KbUpEmTNHv27FJjsrKyLvr75Obm6qabblKbNm30xBNP+KybMmWK9/8dO3bUjz/+qKeffrrUptTkyZM1fvx4n/EbNWqkvn37Ki4u7qLzPZ/L5VJaWpr69OlT5Faf4SISajydd0ZKe0aS1PKq1qoeUy3IGVUej8ejz7dn6oqOVxY5XDhcREKNUmTUeSb/rPrNTpEk7Z75H9Ws7t9teFUSCdvayqyx8KhoAABCjcVi0a233qrk5GQ9//zz+vOf/+xz07BTp05p8uTJ+vvf/65nnnlGt956a0T8oQ5VQ1CbUhMmTNCwYcNKjWnevLkSEhJ09OhRn+Vut1vHjh1TQkJCqc8/efKkkpOTVaNGDb355ptl7qQmJSVp+vTpysvLk9PpLDbG6XQWu85ut1fajn5ljl1VhHONtoKfrmNmtVpltYXnL/jni4Q6I6FGKbzrtBb8VFc4b4POFwl1VkaN4T5nAIDw53Q6NXHiRA0dOlSPPvqoUlNTfdZ/8cUXuu2229SrVy89//zzatu2bZAyRSQJ6oXO69Wrp8TExFK/HA6HunTpouPHjys9Pd373A8++EAFBQVKSkoqcfzc3Fz17dtXDodD77zzTrkORczIyFCtWrVKbEgBAAAAABCqGjRooIULF2rz5s3q0qVLkfVr1qzRVVddpTFjxuj7778PQoaIJCFx973WrVsrOTlZI0eO1ObNm/Xpp59q7NixGjhwoBo2bCjp3F0EEhMTtXnzZkk/NaR+/PFHLViwQLm5ucrJyVFOTo73orbLly/XP/7xD+3evVvZ2dl64YUXNGPGDI0bNy5otSJ81a5eU9XtMcFOAwAASdLBgwc1YsQINWvWTDExMWrRooUef/xx5efnl/q8nj17ymKx+HyNHj06QFkDAPzlF7/4hT799FMtWbJEl156qc+6goIC/e1vf9Pll1+uuXPncsMPVJqQaEpJ0pIlS5SYmKhevXqpf//+6tatm1566SXvepfLpb1793ovRLpt2zZt2rRJu3btUsuWLdWgQQPv19dffy3p3KH48+bNU5cuXdShQwfNnz9fzz77rB5//PGg1IjwVc0Zox0z39Uzve9XjIOLBwIAgu+zzz5TQUGB5s+fr8zMTD333HN68cUX9cgjj5T53JEjR+rw4cPer6eeeioAGQMA/M1isWjw4MHau3evpkyZUuTsoh9++EH33XefOnToEBE3S0HghcTd9ySpdu3aWrp0aYnrmzZtKmOM93HPnj19HhcnOTlZycnJfssRAAAgVPx8P6h58+bau3evXnjhBc2ZM6fU58bGxpZ5XU8AQOioVq2apk2bphEjRujhhx/Wq6++6rN+z5496tu3r26++WY988wzuvzyy4OUKcJNyDSlAAAAULlOnDih2rVrlxm3ZMkSLV68WAkJCbr55ps1ZcoUxcbGFhubl5envLw87+PCOxm6XK6wPx2ksL5wr7M0zAFzIDEHUujMQcOGDbV48WLde++9mjhxonbu3OmzfvXq1brmmmt077336qGHHlKNGjXKPXaozEFli5R5KG99NKWAADiTf1aD/nK/jh07pnlXJSrWxrWlgKrAGmVVcvvuOvH9D7JGhecdBoHyys7O1ty5c8s8Smrw4MFq0qSJGjZsqJ07d2rixInau3ev3njjjWLjZ86cqalTpxZZvmrVqhIbWeGGU16YA4k5kJgDKbTmYPLkyaWu/+STTy5o3FCag8oU7vNQeGmlstCUAgKgwBhtzM743/8LgpsMAC+Hza5Hbr1HWVt3yml3BDsdwC8mTZqk2bNnlxqTlZWlxMRE7+NDhw4pOTlZv/3tbzVy5MhSnztq1Cjv/9u1a6cGDRqoV69e2r9/v1q0aFEkfvLkyRo/frz3cW5urho1aqS+ffsqLi6uvGWFJJfLpbS0NPXp00d2uz3Y6QQFc8AcSMyBFNpzkJubq6eeekovvPCC3G53kfVXXXWVZs+eXeyd/M4XynPgT5EyD4VHRpeFphQAAEAYmTBhgoYNG1ZqTPPmzb3///bbb3X99dera9euPjeRKa+kpCRJ5460Kq4p5XQ65XQ6iyy32+1hvTN+vkiqtSTMAXMgMQdSaM5BnTp1NHv2bA0fPlwTJkzQf/7zH5/1GzduVI8ePTRw4EDNnj1bjRs3LnW8UJyDyhDu81De2mhKAQAiljFGZ/LPKs+dX+bNMYBQUa9ePdWrV69csYcOHdL111+vq6++WqmpqYqKqviNmTMyMiRJDRo0qPBzAQCho1WrVnr33Xe1cuVKPfDAA/rss8981i9btkxvv/22Hn74YT388MMRc4o2Lk7F9zwAAAgTZ1156jc7RfelPaMz+WeDnQ4QUIcOHVLPnj3VuHFjzZkzR//973+Vk5OjnJwcn5jExERt3rxZkrR//35Nnz5d6enpOnjwoN555x0NHTpU3bt3V/v27YNVCgAggJKTk7Vz5049//zzqlmzps+6M2fOaOrUqUpMTNSyZcv4ox/KRFMKAAAgAqWlpSk7O1tr1qzRZZddpgYNGni/CrlcLu3du9d7sVKHw6HVq1erb9++SkxM1IQJEzRgwAAtX748WGUAAILAbrfrj3/8o/bt26fRo0cXOdL266+/1qBBg3TdddcpPT09SFkiFNCUAgAAiEDDhg2TMabYr0JNmzaVMUY9e/aUJDVq1Egff/yxvv/+e509e1b79u3TU089FfYXLAcAFK9evXp64YUXtH37du/PivN9+umn+sUvfqERI0boyJEjgU8QVR5NKSBAYhzRcljD90J2AAAAACJT+/bt9cEHH+jf//63mjZt6rPOGKOFCxeqU6dOkqT8/PwgZIiqiqYUEADVnDH6/Jk0ze37oGIc0cFOBwAAAAD8ymKx6Pbbb1dWVpZmzJihatWq+aw/deqUpHN3bV2+fDnXm4IkmlIAAAAAAMBPoqOjNXnyZH3++ecaOnRokfVffPGFbrnlFiUnJ2vPnj1ByBBVCU0pAAAAAADgVw0bNtQ///lPbdy4UUlJSUXWr1q1Su3bt9d9992nY8eOBSFDVAU0pYAAOOvK050vPKS5W19VnptzqIGqIsoSpZ6tk9QpIbHIXWMAAABw8ZKSkrR+/XrNnz+/yDqPx6O5c+fq8ssv19/+9je53e4gZIhgYg8cCABPQYE+2LNRu/+7XwUFBcFOB8D/OO0OTfvN/bq7422KtjuDnQ4AAEBYioqK0sCBAyVJDz74oJxO3/2uY8eOacyYMerYsaPWrFkTjBQRJDSlAAAAAABAQEyZMkVZWVkaMGBAkXW7d+9W7969ddttt2n//v1ByA6BRlMKAAAAAAAETLNmzfT666/rgw8+UPv27Yusf+utt9SmTRtNnjxZJ0+eLHGcI0eOVGaaCACaUgCAiHUm/6y6Tx+ku9+bqdN5Z4KdDgAAQES5/vrrtW3bNr344ouqU6eOz7r8/HzNmjVLV1xxhRYtWlTsZVCGDx+ujRs3BipdVAKaUgAAAAAAICisVqvuvvtu7du3T/fff79sNpvP+pycHKWkpCgpKUkbNmzwWXfo0CHdeOON2rFjRyBThh/RlAIAAAAAAEFVq1YtPffcc9q1a5eSk5OLrN+6dau6du2qO+64Q998840k6cSJEzp+/Lj69u2rzz//PNApww9oSgEAAABhiDv+AghFiYmJeu+99/Sf//xHV1xxRZH1S5YsUatWrTR9+nQdO3ZMknT06FH17t1bX331Vbm+B9vHqoOmFBAA1Zwx+nruJ5p/42TFOKKDnQ4AAAhD27Zt07hx49ShQwc5HA5ZrVY5HA516NBB48aN07Zt24KdIgCUW//+/bVr1y4988wziouL81l3+vRpPfbYY8rNzfUu+/rrr9W7d+9iL37O9rHqoikFAAAAhLDs7Gz16NFDV199tV588UXt2LFDLpdLkuRyubRjxw69+OKLuvrqq9WjRw9lZ2cHOWMAKB+Hw6Hx48dr3759GjVqlCwWS6nx+/btU9++ffXDDz9IYvsYCmhKAQAAACFq6dKlatu2rdavXy9JcrvdxcYVLl+/fr3atm2rV155JWA5AsDFql+/vubPn6/09HR179691NidO3eqf//+WrhwIdvHEGArOwTAxTrrytOYBY/rcE6OZndIVKwtJtgpAZAUZYnSL1t20KkTJxUVxd9pAISWpUuX6o477pAxptzPcbvdcrvdGjJkiIwxGjx4cCVmCAD+1b59e91yyy1at25dqdeF2rhxozZu3Fihsdk+Bgd74EAAeAoK9J+Mj7Qt5zMuqgdUIU67Q08Nmqhx1/xO0XZnsNMBgHLbt2+fhg8fXqGG1PmMMRo+fDinqgAIGVlZWerWrZsefPDBSv2diu1jYNGUAgAAAELMXXfdJY/Hc1FjeDwejRgxwk8ZAUDl+f777/XEE0/o888/D8j3Y/sYODSlAAAAgBCSnp6utWvXlnh9lPJyu91au3Ytd50CUOXVqVNH//d//6f//ve/yszM1Pz583XHHXeoadOmlfL92D4GDk0pAEDEOpN/Vn1nDdO4VXN0Ou9MsNMBgHJZtGiRbDb/XBrWZrMpNTXVL2MBQGWLiopSmzZtNGrUKP3rX//SgQMH9PXXX+uVV17Rvffeqzp16vjte7F9DAyaUgCAiHbWlad8jyvYaQBAuX3yyScXfZRUIbfbrXXr1vllLAAIhssuu0wDBw7UvHnzdNlll/ltXLaPgUFTCgAAAAghe/bs8et4mZmZfh0PAIKF7WPooSkFAAAAhIiCggK5XP49utPlcnF3YAAhj+1jaPLPyegAShXriNbeOav0/vvvc9t5AABwwaKiomS32/36i5fdbldUFH+rBhDa2D6GJmYXCACLxaJYZ4ycNocsFkuw0wEAACGsTZs2fh3vyiuv9Ot4ABAsbB9DD00pAAAAIIRcd911fr37Xrdu3fwyFgAEG9vH0ENTCgiAPFe+HvjXk1q0813lu7nLF1BVRFmi1KFJa11Ru7EsFn4kAggNKSkpfr37XkpKil/GAoBgY/sYetgDBwLAXeDR65tXasOhXfIUeIKdDoD/cdod+svQxzQhaYhiHFzvDUBo6NSpk7p3737RRwPYbDZ1795dnTp18lNmABBcbB9DD00pAAAAIMQsWLBAVqv1osawWq1asGCBnzICgKqB7WNooSkFAAAAhJiWLVsqNTX1gm+gYrFYlJqaqpYtW/o5MwAILraPocU/VwADACAEnck/qwHPjZHH5VbPXterpt0e7JQAoNwGDRokY4yGDx8uj8dTruuo2Gw2Wa1WpaamatCgQQHIEgACj+1j6OBIKQBARDtx+qROuc4EOw0AuCCDBw/W7t271bVrV0kq8ToqhcuvvfZa7d69m1+4AIQ9to+hgSOlAAAAgBDWsmVLffzxx9q2bZtSU1O1bt06ZWZmyuVyyW6368orr1S3bt2UkpLCRXsBRBS2j1UfTSkAAAAgDHTq1Mnnl6qCggJFRXFiBACwfay6aEoBARDriFbGjHe0evUaRdu57TwAAKh8/MIFAMVj+1h18EoAAWCxWFSnRi3VcMZe8F0gAAAAAAAIJzSlAAAAAAAAEHA0pYAAyHPl69FXn9XSzPeV73YFOx0A/xNliVJig+ZqUjNBFgs/EgEAAIBA4ppSQAC4Czx6+ZM3JUmPFHiCnA2AQk67Qy/d9aSytu5UjIPrvQEAAACBFDJ/Fj527JiGDBmiuLg4xcfHa8SIETp16lSpz+nZs6csFovP1+jRo31ivvrqK910002KjY1V/fr19dBDD8ntdldmKQAAAAAAABEvZI6UGjJkiA4fPqy0tDS5XC6lpKRo1KhRWrp0aanPGzlypKZNm+Z9HBsb6/2/x+PRTTfdpISEBK1fv16HDx/W0KFDZbfbNWPGjEqrBQAAAAAAINKFRFMqKytLK1eu1JYtW3TNNddIkubOnav+/ftrzpw5atiwYYnPjY2NVUJCQrHrVq1apT179mj16tW65JJL1KFDB02fPl0TJ07UE088IYfDUSn1AACqhrP5eRry1wfkynfp+t43yG63BzslAAAAIGKERFNqw4YNio+P9zakJKl3796KiorSpk2bdNttt5X43CVLlmjx4sVKSEjQzTffrClTpniPltqwYYPatWunSy65xBvfr18/3XPPPcrMzFTHjh2LHTMvL095eXnex7m5uZIkl8sll8u/F7EuHM/f41YlkVCj+7zaPB6PPO7wva6Ux+Px+TccRUKNUmTU6Xa7lXPiO0lSfn6+XI7w3Q5Fwra2MmsM53kDAAAIlpBoSuXk5Kh+/fo+y2w2m2rXrq2cnJwSnzd48GA1adJEDRs21M6dOzVx4kTt3btXb7zxhnfc8xtSkryPSxt35syZmjp1apHlq1at8jk90J/S0tIqZdyqJJxrzHPne/+fvSNLTlv4H4X3+fbMYKdQ6SKhRim86zz/s/nBBx9ExGcznLe1hSqjxtOnT/t9TAAAgEgX1KbUpEmTNHv27FJjsrKyLnj8UaNGef/frl07NWjQQL169dL+/fvVokWLCx538uTJGj9+vPdxbm6uGjVqpL59+youLu6Cxy2Oy+VSWlqa+vTpE7anlURCjafzzkhpz0iSWl7VWtVjqgU5o8rj8Xj0+fZMXdHxSlmt1mCnUykioUYpMuo8k39W+l//4oYbblDN6v7dhlclkbCtrcwaC4+KBgAAgP8EtSk1YcIEDRs2rNSY5s2bKyEhQUePHvVZ7na7dezYsRKvF1WcpKQkSVJ2drZatGihhIQEbd682SfmyJEjklTquE6nU05n0VuH2+32StvRr8yxq4pwrrGG1ar1T7yqDz/8ULHRMbLawvMX/PNZrdawrzMSapTCu05rwU91hfM26HyRUGdl1BjucwYAABAMQW1K1atXT/Xq1SszrkuXLjp+/LjS09N19dVXSzp3mkVBQYG30VQeGRkZkqQGDRp4x33yySd19OhR7+mBaWlpiouLU5s2bSpYDVCyqKgoNarTQHVj4xVliQp2OgAAAAAABF1I/HbcunVrJScna+TIkdq8ebM+/fRTjR07VgMHDvTeee/QoUNKTEz0Hvm0f/9+TZ8+Xenp6Tp48KDeeecdDR06VN27d1f79u0lSX379lWbNm30hz/8QTt27ND777+vP/3pTxozZkyxR0IBAAAAAADAP0KiKSWdu4teYmKievXqpf79+6tbt2566aWXvOtdLpf27t3rvRCpw+HQ6tWr1bdvXyUmJmrChAkaMGCAli9f7n2O1WrVu+++K6vVqi5duuiOO+7Q0KFDNW3atIDXh/CW73bpz2/N0+uffSCXxx3sdAD8j0UWNa17qRpUryuLxRLsdAAAAICIEhJ335Ok2rVra+nSpSWub9q0qYwx3seNGjXSxx9/XOa4TZo00YoVK/ySI1ASl8et+WuWSZIe9IyWxJF4QFUQ7XDq5XvmKGvrTsU4ooOdDgAAABBRQuZIKQAAAAAAAIQPmlIAAAAAAAAIuJA5fQ8AAH87m5+nEfMnKe9snq7vfYPsdnuwUwIAAAAiBk0pAEDEMjI6+N2hc/8/77qEAAAAACofp+8BAABEqKZNm8pisfh8zZo1q9TnnD17VmPGjFGdOnVUvXp1DRgwQEeOHAlQxgAAIJzQlAIAAIhg06ZN0+HDh71f48aNKzX+gQce0PLly/Xaa6/p448/1rfffqvbb789QNkCAIBwwul7QADE2J1a/cjL+mTtWjntjmCnAwCAV40aNZSQkFCu2BMnTmjBggVaunSpbrjhBklSamqqWrdurY0bN+qXv/xlZaYKAADCDE0pIACioqLUqkEz7a+RpSgLBygCAKqOWbNmafr06WrcuLEGDx6sBx54QDZb8buI6enpcrlc6t27t3dZYmKiGjdurA0bNhTblMrLy1NeXp73cW5uriTJ5XLJ5XL5uZqqpbC+cK+zNMwBcyAxBxJzIDEHhSJlHspbH00pAACACHXfffepU6dOql27ttavX6/Jkyfr8OHDevbZZ4uNz8nJkcPhUHx8vM/ySy65RDk5OcU+Z+bMmZo6dWqR5atWrVJsbOxF1xAK0tLSgp1C0DEHzIHEHEjMgcQcFAr3eTh9+nS54mhKAQGQ73bpuRULtW/fPrXs2EZWmzXYKQGQZJFFCTXrypXvksViCXY6gF9MmjRJs2fPLjUmKytLiYmJGj9+vHdZ+/bt5XA4dPfdd2vmzJlyOp1+yWfy5Mk+3yc3N1eNGjVS3759FRcX55fvUVW5XC6lpaWpT58+stvtwU4nKJgD5kBiDiTmQGIOCkXKPBQeGV0WmlJAALg8bj33XqokaZxnhCT/7OgDuDjRDqdevW+usrbuVIwjOtjpAH4xYcIEDRs2rNSY5s2bF7s8KSlJbrdbBw8eVKtWrYqsT0hIUH5+vo4fP+5ztNSRI0dKvC6V0+kstsFlt9vDemf8fJFUa0mYA+ZAYg4k5kBiDgqF+zyUtzaaUgAAAGGkXr16qlev3gU9NyMjQ1FRUapfv36x66+++mrZ7XatWbNGAwYMkCTt3btXX331lbp06XLBOQMAgMhEUwoAACACbdiwQZs2bdL111+vGjVqaMOGDXrggQd0xx13qFatWpKkQ4cOqVevXnr55ZfVuXNn1axZUyNGjND48eNVu3ZtxcXFady4cerSpQt33gMAABVGUwoAELHyXPm6d8FjOnP6tK7v3SusD6EGfs7pdGrZsmV64oknlJeXp2bNmumBBx7wuf6Ty+XS3r17fS5W+txzzykqKkoDBgxQXl6e+vXrp7/97W/BKAEAAIQ4mlIAgIhVYAr02eEvJEnGFAQ5GyCwOnXqpI0bN5Ya07RpUxljfJZFR0dr3rx5mjdvXmWmBwAAIkBUsBMAAAAAAABA5KEpBQAAAAAAgIDj9D0gAKLtDi1/8CWt//RTOWyOYKcDAAAAAEDQcaQUEADWKKs6NGmtpvENZY3iYwcAAAAAAL8dAwAAAAAAIOBoSgEBkO926cXVS/X+Fxvl8riDnQ6A89SMraHq9phgpwEAAABEHK4pBQSAy+PWk2+/IEm62zNUkjO4CQGQJMU4orV8wkvK2rpTsU4aUwAAAEAgcaQUAAAAAAAAAo6mFAAAAAAAAAKO0/cAABErz5Wv8f96UqdP/qjre/eS3W4PdkoAAABAxKApBQCIWAWmQBlfZkmSjCkIcjYAAABAZOH0PQAAAAAAAAQcTSkAAAAAAAAEHKfvAQEQbXfo1fv+oo0bN8phcwQ7HQAAAAAAgo6mFBAA1iirulzeUT/sOyxrFAcoAgAAAADAb8cAAAAAAAAIOJpSQAC4PG4tWvuGPvwyXW6PO9jpADhPtN0ph9Ue7DQAAACAiMPpe0AA5LtdmvLac5KklJsHySlnkDMCIEkxjmitmrRIWVt3KtYZE+x0AAAAgIjCkVIAAAAAAAAIOJpSAAAAAAAACDhO3wMARKw8V74eWTZHp06c1A19eslu59pSAAAAQKDQlAIARKwCU6CN2Rnn/l9QENxkAAAAgAjD6XsAAAAAAAAIOJpSAAAAAAAACDhO3wMCwGmza9Hds7V161bZbVyzBgAAAAAAmlJAANisNvVq21V5Xx2XLcoa7HQAAAAAAAg6Tt8DAAAAAABAwNGUAgLA5XHr1Y0rtP6bnXJ73MFOBwAAAACAoOP0PSAA8t0uTVgyU5I0uP9v5JQzyBkBkKQYR7TWTnlFWVt3KtYZE+x0AAAAgIjCkVIAAAAAAAAIOJpSAAAAAAAACDiaUgCAiJXnytdjrz+v+dvf1FlXXrDTAQAAACJKyDSljh07piFDhiguLk7x8fEaMWKETp06VWL8wYMHZbFYiv167bXXvHHFrV+2bFkgSgIABFmBKdBHWZu0LeczFRQUBDsdAAAAIKKEzIXOhwwZosOHDystLU0ul0spKSkaNWqUli5dWmx8o0aNdPjwYZ9lL730kp5++mndeOONPstTU1OVnJzsfRwfH+/3/AEAAAAAAPCTkGhKZWVlaeXKldqyZYuuueYaSdLcuXPVv39/zZkzRw0bNizyHKvVqoSEBJ9lb775pn73u9+pevXqPsvj4+OLxAIAAAAAAKDyhERTasOGDYqPj/c2pCSpd+/eioqK0qZNm3TbbbeVOUZ6eroyMjI0b968IuvGjBmju+66S82bN9fo0aOVkpIii8VS4lh5eXnKy/vp2iO5ubmSJJfLJZfLVZHSylQ4nr/HrUoiocYoI/116GPauXOnrJYoedyeYKdUaTwej8+/4SgSapQio87zP4uVsQ2vSiJhW1uZNYbzvAEAAARLSDSlcnJyVL9+fZ9lNptNtWvXVk5OTrnGWLBggVq3bq2uXbv6LJ82bZpuuOEGxcbGatWqVbr33nt16tQp3XfffSWONXPmTE2dOrXI8lWrVik2NrZc+VRUWlpapYxblYR7jXZJVzdorf07Pgt2KgHx+fbMYKdQ6SKhRim868xz53v//8EHH8hpcwQxm8AI922tVDk1nj592u9jAgAARLqgNqUmTZqk2bNnlxqTlZV10d/nzJkzWrp0qaZMmVJk3fnLOnbsqB9//FFPP/10qU2pyZMna/z48d7Hubm5atSokfr27au4uLiLzvd8LpdLaWlp6tOnj+x2u1/HrioioUbppzqv6HilrFZrsNOpNB6PR59vzwzrOiOhRiky6jyTf1b6X//ihhtuUM3q/t2GVyWRsK2tzBoLj4oGAACA/wS1KTVhwgQNGzas1JjmzZsrISFBR48e9Vnudrt17Nixcl0L6vXXX9fp06c1dOjQMmOTkpI0ffp05eXlyel0FhvjdDqLXWe32yttR78yx64qwrlGt8et93ev0/bDWbq805Wy2sLzF/zzWa3WsK8zEmqUwrtOa8FPdYXzNuh8kVBnZdQY7nMGAAAQDEFtStWrV0/16tUrM65Lly46fvy40tPTdfXVV0s6d5pFQUGBkpKSynz+ggULdMstt5Tre2VkZKhWrVolNqSAC5HndumehY9Jkgb0u1VOR/ifIgSEgmi7U+9PTNXebbsV44gOdjoAAABARAmJa0q1bt1aycnJGjlypF588UW5XC6NHTtWAwcO9N5579ChQ+rVq5defvllde7c2fvc7OxsrV27VitWrCgy7vLly3XkyBH98pe/VHR0tNLS0jRjxgw9+OCDAasNABA8FotFMY5oOW2OUm9wAQAAAMD/QqIpJUlLlizR2LFj1atXL0VFRWnAgAH6y1/+4l3vcrm0d+/eIhciXbhwoS677DL17du3yJh2u13z5s3TAw88IGOMWrZsqWeffVYjR46s9HoAAAAAAAAiWcg0pWrXrq2lS5eWuL5p06YyxhRZPmPGDM2YMaPY5yQnJys5OdlvOQIAQku+26XZb8/Xie9/UK8+vbluEAAAfrJt2zalpqbqk08+0YEDB/Tyyy+rbt26atasma677jqlpKSoU6dOwU4TQJCFTFMKAAB/8xR4tHLnWu//AQDAxcnOztaIESO0du1a2Ww2ud1uxcTESDp3dsuOHTuUmZmpv/71r+revbsWLFigli1bBjlrAMESFewEAAAAAAChb+nSpWrbtq3Wr18v6dwd04tTuHz9+vVq27atXnnllYDlCKBq4UgpAAAAAMBFWbp0qe64445iL6lSErfbLbfbrSFDhsgYo8GDB1dihgCqIo6UAgLAYbPrmSGTdWe7m2S30gsGAABA+Ni3b5+GDx9eoYbU+YwxGj58uLKzs/2cGYCqjqYUEAB2q02/+2V/db2svWw0pQAAABBG7rrrLnk8F3dtRo/HoxEjRvgpIwChgqYUAAAAAOCCpKena+3atSVeP6q83G631q5dq23btvkpMwChgKYUEABuj1trdq/XrqPZcnOHLwAAAISJRYsWyWbzz5kANptNqampfhkLQGjgPCIgAPLcLg2bP1GSdHPv/nI6HEHOCIAkRdudemf8fH2esUcxjuhgpwMAQMj55JNPLvooqUJut1vr1q3zy1gAQgNHSgEAIpbFYlF8tTjVcMbKYrEEOx0AAELOnj17/DpeZmamX8cDULXRlAIq0bZt2zRu3Dh16dLFu6xnz5669dZbNX36dH7oAkGSmZmp6dOn69Zbb1VSUpIkqW7duurQoYPGjRvH9SwAACiHgoICuVwuv47pcrlUUFDg1zEBVF2cvgdUguzsbI0YMUJr166VzWaTWwW6pPMvJJ07LPmzzz7Tvn37tHjxYv3iF9foySdnqEmTJkHOGgh/X375pR599BFt2bJVVqtVHlOgmtc01tLM9+XyuLVjxw5lZmbqr3/9q7p3764FCxaoZcuWwU4bAIAqKSoqSna73a+NKbvdrqgojp0AIgWfdsDPli5dqrZt22r9+vWSVOI59oW3zd22bbt+9atf6d133w1YjkAkWr58uX71q19p27btkv73GbRYZG8er4+/2ub9iVj4mV2/fr3atm2rV155JVgpA5Xqo48+ksViKfZry5YtJT6vZ8+eReJHjx4dwMwBVCVt2rTx63hXXnmlX8cDULVxpBTgR0uXLtUdd9whY0y5n+PxeOTxePTggw/KGKObb765EjMEItPy5cv10EMPVeiz6Xa75Xa7NWTIEBljNHjw4ErMEAi8rl276vDhwz7LpkyZojVr1uiaa64p9bkjR47UtGnTvI9jY2MrJUcAVd91112nzMxMv1zs3GazqVu3bn7ICkCo4EgpwE/27dun4cOHV+iX3vMZY/TII4/oyy+/9HNmQGQ7ePCgHnnkkYv6bA4fPlzZ2dl+zgwILofDoYSEBO9XnTp19PbbbyslJaXMC//Hxsb6PDcuLi5AWQOoalJSUvx6972UlBS/jAUgNHCkFOAnd911l/eUvCIKjM5sOqSUlBQtePvzEsfweDx69NFHtHjxkkrKEog8f/rToyV/NsvJ4/FoxIgR+vjjj/2UFVD1vPPOO/r+++/L9QvhkiVLtHjxYiUkJOjmm2/WlClTSjxaKi8vT3l5ed7Hubm5ks5dzNjfF0iuagrrC/c6S8MchP8ctGvXTr1799amTZtKbE7FxMT4/Fscm82mpKQktWvXLiznKtzfB+XBHJwTKfNQ3vpoSgF+kJ6errVr15YcUGDk2vu9rm9ytRaUcrCGx+PRli1blZmZyfn0gB9k7t6tLVu2XvQ4brdba9eu1bZt29SpUyc/ZAZUPQsWLFC/fv102WWXlRo3ePBgNWnSRA0bNtTOnTs1ceJE7d27V2+88Uax8TNnztTUqVOLLF+1alXEnPaXlpYW7BSCjjkI7zkYO3asxo4dW2bcwoULy4xZsWKFP1KqssL5fVBezME54T4Pp0+fLlccTSnADxYtWnTuLnt+OHTZarXqjTfeoCkF+MEbb7557i57F3mklHTuL7ipqak0pVDlTZo0SbNnzy41JisrS4mJid7H33zzjd5//329+uqrZY4/atQo7//btWunBg0aqFevXtq/f79atGhRJH7y5MkaP36893Fubq4aNWqkvn37hv1pfy6XS2lpaerTp4/sdnuw0wkK5iBy5uD111/XXXfdVezp8jExMVq4cKGGDx+uM2fOFFlvsVj0j3/8Q7/5zW8CkWpQRMr7oDTMwTmRMg+FR0aXhaYU4AeffPJJ6Q0pi2S9pJp2Hc2WbFGStZjLuRkjFRh5PB6lp6frTP7ZEoeLskTJaXd4H1ck9mx+noyKP1zLIouiHc4Lis1z5avAFMjj9ijPna8z+WdlLbB618c4oovElqSyYqPtTu91UvLdLnkKSm5UlBb78xqdNof31sUut1vugpLfCxWJddgcsl5ArNvjlstTcqzdapfNai0z1uP2yFPw03y6PR65PCUfhmu32mSz2ioc6ykoUL47v8RYW5RNdlvFYwsKCrRl21Z5ZEr+zFWA2+3WunXrKvQcIBgmTJigYcOGlRrTvHlzn8epqamqU6eObrnllgp/v6SkJElSdnZ2sU0pp9Mpp9NZZLndbg/rnfHzRVKtJWEOwn8OBg0a5L0Oo8fjKXbf+MyZMz5NKZvNJqvVqtTUVA0aNCiQ6QZNuL8PyoM5OCfc56G8tdGUAvxgz549pQdYo1StXwv9Nf01VftVS1UrJiT/21zlrj0g6dxF03/11EiddeUVEyl1bNpGf015wvv4N8+N0fHTJ4uNTWzYQgvunul9PGTeeOUc/2+xsU3rXaYlY5/1Ph7x0mQd/O83xcYmxNfTvx+Y531878LH9dm3+38KOO9o1PjYGvrPxAXexxMWz9D2g8XPWbTdqTV/+pf38aP/94w27NtebKwkfTr1p7/qT3/jr/pwz8YSY1c/+rK3ifXU8pf0XkbJ1wd69+F/qFa1c3/Bn7vyn3pjy6qiQf+r8fX7/6oGtepLkuaveUWvrF9e4rj/GvOMmtdvJEl6+ZM3tPCj10uM/ceoGWp9aUtJ0qsbV+hvaYtLjJ077HF1anbu6Lq3t67WsytKPjz+6SGT1PWKc0f7vL9znWa89bcSY0d1+LXaqoMkae1nmzXl1edKjH3k1/fqpo49JUmb9+/QQ0tmlRg7vv9wDUhKliTt+DJL4xYVPbWn0L197tCQbud+Uf788Be666VHSowd3vM3GnH97yRJB787pO/bO1W3fbtiY09nHdXpHYd1etUXeu7JpzXu5XtKHLdQZmZmmTFAsNWrV0/16tUrd7wxRqmpqRo6dOgF7RxnZGRIkho0aFDh5wIIL4MHD1bnzp01YsQIrV27tsQzCQqXX3vttfrHP/6hli1bBiFbAFUBTSngIhUUFJR9ETd3gXJf3qm4oe1LDDEujzwnzh3x5JFKvfNRtN2pFpc09j6OirKWGOu0O3xibaXEOmx2n1iHreRfTmxRVp/Y84/G+rmon8VG24v+xbyQxWLxiY11lnxBTEk+sdWiS782SbP6jVTtf+PViC6uNfiTpvUuVd0atSRJcbE1So1tXLehGtdtKEmKr1b6qSiN6jTw5lyrWs1SYy+tneCNrVMjvtTYhrXqe2PrxtUuNTYhvp43tn4ZsZLUrP5lstvtyvxmX6lx9eNqe8f94ujXpcbWPS+2pCZpoTo14r2xuWdOlRpbq1pNb2y+q+QjqiTJ5LvlOXFW7nyL6sbGlxpbyOVyqaCgwHu0GxAOPvjgAx04cEB33XVXkXWHDh1Sr1699PLLL6tz587av3+/li5dqv79+6tOnTrauXOnHnjgAXXv3l3t25f8Mw5A5GjZsqU+/vhjbdu2TampqVq3bp2++OILSeeOnGjVqpW6deumlJQUTokHIIu50Htkwys3N1c1a9bUiRMn/H5tBJfLpRUrVqh///5he2hfONTocDjKbEzFxMRo0b/+qWEpw3TmTDGn2xkjec59HO12u344eaLEsaIsFp/T1n7MK3pufkmxp/PPFnuuv3SuIRR7gbFn8s+qwBi5XS69//776tevn2znvZ7VzmsuFcaW5PzYs648n1PILiY21hHtbfblufLlLuX0vdJif15jjN3pbVLku12lnjpXkdhou0PW/zURKxLr8riV7y75/ei02b2nzpUW63a5tCZtjW7+1a9kt9vl9riVV8q4Dptddu/pe+WP9RR4dLaUBpLdavM2SCsSW1BQoOjqsSV/NgvOnTIbExOjV155RYMGDSr2Ohc+49vtys8vvdlVVYXDtrYslVljZf6sD7bBgwfryy+/1Kefflpk3cGDB9WsWTN9+OGH6tmzp77++mvdcccd2r17t3788Uc1atRIt912m/70pz+Ve17CeS5/LhI+d2VhDpgDiTmQmAOJOSgUKfNQ3p/3HCkF+EGbNm20Y8eOMuOcNofkNpK75MaJJF155ZU+zZayVCT2/EaSP2MLG1+uKJucNodinTElbmRjKjBuaUdVXUys0+5QeaN/HltajQ6bvdQjzAIRa7favA2fi4l1Rdm816mSJNt514EqS0VirVHWcr+HKxIbFRWlNlckluuzWV7cgADhaOnSpSWua9q0qc8fJxo1aqSPPy751GcAAICK4PwDwA+uu+462Wz+6fHabDZ169bNL2MBkY7PJgAAAFB10ZQC/CAlJaX0u+9VgNvtVkpKil/GAiIdn00AAACg6qIpBfhBp06d1L1794s+IsNms6l79+5c9BHwEz6bAAAAQNVFUwrwkwULFshqLfnOduVhtVq1YMECP2UEQOKzCQAAAFRVNKUAP2nZsqVSU1O9d2yrKIvFotTUVLVs2dLPmQGRjc8mAAAAUDXRlAL8aNCgQVq8eLGcTme5Txey2WxyOp1asmSJBg0aVMkZApGJzyYAAABQ9dCUAvxs8ODB2r17t7p27SpJJf4CXLj82muv1e7du/mlF6hkfDYBAACAqsU/98kG4KNly5b6+OOPtW3bNqWmpmrdunX64osvJEl2u12tWrVSt27dlJKSwoWTgQDiswkAAABUHTSlgErUqVMn7y+2LpdLK1as0Hff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3F/UWrRooYSEhCJ3Lim8E02ovZYnT55UcnKyatSooTfffFN2u73UeH+/liWpW7eurFZrkTv8HDlypMSaEhISSo0vz+c00C6kzkJz5szRrFmztHr1arVv377U2ObNm6tu3brKzs4OeCPjYmosZLfb1bFjR2VnZ0sKv9fyxx9/1LJlyzRt2rQyv08wX8sLUdLnMi4uTjExMbJarRf9/kBkupD9utTUVNWpU0e33HJLhb/fz/cFqoqL2b9NSkqS2+3WwYMH1apVqyLrExISlJ+fr+PHj/scLVXVPp8VnYNvv/1W119/vbp27aqXXnqpwt+vqr4Xfq4y9qVC1dixY/Xuu+9q7dq1FT7K5ef7IOEgPj5eV1xxRYk1hev7QJK+/PJLrV69usJHOobj+6BMwb6oFc6p6IXO58yZ41124sSJYi90vnXrVm/M+++/H/QLnV9oPj169Chyp7aS/PnPfza1atW64FwvlL/mfN26dUaS2bFjhzHmpwudn3/nkvnz55u4uDhz9uxZ/xVQThda54kTJ8wvf/lL06NHD/Pjjz+W63sF8rXs3LmzGTt2rPexx+Mxl156aakX5/zVr37ls6xLly5FLnRe2uc0GCpapzHGzJ4928TFxZX7QrNff/21sVgs5u23377ofC/EhdR4PrfbbVq1amUeeOABY0x4vZbGnPtZ43Q6zXfffVfm9wj2a3k+lfNC523btvVZNmjQoCIXOr+Y9wdQHgUFBaZZs2Zl3mmtJD/fFwgHixcvNlFRUSXe0bPwQuevv/66d9lnn30W0hc6/+abb8zll19uBg4caNxu9wWNEUrvBX/vS4WagoICM2bMGNOwYUPz+eefX9AYP98HCQcnT540tWrVMv/v//2/YteH2/vgfI8//rhJSEjwubFTeYTj+6AsNKWC7MsvvzTbt283U6dONdWrVzfbt28327dvNydPnvTGtGrVyrzxxhvex7NmzTLx8fHm7bffNjt37jS33nprkduTJycnm44dO5pNmzaZdevWmcsvv9wMGjQooLWdr6x8vvnmG9OqVSuzadMmn+ft27fPWCwW89577xUZ85133jF///vfza5du8y+ffvM3/72NxMbG2see+yxSq+nOBWtMTs720ybNs1s3brVHDhwwLz99tumefPmpnv37t7nuN1u07ZtW9O3b1+TkZFhVq5caerVq2cmT54c8PoKVbTOEydOmKSkJNOuXTuTnZ3tc7vTwp20YL+Wy5YtM06n0yxatMjs2bPHjBo1ysTHx3vveviHP/zBTJo0yRv/6aefGpvNZubMmWOysrLM448/XuT2teX5nAZaReucNWuWcTgc5vXXX/d53Qq3TydPnjQPPvig2bBhgzlw4IBZvXq16dSpk7n88suD0jS9kBqnTp3qvWV3enq6GThwoImOjjaZmZnemHB4LQt169bN/P73vy+yvCq+lidPnvT+TJRknn32WbN9+3bz5ZdfGmOMmTRpkvnDH/7gjf/iiy9MbGyseeihh0xWVpaZN2+esVqtZuXKld6YsuYN8IfVq1cbSSYrK6vIugvZFwg169evN88995zJyMgw+/fvN4sXLzb16tUzQ4cO9cYUt983evRo07hxY/PBBx+YrVu3mi5dupguXboEo4SL9s0335iWLVuaXr16mW+++cbnZ+j5MeH0XqiMfalQcs8995iaNWuajz76yOf1Pn36tDfmQvZBQs2ECRPMRx99ZA4cOGA+/fRT07t3b1O3bl1z9OhRY0z4vw8KeTwe07hxYzNx4sQi6yLhfVBRNKWC7M477zSSinx9+OGH3hhJJjU11fu4oKDATJkyxVxyySXG6XSaXr16mb179/qM+/3335tBgwaZ6tWrm7i4OJOSkuLT6Aq0svI5cOBAkbqNMWby5MmmUaNGxuPxFBnzvffeMx06dDDVq1c31apVM1dddZV58cUXi40NhIrW+NVXX5nu3bub2rVrG6fTaVq2bGkeeughc+LECZ9xDx48aG688UYTExNj6tatayZMmFDhjrs/VbTODz/8sNj3uCRz4MABY0zVeC3nzp1rGjdubBwOh+ncubPZuHGjd12PHj3MnXfe6RP/6quvmiuuuMI4HA5z5ZVXmv/85z8+68vzOQ2GitTZpEmTYl+3xx9/3BhjzOnTp03fvn1NvXr1jN1uN02aNDEjR44M+i/4Fanx/vvv98Zecsklpn///mbbtm0+44XDa2nMT0cdrFq1qshYVfG1LGnbUVjXnXfeaXr06FHkOR06dDAOh8M0b97c52dnodLmDfCHQYMGma5duxa77kL3BUJJenq6SUpKMjVr1jTR0dGmdevWZsaMGT4N7uL2+86cOWPuvfdeU6tWLRMbG2tuu+02nyZOKElNTS1x36dQOL4X/L0vFUpKer3P/zl0Ifsgoeb3v/+9adCggXE4HObSSy81v//97012drZ3fbi/Dwq9//77RlKx+4uR8D6oKIsxAbjnOgAAAAAAAHCeqGAnAAAAAAAAgMhDUwoAAAAAAAABR1MKAAAAAAAAAUdTCgAAAAAAAAFHUwoAAAAAAAABR1MKAAAAAAAAAUdTCgAAAAAAAAFHUwoAAAAAAAABR1MKAAAAAAAAAUdTCgAAAADgNw8++KB+/etfBzsNACGAphQAlNN///tfJSQkaMaMGd5l69evl8Ph0Jo1a4KYGQAAQNWRkZGhDh06BDsNACGAphQAlFO9evW0cOFCPfHEE9q6datOnjypP/zhDxo7dqx69eoV7PQAAACqhB07dtCUAlAuFmOMCXYSABBKxowZo9WrV+uaa67Rrl27tGXLFjmdzmCnBQAAEHTffPONGjVqpAMHDqhp06Y6fvy4/vCHP+iHH37Q66+/roSEhGCnCKAK4UgpAKigOXPmyO1267XXXtOSJUtoSAEAAPxPRkaG4uPj1bRpU+3atUu/+MUvdOmll+rDDz+kIQWgCJpSAFBB+/fv17fffquCggIdPHgw2OkAAABUGRkZGbrqqqu0dOlS9ejRQw8//LBefPFF2e32YKcGoAri9D0AqID8/Hx17txZHTp0UKtWrfT8889r165dql+/frBTAwAACLrf/OY3+uCDDyRJ//nPf9SlS5cgZwSgKuNIKQCogEcffVQnTpzQX/7yF02cOFFXXHGFhg8fHuy0AAAAqoSMjAzdfvvtOnv2rI4fP15k/bXXXqtNmzZJkkaMGKHnnnsuwBkCqEo4UgoAyumjjz5Snz599OGHH6pbt26SpIMHD+qqq67SrFmzdM899wQ5QwAAgOA5efKkatasqfT0dG3fvl0PPPCA1q9fryuvvNIbs3LlSs2fP1/XXXedsrKy9Pe//z2IGQMINppSAAAAAICLtm7dOl1//fU6deqUnE6nxo8fr7feekubN29W3bp1vXFXX3214uPjtXLlSq41BUQ4Tt8DAAAAAFy0jIwMJSYmeu9M/PTTT6tVq1a6/fbblZ+fL0nasmWLjh07ppo1a9KQAsCRUgAAAACAynfo0CH1799fb731lgYMGKCXX35Zbdu2DXZaAIKII6UAAAAAAJXqzJkz+u1vf6u5c+eqWbNmmjx5sqZPnx7stAAEGUdKAQAAAAAAIOA4UgoAAAAAAAABR1MKAAAAAAAAAUdTCgAAAAAAAAFHUwoAAAAAAAABR1MKAAAAAAAAAUdTCgAAAAAAAAFHUwoAAAAAAAABR1MKAAAAAAAAAUdTCgAAAAAAAAFHUwoAAAAAAAABR1MKAAAAAAAAAff/AXs4KBrKcH3sAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "# -------------------------------------------------\n", + "# Lattice definitions\n", + "# -------------------------------------------------\n", + "a = 1.0 # lattice constant\n", + "\n", + "# Real-space lattice vectors\n", + "a1 = np.array([a, 0.0])\n", + "a2 = a * np.array([np.cos(np.pi / 3), np.sin(np.pi / 3)])\n", + "\n", + "# Reciprocal-space lattice vectors\n", + "b1 = (2 * np.pi / a) * np.array([1.0, -1.0 / np.sqrt(3)])\n", + "b2 = (2 * np.pi / a) * np.array([0.0, 2.0 / np.sqrt(3)])\n", + "\n", + "# -------------------------------------------------\n", + "# Generate lattice points\n", + "# -------------------------------------------------\n", + "N = 5 # number of points in each direction (odd, so we get symmetry around 0)\n", + "\n", + "# Real space points\n", + "pts_real = []\n", + "for i in range(-(N // 2), N // 2 + 1):\n", + " for j in range(-(N // 2), N // 2 + 1):\n", + " pts_real.append(i * a1 + j * a2)\n", + "pts_real = np.array(pts_real)\n", + "\n", + "# Reciprocal space points\n", + "pts_rec = []\n", + "for i in range(-(N // 2), N // 2 + 1):\n", + " for j in range(-(N // 2), N // 2 + 1):\n", + " pts_rec.append(i * b1 + j * b2)\n", + "pts_rec = np.array(pts_rec)\n", + "\n", + "\n", + "# -------------------------------------------------\n", + "# IBZ path in reciprocal space\n", + "# (given in reduced coordinates; convert to Cartesian k)\n", + "# -------------------------------------------------\n", + "Gamma = 2 * np.pi / a * np.array([0.0, 0.0])\n", + "M = 2 * np.pi / a * np.array([0.0, 1.0 / np.sqrt(3)])\n", + "K = 2 * np.pi / a * np.array([1.0 / 3.0, 1.0 / np.sqrt(3)])\n", + "\n", + "ibz_path = np.vstack([Gamma, M, K, Gamma])\n", + "\n", + "# -------------------------------------------------\n", + "# Plot\n", + "# -------------------------------------------------\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))\n", + "\n", + "\n", + "# --- Real space ---\n", + "ax1.scatter(pts_real[:, 0], pts_real[:, 1], marker=\"o\", s=200, color=\"black\")\n", + "ax1.quiver(0, 0, a1[0], a1[1], angles=\"xy\", scale_units=\"xy\", scale=1)\n", + "ax1.quiver(0, 0, a2[0], a2[1], angles=\"xy\", scale_units=\"xy\", scale=1)\n", + "ax1.set_title(\"Real-space lattice and vectors\")\n", + "ax1.set_xlabel(\"x\")\n", + "ax1.set_ylabel(\"y\")\n", + "ax1.set_aspect(\"equal\")\n", + "ax1.grid(True)\n", + "\n", + "# Supercell corners in real space\n", + "W = a / 2\n", + "H = (a * np.sqrt(3)) / 2\n", + "\n", + "# Rectangle corners (closed loop)\n", + "rect = np.array([[-W, -H], [W, -H], [W, H], [-W, H], [-W, -H]])\n", + "\n", + "# Draw rectangle\n", + "ax1.plot(rect[:, 0], rect[:, 1], \"--\")\n", + "\n", + "# Fill it\n", + "ax1.fill(rect[:, 0], rect[:, 1], alpha=0.15)\n", + "\n", + "\n", + "# --- Reciprocal space ---\n", + "ax2.scatter(pts_rec[:, 0], pts_rec[:, 1], marker=\"o\", s=200, color=\"black\")\n", + "ax2.quiver(0, 0, b1[0], b1[1], angles=\"xy\", scale_units=\"xy\", scale=1)\n", + "ax2.quiver(0, 0, b2[0], b2[1], angles=\"xy\", scale_units=\"xy\", scale=1)\n", + "\n", + "# IBZ path Γ–M–K–Γ\n", + "ax2.plot(ibz_path[:, 0], ibz_path[:, 1], marker=\"o\")\n", + "\n", + "# Label the special points\n", + "ax2.text(Gamma[0], Gamma[1], r\"$\\Gamma$\", ha=\"right\", va=\"bottom\")\n", + "ax2.text(M[0], M[1], r\"$M$\", ha=\"right\", va=\"bottom\")\n", + "ax2.text(K[0], K[1], r\"$K$\", ha=\"left\", va=\"bottom\")\n", + "\n", + "ax2.set_title(\"Reciprocal-space lattice, vectors and IBZ path\")\n", + "ax2.set_xlabel(r\"$k_x$\")\n", + "ax2.set_ylabel(r\"$k_y$\")\n", + "ax2.set_aspect(\"equal\")\n", + "ax2.grid(True)\n", + "\n", + "ax1.set_xlim(-1.1, 1.1)\n", + "ax1.set_ylim(-1.1, 1.1)\n", + "\n", + "ax2.set_xlim(-3.1 * np.pi / a, 3.1 * np.pi / a)\n", + "ax2.set_ylim(-3.1 * np.pi / a, 3.1 * np.pi / a)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Simulation Setup " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will define the global parameters to be used in the simulation.\n", + "Since we can express everything in terms of the lattice constant, we will set it to 1 and then scale the frequency accordingly during post-processing." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Source polarization\n", + "polarization = \"Ez\"\n", + "\n", + "theta = np.pi / 6\n", + "sizeZ = 6\n", + "\n", + "# Option to add or not matching dipoles\n", + "matchingDipoles = True\n", + "\n", + "# K-points of the Brillouin zone of hexagonal lattice\n", + "kPoints = [(0, 0), (0, 1 / (np.sqrt(3))), (1 / 3, 1 / np.sqrt(3)), (0, 0)]\n", + "\n", + "# Source frequency and width\n", + "freq0 = 200e12\n", + "fwidth = 150e12\n", + "\n", + "runTime = 3e-12\n", + "\n", + "rodMaterial = td.Medium(permittivity=2.5**2)\n", + "\n", + "# Lattice constant defined as 1. Then we just scale the results\n", + "latticeConstant = 1\n", + "\n", + "radius = 0.28 * latticeConstant\n", + "height = 1 * latticeConstant\n", + "\n", + "\n", + "# Lattice vectors\n", + "y = latticeConstant * np.cos(theta)\n", + "x = latticeConstant * np.sin(theta)\n", + "a1 = np.array([x, y, 0])\n", + "a2 = np.array([-x, y, 0])\n", + "\n", + "\n", + "# Creating the supercell\n", + "centerRod = td.Cylinder(center=(0, 0, 0), radius=radius, length=height)\n", + "\n", + "geometry = centerRod\n", + "geometry += centerRod.updated_copy(center=tuple(-a1))\n", + "geometry += centerRod.updated_copy(center=tuple(a2))\n", + "geometry += centerRod.updated_copy(center=tuple(-a2))\n", + "geometry += centerRod.updated_copy(center=tuple(a1))\n", + "\n", + "\n", + "structure = td.Structure(geometry=geometry, medium=rodMaterial)\n", + "\n", + "size = (2 * x, 2 * y, sizeZ)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To ensure periodicity, we will use a [MeshOverrideRegion] to create a custom grid with a fixed number of grid points in x and y." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid = td.MeshOverrideStructure(\n", + " geometry=td.Box(center=(0, 0, 0), size=(td.inf, td.inf, td.inf)),\n", + " dl=(size[0] / 40, size[1] / 60, 0.1),\n", + ")\n", + "\n", + "grid_spec = td.GridSpec.auto(\n", + " override_structures=[grid],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will define the sources and monitors.\n", + "\n", + "We will place 5 sources randomly distributed in the lower-left unit cell, and 5 [FieldMonitor](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.FieldMonitor.html) objects randomly distributed in the supercell." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Sources\n", + "Nsources = 5\n", + "\n", + "sourceTime = [\n", + " td.GaussianPulse(freq0=freq0, fwidth=fwidth, phase=i)\n", + " for i in 2 * np.pi * np.random.random(2 * Nsources)\n", + "]\n", + "\n", + "\n", + "# Random positions for the sources\n", + "posySource = np.random.uniform(-0.8, -0.2, Nsources)\n", + "posxSource = np.random.uniform(-0.2, -0.1, Nsources)\n", + "\n", + "\n", + "# Monitors\n", + "Nmonitors = 5\n", + "\n", + "posyMon = np.random.uniform(-0.8, -0.2, 5)\n", + "posxMon = np.random.uniform(-0.2, 0.2, 5)\n", + "\n", + "monitors = [\n", + " td.FieldTimeMonitor(\n", + " center=(posxMon[i], posyMon[i], 0), name=f\"mon{i}\", size=(0, 0, 0), start=1e-12\n", + " )\n", + " for i in range(Nmonitors)\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Defining the [Simulation](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.Simulation.html) and Matching Dipoles \n", + "\n", + "Finally, we define a function to generate the [Simulation](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.Simulation.html) object as a function of the parameters below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Function to return a simulation for every Bloch vector\n", + "def getSim(pol, bloch_x, bloch_y, matchingDipoles=True):\n", + " symmetry = [0, 0, -1] if pol == \"Ez\" else [0, 0, 1]\n", + "\n", + " boundary_spec = td.BoundarySpec(\n", + " x=td.Boundary.bloch(bloch_x * size[0]),\n", + " y=td.Boundary.bloch(bloch_y * size[1]),\n", + " z=td.Boundary.pml(),\n", + " )\n", + "\n", + " bVector = np.array([bloch_x, bloch_y, 0])\n", + "\n", + " # Creating the sources\n", + " sources = [\n", + " td.PointDipole(\n", + " center=(posxSource[i], posySource[i], 0), polarization=pol, source_time=sourceTime[i]\n", + " )\n", + " for i in range(len(posxSource))\n", + " ]\n", + "\n", + " # Creating the matching dipoles\n", + " matching_dipoles = []\n", + " if matchingDipoles:\n", + " for i, sc in enumerate(sources):\n", + " # Coordinates of the matching dipole\n", + " px = sc.center[0] + 0.5\n", + " py = sc.center[1] + np.sqrt(3) / 2\n", + "\n", + " # Adjust the phase\n", + " phase = sc.source_time.phase\n", + " r_vec = np.array((px, py, 0)) - np.array(sc.center)\n", + " deltaPhase = 2 * np.pi * bVector.dot(r_vec)\n", + "\n", + " source_time = sc.source_time.updated_copy(phase=phase + deltaPhase)\n", + "\n", + " sp = sc.updated_copy(center=(px, py, 0), source_time=source_time)\n", + " matching_dipoles.append(sp)\n", + "\n", + " sim = td.Simulation(\n", + " size=size,\n", + " structures=[structure],\n", + " sources=sources + matching_dipoles,\n", + " monitors=monitors,\n", + " run_time=runTime,\n", + " boundary_spec=boundary_spec,\n", + " grid_spec=grid_spec,\n", + " symmetry=symmetry,\n", + " medium=td.Medium(),\n", + " shutoff=False,\n", + " )\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can create a simulation object and inspect the permittivity to confirm that the periodicity is preserved." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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l5SUYPbs2cjPz4enpyciIyPx008/oW/fvmKfF154ARUVFZgzZw5KS0sxbNgw7Ny5s9EF1YiIbmGBQEREZEbi4+MRHx/f5LLU1FS9+ytXrsTKlStb3J5MJsOyZcuwbNkyQ0UkIivHcxCIiIiIiEjEAoGIiIiIiEQsEIiIiIiISMQCgYiIiIiIRDxJmYiIiIjoDrSCFunl6SiuK4aPwgcRqgjIZXKpYxkFCwQiIiIiohbsLdmL5NxkFNYVim1+Cj8kBCUgxjNGwmTGwSFGRERERETN2FuyFwnZCXrFAQAU1hUiITsBe0v2SpTMeFggEBERERE1QStokZyb3GKfFbkroBW0JkpkGiwQiIiIiIiakF6e3ujIwe0K6gqQXp5uokSmwQKBiIiIiKgJxXXFBu1nKVggEBERERE1wUfhY9B+loIFAhERERFREyJUEfBT+LXYR61QI0IVYaJEpsECgYiIiIioCXKZHAlBCc0ul0GGhUELre56CCwQiIiIiIiaEeMZg+TQ5EZHEtQKNZaHLrfK6yDwQmlERERERC2I8YzBCI8RvJIyERERERE1kMvkGOw6WOoYJsEhRkREREREJGKBQEREREREIhYIREREREQkYoFAREREREQiFghERERERCRigUBERERERCIWCEREREREJGKBQEREREREIhYIREREREQkYoFAREREREQiFghERERERCRigUBERERERCIWCEREREREJGKBQEREREREIhYIREREREQkYoFAREREREQiFghERERERCRigUBERERERCIWCEREREREJGpTgZCUlIQhQ4bA1dUVfn5+GD9+PDIzM/X6VFdXY+7cufD29oZKpcLEiRNRUFBg0NBERERERGQc9m3pvH//fsydOxdDhgxBfX09Xn75Zdx///04c+YMXFxcAADz58/Hjh07sGXLFri7uyM+Ph4TJkzAwYMHjbIDZJl2Xcsw2WPFBYab7LGIiIiILF2bCoSdO3fq3V+/fj38/PyQlpaGe++9F2VlZVi7di02btyImJgYAMC6devQp08fHD58GEOHDjVcciIiIiIiMrgOnYNQVlYGAPDy8gIApKWloa6uDrGxsWKf3r17o3Pnzjh06FCT26ipqYFGo9G7ERERERGRNNpdIOh0OsybNw/33HMP+vfvDwDIz8+Hg4MDPDw89Pqq1Wrk5+c3uZ2kpCS4u7uL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DCIiIiIyNZ0WKPoRqMoDnAIA3+GAHQsaa9OmAuHKlSv429/+ht27d8PR0dEgARITE7FgwQLxvkajQXBwsEG2TUREREQGcmUrkPY3oDL39zbnICDyHSB4gnS5yODaNMQoLS0NhYWFGDRoEOzt7WFvb4/9+/fj3Xffhb29PdRqNWpra1FaWqq3XkFBAfz9/ZvcplKphJubm96NiIiIiMzIla3Aj4/oFwcAUHm1of3KVmlykVG0qUAYNWoUTp06hYyMDPE2ePBgPPHEE+L/FQoFUlJSxHUyMzORk5OD6Ohog4cnIiIiIiPTaRuOHEBoYuFvbWnzGvqRVWjTECNXV1f0799fr83FxQXe3t5i+6xZs7BgwQJ4eXnBzc0Nzz//PKKjozmDEREREZElKvqx8ZEDPQJQeaWhn3qkqVKREbX7OgjNWblyJezs7DBx4kTU1NQgLi4O7733nqEfhoiIiIhMoSrPsP3I7HW4QEhNTdW77+joiNWrV2P16tUd3TQRERERSc0pwLD9yOy16zoIRERERGQjfIc3zFYEWTMdZIBzcEM/sgosEIiIiIioeXbyhqlMATQuEn67H7mK10OwIiwQiIiIiKhlwROA4V8Azp30252DGtp5HQSrYvCTlImIiIjICgVPADqN45WUbQALBCIiIiJqHTs5pzK1ARxiREREREREIhYIREREREQkYoFAREREREQiFghERERERCRigUBERERERCIWCEREREREJGKBQEREREREIhYIREREREQkYoFAREREREQiXkmZiIiIyIS0ghbp5ekoriuGj8IHEaoIyGVyqWMRiVggEBEREZnI3pK9SM5NRmFdodjmp/BDQlACYjxjJExG9DsOMSIiIiIygb0le5GQnaBXHABAYV0hErITsLdkr0TJiPSxQCAiIiIyMq2gRXJucot9VuSugFbQmigRUfNYIBAREREZWXp5eqMjB7crqCtAenm6iRIRNY8FAhEREZGRFdcVG7QfkTGxQCAiIiIyMh+Fj0H7ERkTCwQiIiIiI4tQRcBP4ddiH7VCjQhVhIkSETWPBQIRERGRkcllciQEJTS7XAYZFgYt5PUQyCywQCAiIiIygRjPGCSHJjc6kqBWqLE8dDmvg0BmgxdKIyIiIjKRGM8YjPAYwSspk1ljgUBERERkQnKZHINdB0sdg6hZHGJEREREREQiFghERERERCRigUBERGQGBEHA4sWLERAQACcnJ8TGxuL8+fMtrvPqq69CJpPp3Xr37q3Xp7q6GnPnzoW3tzdUKhUmTpyIgoICY+4KEVk4FghERERmYPny5Xj33XexZs0aHDlyBC4uLoiLi0N1dXWL6/Xr1w95eXni7cCBA3rL58+fj//3//4ftmzZgv379+PatWuYMGGCMXeFiCwcT1ImIiKSmCAIWLVqFRYtWoRx48YBAD755BOo1Wps374dU6ZMaXZde3t7+Pv7N7msrKwMa9euxcaNGxET0zCF5rp169CnTx8cPnwYQ4cONfzOEJHF4xEEIiIiiWVnZyM/Px+xsbFim7u7O6KionDo0KEW1z1//jwCAwPRtWtXPPHEE8jJyRGXpaWloa6uTm+7vXv3RufOne+4XSKyXTyCQEREJLH8/HwAgFqt1mtXq9XisqZERUVh/fr16NWrF/Ly8rB06VIMHz4cp0+fhqurK/Lz8+Hg4AAPD482bbempgY1NTXifY1G0469IiJLxSMIREREJrZhwwaoVCrxVldX167tjBkzBpMmTUJYWBji4uLw7bfforS0FJ9//nmH8iUlJcHd3V28BQcHd2h7RGRZWCAQERGZ2EMPPYSMjAzx5uPjAwCNZhcqKCho9vyCpnh4eKBnz564cOECAMDf3x+1tbUoLS1t03YTExNRVlYm3q5cudLqDERk+VggEBERmZirqyu6d+8u3vr27Qt/f3+kpKSIfTQaDY4cOYLo6OhWb7e8vBxZWVkICAgAAERGRkKhUOhtNzMzEzk5OS1uV6lUws3NTe9GRLaDBQIREZHEZDIZ5s2bh9dffx1ff/01Tp06hWnTpiEwMBDjx48X+40aNQr//ve/xfsLFy7E/v37cenSJfz00094+OGHIZfL8dhjjwFoONF51qxZWLBgAfbt24e0tDQ89dRTiI6O5gxGRNQsnqRMRERkBl544QVUVFRgzpw5KC0txbBhw7Bz5044OjqKfbKyslBcXCzez83NxWOPPYbr16/D19cXw4YNw+HDh+Hr6yv2WblyJezs7DBx4kTU1NQgLi4O7733nkn3jYgsCwsEIiIiMyCTybBs2TIsW7as2T6XLl3Su79p06Y7btfR0RGrV6/G6tWrOxqRiGwEhxgREREREZGIBQIREREREYlYIBARERERkYgFAhERERERiVggEBERERGRiAUC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9+M9/fTT6NGjBxYvXgyNRoMhQ4Zg0qRJ6NmzJ1588UWcPXsWBQUFeusFBgbi8uXL7XpMMi8sEIiIiIjM3IoVK1BfX48tW7Zgw4YNUCqVzfatqqoCADg6OrbrscLCwsT/q9VqAMCAAQMatRUWFuqt5+TkhMrKynY9JpkXFghEREREZi4rKwvXrl2DTqfDpUuXWuzr7e0NmUyGkpKSO25Xq9U2alMoFOL/ZTJZs223T2t648YN+Pr63vExyfyxQCAiIiIyY7W1tZg6dSomT56M1157DX/5y18afXv/Rw4ODujbty/OnDnTaNntw4IuXrxokIzV1dXIyspCRESEQbZH0mKBQERERGTG/vGPf6CsrAzvvvsuXnzxRfTs2RMzZ85scZ24uDgcOHCgUftXX32FrVu3IisrC2+88QbOnDmDy5cv4+rVqx3KePjwYSiVSkRHR3doO2QeWCAQERERmanU1FSsWrUKn376Kdzc3GBnZ4dPP/0UP/74I95///1m15s1axa+/fZblJWV6bWPHTsWy5cvR9++ffHDDz/gvffew9GjR/Hpp592KOf//vc/PPHEE3B2du7Qdsg8yIQ/zlFFRERERFZh0qRJGDRoEBITEwE0XAchPDwcq1atMujjFBcXo1evXjh+/DhCQ0MNum2SBo8gEBEREVmh5ORkqFQqoz/OpUuX8N5777E4sCI8gkBERERkA4x1BIGsDwsEIiIiIiIScYgRERERERGJWCAQEREREZGIBQIREREREYlYIBARERERkYgFAhERERERiVggEBERERGRiAUCERERERGJWCAQEREREZGIBQIREREREYn+P3dBXCpr0kbbAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = getSim(polarization, 0, 0)\n", + "\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))\n", + "\n", + "# Left: epsilon\n", + "eps = sim.epsilon(td.Box(center=(0, 0, 0), size=(99, 99, 0)))\n", + "ax1.imshow(abs(eps).squeeze().T)\n", + "ax1.set_title(\"epsilon\")\n", + "\n", + "# Right: structure\n", + "sim.plot(z=0, ax=ax2)\n", + "ax2.set_title(\"structure (z=0)\")\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can interpolate points around the K-points and run a [Batch](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.web.api.container.Batch.html) simulation to execute the simulations in parallel." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Creating K points\n", + "pointsPerZone = 10\n", + "\n", + "createPoints = lambda init, end: [\n", + " init + (end - init) * i / pointsPerZone for i in range(pointsPerZone)\n", + "]\n", + "\n", + "KX = []\n", + "KY = []\n", + "\n", + "kx1, ky1 = kPoints[0]\n", + "for k in kPoints[1:]:\n", + " kx2, ky2 = k\n", + " KX += createPoints(kx1, kx2)\n", + " KY += createPoints(ky1, ky2)\n", + " kx1, ky1 = kx2, ky2\n", + "\n", + "# Visualizing the K-points\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(KX, KY, \"-o\")\n", + "\n", + "\n", + "sims = {}\n", + "for i in range(len(KX)):\n", + " for pol in [polarization]:\n", + " sims[f\"s{i}{pol}\"] = getSim(pol, KX[i], KY[i])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d704ec8f12824e339f1c6a110a1c5b44", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
15:21:18 -03 Started working on Batch containing 30 tasks.                      \n",
+       "
\n" + ], + "text/plain": [ + "\u001b[2;36m15:21:18 -03\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m30\u001b[0m tasks. \n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
15:21:56 -03 Maximum FlexCredit cost: 0.750 for the whole batch.                \n",
+       "
\n" + ], + "text/plain": [ + "\u001b[2;36m15:21:56 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m0.750\u001b[0m for the whole batch. \n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
             Use 'Batch.real_cost()' to get the billed FlexCredit cost after the\n",
+       "             Batch has completed.                                               \n",
+       "
\n" + ], + "text/plain": [ + "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after the\n", + "\u001b[2;36m \u001b[0mBatch has completed. \n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e70c28c6165b44e78f551d53d0a25ae2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
15:22:19 -03 Batch complete.                                                    \n",
+       "
\n" + ], + "text/plain": [ + "\u001b[2;36m15:22:19 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete. \n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "application/vnd.jupyter.widget-view+json": {
+       "model_id": "6614bdf124aa4dbba371bdbb225c2409",
+       "version_major": 2,
+       "version_minor": 0
+      },
+      "text/plain": [
+       "Output()"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# Running the simulations\n",
+    "\n",
+    "batch = web.Batch(simulations=sims, folder_name=\"hexagonalBandDiagram\")\n",
+    "batch_data = batch.run(path_dir=\"bandDiagram\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Band Diagram Calculation \n",
+    "\n",
+    "Now we can sum the signals from all monitors and use the [ResonanceFinder](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.plugins.resonance.ResonanceFinder.html) plugin to track the resonances for each simulation.\n",
+    "\n",
+    "We will apply a mask to filter out spurious resonances."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Sum the signal for all monitors\n",
+    "def getSignal(sim_data, polarization):\n",
+    "    signal = 0\n",
+    "    for i in range(Nmonitors):\n",
+    "        signal += sim_data[f\"mon{i}\"].field_components[polarization].squeeze()\n",
+    "    return signal\n",
+    "\n",
+    "\n",
+    "def ftField(field, **args):\n",
+    "    \"\"\"x axis in nanometers\"\"\"\n",
+    "    dt = np.mean(np.diff(field.t))\n",
+    "    fmesh = np.fft.fftshift(np.fft.fftfreq(field.size, dt))\n",
+    "    spectrum = np.fft.fftshift(np.fft.fft(field))\n",
+    "    return fmesh, spectrum\n",
+    "\n",
+    "\n",
+    "from tidy3d.plugins.resonance import ResonanceFinder\n",
+    "\n",
+    "# Analyzing resonances\n",
+    "dic = {}\n",
+    "FTs = []\n",
+    "for i in range(len(KX)):\n",
+    "    for pol in [polarization]:\n",
+    "        resonance_finder = ResonanceFinder(freq_window=(50, 200e12))\n",
+    "        sim_data = batch_data[f\"s{i}{pol}\"]\n",
+    "        signal = getSignal(sim_data, pol)\n",
+    "        fmesh, ft = ftField(signal.real)\n",
+    "        bm = (fmesh > 0) & (fmesh < 300e12)\n",
+    "        FTs.append(abs(ft[bm]) / max(abs(ft[bm])))\n",
+    "\n",
+    "        resonance_data = resonance_finder.run_raw_signal(signal, sim_data.simulation.dt)\n",
+    "        df = resonance_data.to_dataframe()\n",
+    "        dic[f\"s{i}{pol}\"] = df"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Finally, we can plot the band diagram. \n",
+    "To match the results with the [reference papaer](https://www.flexcompute.com/tidy3d/examples/notebooks/Bandstructure/), we will multiply the frequencies by four, since the original lattice constant is 0.25 µm."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "for name, df in dic.items():\n", + " pos = int(name[1:-2])\n", + " df = df[df[\"error\"] < 0.25]\n", + " sct = ax.scatter(x=np.repeat(pos, len(df)), y=df.index * 4 * 1e-12, color=\"black\")\n", + "\n", + "# light cone overlay (air background; ± branches)\n", + "idx = np.arange(len(KX))\n", + "# convert reduced coordinates to |k| in m^-1\n", + "k_mag = (2 * np.pi / latticeConstant) * np.sqrt(np.array(KX) ** 2 + np.array(KY) ** 2)\n", + "# frequency in THz: f = c |k| / (2π)\n", + "f_light_thz = (td.constants.C_0 * k_mag / (2 * np.pi)) / 1e12\n", + "ax.plot(idx, 4 * f_light_thz, \"r--\", label=\"light cone\")\n", + "ax.fill_between(idx, 4 * f_light_thz, 800, color=\"red\", alpha=0.1)\n", + "\n", + "ax.set_ylim(0, 800)\n", + "ax.set_xlim(0, len(KX))\n", + "ax.set_ylabel(\"Frequency (THz)\")\n", + "ax.set_xlabel(\"K-point index\")\n", + "ax.set_title(\"TM band diagram\")\n", + "\n", + "ax.legend(loc=\"upper left\", fontsize=\"small\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "applications": [ + "Photonic crystals" + ], + "description": "This notebook demonstrates how to simulate band diagrams of hexagonal lattice structures using Tidy3D.", + "feature_image": "././img/HexagonalSupercell.png", + "features": [], + "kernelspec": { + "display_name": "td2100rc2", + "language": "python", + "name": "python3" + }, + "keywords": "hexagonal lattices, band structure, matching dipoles, Tidy3D, FDTD", + "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.11.13" + }, + "title": "How to model hexagonal lattice bands using Tidy3D | Flexcompute" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/case_studies/photonic_crystals.rst b/docs/case_studies/photonic_crystals.rst index 81caec95..44bbf9c8 100644 --- a/docs/case_studies/photonic_crystals.rst +++ b/docs/case_studies/photonic_crystals.rst @@ -12,3 +12,4 @@ Photonic crystals utilize periodic optical nanostructures to affect the motion o ../../BistablePCCavity ../../NanobeamCavity ../../TopoQuantumPhC + ../../HexagonalLatticeBands \ No newline at end of file diff --git a/img/HexagonalSupercell.png b/img/HexagonalSupercell.png new file mode 100644 index 00000000..c6cc2670 Binary files /dev/null and b/img/HexagonalSupercell.png differ