{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Tidy3D first walkthrough\n", "\n", "Our first tutorial focuses on illustrating the basic setup, run, and analysis of a ``Tidy3D`` simulation. In this example, we will simulate a plane wave impinging on dielectric slab with a triangular pillar made of a lossy dielectric sitting on top. First, we import everything needed." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [] }, "outputs": [], "source": [ "# standard python imports\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import h5py\n", "\n", "# tidy3d imports\n", "import tidy3d as td\n", "from tidy3d import web\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we initialize some general simulation parameters. We note that the PML layers extend **beyond** the simulation domain, making the total simulation size larger - as opposed to some solvers in which the PML is covering part of the user-defined simulation domain." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [] }, "outputs": [], "source": [ "# Simulation domain size (in micron)\n", "sim_size = [4, 4, 4]\n", "\n", "# Central frequency and bandwidth of pulsed excitation, in Hz\n", "freq0 = 2e14\n", "fwidth = 1e13\n", "\n", "# apply a PML in all directions\n", "boundary_spec = td.BoundarySpec.all_sides(boundary=td.PML())\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The run time of a simulation depends a lot on whether there are any long-lived resonances. In our example here, there is no strong resonance. Thus, we do not need to run the simulation much longer than after the sources have decayed. We thus set the run time based on the source bandwidth." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [] }, "outputs": [], "source": [ "# Total time to run in seconds\n", "run_time = 2 / fwidth\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Structures and materials\n", "\n", "Next, we initialize the simulated structure. The structure consists of two [Structure](../_autosummary/tidy3d.Structure.html) objects. Each object consists of a [Geometry](../_autosummary/tidy3d.components.geometry.Geometry.html) and a [Medium](../_autosummary/tidy3d.components.medium.AbstractMedium.html) to define the spatial extent and material properties, respectively. Note that the size of any object (structure, source, or monitor) can extend beyond the simulation domain, and is truncated at the edges of that domain. \n", "\n", "Note: For best results, structures that intersect with the PML or simulation edges should extend extend all the way through. In many such cases, an \"infinite\" size `td.inf` can be used to define the size along that dimension." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "tags": [] }, "outputs": [], "source": [ "# Lossless dielectric specified directly using relative permittivity\n", "material1 = td.Medium(permittivity=6.0)\n", "\n", "# Lossy dielectric defined from the real and imaginary part of the refractive index\n", "material2 = td.Medium.from_nk(n=1.5, k=0.0, freq=freq0)\n", "# material2 = td.Medium(permittivity=2.)\n", "\n", "\n", "# Rectangular slab, extending infinitely in x and y with medium `material1`\n", "box = td.Structure(\n", " geometry=td.Box(center=[0, 0, 0], size=[td.inf, td.inf, 1]), medium=material1\n", ")\n", "\n", "# Triangle in the xy-plane with a finite extent in z\n", "equi_tri_verts = [[-1 / 2, -1 / 4], [1 / 2, -1 / 4], [0, np.sqrt(3) / 2 - 1 / 4]]\n", "\n", "poly = td.Structure(\n", " geometry=td.PolySlab(\n", " vertices=(2 * np.array(equi_tri_verts)).tolist(),\n", " # vertices=equi_tri_verts,\n", " slab_bounds=(0.5, 1.0),\n", " axis=2,\n", " ),\n", " medium=material2,\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sources\n", "\n", "Next, we define a source injecting a normal-incidence plane-wave from above. The time dependence of the source is a Gaussian pulse. A source can be added to multiple simulations. After we add the source to a specific simulation, such that the total run time is known, we can use in-built plotting tools to visualize its time- and frequency-dependence, which we will show below." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "tags": [] }, "outputs": [], "source": [ "psource = td.PlaneWave(\n", " center=(0, 0, 1.5),\n", " direction=\"-\",\n", " size=(td.inf, td.inf, 0),\n", " source_time=td.GaussianPulse(freq0=freq0, fwidth=fwidth),\n", " pol_angle=np.pi / 2,\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Monitors\n", "\n", "Finally, we can also add some monitors that will record the fields that we request during the simulation run. \n", "\n", "The two monitor types for measuring fields are [FieldMonitor](../_autosummary/tidy3d.FieldMonitor.html) and [FieldTimeMonitor](../_autosummary/tidy3d.FieldTimeMonitor.html), which record the frequency-domain and time-domain fields, respectively. \n", "\n", "[FieldMonitor](../_autosummary/tidy3d.FieldMonitor.html) objects operate by running a discrete Fourier transform of the fields at a given set of frequencies to perform the calculation \"in-place\" with the time stepping. [FieldMonitor](../_autosummary/tidy3d.FieldMonitor.html) objects are useful for investigating the steady-state field distribution in 2D or even 3D regions of the simulation.\n", "\n", "[FieldTimeMonitor](../_autosummary/tidy3d.FieldTimeMonitor.html) objects are best used to monitor the time dependence of the fields at a single point, but they can also be used to create \"animations\" of the field pattern evolution. Because spatially large [FieldMonitor](../_autosummary/tidy3d.FieldMonitor.html) objects can lead to a very large amount of data that needs to be stored, an optional start and stop time can be supplied, as well as an `interval` specifying the amount of time steps between each measurement (default of 1)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "tags": [] }, "outputs": [], "source": [ "# measure time domain fields at center location, measure every 5 time steps\n", "time_mnt = td.FieldTimeMonitor(\n", " center=[0, 0, 0], size=[0, 0, 0], interval=5, name=\"field_time\"\n", ")\n", "\n", "# measure the steady state fields at central frequency in the xy plane and the xz plane.\n", "freq_mnt1 = td.FieldMonitor(\n", " center=[0, 0, -1], size=[20, 20, 0], freqs=[freq0], name=\"field1\"\n", ")\n", "freq_mnt2 = td.FieldMonitor(\n", " center=[0, 0, 0], size=[20, 0, 20], freqs=[freq0], name=\"field2\"\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulation\n", "\n", "Now we can initialize the [Simulation](../_autosummary/tidy3d.Simulation.html) with all the elements defined above. A nonuniform simulation grid is generated automatically based on a given minimum number of cells per wavelength in each material (10 by default), using the frequencies defined in the source." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [] }, "outputs": [], "source": [ "# Initialize simulation\n", "sim = td.Simulation(\n", " size=sim_size,\n", " grid_spec=td.GridSpec.auto(min_steps_per_wvl=20),\n", " structures=[box, poly],\n", " sources=[psource],\n", " monitors=[time_mnt, freq_mnt1, freq_mnt2],\n", " run_time=run_time,\n", " boundary_spec=boundary_spec,\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can check the simulation monitors just to make sure everything looks right." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 <class 'tidy3d.components.monitor.FieldTimeMonitor'> \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n", "\u2502 :class:`Monitor` that records electromagnetic fields in the time domain. \u2502\n", "\u2502 \u2502\n", "\u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\n", "\u2502 \u2502 FieldTimeMonitor( \u2502 \u2502\n", "\u2502 \u2502 \u2502 type='FieldTimeMonitor', \u2502 \u2502\n", "\u2502 \u2502 \u2502 center=(0.0, 0.0, 0.0), \u2502 \u2502\n", "\u2502 \u2502 \u2502 size=(0.0, 0.0, 0.0), \u2502 \u2502\n", "\u2502 \u2502 \u2502 name='field_time', \u2502 \u2502\n", "\u2502 \u2502 \u2502 start=0.0, \u2502 \u2502\n", "\u2502 \u2502 \u2502 stop=None, \u2502 \u2502\n", "\u2502 \u2502 \u2502 interval=5, \u2502 \u2502\n", "\u2502 \u2502 \u2502 fields=('Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz'), \u2502 \u2502\n", "\u2502 \u2502 \u2502 interval_space=(1, 1, 1), \u2502 \u2502\n", "\u2502 \u2502 \u2502 colocate=False \u2502 \u2502\n", "\u2502 \u2502 ) \u2502 \u2502\n", "\u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\n", "\u2502 \u2502\n", "\u2502 bounding_box = Box(type='Box', center=(0.0, 0.0, 0.0), size=(0.0, 0.0, 0.0)) \u2502\n", "\u2502 bounds = ((0.0, 0.0, 0.0), (0.0, 0.0, 0.0)) \u2502\n", "\u2502 center = (0.0, 0.0, 0.0) \u2502\n", "\u2502 colocate = False \u2502\n", "\u2502 fields = ('Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz') \u2502\n", "\u2502 geometry = Box(type='Box', center=(0.0, 0.0, 0.0), size=(0.0, 0.0, 0.0)) \u2502\n", "\u2502 interval = 5 \u2502\n", "\u2502 interval_space = (1, 1, 1) \u2502\n", "\u2502 name = 'field_time' \u2502\n", "\u2502 plot_params = PlotParams( \u2502\n", "\u2502 alpha=0.4, \u2502\n", "\u2502 edgecolor='orange', \u2502\n", "\u2502 facecolor='orange', \u2502\n", "\u2502 fill=True, \u2502\n", "\u2502 hatch=None, \u2502\n", "\u2502 linewidth=3.0, \u2502\n", "\u2502 type='PlotParams' \u2502\n", "\u2502 ) \u2502\n", "\u2502 size = (0.0, 0.0, 0.0) \u2502\n", "\u2502 start = 0.0 \u2502\n", "\u2502 stop = None \u2502\n", "\u2502 type = 'FieldTimeMonitor' \u2502\n", "\u2502 zero_dims = [0, 1, 2] \u2502\n", "\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n", "\n" ], "text/plain": [ "\u001b[34m\u256d\u2500\u001b[0m\u001b[34m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mclass\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tidy3d.components.monitor.FieldTimeMonitor'\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[0m\u001b[34m\u2500\u256e\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[36m:class:`Monitor` that records electromagnetic fields in the time domain.\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[1;35mFieldTimeMonitor\u001b[0m\u001b[1m(\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'FieldTimeMonitor'\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mname\u001b[0m=\u001b[32m'field_time'\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mstart\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mstop\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33minterval\u001b[0m=\u001b[1;36m5\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mfields\u001b[0m=\u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Ez'\u001b[0m, \u001b[32m'Hx'\u001b[0m, \u001b[32m'Hy'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33minterval_space\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mcolocate\u001b[0m=\u001b[3;91mFalse\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[1m)\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mbounding_box\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mbounds\u001b[0m = \u001b[1m(\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mcenter\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mcolocate\u001b[0m = \u001b[3;91mFalse\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mfields\u001b[0m = \u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Ez'\u001b[0m, \u001b[32m'Hx'\u001b[0m, \u001b[32m'Hy'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mgeometry\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33minterval\u001b[0m = \u001b[1;36m5\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33minterval_space\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mname\u001b[0m = \u001b[32m'field_time'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mplot_params\u001b[0m = \u001b[1;35mPlotParams\u001b[0m\u001b[1m(\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33malpha\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.4\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33medgecolor\u001b[0m=\u001b[32m'orange'\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mfacecolor\u001b[0m=\u001b[32m'orange'\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mfill\u001b[0m=\u001b[3;92mTrue\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mhatch\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mlinewidth\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PlotParams'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33msize\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mstart\u001b[0m = \u001b[1;36m0.0\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mstop\u001b[0m = \u001b[3;35mNone\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mtype\u001b[0m = \u001b[32m'FieldTimeMonitor'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mzero_dims\u001b[0m = \u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m2\u001b[0m\u001b[1m]\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 <class 'tidy3d.components.monitor.FieldMonitor'> \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n", "\u2502 :class:`Monitor` that records electromagnetic fields in the frequency domain. \u2502\n", "\u2502 \u2502\n", "\u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\n", "\u2502 \u2502 FieldMonitor( \u2502 \u2502\n", "\u2502 \u2502 \u2502 type='FieldMonitor', \u2502 \u2502\n", "\u2502 \u2502 \u2502 center=(0.0, 0.0, -1.0), \u2502 \u2502\n", "\u2502 \u2502 \u2502 size=(20.0, 20.0, 0.0), \u2502 \u2502\n", "\u2502 \u2502 \u2502 name='field1', \u2502 \u2502\n", "\u2502 \u2502 \u2502 freqs=(200000000000000.0,), \u2502 \u2502\n", "\u2502 \u2502 \u2502 apodization=ApodizationSpec( \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 start=None, \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 end=None, \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 width=None, \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 type='ApodizationSpec' \u2502 \u2502\n", "\u2502 \u2502 \u2502 ), \u2502 \u2502\n", "\u2502 \u2502 \u2502 fields=('Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz'), \u2502 \u2502\n", "\u2502 \u2502 \u2502 interval_space=(1, 1, 1), \u2502 \u2502\n", "\u2502 \u2502 \u2502 colocate=False \u2502 \u2502\n", "\u2502 \u2502 ) \u2502 \u2502\n", "\u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\n", "\u2502 \u2502\n", "\u2502 apodization = ApodizationSpec(start=None, end=None, width=None, type='ApodizationSpec') \u2502\n", "\u2502 bounding_box = Box(type='Box', center=(0.0, 0.0, -1.0), size=(20.0, 20.0, 0.0)) \u2502\n", "\u2502 bounds = ((-10.0, -10.0, -1.0), (10.0, 10.0, -1.0)) \u2502\n", "\u2502 center = (0.0, 0.0, -1.0) \u2502\n", "\u2502 colocate = False \u2502\n", "\u2502 fields = ('Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz') \u2502\n", "\u2502 freqs = (200000000000000.0,) \u2502\n", "\u2502 geometry = Box(type='Box', center=(0.0, 0.0, -1.0), size=(20.0, 20.0, 0.0)) \u2502\n", "\u2502 interval_space = (1, 1, 1) \u2502\n", "\u2502 name = 'field1' \u2502\n", "\u2502 plot_params = PlotParams( \u2502\n", "\u2502 alpha=0.4, \u2502\n", "\u2502 edgecolor='orange', \u2502\n", "\u2502 facecolor='orange', \u2502\n", "\u2502 fill=True, \u2502\n", "\u2502 hatch=None, \u2502\n", "\u2502 linewidth=3.0, \u2502\n", "\u2502 type='PlotParams' \u2502\n", "\u2502 ) \u2502\n", "\u2502 size = (20.0, 20.0, 0.0) \u2502\n", "\u2502 type = 'FieldMonitor' \u2502\n", "\u2502 zero_dims = [2] \u2502\n", "\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n", "\n" ], "text/plain": [ "\u001b[34m\u256d\u2500\u001b[0m\u001b[34m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mclass\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tidy3d.components.monitor.FieldMonitor'\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[0m\u001b[34m\u2500\u256e\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[36m:class:`Monitor` that records electromagnetic fields in the frequency domain.\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[1;35mFieldMonitor\u001b[0m\u001b[1m(\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'FieldMonitor'\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m-1.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mname\u001b[0m=\u001b[32m'field1'\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mfreqs\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m200000000000000.0\u001b[0m,\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mapodization\u001b[0m=\u001b[1;35mApodizationSpec\u001b[0m\u001b[1m(\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mstart\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mend\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mwidth\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'ApodizationSpec'\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mfields\u001b[0m=\u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Ez'\u001b[0m, \u001b[32m'Hx'\u001b[0m, \u001b[32m'Hy'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33minterval_space\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mcolocate\u001b[0m=\u001b[3;91mFalse\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[1m)\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mapodization\u001b[0m = \u001b[1;35mApodizationSpec\u001b[0m\u001b[1m(\u001b[0m\u001b[33mstart\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mend\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mwidth\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'ApodizationSpec'\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mbounding_box\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m-1.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mbounds\u001b[0m = \u001b[1m(\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m-10.0\u001b[0m, \u001b[1;36m-10.0\u001b[0m, \u001b[1;36m-1.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[1m(\u001b[0m\u001b[1;36m10.0\u001b[0m, \u001b[1;36m10.0\u001b[0m, \u001b[1;36m-1.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mcenter\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m-1.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mcolocate\u001b[0m = \u001b[3;91mFalse\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mfields\u001b[0m = \u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Ez'\u001b[0m, \u001b[32m'Hx'\u001b[0m, \u001b[32m'Hy'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mfreqs\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m200000000000000.0\u001b[0m,\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mgeometry\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m-1.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33minterval_space\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mname\u001b[0m = \u001b[32m'field1'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mplot_params\u001b[0m = \u001b[1;35mPlotParams\u001b[0m\u001b[1m(\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33malpha\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.4\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33medgecolor\u001b[0m=\u001b[32m'orange'\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mfacecolor\u001b[0m=\u001b[32m'orange'\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mfill\u001b[0m=\u001b[3;92mTrue\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mhatch\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mlinewidth\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PlotParams'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33msize\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mtype\u001b[0m = \u001b[32m'FieldMonitor'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mzero_dims\u001b[0m = \u001b[1m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1m]\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 <class 'tidy3d.components.monitor.FieldMonitor'> \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n", "\u2502 :class:`Monitor` that records electromagnetic fields in the frequency domain. \u2502\n", "\u2502 \u2502\n", "\u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\n", "\u2502 \u2502 FieldMonitor( \u2502 \u2502\n", "\u2502 \u2502 \u2502 type='FieldMonitor', \u2502 \u2502\n", "\u2502 \u2502 \u2502 center=(0.0, 0.0, 0.0), \u2502 \u2502\n", "\u2502 \u2502 \u2502 size=(20.0, 0.0, 20.0), \u2502 \u2502\n", "\u2502 \u2502 \u2502 name='field2', \u2502 \u2502\n", "\u2502 \u2502 \u2502 freqs=(200000000000000.0,), \u2502 \u2502\n", "\u2502 \u2502 \u2502 apodization=ApodizationSpec( \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 start=None, \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 end=None, \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 width=None, \u2502 \u2502\n", "\u2502 \u2502 \u2502 \u2502 type='ApodizationSpec' \u2502 \u2502\n", "\u2502 \u2502 \u2502 ), \u2502 \u2502\n", "\u2502 \u2502 \u2502 fields=('Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz'), \u2502 \u2502\n", "\u2502 \u2502 \u2502 interval_space=(1, 1, 1), \u2502 \u2502\n", "\u2502 \u2502 \u2502 colocate=False \u2502 \u2502\n", "\u2502 \u2502 ) \u2502 \u2502\n", "\u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\n", "\u2502 \u2502\n", "\u2502 apodization = ApodizationSpec(start=None, end=None, width=None, type='ApodizationSpec') \u2502\n", "\u2502 bounding_box = Box(type='Box', center=(0.0, 0.0, 0.0), size=(20.0, 0.0, 20.0)) \u2502\n", "\u2502 bounds = ((-10.0, 0.0, -10.0), (10.0, 0.0, 10.0)) \u2502\n", "\u2502 center = (0.0, 0.0, 0.0) \u2502\n", "\u2502 colocate = False \u2502\n", "\u2502 fields = ('Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz') \u2502\n", "\u2502 freqs = (200000000000000.0,) \u2502\n", "\u2502 geometry = Box(type='Box', center=(0.0, 0.0, 0.0), size=(20.0, 0.0, 20.0)) \u2502\n", "\u2502 interval_space = (1, 1, 1) \u2502\n", "\u2502 name = 'field2' \u2502\n", "\u2502 plot_params = PlotParams( \u2502\n", "\u2502 alpha=0.4, \u2502\n", "\u2502 edgecolor='orange', \u2502\n", "\u2502 facecolor='orange', \u2502\n", "\u2502 fill=True, \u2502\n", "\u2502 hatch=None, \u2502\n", "\u2502 linewidth=3.0, \u2502\n", "\u2502 type='PlotParams' \u2502\n", "\u2502 ) \u2502\n", "\u2502 size = (20.0, 0.0, 20.0) \u2502\n", "\u2502 type = 'FieldMonitor' \u2502\n", "\u2502 zero_dims = [1] \u2502\n", "\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n", "\n" ], "text/plain": [ "\u001b[34m\u256d\u2500\u001b[0m\u001b[34m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mclass\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tidy3d.components.monitor.FieldMonitor'\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[0m\u001b[34m\u2500\u256e\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[36m:class:`Monitor` that records electromagnetic fields in the frequency domain.\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[1;35mFieldMonitor\u001b[0m\u001b[1m(\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'FieldMonitor'\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m20.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mname\u001b[0m=\u001b[32m'field2'\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mfreqs\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m200000000000000.0\u001b[0m,\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mapodization\u001b[0m=\u001b[1;35mApodizationSpec\u001b[0m\u001b[1m(\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mstart\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mend\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mwidth\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u2502 \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'ApodizationSpec'\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mfields\u001b[0m=\u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Ez'\u001b[0m, \u001b[32m'Hx'\u001b[0m, \u001b[32m'Hy'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33minterval_space\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[2;32m\u2502 \u001b[0m\u001b[33mcolocate\u001b[0m=\u001b[3;91mFalse\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[1m)\u001b[0m \u001b[32m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[32m\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mapodization\u001b[0m = \u001b[1;35mApodizationSpec\u001b[0m\u001b[1m(\u001b[0m\u001b[33mstart\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mend\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mwidth\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'ApodizationSpec'\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mbounding_box\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m20.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mbounds\u001b[0m = \u001b[1m(\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m-10.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m-10.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[1m(\u001b[0m\u001b[1;36m10.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m10.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mcenter\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mcolocate\u001b[0m = \u001b[3;91mFalse\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mfields\u001b[0m = \u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Ez'\u001b[0m, \u001b[32m'Hx'\u001b[0m, \u001b[32m'Hy'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mfreqs\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m200000000000000.0\u001b[0m,\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mgeometry\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m20.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33minterval_space\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mname\u001b[0m = \u001b[32m'field2'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mplot_params\u001b[0m = \u001b[1;35mPlotParams\u001b[0m\u001b[1m(\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33malpha\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.4\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33medgecolor\u001b[0m=\u001b[32m'orange'\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mfacecolor\u001b[0m=\u001b[32m'orange'\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mfill\u001b[0m=\u001b[3;92mTrue\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mhatch\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mlinewidth\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PlotParams'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33msize\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m20.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m20.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mtype\u001b[0m = \u001b[32m'FieldMonitor'\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2502\u001b[0m \u001b[3;33mzero_dims\u001b[0m = \u001b[1m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1m]\u001b[0m \u001b[34m\u2502\u001b[0m\n", "\u001b[34m\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for m in sim.monitors:\n", " m.help()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualization functions\n", "\n", "We can now use the some in-built plotting functions to make sure that we have set up the simulation as we desire.\n", "\n", "First, let's take a look at the source time dependence." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACq7ElEQVR4nO2deXwU9d3HP7Ob3c1BDiAhIQqEQ0EUQfExYrWiREDRamtVLIpSi61K+yhWK31a8ap41VpbWqoV1FbF2qo9VDxQtCoFRakXoiCIAkk4DLmTPeb5Y3bO/f1mZmOWXJ/365XXZmd/szOzS3Y/fL6XoqqqCkIIIYQQ0uMJdPUJEEIIIYSQzoHCjhBCCCGkl0BhRwghhBDSS6CwI4QQQgjpJVDYEUIIIYT0EijsCCGEEEJ6CRR2hBBCCCG9BAo7QgghhJBeAoUdIYQQQkgvgcKOEEJ6KIqi4PrrrzfuP/DAA1AUBVu3bt0vx6+oqMBFF120X45FCPEHhR0hhPRifve73+GBBx7o6tMghOwnKOwIIaSXcMEFF6ClpQXDhg0ztlHYEdK3yOrqEyCEkI4Si8WQSCQQDoe7+lS6BcFgEMFgsKtPgxDShdCxI4SkTUNDA6644gpUVFQgEolg0KBBOPnkk/H222/b1j3++OOYOHEicnJyUFxcjPPPPx/bt2+3rZk8eTImT56ccoyLLroIFRUVxv2tW7dCURTceeeduPvuuzFy5EhEIhF8+OGHAICPPvoI55xzDkpKSpCTk4PRo0fj//7v/2zPuX37dnz3u99FaWkpIpEIDj30UCxdutTXNS9btgwnnXQSBg0ahEgkgrFjx+L3v/99yrqKigqcdtppWLVqFY466ijk5ORg3LhxWLVqFQDgiSeewLhx45CdnY2JEyfinXfeSbnufv364dNPP8W0adOQl5eH8vJy3HjjjVBV1fUcnTl2FRUV+OCDD/DKK69AURQoimK81tdffz0URfF8DgBQVRU333wzDjzwQOTm5uLEE0/EBx98IDyHuro6XHHFFRgyZAgikQhGjRqF2267DYlEwvXcCSGdAx07Qkja/OAHP8Bf//pXzJs3D2PHjsWePXvw2muvYcOGDTjyyCMBaAJhzpw5+J//+R8sWrQINTU1+PWvf43XX38d77zzDoqKijp07GXLlqG1tRWXXHIJIpEIBgwYgHfffRfHH388QqEQLrnkElRUVGDz5s345z//iV/84hcAgJqaGhxzzDFQFAXz5s1DSUkJnn32WVx88cWor6/HFVdc4Xrc3//+9zj00EPxjW98A1lZWfjnP/+Jyy67DIlEApdffrlt7aZNm/Cd73wH3//+93H++efjzjvvxOmnn44lS5bgpz/9KS677DIAwKJFi3DOOedg48aNCATM/2fH43FMnz4dxxxzDG6//XasWLECCxcuRCwWw4033uj7tbr77rvxwx/+EP369TNEbmlpqe/9da677jrcfPPNOPXUU3Hqqafi7bffxtSpU9He3m5b19zcjBNOOAHbt2/H97//fQwdOhRvvPEGFixYgJ07d+Luu+9O+9iEkDRRCSEkTQoLC9XLL79c+nh7e7s6aNAg9bDDDlNbWlqM7f/6179UAOp1111nbDvhhBPUE044IeU5LrzwQnXYsGHG/S1btqgA1IKCArW2tta29utf/7qan5+vfvbZZ7btiUTC+P3iiy9WBw8erO7evdu2ZubMmWphYaHa3Nzses2ix6dNm6aOGDHCtm3YsGEqAPWNN94wtj333HMqADUnJ8d2jn/4wx9UAOrLL79su24A6g9/+EPbdcyYMUMNh8Pqrl27jO0A1IULFxr3ly1bpgJQt2zZYmw79NBDha/vwoULVdFXgPM5amtr1XA4rM6YMcP2ev70pz9VAagXXnihse2mm25S8/Ly1I8//tj2nNdee60aDAbVbdu2pRyPENK5MBRLCEmboqIirFmzBjt27BA+/tZbb6G2thaXXXYZsrOzje0zZszAmDFj8PTTT3f42GeddRZKSkqM+7t27cKrr76K7373uxg6dKhtrR5qVFUVf/vb33D66adDVVXs3r3b+Jk2bRr27duXEkZ2kpOTY/y+b98+7N69GyeccAI+/fRT7Nu3z7Z27NixmDRpknG/srISAHDSSSfZzlHf/umnn6Ycb968ebbrmDdvHtrb2/Hiiy+6nmdn8+KLL6K9vR0//OEPbaFbkcP5+OOP4/jjj0f//v1tr3FVVRXi8TheffXV/XjmhPRNGIolhKTN7bffjgsvvBBDhgzBxIkTceqpp2L27NkYMWIEAOCzzz4DAIwePTpl3zFjxuC1117r8LGHDx9uu6+LosMOO0y6z65du1BXV4d7770X9957r3BNbW2t63Fff/11LFy4EKtXr0Zzc7PtsX37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1qxBXl4epk2bhtbW1v11Wb5I99pXrVqF8847Dy+//DJWr16NIUOGYOrUqdi+fbtt3fTp07Fz507j59FHH90fl5M26V4/oDWqtF7bZ599Znu8t773TzzxhO2633//fQSDQZx99tm2dT3hvW9qasL48eOxePFiX+u3bNmCGTNm4MQTT8T69etxxRVX4Hvf+55N3HTk31JXke71v/rqqzj55JPxzDPPYN26dTjxxBNx+umn45133rGtO/TQQ23v/WuvvZaJ0/9KpHvtOhs3brRd26BBg4zHesp7n+61//rXv7Zd8+eff44BAwak/M33hPf9lVdeweWXX47//Oc/eOGFFxCNRjF16lQ0NTVJ9+mW3/Uq8cXRRx+tXn755cb9eDyulpeXq4sWLRKuP+ecc9QZM2bYtlVWVqrf//73VVVV1UQioZaVlal33HGH8XhdXZ0aiUTURx99NANX0HHSvXYnsVhMzc/PVx988EFj24UXXqieccYZnX2qGSHd61+2bJlaWFgofb6+9N7/6le/UvPz89XGxkZjW09673UAqE8++aTrmmuuuUY99NBDbdvOPfdcddq0acb9r/p6dhV+rl/E2LFj1RtuuMG4v3DhQnX8+PGdd2L7AT/X/vLLL6sA1C+//FK6pie+9x1535988klVURR169atxrae+L6rqqrW1taqANRXXnlFuqY7ftfTsfNBe3s71q1bh6qqKmNbIBBAVVUVVq9eLdxn9erVtvUAMG3aNGP9li1bUF1dbVtTWFiIyspK6XN2BR25difNzc2IRqMYMGCAbfuqVaswaNAgjB49Gpdeein27NnTqefeGXT0+hsbGzFs2DAMGTIEZ5xxBj744APjsb703t9///2YOXMm8vLybNt7wnufLl5/853xevYkEokEGhoaUv7uP/nkE5SXl2PEiBGYNWsWtm3b1kVn2PlMmDABgwcPxsknn4zXX3/d2N6X3vv7778fVVVVGDZsmG17T3zf9+3bBwAp/4atdMfvego7H+zevRvxeBylpaW27aWlpSk5FDrV1dWu6/XbdJ6zK+jItTv5yU9+gvLycts/7OnTp+Ohhx7CypUrcdttt+GVV17BKaecgng83qnn/1XpyPWPHj0aS5cuxd///nf8+c9/RiKRwLHHHosvvvgCQN9579euXYv3338f3/ve92zbe8p7ny6yv/n6+nq0tLR0yt9ST+LOO+9EY2MjzjnnHGNbZWUlHnjgAaxYsQK///3vsWXLFhx//PFoaGjowjP96gwePBhLlizB3/72N/ztb3/DkCFDMHnyZLz99tsAOudztCewY8cOPPvssyl/8z3xfU8kErjiiivwta99DYcddph0XXf8rs/KyLMSkuTWW2/F8uXLsWrVKlsBwcyZM43fx40bh8MPPxwjR47EqlWrMGXKlK441U5j0qRJmDRpknH/2GOPxSGHHII//OEPuOmmm7rwzPYv999/P8aNG4ejjz7atr03v/dE45FHHsENN9yAv//977Y8s1NOOcX4/fDDD0dlZSWGDRuGv/zlL7j44ou74lQ7hdGjR2P06NHG/WOPPRabN2/Gr371K/zpT3/qwjPbvzz44IMoKirCmWeeadveE9/3yy+/HO+//363zAX0go6dD4qLixEMBlFTU2PbXlNTg7KyMuE+ZWVlruv123SesyvoyLXr3Hnnnbj11lvx/PPP4/DDD3ddO2LECBQXF2PTpk1f+Zw7k69y/TqhUAhHHHGEcW194b1vamrC8uXLfX1od9f3Pl1kf/MFBQXIycnplH9LPYHly5fje9/7Hv7yl7+khKicFBUV4eCDD+7x772Io48+2riuvvDeq6qKpUuX4oILLkA4HHZd293f93nz5uFf//oXXn75ZRx44IGua7vjdz2FnQ/C4TAmTpyIlStXGtsSiQRWrlxpc2asTJo0ybYeAF544QVj/fDhw1FWVmZbU19fjzVr1kifsyvoyLUDWhXQTTfdhBUrVuCoo47yPM4XX3yBPXv2YPDgwZ1y3p1FR6/fSjwex3vvvWdcW29/7wGt/L+trQ3nn3++53G663ufLl5/853xb6m78+ijj2LOnDl49NFHbS1uZDQ2NmLz5s09/r0XsX79euO6+sJ7/8orr2DTpk2+/jPXXd93VVUxb948PPnkk3jppZcwfPhwz3265Xd9RkoyeiHLly9XI5GI+sADD6gffviheskll6hFRUVqdXW1qqqqesEFF6jXXnutsf71119Xs7Ky1DvvvFPdsGGDunDhQjUUCqnvvfeesebWW29Vi4qK1L///e/qu+++q55xxhnq8OHD1ZaWlv1+fW6ke+233nqrGg6H1b/+9a/qzp07jZ+GhgZVVVW1oaFB/fGPf6yuXr1a3bJli/riiy+qRx55pHrQQQepra2tXXKNbqR7/TfccIP63HPPqZs3b1bXrVunzpw5U83OzlY/+OADY01vfe91jjvuOPXcc89N2d6T3vuGhgb1nXfeUd955x0VgHrXXXep77zzjvrZZ5+pqqqq1157rXrBBRcY6z/99FM1NzdXvfrqq9UNGzaoixcvVoPBoLpixQpjjdfr2Z1I9/offvhhNSsrS128eLHt776urs5Yc9VVV6mrVq1St2zZor7++utqVVWVWlxcrNbW1u7363Mj3Wv/1a9+pT711FPqJ598or733nvq//7v/6qBQEB98cUXjTU95b1P99p1zj//fLWyslL4nD3lfb/00kvVwsJCddWqVbZ/w83NzcaanvBdT2GXBr/5zW/UoUOHquFwWD366KPV//znP8ZjJ5xwgnrhhRfa1v/lL39RDz74YDUcDquHHnqo+vTTT9seTyQS6s9//nO1tLRUjUQi6pQpU9SNGzfuj0tJm3SufdiwYSqAlJ+FCxeqqqqqzc3N6tSpU9WSkhI1FAqpw4YNU+fOndvtPuCspHP9V1xxhbG2tLRUPfXUU9W3337b9ny99b1XVVX96KOPVADq888/n/JcPem911tYOH/0673wwgvVE044IWWfCRMmqOFwWB0xYoS6bNmylOd1ez27E+le/wknnOC6XlW19i+DBw9Ww+GwesABB6jnnnuuumnTpv17YT5I99pvu+02deTIkWp2drY6YMAAdfLkyepLL72U8rw94b3vyL/7uro6NScnR7333nuFz9lT3nfRdQOw/R33hO96JXkxhBBCCCGkh8McO0IIIYSQXgKFHSGEEEJIL4HCjhBCCCGkl0BhRwghhBDSS6CwI4QQQgjpJVDYEUIIIYT0EijsCCGEEEJ6CRR2hBBCCCG9BAo7QkifZdWqVVAUBXV1dV1y/JUrV+KQQw5BPB73XLtixQpMmDABiURiP5wZIb2bV199FaeffjrKy8uhKAqeeuqpLj/e9ddfjzFjxiAvLw/9+/dHVVUV1qxZk/axKOwIIX2CyZMn44orrrBtO/bYY7Fz504UFhZ2yTldc801+NnPfoZgMOi5dvr06QiFQnj44Yf3w5kR0rtpamrC+PHjsXjx4m5zvIMPPhi//e1v8d577+G1115DRUUFpk6dil27dqV1LI4UI4T0CSZPnowJEybg7rvv7upTAQC89tprOO2001BdXY3s7Gxf+yxevBgPPPAA3nzzzQyfHSF9B0VR8OSTT+LMM880trW1teH//u//8Oijj6Kurg6HHXYYbrvtNkyePDkjxxNRX1+PwsJCvPjii5gyZYrv56djRwjp9Vx00UV45ZVX8Otf/xqKokBRFGzdujUlFPvAAw+gqKgI//rXvzB69Gjk5ubi29/+Npqbm/Hggw+ioqIC/fv3x49+9CNb+LStrQ0//vGPccABByAvLw+VlZVYtWqV6zktX74cJ598sk3U/fe//8WJJ56I/Px8FBQUYOLEiXjrrbeMx08//XS89dZb2Lx5c6e+PoQQO/PmzcPq1auxfPlyvPvuuzj77LMxffp0fPLJJ/vl+O3t7bj33ntRWFiI8ePHp7VvVobOiRBCug2//vWv8fHHH+Owww7DjTfeCAAoKSnB1q1bU9Y2NzfjnnvuwfLly9HQ0IBvfetb+OY3v4mioiI888wz+PTTT3HWWWfha1/7Gs4991wA2pfAhx9+iOXLl6O8vBxPPvkkpk+fjvfeew8HHXSQ8Jz+/e9/4zvf+Y5t26xZs3DEEUfg97//PYLBINavX49QKGQ8PnToUJSWluLf//43Ro4c2UmvDiHEyrZt27Bs2TJs27YN5eXlAIAf//jHWLFiBZYtW4ZbbrklY8f+17/+hZkzZ6K5uRmDBw/GCy+8gOLi4rSeg8KOENLrKSwsRDgcRm5uLsrKylzXRqNR/P73vzeE07e//W386U9/Qk1NDfr164exY8fixBNPxMsvv4xzzz23w18Cn332mbFeZ9u2bbj66qsxZswYABCKwvLycnz22WdpvwaEEH+89957iMfjOPjgg23b29raMHDgQADARx99hEMOOcT1eX7yk5/g1ltvTevYJ554ItavX4/du3fjvvvuwznnnIM1a9Zg0KBBvp+Dwo4QQizk5uba3LDS0lJUVFSgX79+tm21tbUA/H0JiGhpaUnJrZs/fz6+973v4U9/+hOqqqpw9tlnpzhzOTk5aG5u7vD1EULcaWxsRDAYxLp161IKm/TPgREjRmDDhg2uz+P29y8jLy8Po0aNwqhRo3DMMcfgoIMOwv33348FCxb4fg4KO0IIsWANfQJaorNom952xM+XgIji4mJ8+eWXtm3XX389vvOd7+Dpp5/Gs88+i4ULF2L58uX45je/aazZu3cvSkpKOnRthBBvjjjiCMTjcdTW1uL4448XrgmHw4aznkkSiQTa2trS2ofCjhDSJwiHw776xaWLny8B2X4ffvhhyvaDDz4YBx98MK688kqcd955WLZsmSHsWltbsXnzZhxxxBGddv6E9EUaGxuxadMm4/6WLVuwfv16DBgwAAcffDBmzZqF2bNn45e//CWOOOII7Nq1CytXrsThhx+OGTNmdOrxhg4diqamJvziF7/AN77xDQwePBi7d+/G4sWLsX37dpx99tlpHYtVsYSQPkFFRQXWrFmDrVu3Yvfu3Z3W6Nf6JfDEE09gy5YtWLt2LRYtWoSnn35aut+0adPw2muvGfdbWlowb948rFq1Cp999hlef/11vPnmm7Y8nv/85z+IRCKYNGlSp5w7IX2Vt956C0cccYTxn6T58+fjiCOOwHXXXQcAWLZsGWbPno2rrroKo0ePxplnnok333wTQ4cOzcjxgsEgPvroI5x11lk4+OCDcfrpp2PPnj3497//jUMPPTStY9GxI4T0CX784x/jwgsvxNixY9HS0oItW7Z02nMvW7YMN998M6666ips374dxcXFOOaYY3DaaadJ95k1axauueYabNy4EaNHj0YwGMSePXswe/Zs1NTUoLi4GN/61rdwww03GPs8+uijmDVrFnJzczvt3Anpi0yePBlubXxDoRBuuOEG299fJo+XnZ2NJ554olOOxQbFhBDSRVx99dWor6/HH/7wB8+1u3fvxujRo/HWW29h+PDh++HsCCE9EYZiCSGki/i///s/DBs2zFdYeOvWrfjd735HUUcIcYWOHSGEEEJIL4GOHSGEEEJIL4HCjhBCCCGkl0BhRwghhBDSS6CwI4QQQgjpJVDYEUIIIYT0EijsCCGEEEJ6CRR2hBBCCCG9BAo7QgghhJBeAoUdIYQQQkgvgcKOEEIIIaSX8P8P2y+ZvfNdkwAAAABJRU5ErkJggg==\n", "text/plain": [ "