{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "# Boundary conditions\n", "\n", "This notebook will give a tutorial on setting up boundary conditions in Tidy3d.\n", "\n", "NOTE: the default boundary conditions (currently `Periodic()`) will change to `PML()` in Tidy3D version 2.0." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T04:31:43.848100Z", "iopub.status.busy": "2023-02-03T04:31:43.847811Z", "iopub.status.idle": "2023-02-03T04:31:45.036427Z", "shell.execute_reply": "2023-02-03T04:31:45.036023Z" } }, "outputs": [ { "data": { "text/html": [ "
[22:31:44] WARNING This version of Tidy3D was pip installed from the 'tidy3d-beta' repository on __init__.py:103\n", " PyPI. Future releases will be uploaded to the 'tidy3d' repository. From now on, \n", " please use 'pip install tidy3d' instead. \n", "\n" ], "text/plain": [ "\u001b[2;36m[22:31:44]\u001b[0m\u001b[2;36m \u001b[0m\u001b[31mWARNING \u001b[0m This version of Tidy3D was pip installed from the \u001b[32m'tidy3d-beta'\u001b[0m repository on \u001b]8;id=776805;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py\u001b\\\u001b[2m__init__.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=515361;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py#103\u001b\\\u001b[2m103\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m PyPI. Future releases will be uploaded to the \u001b[32m'tidy3d'\u001b[0m repository. From now on, \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m please use \u001b[32m'pip install tidy3d'\u001b[0m instead. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
INFO Using client version: 1.9.0rc1 __init__.py:121\n", "\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Using client version: \u001b[1;36m1.9\u001b[0m.0rc1 \u001b]8;id=916957;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py\u001b\\\u001b[2m__init__.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=136836;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py#121\u001b\\\u001b[2m121\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# standard python imports\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# tidy3d imports\n", "import tidy3d as td\n", "import tidy3d.web as web\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define Simulation Parameters\n", "First, we'll define some basc simulation parameters, the size of the domain, and the discretization resolution." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T04:31:45.039020Z", "iopub.status.busy": "2023-02-03T04:31:45.038741Z", "iopub.status.idle": "2023-02-03T04:31:45.042278Z", "shell.execute_reply": "2023-02-03T04:31:45.041918Z" } }, "outputs": [], "source": [ "# Define material properties\n", "medium = td.Medium(permittivity=2)\n", "\n", "wavelength = 1\n", "f0 = td.C_0 / wavelength / np.sqrt(medium.permittivity)\n", "\n", "# Set the domain size in x, y, and z\n", "domain_size = 12 * wavelength\n", "\n", "# create the geometry\n", "geometry = []\n", "\n", "# construct simulation size array\n", "sim_size = (domain_size, domain_size, domain_size)\n", "\n", "# Bandwidth in Hz\n", "fwidth = f0 / 40.0\n", "\n", "# Gaussian source offset; the source peak is at time t = offset/fwidth\n", "offset = 4.0\n", "\n", "# time dependence of sources\n", "source_time = td.GaussianPulse(freq0=f0, fwidth=fwidth, offset=offset)\n", "\n", "# Simulation run time past the source decay (around t=2*offset/fwidth)\n", "run_time = 40 / fwidth\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create sources and monitors\n", "To study the effect of the various boundary conditions, we'll define a point dipole source and a series of frequency- and time-domain monitors in the volume of the simulation domain and at its edges." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T04:31:45.044353Z", "iopub.status.busy": "2023-02-03T04:31:45.044208Z", "iopub.status.idle": "2023-02-03T04:31:45.048659Z", "shell.execute_reply": "2023-02-03T04:31:45.048282Z" } }, "outputs": [], "source": [ "# create a point dipole source\n", "dipole = td.PointDipole(\n", " center=(0, 0, 0),\n", " source_time=source_time,\n", " polarization=\"Ex\",\n", ")\n", "\n", "# these monitors will be used to plot fields on planes through the middle of the domain in the frequency domain\n", "monitor_xz_freq = td.FieldMonitor(\n", " center=(0, 0, 0), size=(domain_size, 0, domain_size), freqs=[f0], name=\"xz_freq\"\n", ")\n", "monitor_yz_freq = td.FieldMonitor(\n", " center=(0, 0, 0), size=(0, domain_size, domain_size), freqs=[f0], name=\"yz_freq\"\n", ")\n", "monitor_xy_freq = td.FieldMonitor(\n", " center=(0, 0, 0), size=(domain_size, domain_size, 0), freqs=[f0], name=\"xy_freq\"\n", ")\n", "\n", "# this monitor will be used to plot fields on a plane through the middle of the domain in the time domain\n", "monitor_xz_time = td.FieldTimeMonitor(\n", " center=(0, 0, 0), size=(domain_size, 0, domain_size), interval=50, name=\"xz_time\"\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Boundary specifications\n", "A [`BoundarySpec`](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.BoundarySpec.html) object defines the boundary conditions applied on each of the 6 domain edges, and is provided as an input to the simulation. In the following sections, we'll explore several different features within [`BoundarySpec`](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.BoundarySpec.html) and different ways of defining it.\n", "\n", "A [`BoundarySpec`](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.BoundarySpec.html) consists of three [`Boundary`](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.Boundary.html) objects, each defining the boundaries on the plus and minus side of each dimension. A number of convenience functions are available to quickly define various types of boundaries, which will be demonstrated below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 1: Default PML boundaries along some dimensions\n", "\n", "In most cases, one just wants to specify whether there are absorbing PML layers along any of the x, y, z dimensions. To do this, we can call the `BoundarySpec.pml(x=False, y=False, z=False)` method to construct boundary conditions, supplying `True` along a dimension where we want PML.\n", "\n", "NOTE: the default boundary conditions will change to PML() in Tidy3D version 2.0.\n", "\n", "Let's try putting pml on only the x edge." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T04:31:45.050778Z", "iopub.status.busy": "2023-02-03T04:31:45.050617Z", "iopub.status.idle": "2023-02-03T04:31:45.237988Z", "shell.execute_reply": "2023-02-03T04:31:45.237560Z" } }, "outputs": [ { "data": { "text/html": [ "
[22:31:45] WARNING 'BoundarySpec.y' uses default value, which is 'Periodic()' but will change to boundary.py:607\n", " 'PML()' in Tidy3D version 2.0. We recommend explicitly setting all boundary \n", " conditions ahead of this release to avoid unexpected results. \n", "\n" ], "text/plain": [ "\u001b[2;36m[22:31:45]\u001b[0m\u001b[2;36m \u001b[0m\u001b[31mWARNING \u001b[0m \u001b[32m'BoundarySpec.y'\u001b[0m uses default value, which is \u001b[32m'Periodic\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m but will change to \u001b]8;id=811397;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/boundary.py\u001b\\\u001b[2mboundary.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=852290;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/boundary.py#607\u001b\\\u001b[2m607\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'PML\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m in Tidy3D version \u001b[1;36m2.0\u001b[0m. We recommend explicitly setting all boundary \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m conditions ahead of this release to avoid unexpected results. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
WARNING 'BoundarySpec.z' uses default value, which is 'Periodic()' but will change to boundary.py:607\n", " 'PML()' in Tidy3D version 2.0. We recommend explicitly setting all boundary \n", " conditions ahead of this release to avoid unexpected results. \n", "\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[31mWARNING \u001b[0m \u001b[32m'BoundarySpec.z'\u001b[0m uses default value, which is \u001b[32m'Periodic\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m but will change to \u001b]8;id=509578;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/boundary.py\u001b\\\u001b[2mboundary.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=927036;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/boundary.py#607\u001b\\\u001b[2m607\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'PML\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m in Tidy3D version \u001b[1;36m2.0\u001b[0m. We recommend explicitly setting all boundary \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m conditions ahead of this release to avoid unexpected results. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
INFO Auto meshing using wavelength 1.4142 defined from sources. grid_spec.py:510\n", "\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.4142\u001b[0m defined from sources. \u001b]8;id=905396;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=14170;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#510\u001b\\\u001b[2m510\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHWCAYAAABt8WNQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcRElEQVR4nO3de5hU1YHu/3fXbVdfquju6kIaQQSSERUjBJAcNV55xBM9E84xTi5eguNgVIwakohMPGJMlExAJTEJoJloHi8JozlqRkcNiqKDJvGan5qIIQ4JIpeugqaqm677+v3B7LKqui5779prFdX1fp6nn9BNVfXupp6sr3uvvZYmhBAgIiIiakKuRh8AERERkV0MGSIiImpaDBkiIiJqWgwZIiIialoMGSIiImpaDBkiIiJqWgwZIiIialoMGSIiImpaDBkiIiJqWgwZIjpkPP/889A0Dc8//3yjD4WImgRDhoiU+8lPfoJ777230Ydhy4MPPojVq1c3+jCK/Ou//iuOPvpo+P1+fPzjH8edd95p+rnJZBJLly7F+PHj0dbWhrlz52LDhg1lH/vSSy/h5JNPRnt7O8aNG4err74ag4ODTv0YRLZo3GuJiFSbPn06ent7R5x5yeVySKVS8Pl8cLkOzf/OOvfcc/H2229j27ZtjT4UAMC6detw+eWX47zzzsP8+fPx4osv4r777sP3vvc9LF26tObzv/jFL+Lhhx/Gtddei49//OO499578corr+C5557DySefnH/cm2++if/xP/4Hjj76aFx22WX44IMPsGrVKpx++ul48sknZf6IRFUxZIgaZGhoCB0dHY0+jIaoFDLN4FAKmeHhYUycOBGf+tSn8Pjjj+e/fuGFF+LRRx/F9u3b0d3dXfH5v//97zF37lysXLkS3/jGNwAAiUQC06dPx9ixY/HSSy/lH/uZz3wGb775Jt59910Eg0EAwE9/+lMsWrQITz/9NM466yxJPyVRdYfmf/IQNZkdO3bg0ksvxfjx46HrOiZPnowrrrgCqVQKAHDvvfdC0zRs2rQJV155JcaOHYsJEybkn/+Tn/wExx57LHRdx/jx47F48WIMDAwUfY8///nPOO+88zBu3Dj4/X5MmDABX/jCF7B///78YzZs2ICTTz4ZXV1d6OzsxFFHHYV//ud/rnn8Zp6XTCaxfPlyfOxjH4Ou65g4cSKuu+46JJPJEa93//3344QTTkB7ezu6u7txyimn4De/+Q0A4Mgjj8Q777yDTZs2QdM0aJqG0047DUDlOTIPPfQQZs2ahba2NvT29uLCCy/Ejh07ih6zcOFCdHZ2YseOHViwYAE6OzsRDofxjW98A9lstubv4LHHHsM555yT/zecOnUqvvOd7xQ997TTTsMTTzyBv/71r/ljP/LIIyu+5qmnnorjjz++7N8dddRRmD9/fs3jqua5555DNBrFlVdeWfT1xYsXY2hoCE888UTV5z/88MNwu9247LLL8l/z+/249NJL8fLLL2P79u0AgFgshg0bNuDCCy/MRwwAXHzxxejs7MS//du/1fVzENXD0+gDIGp2H374IU444QQMDAzgsssuw7Rp07Bjxw48/PDDOHDgAHw+X/6xV155JcLhMG688UYMDQ0BAG666SZ8+9vfxrx583DFFVdgy5YtWLNmDV555RVs3rwZXq8XqVQK8+fPRzKZxFe/+lWMGzcOO3bswOOPP46BgQGMGTMG77zzDs4991x84hOfwM033wxd17F161Zs3ry56vGbeV4ul8Pf//3f4z//8z9x2WWX4eijj8Zbb72FO+64A++99x4effTR/GO//e1v46abbsKJJ56Im2++GT6fD7/73e+wceNGnHXWWVi9ejW++tWvorOzE9/61rcAAIcddljF47v33ntxySWXYM6cOVixYgV2796NH/zgB9i8eTPeeOMNdHV15R+bzWYxf/58zJ07F6tWrcIzzzyD2267DVOnTsUVV1xR9fdw7733orOzE0uWLEFnZyc2btyIG2+8EbFYDCtXrgQAfOtb38L+/fvxwQcf4I477gAAdHZ2VnzNiy66CIsWLcLbb7+N6dOn57/+yiuv4L333sMNN9yQ/9q+fftMBVd7ezva29sBAG+88QYAYPbs2UWPmTVrFlwuF9544w1ceOGFFV/rjTfewN/93d8VxQkAnHDCCQAOXk6aOHEi3nrrLWQymRHfx+fzYcaMGfnjIGoIQUR1ufjii4XL5RKvvPLKiL/L5XJCCCHuueceAUCcfPLJIpPJ5P9+z549wufzibPOOktks9n813/0ox8JAOJnP/uZEEKIN954QwAQDz30UMXjuOOOOwQA0d/fb+n4zTzvvvvuEy6XS7z44otFX1+7dq0AIDZv3iyEEOLPf/6zcLlc4n//7/9d9PMI8dHvQgghjj32WHHqqaeO+D7PPfecACCee+45IYQQqVRKjB07VkyfPl0MDw/nH/f4448LAOLGG2/Mf+3LX/6yACBuvvnmotecOXOmmDVrVvVfghDiwIEDI772la98RbS3t4tEIpH/2jnnnCMmTZpU8/WEEGJgYED4/X6xdOnSoq9fffXVoqOjQwwODua/NmnSJAGg5sfy5cvzz1m8eLFwu91lv3c4HBZf+MIXqh7fscceK84444wRX3/nnXcEALF27VohhBAPPfSQACBeeOGFEY89//zzxbhx46p+HyKZeGmJqA65XA6PPvoo/tf/+l8j/msVADRNK/p80aJFcLvd+c+feeYZpFIpXHvttUWTWxctWoRgMJi/NDBmzBgAwNNPP40DBw6UPRbjzMRjjz2GXC5n+mcw87yHHnoIRx99NKZNm4ZIJJL/OOOMMwAcvMQBAI8++ihyuRxuvPHGEZN1S38XZrz66qvYs2cPrrzySvj9/vzXzznnHEybNq3spZPLL7+86PNPf/rTeP/992t+r7a2tvyf4/E4IpEIPv3pT+PAgQN49913LR87cPDf7bOf/Sx+8YtfQPz3dMRsNov169djwYIFRXOkHnjgAWzYsKHmx8UXX5x/zvDwcNEZv0J+vx/Dw8NVj294eBi6rpd9rvH3hf9b6bG1vg+RTLy0RFSH/v5+xGKxossG1UyePLno87/+9a8ADs6XKOTz+TBlypT830+ePBlLlizB7bffjgceeACf/vSn8fd///e48MIL85Hz+c9/Hj/96U/xT//0T7j++utx5pln4v/8n/+Dz33uc1XvADLzvD//+c/405/+hHA4XPY19uzZAwD4y1/+ApfLhWOOOcbU76OWSr8fAJg2bRr+8z//s+hrfr9/xDF2d3dj3759Nb/XO++8gxtuuAEbN25ELBYr+rvCeUhWXXzxxVi/fj1efPFFnHLKKXjmmWewe/duXHTRRUWPO+mkkyy/dltbW34eVqlEIlEUZ5WeX26OUyKRyP994f9Wemyt70MkE0OGSKF6/g//tttuw8KFC/HYY4/hN7/5Da6++mqsWLECv/3tbzFhwgS0tbXhhRdewHPPPYcnnngCTz31FNavX48zzjgDv/nNb4rOBJUeU63n5XI5HHfccbj99tvLvsbEiRNt/1xOqvQz1jIwMIBTTz0VwWAQN998M6ZOnQq/34/XX38dS5cutXSGq9T8+fNx2GGH4f7778cpp5yC+++/H+PGjcO8efOKHtff329qjkxnZ2d+Xk5fXx+y2Sz27NmDsWPH5h+TSqUQjUYxfvz4qq/V19c3YtI0AOzcuRMA8s/v6+sr+nrpY2t9HyKZeGmJqA7hcBjBYBBvv/22redPmjQJALBly5air6dSKfzXf/1X/u8Nxx13HG644Qa88MILePHFF7Fjxw6sXbs2//culwtnnnkmbr/9dvzxj3/ELbfcgo0bN+Yv/VRS63lTp07F3r17ceaZZ2LevHkjPowzJlOnTkUul8Mf//jHqt/P7GWmSr8f42ulvx+7nn/+eUSjUdx777245pprcO6552LevHllb122eonM7XbjS1/6Eh5++GHs27cPjz76KL74xS+OiK45c+agr6+v5seqVavyz5kxYwaAg5fgCr366qvI5XL5v69kxowZeO+990acgfrd735X9PrTp0+Hx+MZ8X1SqRTefPPNmt+HSCaGDFEdXC4XFixYgH//938f8X/yAPLzIiqZN28efD4ffvjDHxY99l//9V+xf/9+nHPOOQAO3v6ayWSKnnvcccfB5XLlT/fv3bt3xOsbA0y5SwIGM8/7h3/4B+zYsQN33333iMcODw/n78BasGABXC4Xbr755hFnMQp/vo6OjhG3l5cze/ZsjB07FmvXri36GZ588kn86U9/yv9+6mVEReExplIp/OQnPxnx2I6ODsuXmi666CLs27cPX/nKVzA4OFj2TiI7c2TOOOMM9PT0YM2aNUWvtWbNGrS3txf9fiKRCN59992iOVaf+9znkM1mcdddd+W/lkwmcc8992Du3Ln5M21jxozBvHnzcP/99yMej+cfe99992FwcBDnn3++pd8HkaMaOtWYaBT44IMPxLhx40R7e7u49tprxbp168RNN90kjj32WLFv3z4hxEd3LZW7s2n58uUCgDjrrLPEj370I/HVr35VuN1uMWfOHJFKpYQQQjzyyCPi8MMPF9dee634yU9+In74wx+KOXPmCK/XK15++WUhhBDXXHONmDlzprjhhhvE3XffLW655RZx+OGHiwkTJoiBgYGKx2/medlsVnzmM58RmqaJL3zhC+LOO+8Uq1evFpdffrno6ekp+rn+7//9vwKAOPHEE8WqVavEnXfeKS6++GJx/fXX5x9z5ZVXCk3TxHe+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\n", "text/plain": [ "