From 6562a987c407a70b3f82599a267f344337c8c349 Mon Sep 17 00:00:00 2001 From: Andeloth Date: Wed, 28 Feb 2024 14:37:11 -0700 Subject: [PATCH] small fixes --- book/pages/scattering_parameters.ipynb | 79 +++++++++++--------------- 1 file changed, 34 insertions(+), 45 deletions(-) diff --git a/book/pages/scattering_parameters.ipynb b/book/pages/scattering_parameters.ipynb index 1dc36d7..2a000c9 100644 --- a/book/pages/scattering_parameters.ipynb +++ b/book/pages/scattering_parameters.ipynb @@ -83,7 +83,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[32m2024-02-23 10:46:51.728\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgplugins.gmeep\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m39\u001b[0m - \u001b[1mMeep '1.28.0' installed at ['/home/andeloth/miniconda3/envs/photonics/lib/python3.11/site-packages/meep']\u001b[0m\n" + "\u001b[32m2024-02-28 13:52:52.398\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgplugins.gmeep\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m39\u001b[0m - \u001b[1mMeep '1.28.0' installed at ['/home/andeloth/miniconda3/envs/photonics/lib/python3.11/site-packages/meep']\u001b[0m\n" ] }, { @@ -175,8 +175,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[32m2024-02-23 10:46:54.692\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.pdk\u001b[0m:\u001b[36mactivate\u001b[0m:\u001b[36m309\u001b[0m - \u001b[1m'generic' PDK is now active\u001b[0m\n", - "\u001b[32m2024-02-23 10:46:55.168\u001b[0m | \u001b[33m\u001b[1mWARNING \u001b[0m | \u001b[36mgdsfactory.config\u001b[0m:\u001b[36mshowwarning\u001b[0m:\u001b[36m281\u001b[0m - \u001b[33m\u001b[1mUnnamed cells, 1 in 'Unnamed_0da7224c'\u001b[0m\n" + "\u001b[32m2024-02-28 13:52:52.533\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.pdk\u001b[0m:\u001b[36mactivate\u001b[0m:\u001b[36m309\u001b[0m - \u001b[1m'generic' PDK is now active\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m2024-02-28 13:52:52.908\u001b[0m | \u001b[33m\u001b[1mWARNING \u001b[0m | \u001b[36mgdsfactory.config\u001b[0m:\u001b[36mshowwarning\u001b[0m:\u001b[36m281\u001b[0m - \u001b[33m\u001b[1mUnnamed cells, 1 in 'Unnamed_0da7224c'\u001b[0m\n" ] }, { @@ -386,10 +392,10 @@ "-----------------------------------------------------------------\n", "\n", "Normalized s-params:\n", - "Port1(Lower Left, S11): 0.048342, 2.648293818186258 deg \n", - "Port2(Upper Left, S12): 0.046153, 2.765397762485876 deg \n", - "Port3(Upper Right, S13): 0.748132, -0.680513120085835 deg \n", - "Port4(Lower Right, S14): 0.292468, 1.5714402438535198 deg\n", + "Port1(Lower Left, S11): 0.048342, 2.6482938181862616 rad \n", + "Port2(Upper Left, S12): 0.046153, 2.765397762485876 rad \n", + "Port3(Upper Right, S13): 0.748132, -0.6805131200859658 rad \n", + "Port4(Lower Right, S14): 0.292468, 1.5714402438535193 rad\n", "\n", "-----------------------------------------------------------------\n", "\n" @@ -409,7 +415,7 @@ "\n", "# Prints out the S parameters\n", "print(\"\\n-----------------------------------------------------------------\\n\")\n", - "print(f\"Normalized s-params:\\nPort1(Lower Left, S11): {np.abs(port1_coeff):.6f}, {np.angle(port1_coeff)} deg \\nPort2(Upper Left, S12): {np.abs(port2_coeff):.6f}, {np.angle(port2_coeff)} deg \\nPort3(Upper Right, S13): {np.abs(port3_coeff):.6f}, {np.angle(port3_coeff)} deg \\nPort4(Lower Right, S14): {np.abs(port4_coeff):.6f}, {np.angle(port4_coeff)} deg\")\n", + "print(f\"Normalized s-params:\\nPort1(Lower Left, S11): {np.abs(port1_coeff):.6f}, {np.angle(port1_coeff)} rad \\nPort2(Upper Left, S12): {np.abs(port2_coeff):.6f}, {np.angle(port2_coeff)} rad \\nPort3(Upper Right, S13): {np.abs(port3_coeff):.6f}, {np.angle(port3_coeff)} rad \\nPort4(Lower Right, S14): {np.abs(port4_coeff):.6f}, {np.angle(port4_coeff)} rad\")\n", "print(\"\\n-----------------------------------------------------------------\\n\")\n", "\n" ] @@ -424,7 +430,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -473,13 +479,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "dca429422a884d81abbc0784d8da32fc", + "model_id": "ac43c9ac00c847ba9b66aaf683fccd7e", "version_major": 2, "version_minor": 0 }, @@ -526,7 +532,7 @@ ")\n", "\n", "# Runs the simulation for a long time to ensure that the fields have reached a steady state\n", - "sim.run(until_after_sources=100)\n", + "sim.run(until=300)\n", "\n", "# Gets data\n", "eps_data = sim.get_epsilon() # Epsilon Data / The Geometry / An array that holds what materials are where\n", @@ -561,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -609,7 +615,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -654,7 +660,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -723,27 +729,9 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[32m2024-02-21 10:44:01.085\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.component\u001b[0m:\u001b[36m_write_library\u001b[0m:\u001b[36m1959\u001b[0m - \u001b[1mWrote to '/tmp/gdsfactory/Unnamed_0da7224c.gds'\u001b[0m\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from gplugins.gmeep import write_sparameters_meep\n", "\n", @@ -772,6 +760,7 @@ "mmi_comp.add_port(name=\"o3\", center=[port_xpos, -port_ypos], width=port_ysize, orientation=180, cross_section=gf.cross_section.cross_section(width=port_ysize, layer='WG'))\n", "mmi_comp.add_port(name=\"o4\", center=[port_xpos, port_ypos], width=port_ysize, orientation=180, cross_section=gf.cross_section.cross_section(width=port_ysize, layer='WG'))\n", "\n", + "run_sim = True\n", "sparams = write_sparameters_meep(\n", " component=mmi_comp,\n", " resolution=res,\n", @@ -780,28 +769,27 @@ " port_margin=0,\n", " port_source_offset=4.7,\n", " port_monitor_offset=4.5,\n", - " run=False,\n", + " run=run_sim,\n", " xmargin=0,\n", " ymargin=1,\n", " zmargin=2 if sim_is_3D else 0,\n", " is_3d=sim_is_3D,\n", " tpml=dpml,\n", " clad_material=\"SiO2\",\n", - " wavelength_start=1.5,\n", - " wavelength_stop=1.6,\n", - " wavelength_points=1,\n", - " dfcen=0.05,\n", + " wavelength_start=1.54,\n", + " wavelength_stop=1.56,\n", + " wavelength_points=100,\n", ")" ] }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { - "image/png": "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kqTf/OY3kqScnBxlZmbK6/Vq165dWr9+vZ599lkVFhYqPj4+XC8LAADoQK751t61WL58uYqKipxP4Y0YMUKLFi0K6nPgwIGgL9N87rnndPbsWY0fP151dXXKysrS2rVrFRcXJ0nauXOnc0vu3nvvDTpWTU2N0tPTJUnz589Xp06d5PV6dfbsWWVlZWnDhg1KSEiQJEVFRWn16tUaP368Bg0apJiYGBUUFGjBggVheS0AAEDHE2GMMT/0JG5WgUBAbrfb+foFAADw4xfK92/+1x4AAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIAlghQAAIClsAapuro6eb1eud1uud1ueb1enTp1qs0xxhiVlJQoNTVVMTExevjhh7V3715n/8mTJzVp0iRlZGQoNjZW3bp1U1FRkfx+f7NjrV69WllZWYqJiVFiYqJ+9atfBe2PiIhotpWVlYWkdgAA0PF1CufBCwoK9O2336qiokKSNHbsWHm9Xr377rutjpk3b54WLlyoZcuW6Sc/+YlefPFFDRs2TAcOHFBcXJxqa2tVW1urBQsWKDMzUwcPHtSTTz6p2tpavfPOO85xVq5cqcLCQpWWlurnP/+5jDHas2dPs/MtXbpUeXl5zs9utzuErwAAAOjQTJjs27fPSDJbt2512iorK40ks3///hbHNDU1GY/HY+bMmeO0nTt3zrjdblNWVtbquVasWGG6dOliGhsbjTHGNDY2mrvvvtu8+uqrbc5RkikvL7+GqoL5/X4jyfj9futjAACAGyuU799hu7VXWVkpt9utrKwsp23AgAFyu93asmVLi2Nqamrk8/mUk5PjtLlcLg0ZMqTVMZLk9/sVHx+vTp0uLbD9/e9/1+HDhxUZGal+/fopJSVFv/zlL4NuEV42ceJEJSYm6oEHHlBZWZmamppaPc/58+cVCASCNgAAcOsKW5Dy+XxKSkpq1p6UlCSfz9fqGElKTk4Oak9OTm51zIkTJzRr1iyNGzfOafvqq68kSSUlJZoxY4bee+89JSQkaMiQITp58qTTb9asWXr77bf1wQcfaNSoUZoyZYpKS0tbrWn27NnO815ut1tpaWmt9gUAAB3fNQepkpKSFh/S/v62Y8cOSZce5r6SMabF9u+7cn9rYwKBgPLz85WZmani4mKn/fKq0vTp0/XrX/9a/fv319KlSxUREaG3337b6TdjxgxlZ2erb9++mjJlimbOnKn58+e3Oq9p06bJ7/c726FDh9qsAwAAdGzX/LD5xIkTNWrUqDb7pKena/fu3Tp69GizfcePH2+24nSZx+ORdGllKiUlxWk/duxYszH19fXKy8tT165dVV5ers6dOzv7Lo/NzMx02lwul3r06KFvvvmm1XkPGDBAgUBAR48ebXGOLpdLLper1fEAAODWcs1BKjExUYmJiVftl52dLb/fr23btunBBx+UJFVVVcnv92vgwIEtjunevbs8Ho/WrVunfv36SZIaGhq0efNmzZ071+kXCASUm5srl8ulVatWKTo6Oug4/fv3l8vl0oEDBzR48GBJUmNjo77++mvdc889rc55165dio6O1u23337V+gAAAML29Qe9e/dWXl6eCgsL9fLLL0u69PUHw4cPV0ZGhtOvV69emj17th599FFFRERo8uTJKi0tVc+ePdWzZ0+VlpYqNjZWBQUFki6tROXk5OjMmTN64403gh76vuuuuxQVFaX4+Hg9+eSTKi4uVlpamu655x7nlt1vfvMbSdK7774rn8+n7OxsxcTEaOPGjZo+fbrGjh3LqhMAAGiXsH6P1PLly1VUVOR8Cm/EiBFatGhRUJ8DBw4EfZnmc889p7Nnz2r8+PGqq6tTVlaW1q5dq7i4OEnSzp07VVVVJUm69957g45VU1Oj9PR0SdL8+fPVqVMneb1enT17VllZWdqwYYMSEhIkSZ07d9bixYv1zDPPqKmpST169NDMmTM1YcKEsLwWAACg44kwxpgfehI3q0AgILfb7Xz9AgAA+PEL5fs3/2sPAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAEkEKAADAUliDVF1dnbxer9xut9xut7xer06dOtXmGGOMSkpKlJqaqpiYGD388MPau3evs//kyZOaNGmSMjIyFBsbq27duqmoqEh+v9/ps2nTJkVERLS4bd++3en3zTff6JFHHtFtt92mxMREFRUVqaGhIeSvAwAA6JjCGqQKCgpUXV2tiooKVVRUqLq6Wl6vt80x8+bN08KFC7Vo0SJt375dHo9Hw4YNU319vSSptrZWtbW1WrBggfbs2aNly5apoqJCY8aMcY4xcOBAHTlyJGj7/e9/r/T0dN1///2SpIsXLyo/P1+nT5/Wxx9/rLfeeksrV67UlClTwveCAACAjsWEyb59+4wks3XrVqetsrLSSDL79+9vcUxTU5PxeDxmzpw5Ttu5c+eM2+02ZWVlrZ5rxYoVpkuXLqaxsbHF/Q0NDSYpKcnMnDnTaVuzZo2JjIw0hw8fdtrefPNN43K5jN/vb1eNfr/fSGp3fwAA8MML5ft32FakKisr5Xa7lZWV5bQNGDBAbrdbW7ZsaXFMTU2NfD6fcnJynDaXy6UhQ4a0OkaS/H6/4uPj1alTpxb3r1q1St99952eeOKJoPn16dNHqampTltubq7Onz+vnTt3trdMAABwC2s5eYSAz+dTUlJSs/akpCT5fL5Wx0hScnJyUHtycrIOHjzY4pgTJ05o1qxZGjduXKtzWbJkiXJzc5WWlhZ0rivPk5CQoC5durQ6v/Pnz+v8+fPOz4FAoNVzAgCAju+aV6RKSkpafZD78rZjxw5JUkRERLPxxpgW27/vyv2tjQkEAsrPz1dmZqaKi4tbPNa3336r999/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qXr27KmePXuqtLRUsbGxKigokHRpJSonJ0dnzpzRG2+8EfTQ91133aWoqCjn2Bs2bFBNTU2Lt/Xeffdd+Xw+ZWdnKyYmRhs3btT06dM1duxYVp0AAEC7hC1ISdLy5ctVVFTkfApvxIgRWrRoUVCfAwcOBH2Z5nPPPaezZ89q/PjxqqurU1ZWltauXau4uDhJ0s6dO1VVVSVJuvfee4OOVVNTo/T0dOfnJUuWaODAgerdu3ezuXXu3FmLFy/WM888o6amJvXo0UMzZ87UhAkTQlI7AADo+CKMMeaHnsTNKhAIyO12O1+/AAAAfvxC+f7N/9oDAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwRJACAACwFNYgVVdXJ6/XK7fbLbfbLa/Xq1OnTrU5xhijkpISpaamKiYmRg8//LD27t3r7D958qQmTZqkjIwMxcbGqlu3bioqKpLf7w86zueff66RI0cqMTFR8fHxGjRokDZu3BjU55tvvtEjjzyi2267TYmJiSoqKlJDQ0PI6gcAAB1bWINUQUGBqqurVVFRoYqKClVXV8vr9bY5Zt68eVq4cKEWLVqk7du3y+PxaNiwYaqvr5ck1dbWqra2VgsWLNCePXu0bNkyVVRUaMyYMUHHyc/P14ULF7Rhwwbt3LlTffv21fDhw+Xz+SRJFy9eVH5+vk6fPq2PP/5Yb731llauXKkpU6aE58UAAAAdjwmTffv2GUlm69atTltlZaWRZPbv39/imKamJuPxeMycOXOctnPnzhm3223KyspaPdeKFStMly5dTGNjozHGmOPHjxtJ5sMPP3T6BAIBI8l88MEHxhhj1qxZYyIjI83hw4edPm+++aZxuVzG7/e3q0a/328ktbs/AAD44YXy/TtsK1KVlZVyu93Kyspy2gYMGCC3260tW7a0OKampkY+n085OTlOm8vl0pAhQ1odI0l+v1/x8fHq1KmTJOnOO+9U79699frrr+v06dO6cOGCXn75ZSUnJ6t///7O/Pr06aPU1FTnOLm5uTp//rx27tzZ4nnOnz+vQCAQtAEAgFtXp3Ad2OfzKSkpqVl7UlKSc3utpTGSlJycHNSenJysgwcPtjjmxIkTmjVrlsaNG+e0RUREaN26dRo5cqTi4uIUGRmp5ORkVVRU6Pbbb3fOdeV5EhIS1KVLl1bnN3v2bL3wwgstFwwAAG4517wiVVJSooiIiDa3HTt2SLoUaK5kjGmx/fuu3N/amEAgoPz8fGVmZqq4uDio//jx45WUlKSPPvpI27Zt08iRIzV8+HAdOXKk1fNcbX7Tpk2T3+93tkOHDrVZBwAA6NiueUVq4sSJGjVqVJt90tPTtXv3bh09erTZvuPHjzdbCbrM4/FIurRalJKS4rQfO3as2Zj6+nrl5eWpa9euKi8vV+fOnZ19GzZs0Hvvvae6ujrFx8dLkhYvXqx169bptdde09SpU+XxeFRVVRV0zLq6OjU2NrY6P5fLJZfL1WbtAADg1nHNQSoxMVGJiYlX7ZednS2/369t27bpwQcflCRVVVXJ7/dr4MCBLY7p3r27PB6P1q1bp379+kmSGhoatHnzZs2dO9fpFwgElJubK5fLpVWrVik6OjroOGfOnJEkRUYGL7hFRkaqqanJmd9LL72kI0eOOKFt7dq1crlcznNUAAAAbQnbw+a9e/dWXl6eCgsLtXXrVm3dulWFhYUaPny4MjIynH69evVSeXm5pEu32iZPnqzS0lKVl5frs88+0xNPPKHY2FgVFBRIurQSlZOTo9OnT2vJkiUKBALy+Xzy+Xy6ePGipEshKSEhQaNHj9ann36qzz//XP/6r/+qmpoa5efnS5JycnKUmZkpr9erXbt2af369Xr22WdVWFjorGIBAAC0JWwPm0vS8uXLVVRU5HwKb8SIEVq0aFFQnwMHDgR9meZzzz2ns2fPavz48aqrq1NWVpbWrl2ruLg4SdLOnTudW3L33ntv0LFqamqUnp6uxMREVVRUaPr06fr5z3+uxsZG/fSnP9Xf/vY33XfffZKkqKgorV69WuPHj9egQYMUExOjgoICLViwIGyvBwAA6FgijDHmh57EzSoQCMjtdjtfvwAAAH78Qvn+zf/aAwAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsESQAgAAsBTWIFVXVyev1yu32y232y2v16tTp061OcYYo5KSEqWmpiomJkYPP/yw9u7d6+w/efKkJk2apIyMDMXGxqpbt24qKiqS3+8POs7nn3+ukSNHKjExUfHx8Ro0aJA2btwY1CciIqLZVlZWFrL6AQBAxxbWIFVQUKDq6mpVVFSooqJC1dXV8nq9bY6ZN2+eFi5cqEWLFmn79u3yeDwaNmyY6uvrJUm1tbWqra3VggULtGfPHi1btkwVFRUaM2ZM0HHy8/N14cIFbdiwQTt37lTfvn01fPhw+Xy+oH5Lly7VkSNHnG306NGhfREAAEDHZcJk3759RpLZunWr01ZZWWkkmf3797c4pqmpyXg8HjNnzhyn7dy5c8btdpuysrJWz7VixQrTpUsX09jYaIwx5vjx40aS+fDDD50+gUDASDIffPCB0ybJlJeX25Zo/H6/kWT8fr/1MQAAwI0VyvfvsK1IVVZWyu12Kysry2kbMGCA3G63tmzZ0uKYmpoa+Xw+5eTkOG0ul0tDhgxpdYwk+f1+xcfHq1OnTpKkO++8U71799brr7+u06dP68KFC3r55ZeVnJys/v37B42dOHGiEhMT9cADD6isrExNTU2tnuf8+fMKBAJBGwAAuHV1CteBfT6fkpKSmrUnJSU1u732/TGSlJycHNSenJysgwcPtjjmxIkTmjVrlsaNG+e0RUREaN26dRo5cqTi4uIUGRmp5ORkVVRU6Pbbb3f6zZo1S0OHDlVMTIzWr1+vKVOm6LvvvtOMGTNaPNfs2bP1wgsvtFk3AAC4dVzzilRJSUmLD2l/f9uxY4ekS4HmSsaYFtu/78r9rY0JBALKz89XZmamiouLg/qPHz9eSUlJ+uijj7Rt2zaNHDlSw4cP15EjR5x+M2bMUHZ2tvr27aspU6Zo5syZmj9/fqvzmjZtmvx+v7MdOnSozToAAEDHds0rUhMnTtSoUaPa7JOenq7du3fr6NGjzfYdP3682YrTZR6PR9KllamUlBSn/dixY83G1NfXKy8vT127dlV5ebk6d+7s7NuwYYPee+891dXVKT4+XpK0ePFirVu3Tq+99pqmTp3a4vkHDBigQCCgo0ePtjhHl8sll8vl/GyMkSRu8QEAcBO5/L59+X38elxzkEpMTFRiYuJV+2VnZ8vv92vbtm168MEHJUlVVVXy+/0aOHBgi2O6d+8uj8ejdevWqV+/fpKkhoYGbd68WXPnznX6BQIB5ebmyuVyadWqVYqOjg46zpkzZyRJkZHBC26RkZFtPgO1a9cuRUdHB93+a8vlTxKmpaW1qz8AAPjxqK+vl9vtvq5jhO0Zqd69eysvL0+FhYV6+eWXJUljx47V8OHDlZGR4fTr1auXZs+erUcffVQRERGaPHmySktL1bNnT/Xs2VOlpaWKjY1VQUGBpEtF5+Tk6MyZM3rjjTeCHvq+6667FBUVpezsbCUkJGj06NH64x//qJiYGL3yyiuqqalRfn6+JOndd9+Vz+dTdna2YmJitHHjRk2fPl1jx44NWnVqS2pqqg4dOqS4uLhWbz2mpaXp0KFDzspYR0a9HRv1dmzU27HdavVKbddsjFF9fb1SU1Ov/0TX/bm/Npw4ccI89thjJi4uzsTFxZnHHnvM1NXVBfWRZJYuXer83NTUZIqLi43H4zEul8s89NBDZs+ePc7+jRs3GkktbjU1NU6/7du3m5ycHHPHHXeYuLg4M2DAALNmzRpn/3//93+bvn37mq5du5rY2FjTp08f86c//cn5CoVQuNW+HoF6Ozbq7diot2O71eo15sbVHGFMCG4QokWBQEBut9v5eoaOjno7Nurt2Ki3Y7vV6pVuXM38rz0AAABLBKkwcrlcKi4ubvczVzc76u3YqLdjo96O7VarV7pxNXNrDwAAwBIrUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUu304Ycf6pFHHlFqaqoiIiL0X//1X+0e+8knn6hTp07q27dvUPsrr7yin/3sZ0pISFBCQoJ+8YtfaNu2baGduKVw1Pt9b731liIiIvSP//iP1z3XUAhXvadOndKECROUkpKi6Oho9e7dW2vWrAndxC2Fq94//elPysjIUExMjNLS0vSHP/xB586dC93ELV1rvZs2bWrxH7Lv378/qN/KlSuVmZkpl8ulzMxMlZeXh7GK9gtHvR3petXe3+9lP7brlRS+mjvKNau99YbimkWQaqfTp0/rvvvu06JFi65pnN/v1+OPP66hQ4c227dp0yb90z/9kzZu3KjKykp169ZNOTk5Onz4cKimbS0c9V528OBBPfvss/rZz352vdMMmXDU29DQoGHDhunrr7/WO++8owMHDuiVV17R3XffHappWwtHvcuXL9fUqVNVXFys//mf/9GSJUv0n//5n5o2bVqopm3Ntt4DBw7oyJEjztazZ09nX2VlpX73u9/J6/Xq008/ldfr1W9/+1tVVVWFevrXLBz1dsTrVVv1XvZjvF5J4am5I16z2qo3ZNessH5vegclyZSXl7er7+9+9zszY8YMU1xcbO677742+164cMHExcWZ11577fonGUKhrPfChQtm0KBB5tVXXzWjR482I0eODOlcQyFU9f7Hf/yH6dGjh2loaAj9JEMoVPVOmDDB/PznPw9qe+aZZ8zgwYNDNNPQaE+9l/8V1ZX/0ur7fvvb35q8vLygttzcXDNq1KgQzDJ0QlXvlW7m61V7670ZrlfGhK7mjnTNak+9obpmsSIVRkuXLtX//u//qri4uF39z5w5o8bGRt1xxx1hnll4tKfemTNn6q677tKYMWNu4MzC42r1rlq1StnZ2ZowYYKSk5PVp08flZaW6uLFizd4pqFxtXoHDx6snTt3Ord7vvrqK61Zs8b5R+E3o379+iklJUVDhw7Vxo0bg/ZVVlYqJycnqC03N1dbtmy5kVMMqbbqvdLNfr2Srl5vR7peXdZWzR3tmiW1XW+orlmdQjZbBPniiy80depUffTRR+rUqX0v89SpU3X33XfrF7/4RZhnF3rtqfeTTz7RkiVLVF1dfWMnFwbtqferr77Shg0b9Nhjj2nNmjX64osvNGHCBF24cEF//OMfb/CMr0976h01apSOHz+uwYMHyxijCxcu6KmnntLUqVNv8GyvX0pKiv785z+rf//+On/+vP7yl79o6NCh2rRpkx566CFJks/nU3JyctC45ORk+Xy+H2LK16U99V7pZr5etafejnS9ktpXc0e6ZrWn3lBdswhSYXDx4kUVFBTohRde0E9+8pN2jZk3b57efPNNbdq0SdHR0WGeYWi1p976+nr98z//s1555RUlJibe4BmGVnt/v01NTUpKStKf//xnRUVFqX///qqtrdX8+fNvqotSe+vdtGmTXnrpJS1evFhZWVn68ssv9fTTTyslJUXPP//8DZzx9cvIyFBGRobzc3Z2tg4dOqQFCxYEBYuIiIigccaYZm03g/bWe9nNfL2Srl5vR7peXdae33FHuWZJ7as3ZNesa7oRCGPM1e/P1tXVGUkmKirK2SIiIpy29evXB/WfP3++cbvdZvv27WGeuZ1Q1Ltr164W+0RERJioqCjz5Zdf3riCriJUv9+HHnrIDB06NGjsmjVrjCRz/vz5cJZwTUJV7+DBg82zzz4bNPYvf/mLiYmJMRcvXgxnCdfkavW25sUXXzS9evVyfk5LSzMLFy4M6rNw4ULTrVu3651iSIWq3stu9utVa75f7810vTImdL/jjnLNas2V9YbqmsWKVBjEx8drz549QW2LFy/Whg0b9M4776h79+5O+/z58/Xiiy/q/fff1/3333+jpxoS7ak3KiqqWZ8ZM2aovr5e//Zv/6a0tLQbOeXr0t7f76BBg/TXv/5VTU1Nioy89Dji559/rpSUFHXp0uWGz9tWe+s9c+aMU+dlUVFRMsbIdIB/6blr1y6lpKQ4P2dnZ2vdunX6wx/+4LStXbtWAwcO/CGmF3JX1it1jOtVa75fb69evTrM9aotV/6OO8o1qzVX1huqaxZBqp3+7//+T19++aXzc01Njaqrq3XHHXeoW7dumjZtmg4fPqzXX39dkZGR6tOnT9D4pKQkRUdHB7XPmzdPzz//vP76178qPT3debaia9eu6tq1640prBXhqPfKPrfffnuL7T+EcNT71FNP6d///d/19NNPa9KkSfriiy9UWlqqoqKiG1ZXa8JR7yOPPKKFCxeqX79+zjL5888/rxEjRigqKuqG1daSa6lXuvTdMunp6frpT3+qhoYGvfHGG1q5cqVWrlzpHOPpp5/WQw89pLlz52rkyJH629/+pg8++EAff/zxDa/vSuGot6Ncr6Sr13vl37b047peSeH5HXeUa5bUvnpDds265rWxW9Tlj1JeuY0ePdoYY8zo0aPNkCFDWh3f0sfF77nnnhaPWVxcHLY62isc9V7px/Rx4nDVu2XLFpOVlWVcLpfp0aOHeemll8yFCxfCU8Q1CEe9jY2NpqSkxPzDP/yDiY6ONmlpaWb8+PHX9JH6cLnWeufOnevUkZCQYAYPHmxWr17d7Lhvv/22ycjIMJ07dza9evUyK1euvEEVtS0c9Xak61V7f7/f92O6XhkTvpo7yjWrPfWG6poVYUwHWHMHAAD4AfA9UgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJYIUgAAAJb+PyA/JkZoNWL9AAAAAElFTkSuQmCC", + "image/png": "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", "text/plain": [ "
" ] @@ -811,9 +799,10 @@ } ], "source": [ - "plt.figure()\n", - "plt.plot(sparams['wavelengths'], sparams['o1@0,o4@0'])\n", - "plt.show()" + "if run_sim:\n", + " plt.figure()\n", + " plt.plot(sparams['wavelengths'], np.abs(sparams['o1@0,o4@0']))\n", + " plt.show()" ] }, {