From 55cf3705194917926aed7743521d60fd217ae128 Mon Sep 17 00:00:00 2001 From: Yannick Augenstein Date: Wed, 10 Dec 2025 11:53:42 +0100 Subject: [PATCH] docs: remove experimental autograd notes and update adjoint plugin references - Remove experimental feature notes from autograd notebooks - Update AutogradPlugin URLs to Autograd URLs - Replace 'adjoint plugin' text with 'autograd' or 'adjoint method' - Remove version 2.7 references - Clean up stale entries in import_file_mapping.json Resolves FXC-4452 --- Autograd10YBranchLevelSet.ipynb | 10 +- Autograd13Metasurface.ipynb | 2 +- Autograd15Antenna.ipynb | 2 - Autograd16BilayerCoupler.ipynb | 2 +- Autograd17BandPassFilter.ipynb | 2 +- Autograd18TopologyBend.ipynb | 2 +- Autograd19ApodizedCoupler.ipynb | 2 +- Autograd1Intro.ipynb | 4 +- Autograd20MetalensWaveguideTaper.ipynb | 2 +- Autograd21GaPLightExtractor.ipynb | 2 +- Autograd22PhotonicCrystal.ipynb | 2 +- Autograd24DigitalSplitter.ipynb | 2 +- Autograd26Smatrix.ipynb | 2 +- Autograd3InverseDesign.ipynb | 2 - Autograd4MultiObjective.ipynb | 72 +++++----- Autograd8WaveguideBend.ipynb | 2 +- Autograd9WDM.ipynb | 4 +- BilayerSiNEdgeCoupler.ipynb | 2 +- BroadbandDirectionalCoupler.ipynb | 2 +- GeneticAlgorithmReflector.ipynb | 16 +-- OpticalSwitchDBS.ipynb | 16 +-- ParticleSwarmOptimizedPBS.ipynb | 2 +- PlasmonicWaveguideCO2Sensor.ipynb | 2 +- Primer.ipynb | 8 +- SbendCMAES.ipynb | 16 +-- StripToSlotConverters.ipynb | 2 +- VortexMetasurface.ipynb | 2 +- misc/import_file_mapping.json | 175 +++++++++++++++++++------ 28 files changed, 221 insertions(+), 138 deletions(-) diff --git a/Autograd10YBranchLevelSet.ipynb b/Autograd10YBranchLevelSet.ipynb index c4a3afb1..42f28e0f 100644 --- a/Autograd10YBranchLevelSet.ipynb +++ b/Autograd10YBranchLevelSet.ipynb @@ -10,7 +10,7 @@ "\n", "This notebook demonstrates how to set up and run a parameterized level set-based optimization of a Y-branch. In this approach, we use `autograd` to generate a level set surface $\\phi(\\rho)$ given a set of control knots $\\rho$. The permittivity distribution is then obtained implicitly from the zero level set isocontour. Details about the level set method can be found [here](). Minimum gap and curvature penalty terms are introduced in the optimization to control the minimum feature size, hence improving device fabrication. In addition, we show how to tailor the initial level set function to a starting geometry, which is helpful to further optimize a device obtained by conventional design.\n", "\n", - "You can also find some interesting adjoint functionalities for shape optimization in [Inverse design optimization of a waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin5BoundaryGradients/) and [Adjoint-based shape optimization of a waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin8WaveguideBend/). If you are new to the finite-difference time-domain (FDTD) method, we highly recommend going through our [FDTD101](https://www.flexcompute.com/tidy3d/learning-center/fdtd101/) tutorials. FDTD simulations can diverge due to various reasons. If you run into any simulation divergence issues, please follow the steps outlined in our [troubleshooting guide](https://www.flexcompute.com/tidy3d/examples/notebooks/DivergedFDTDSimulation/) to resolve it.\n", + "You can also find some interesting adjoint functionalities for shape optimization in [Inverse design optimization of a waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd5BoundaryGradients/) and [Adjoint-based shape optimization of a waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd8WaveguideBend/). If you are new to the finite-difference time-domain (FDTD) method, we highly recommend going through our [FDTD101](https://www.flexcompute.com/tidy3d/learning-center/fdtd101/) tutorials. FDTD simulations can diverge due to various reasons. If you run into any simulation divergence issues, please follow the steps outlined in our [troubleshooting guide](https://www.flexcompute.com/tidy3d/examples/notebooks/DivergedFDTDSimulation/) to resolve it.\n", "\n", "\"Y-branch" ] @@ -1309,7 +1309,7 @@ "source": [ "## Fabrication Constraints\n", "\n", - "Fabrication constraints are introduced in the optimization as penalty terms to control the minimum gap ($f_{g}$) and radius of curvature ($f_{c}$) in the final design. Below, we use `autograd` to define the penalty terms following the formulation presented in `D. Vercruysse, N. V. Sapra, L. Su, R. Trivedi, and J. Vučković, \"Analytical level set fabrication constraints for inverse design,\" Scientific Reports 9, 8999 (2019).` [DOI: 10.1038/s41598-019-45026-0](https://doi.org/10.1038/s41598-019-45026-0). The gap penalty function controls the minimum feature size by limiting the second derivative based on the value of the function at that point. The curvature constraint is only relevant at the device boundary, where $\\phi = 0$, so we apply the smoothed Heaviside function to the level set surface before calculating the derivatives." + "Fabrication constraints are introduced in the optimization as penalty terms to control the minimum gap ($f_{g}$) and radius of curvature ($f_{c}$) in the final design. Below, we use `autograd` to define the penalty terms following the formulation presented in `D. Vercruysse, N. V. Sapra, L. Su, R. Trivedi, and J. Vu\u010dkovi\u0107, \"Analytical level set fabrication constraints for inverse design,\" Scientific Reports 9, 8999 (2019).` [DOI: 10.1038/s41598-019-45026-0](https://doi.org/10.1038/s41598-019-45026-0). The gap penalty function controls the minimum feature size by limiting the second derivative based on the value of the function at that point. The curvature constraint is only relevant at the device boundary, where $\\phi = 0$, so we apply the smoothed Heaviside function to the level set surface before calculating the derivatives." ] }, { @@ -2824,7 +2824,7 @@ "applications": [ "Passive photonic integrated circuit components" ], - "description": "This notebook demonstrates how to set up and run a simple parameterized level set-based optimization of a Y-branch. In this approach, we use jax to generate a level set surface given a set of design parameters. The permittivity distribution is then obtained from the zero level set isocontour. In addition, we show how to tailor the level set function to a starting geometry, which is helpful to further optimize a device obtained by conventional design.", + "description": "This notebook demonstrates how to set up and run a simple parameterized level set-based optimization of a Y-branch. In this approach, we use autograd to generate a level set surface given a set of design parameters. The permittivity distribution is then obtained from the zero level set isocontour. In addition, we show how to tailor the level set function to a starting geometry, which is helpful to further optimize a device obtained by conventional design.", "feature_image": "./img/y_branch_level_set.png", "features": [ "Adjoint inverse design" @@ -2847,8 +2847,8 @@ "pygments_lexer": "ipython3", "version": "3.13.5" }, - "title": "How to perform the inverse design of a y-branch using level set and the adjoint plugin in Tidy3D FDTD" + "title": "How to perform the inverse design of a y-branch using level set and autograd in Tidy3D FDTD" }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/Autograd13Metasurface.ipynb b/Autograd13Metasurface.ipynb index 9ae04b2f..d4cb0990 100644 --- a/Autograd13Metasurface.ipynb +++ b/Autograd13Metasurface.ipynb @@ -13,7 +13,7 @@ "\n", "\"Schematic\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/). For another example of metalens adjoint optimization in Tidy3D, see [this example](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin7Metalens/).\n" + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/). For another example of metalens adjoint optimization in Tidy3D, see [this example](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd7Metalens/).\n" ] }, { diff --git a/Autograd15Antenna.ipynb b/Autograd15Antenna.ipynb index e637af48..7a35867f 100644 --- a/Autograd15Antenna.ipynb +++ b/Autograd15Antenna.ipynb @@ -17,8 +17,6 @@ "\n", "We use topology optimization to design the patterning on this sheet of gold to maximizes the intensity enhancement in a central location, while respecting fabrication penalties.\n", "\n", - "This uses the native automatic differentiation support in `tidy3d` >= 2.7.0 through `autograd`.\n", - "\n", "\"Schematic\n", "\n", "## Set up\n", diff --git a/Autograd16BilayerCoupler.ipynb b/Autograd16BilayerCoupler.ipynb index a6ad3423..38f77747 100644 --- a/Autograd16BilayerCoupler.ipynb +++ b/Autograd16BilayerCoupler.ipynb @@ -7,7 +7,7 @@ "source": [ "# Inverse design optimization of a bilayer grating coupler\n", "\n", - "This example demonstrates the co-optimization of two separate design regions using tidy3d inverse design. Instead of the `adjoint` plugin, we use the native automatic differentiation support built into `tidy3d` versions 2.7 and later. In this framework, regular `tidy3d` components and `web.run()` functions are differentiable without any change of syntax.\n", + "This example demonstrates the co-optimization of two separate design regions using tidy3d inverse design with native automatic differentiation support. In this framework, regular `tidy3d` components and `web.run()` functions are differentiable without any change of syntax.\n", "\n", "We optimize a grating coupler for coupling efficiency with respect to \n", "1. the pattern partially etched into a Si coupling layer.\n", diff --git a/Autograd17BandPassFilter.ipynb b/Autograd17BandPassFilter.ipynb index e8a96f72..f60feb78 100644 --- a/Autograd17BandPassFilter.ipynb +++ b/Autograd17BandPassFilter.ipynb @@ -21,7 +21,7 @@ "\n", "\"Schematic\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/).\n" + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/).\n" ] }, { diff --git a/Autograd18TopologyBend.ipynb b/Autograd18TopologyBend.ipynb index 51f76f57..10eec9c9 100644 --- a/Autograd18TopologyBend.ipynb +++ b/Autograd18TopologyBend.ipynb @@ -13,7 +13,7 @@ "\n", "\"Schematic\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/).\n", + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/).\n", "\n", "> Note: to see the simple, [high level definition](https://www.flexcompute.com/tidy3d/examples/notebooks/InverseDesign/) of the inverse design problem using `tidy3d.plugins.invdes`, jump to the 2nd to last cell!\n", "\n", diff --git a/Autograd19ApodizedCoupler.ipynb b/Autograd19ApodizedCoupler.ipynb index 1f923ad7..d5006653 100644 --- a/Autograd19ApodizedCoupler.ipynb +++ b/Autograd19ApodizedCoupler.ipynb @@ -17,7 +17,7 @@ "\n", "If you are interested in other inverse design examples using tidy3d, you can find many of them [here](https://docs.flexcompute.com/projects/tidy3d/en/latest/notebooks/docs/features/autograd.html).\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/).\n" + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/).\n" ] }, { diff --git a/Autograd1Intro.ipynb b/Autograd1Intro.ipynb index f4aaa674..c81a03ee 100644 --- a/Autograd1Intro.ipynb +++ b/Autograd1Intro.ipynb @@ -1649,11 +1649,11 @@ "\n", "## Conclusion & Next Steps\n", "\n", - "This gives the most basic introduction to the principles behind the adjoint plugin.\n", + "This gives the most basic introduction to the principles behind autograd and the adjoint method.\n", "\n", "In subsequent notebooks, we will show how to:\n", " * Check the gradients returned by this method against brute force computed gradients for accuracy.\n", - " * Perform gradient-based optimization using the adjoint plugin." + " * Perform gradient-based optimization using autograd." ] } ], diff --git a/Autograd20MetalensWaveguideTaper.ipynb b/Autograd20MetalensWaveguideTaper.ipynb index 432a6750..078d91c8 100644 --- a/Autograd20MetalensWaveguideTaper.ipynb +++ b/Autograd20MetalensWaveguideTaper.ipynb @@ -2035,7 +2035,7 @@ "\n", "In the optimization, we only optimize the slot lengths. In principle, other parameters such as the slot positions, widths, and taper shape can be optimized at the same time to potentially achieve a better result. Users are encouraged to explore these possibilities. \n", "\n", - "In the follow-up work `Ma, Wei, Hou, Maojing, Luo, Ruiqi, Xiong, Bo, Liu, Nan, Liu, Guandong and Chu, Tao. \"Topologically-optimized on-chip metamaterials for ultra-short-range light focusing and mode-size conversion\" Nanophotonics, vol. 12, no. 6, 2023, pp. 1189-1197.` [DOI: 10.1515/nanoph-2023-0036](https://doi.org/10.1515/nanoph-2023-0036), the authors applied level-set-based shape optimization, which allows a larger parameter space compared to what's demonstrated in this notebook. Interested users are also encouraged to explore this direction by following our level set optimization [example](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin10YBranchLevelSet/). " + "In the follow-up work `Ma, Wei, Hou, Maojing, Luo, Ruiqi, Xiong, Bo, Liu, Nan, Liu, Guandong and Chu, Tao. \"Topologically-optimized on-chip metamaterials for ultra-short-range light focusing and mode-size conversion\" Nanophotonics, vol. 12, no. 6, 2023, pp. 1189-1197.` [DOI: 10.1515/nanoph-2023-0036](https://doi.org/10.1515/nanoph-2023-0036), the authors applied level-set-based shape optimization, which allows a larger parameter space compared to what's demonstrated in this notebook. Interested users are also encouraged to explore this direction by following our level set optimization [example](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd10YBranchLevelSet/). " ] } ], diff --git a/Autograd21GaPLightExtractor.ipynb b/Autograd21GaPLightExtractor.ipynb index 73bb8047..4bc9603c 100644 --- a/Autograd21GaPLightExtractor.ipynb +++ b/Autograd21GaPLightExtractor.ipynb @@ -13,7 +13,7 @@ "\n", "\"Schematic\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/). For another example of light extractor optimization in Tidy3D, see [this example](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd12LightExtractor/)." + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/). For another example of light extractor optimization in Tidy3D, see [this example](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd12LightExtractor/)." ] }, { diff --git a/Autograd22PhotonicCrystal.ipynb b/Autograd22PhotonicCrystal.ipynb index 46562f0d..d7be3899 100644 --- a/Autograd22PhotonicCrystal.ipynb +++ b/Autograd22PhotonicCrystal.ipynb @@ -17,7 +17,7 @@ "\n", "\"Schematic\"\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/).\n" + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/).\n" ] }, { diff --git a/Autograd24DigitalSplitter.ipynb b/Autograd24DigitalSplitter.ipynb index b1893c01..d96ed9c5 100644 --- a/Autograd24DigitalSplitter.ipynb +++ b/Autograd24DigitalSplitter.ipynb @@ -18,7 +18,7 @@ "\n", "\"Schematic\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/). For another example of power splitter optimization in Tidy3D, see [this example](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd10YBranchLevelSet/)." + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/). For another example of power splitter optimization in Tidy3D, see [this example](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd10YBranchLevelSet/)." ] }, { diff --git a/Autograd26Smatrix.ipynb b/Autograd26Smatrix.ipynb index 4738fe20..ba4c8642 100644 --- a/Autograd26Smatrix.ipynb +++ b/Autograd26Smatrix.ipynb @@ -13,7 +13,7 @@ "\n", "This example highlights the use of the `tidy3d.plugins.smatrix.ComponentModeler`, a powerful tool for optimizing devices based on their multi-port scattering properties. It simplifies the process by automatically running the necessary simulations to compute the full S-matrix, which we can then use directly in our objective function. For more details on the `ComponentModeler`, see [this tutorial](https://docs.flexcompute.com/projects/tidy3d/en/latest/notebooks/SMatrix.html).\n", "\n", - "If you are new to inverse design, we recommend our tutorials on the [Learning Center](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/)." + "If you are new to inverse design, we recommend our tutorials on the [Learning Center](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/)." ] }, { diff --git a/Autograd3InverseDesign.ipynb b/Autograd3InverseDesign.ipynb index 46f9c4cf..6770e1f7 100644 --- a/Autograd3InverseDesign.ipynb +++ b/Autograd3InverseDesign.ipynb @@ -13,8 +13,6 @@ "source": [ "# Inverse design optimization of a mode converter\n", "\n", - "> Note: native autograd support is an experimental feature in tidy3d 2.7. To see the original implementation of this notebook using jax and the adjoint plugin, refer to [this notebook](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin3InverseDesign/).\n", - "\n", "In this notebook, we will use inverse design and Tidy3D to create an integrated photonics component to convert a fundamental waveguide mode to a higher order mode." ] }, diff --git a/Autograd4MultiObjective.ipynb b/Autograd4MultiObjective.ipynb index 9927d346..45b89be8 100644 --- a/Autograd4MultiObjective.ipynb +++ b/Autograd4MultiObjective.ipynb @@ -7,7 +7,7 @@ "source": [ "# Multi-objective adjoint optimization\n", "\n", - "In this notebook, we will show how to use the adjoint plugin efficiently for objectives involving several simulations.\n", + "In this notebook, we will show how to use autograd efficiently for objectives involving several simulations.\n", "\n", "One common application of this involves defining an objective function that may depend on several different definitions of your structures, each with some geometric or material modification. For example, including the performance of devices with slightly larger or smaller feature sizes into one's objective can serve to make optimization more robust to fabrication errors. For more details, see this [paper](https://link.springer.com/article/10.1007/s10409-009-0240-z). " ] @@ -198,7 +198,9 @@ "cell_type": "markdown", "id": "56d3acce-0f8b-493d-9cf7-0568720827f5", "metadata": {}, - "source": "And then we write our combined, multi-objective over all of the `dy` values. We use the `web.run` function to run a list of these three simulations simultaneously." + "source": [ + "And then we write our combined, multi-objective over all of the `dy` values. We use the `web.run` function to run a list of these three simulations simultaneously." + ] }, { "cell_type": "code", @@ -360,7 +362,7 @@ "\n" ], "text/plain": [ - "\u001B[2;36m12:20:19 CEST\u001B[0m\u001B[2;36m \u001B[0mStarted working on Batch containing \u001B[1;36m3\u001B[0m tasks. \n" + "\u001b[2;36m12:20:19 CEST\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m3\u001b[0m tasks. \n" ] }, "metadata": {}, @@ -373,7 +375,7 @@ "\n" ], "text/plain": [ - "\u001B[2;36m12:20:22 CEST\u001B[0m\u001B[2;36m \u001B[0mMaximum FlexCredit cost: \u001B[1;36m0.075\u001B[0m for the whole batch. \n" + "\u001b[2;36m12:20:22 CEST\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m0.075\u001b[0m for the whole batch. \n" ] }, "metadata": {}, @@ -387,8 +389,8 @@ "\n" ], "text/plain": [ - "\u001B[2;36m \u001B[0m\u001B[2;36m \u001B[0mUse \u001B[32m'Batch.real_cost\u001B[0m\u001B[32m(\u001B[0m\u001B[32m)\u001B[0m\u001B[32m'\u001B[0m to get the billed FlexCredit cost after \n", - "\u001B[2;36m \u001B[0mthe Batch has completed. \n" + "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after \n", + "\u001b[2;36m \u001b[0mthe Batch has completed. \n" ] }, "metadata": {}, @@ -415,7 +417,7 @@ "\n" ], "text/plain": [ - "\u001B[2;36m12:22:42 CEST\u001B[0m\u001B[2;36m \u001B[0mBatch complete. \n" + "\u001b[2;36m12:22:42 CEST\u001b[0m\u001b[2;36m \u001b[0mBatch complete. \n" ] }, "metadata": {}, @@ -462,7 +464,7 @@ "\n" ], "text/plain": [ - "\u001B[2;36m12:22:50 CEST\u001B[0m\u001B[2;36m \u001B[0mStarted working on Batch containing \u001B[1;36m3\u001B[0m tasks. \n" + "\u001b[2;36m12:22:50 CEST\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m3\u001b[0m tasks. \n" ] }, "metadata": {}, @@ -475,7 +477,7 @@ "\n" ], "text/plain": [ - "\u001B[2;36m12:22:55 CEST\u001B[0m\u001B[2;36m \u001B[0mMaximum FlexCredit cost: \u001B[1;36m0.075\u001B[0m for the whole batch. \n" + "\u001b[2;36m12:22:55 CEST\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m0.075\u001b[0m for the whole batch. \n" ] }, "metadata": {}, @@ -489,8 +491,8 @@ "\n" ], "text/plain": [ - "\u001B[2;36m \u001B[0m\u001B[2;36m \u001B[0mUse \u001B[32m'Batch.real_cost\u001B[0m\u001B[32m(\u001B[0m\u001B[32m)\u001B[0m\u001B[32m'\u001B[0m to get the billed FlexCredit cost after \n", - "\u001B[2;36m \u001B[0mthe Batch has completed. \n" + "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after \n", + "\u001b[2;36m \u001b[0mthe Batch has completed. \n" ] }, "metadata": {}, @@ -517,7 +519,7 @@ "\n" ], "text/plain": [ - "\u001B[2;36m12:23:10 CEST\u001B[0m\u001B[2;36m \u001B[0mBatch complete. \n" + "\u001b[2;36m12:23:10 CEST\u001b[0m\u001b[2;36m \u001b[0mBatch complete. \n" ] }, "metadata": {}, @@ -765,7 +767,7 @@ { "data": { "text/html": "
 simulation.hdf5.gz ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%1.3/1.3 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34msimulation.hdf5.gz\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m1.3/1.3 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.hdf5.gz\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m1.3/1.3 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -794,7 +796,7 @@ { "data": { "text/html": "
 simulation.hdf5.gz ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%1.3/1.3 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34msimulation.hdf5.gz\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m1.3/1.3 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.hdf5.gz\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m1.3/1.3 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -823,7 +825,7 @@ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%62.7/62.7 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;32m↓\u001B[0m \u001B[1;34mmonitor_data.hdf5\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m62.7/62.7 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m62.7/62.7 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -958,7 +960,7 @@ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%38.3/38.3 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;32m↓\u001B[0m \u001B[1;34mmonitor_data.hdf5\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m38.3/38.3 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m38.3/38.3 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1040,7 +1042,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1228,7 +1230,7 @@ { "data": { "text/html": "
 jax_sim_vjp.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%6.2/6.2 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;32m↓\u001B[0m \u001B[1;34mjax_sim_vjp.hdf5\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m6.2/6.2 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mjax_sim_vjp.hdf5\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m6.2/6.2 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1522,7 +1524,7 @@ { "data": { "text/html": "
0: status = success ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n1: status = success ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n
\n", - "text/plain": "0: status = success \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100%\u001B[0m \u001B[36m0:00:00\u001B[0m\n1: status = success \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100%\u001B[0m \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "0: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\n1: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1604,7 +1606,7 @@ { "data": { "text/html": "
 simulation.hdf5.gz ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%1.3/1.3 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34msimulation.hdf5.gz\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m1.3/1.3 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.hdf5.gz\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m1.3/1.3 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1686,7 +1688,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1715,7 +1717,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1744,7 +1746,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1879,7 +1881,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1961,7 +1963,7 @@ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%38.3/38.3 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;32m↓\u001B[0m \u001B[1;34mmonitor_data.hdf5\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m38.3/38.3 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m38.3/38.3 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -1990,7 +1992,7 @@ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%62.7/62.7 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;32m↓\u001B[0m \u001B[1;34mmonitor_data.hdf5\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m62.7/62.7 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m62.7/62.7 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2019,7 +2021,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2048,7 +2050,7 @@ { "data": { "text/html": "
 simulation.hdf5.gz ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%1.3/1.3 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34msimulation.hdf5.gz\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m1.3/1.3 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.hdf5.gz\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m1.3/1.3 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2130,7 +2132,7 @@ { "data": { "text/html": "
0: status = success ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n1: status = success ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n
\n", - "text/plain": "0: status = success \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100%\u001B[0m \u001B[36m0:00:00\u001B[0m\n1: status = success \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100%\u001B[0m \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "0: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\n1: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2318,7 +2320,7 @@ { "data": { "text/html": "
 jax_sim_vjp.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%6.2/6.2 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;32m↓\u001B[0m \u001B[1;34mjax_sim_vjp.hdf5\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m6.2/6.2 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mjax_sim_vjp.hdf5\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m6.2/6.2 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2400,7 +2402,7 @@ { "data": { "text/html": "
 simulation.hdf5.gz ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%1.2/1.2 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34msimulation.hdf5.gz\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m1.2/1.2 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.hdf5.gz\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m1.2/1.2 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2429,7 +2431,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2511,7 +2513,7 @@ { "data": { "text/html": "
 simulation.hdf5.gz ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%1.2/1.2 kB?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34msimulation.hdf5.gz\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m1.2/1.2 kB\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.hdf5.gz\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m1.2/1.2 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2540,7 +2542,7 @@ { "data": { "text/html": "
0: status = success ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n1: status = success ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n
\n", - "text/plain": "0: status = success \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100%\u001B[0m \u001B[36m0:00:00\u001B[0m\n1: status = success \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100%\u001B[0m \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "0: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\n1: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" @@ -2569,7 +2571,7 @@ { "data": { "text/html": "
 jax_info.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%174/174 bytes?0:00:00\n
\n", - "text/plain": "\u001B[1;31m↑\u001B[0m \u001B[1;34mjax_info.json\u001B[0m \u001B[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[35m100.0%\u001B[0m • \u001B[32m174/174 bytes\u001B[0m • \u001B[31m?\u001B[0m • \u001B[36m0:00:00\u001B[0m\n" + "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34mjax_info.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m174/174 bytes\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" diff --git a/Autograd8WaveguideBend.ipynb b/Autograd8WaveguideBend.ipynb index 01cf3f82..1ad0575f 100644 --- a/Autograd8WaveguideBend.ipynb +++ b/Autograd8WaveguideBend.ipynb @@ -819,7 +819,7 @@ "\n", "With our gradients defined, we write a simple optimization loop using the [optax](https://optax.readthedocs.io/en/latest/) package. We use the `adam` method with a tunable number of steps and learning rate. The intermediate values, parameters, and data are stored for visualization later.\n", "\n", - "> Note: this will take several minutes. While not shown here, it is good practice to checkpoint your optimization results by saving to file on every iteration, or ensure you have a stable internet connection. See [this notebook](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin6GratingCoupler/) for more details. " + "> Note: this will take several minutes. While not shown here, it is good practice to checkpoint your optimization results by saving to file on every iteration, or ensure you have a stable internet connection. See [this notebook](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd6GratingCoupler/) for more details. " ] }, { diff --git a/Autograd9WDM.ipynb b/Autograd9WDM.ipynb index c170ccf5..c0a2020c 100644 --- a/Autograd9WDM.ipynb +++ b/Autograd9WDM.ipynb @@ -13,11 +13,11 @@ "\n", "\"Schematic\n", "\n", - "This demo combines the basic setup of our 3rd tutorial of a [mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin3InverseDesign/) with the multi-frequency feature introduced in Tidy3D version 2.5.\n", + "This demo combines the basic setup of our 3rd tutorial of a [mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd3InverseDesign/) with the multi-frequency feature introduced in Tidy3D version 2.5.\n", "\n", "We will follow many of the parameters outlined in `Cheung, Alfred KC, et al. \"Inverse-designed CWDM demultiplexer operated in O-band.\" Optical Fiber Communication Conference. Optica Publishing Group, 2024`. Although, to reduce the flex credit usage and run time, our setup will use a smaller device, run using a 2D simulation, and use a lower resolution.\n", "\n", - "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/).\n" + "If you are unfamiliar with inverse design, we also recommend our [intro to inverse design tutorials](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) and our [primer on automatic differentiation with tidy3d](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/).\n" ] }, { diff --git a/BilayerSiNEdgeCoupler.ipynb b/BilayerSiNEdgeCoupler.ipynb index a948f88c..7b06d4f0 100644 --- a/BilayerSiNEdgeCoupler.ipynb +++ b/BilayerSiNEdgeCoupler.ipynb @@ -21,7 +21,7 @@ "\n", "\"Schematic\n", "\n", - "In another case study, we investigate [inverse taper edge couplers](https://www.flexcompute.com/tidy3d/examples/notebooks/EdgeCoupler/) at the telecom frequency. In addition, different grating coupler designs including the [uniform grating coupler](https://www.flexcompute.com/tidy3d/examples/notebooks/GratingCoupler/), the [focusing apodized grating coupler](https://www.flexcompute.com/tidy3d/examples/notebooks/FocusedApodGC/), and the [inverse designed compact grating coupler](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin6GratingCoupler/) are also explored in various case studies. " + "In another case study, we investigate [inverse taper edge couplers](https://www.flexcompute.com/tidy3d/examples/notebooks/EdgeCoupler/) at the telecom frequency. In addition, different grating coupler designs including the [uniform grating coupler](https://www.flexcompute.com/tidy3d/examples/notebooks/GratingCoupler/), the [focusing apodized grating coupler](https://www.flexcompute.com/tidy3d/examples/notebooks/FocusedApodGC/), and the [inverse designed compact grating coupler](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd6GratingCoupler/) are also explored in various case studies. " ] }, { diff --git a/BroadbandDirectionalCoupler.ipynb b/BroadbandDirectionalCoupler.ipynb index c1637f9f..dc1c8ffa 100644 --- a/BroadbandDirectionalCoupler.ipynb +++ b/BroadbandDirectionalCoupler.ipynb @@ -1490,7 +1490,7 @@ "id": "050fbb8f", "metadata": {}, "source": [ - "The TMM analysis is only meant for an estimation of the optimal design parameters since TMM doesn't account for crucial details that can only be captured in a rigorous full wave simulation. Starting from the TMM analysis, we can further optimize $L_1$ and $L_2$ using 3D FDTD simulations. This can be done by performing a grid search (parameter sweeping), [adjoint optimization](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/), or other gradient-free optimization around the initial values. Since parameter sweeping and adjoint optimization have been demonstrated in various examples such as the [MMI](https://www.flexcompute.com/tidy3d/examples/notebooks/MMI1x4/) and the [mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin3InverseDesign/), we won't do it again here but only report the final optimized design.\n", + "The TMM analysis is only meant for an estimation of the optimal design parameters since TMM doesn't account for crucial details that can only be captured in a rigorous full wave simulation. Starting from the TMM analysis, we can further optimize $L_1$ and $L_2$ using 3D FDTD simulations. This can be done by performing a grid search (parameter sweeping), [adjoint optimization](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/), or other gradient-free optimization around the initial values. Since parameter sweeping and adjoint optimization have been demonstrated in various examples such as the [MMI](https://www.flexcompute.com/tidy3d/examples/notebooks/MMI1x4/) and the [mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd3InverseDesign/), we won't do it again here but only report the final optimized design.\n", "\n", "After some further optimization, we determine that the optimal $L_1$ and $L_2$ are 12.4 $\\mu m$ and 4.7 $\\mu m$, which is not far from the TMM estimation of 12.8$\\mu m$ and 4.4 $\\mu m$. Now we demonstrate the FDTD simulation on the optimized device. To define the DC structures, we use Tidy3D's built-in [PolySlab](https://docs.flexcompute.com/projects/tidy3d/en/latest/api/_autosummary/tidy3d.PolySlab.html). " ] diff --git a/GeneticAlgorithmReflector.ipynb b/GeneticAlgorithmReflector.ipynb index f949d5d0..95f5e4a4 100644 --- a/GeneticAlgorithmReflector.ipynb +++ b/GeneticAlgorithmReflector.ipynb @@ -41,21 +41,19 @@ "\n", "`Tidy3D` is a powerful tool for photonic design optimization due to its fast speed and high throughput. Besides GA, we have demonstrated particle swarm optimizations of a [polarization beam splitter](https://www.flexcompute.com/tidy3d/examples/notebooks/ParticleSwarmOptimizedPBS/) and a [bullseye cavity](https://www.flexcompute.com/tidy3d/examples/notebooks/BullseyeCavityPSO/), CMA-ES optimization of an [waveguide S-bend](https://www.flexcompute.com/tidy3d/examples/notebooks/SbendCMAES/), Bayesian optimization of a [Y-junction](https://www.flexcompute.com/tidy3d/examples/notebooks/BayesianOptimizationYJunction/), and direct binary search optimization of an [optical switch](https://www.flexcompute.com/tidy3d/examples/notebooks/OpticalSwitchDBS/). Furthermore, we also have a growing list of gradient-based adjoint optimization examples including\n", "\n", - "1. [Mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin3InverseDesign/),\n", + "1. [Mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd3InverseDesign/),\n", "\n", - "2. [Waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin5BoundaryGradients/),\n", + "2. [Waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd5BoundaryGradients/),\n", "\n", - "3. [Metalens](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin7Metalens/),\n", + "3. [Metalens](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd7Metalens/),\n", "\n", - "4. [Waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin8WaveguideBend/), \n", + "4. [Waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd8WaveguideBend/), \n", "\n", - "5. [Multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin9WDM/),\n", + "5. [Multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd9WDM/),\n", "\n", - "6. [Y-branch](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin10YBranchLevelSet/),\n", + "6. [Y-branch](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd10YBranchLevelSet/),\n", "\n", - "7. [MZI circuit](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin11CircuitMZI/),\n", - "\n", - "8. [Light extractor](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin12LightExtractor/)." + "7. [Light extractor](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd12LightExtractor/)." ] }, { diff --git a/OpticalSwitchDBS.ipynb b/OpticalSwitchDBS.ipynb index 0a2a9654..1add4645 100644 --- a/OpticalSwitchDBS.ipynb +++ b/OpticalSwitchDBS.ipynb @@ -35,21 +35,19 @@ "\n", "`Tidy3D` is a powerful tool for photonic design optimization due to its fast speed and high throughput. Besides DBS, we have demonstrated particle swarm optimizations of a [polarization beam splitter](https://www.flexcompute.com/tidy3d/examples/notebooks/ParticleSwarmOptimizedPBS/) and a [bullseye cavity](https://www.flexcompute.com/tidy3d/examples/notebooks/BullseyeCavityPSO/), genetic algorithm optimization of an [on-chip reflector](https://www.flexcompute.com/tidy3d/examples/notebooks/GeneticAlgorithmReflector/), and CMA-ES optimization of a [waveguide S-bend](https://www.flexcompute.com/tidy3d/examples/notebooks/SbendCMAES/). Furthermore, we also have a growing list of gradient-based adjoint optimization examples including\n", "\n", - "1. [Mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin3InverseDesign/),\n", + "1. [Mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd3InverseDesign/),\n", "\n", - "2. [Waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin5BoundaryGradients/),\n", + "2. [Waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd5BoundaryGradients/),\n", "\n", - "3. [Metalens](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin7Metalens/),\n", + "3. [Metalens](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd7Metalens/),\n", "\n", - "4. [Waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin8WaveguideBend/), \n", + "4. [Waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd8WaveguideBend/), \n", "\n", - "5. [Multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin9WDM/),\n", + "5. [Multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd9WDM/),\n", "\n", - "6. [Y-branch](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin10YBranchLevelSet/),\n", + "6. [Y-branch](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd10YBranchLevelSet/),\n", "\n", - "7. [MZI circuit](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin11CircuitMZI/),\n", - "\n", - "8. [Light extractor](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin12LightExtractor/)." + "7. [Light extractor](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd12LightExtractor/)." ] }, { diff --git a/ParticleSwarmOptimizedPBS.ipynb b/ParticleSwarmOptimizedPBS.ipynb index 5ba4b705..dba3b90d 100644 --- a/ParticleSwarmOptimizedPBS.ipynb +++ b/ParticleSwarmOptimizedPBS.ipynb @@ -21,7 +21,7 @@ "\n", "\"Schematic\n", "\n", - "Besides the PSO introduced in this notebook, Tidy3D also provides a built-in adjoint optimization plugin. Unlike PSO, adjoint optimization is gradient-based and thus more efficient. To learn more, please refer to the adjoint optimizations of a [wavelength division multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin9WDM/), a [mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin3InverseDesign/), and a [waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin5BoundaryGradients/). If you are new to adjoint optimization, please start with the [tutorial](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/) on adjoint basis and our [video lectures](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) on inverse design." + "Besides the PSO introduced in this notebook, Tidy3D also provides built-in automatic differentiation support for adjoint optimization. Unlike PSO, adjoint optimization is gradient-based and thus more efficient. To learn more, please refer to the adjoint optimizations of a [wavelength division multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd9WDM/), a [mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd3InverseDesign/), and a [waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd5BoundaryGradients/). If you are new to adjoint optimization, please start with the [tutorial](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/) on adjoint basis and our [video lectures](https://www.flexcompute.com/tidy3d/learning-center/inverse-design/) on inverse design." ] }, { diff --git a/PlasmonicWaveguideCO2Sensor.ipynb b/PlasmonicWaveguideCO2Sensor.ipynb index 8cb88469..08f7a26c 100644 --- a/PlasmonicWaveguideCO2Sensor.ipynb +++ b/PlasmonicWaveguideCO2Sensor.ipynb @@ -90,7 +90,7 @@ "id": "78842d57", "metadata": {}, "source": [ - "Define the geometric parameters of the sensor. These values have been optimized in the [reference](https://doi.org/10.1364/OE.423141). If further optimization is needed, [parameter sweeps](https://www.flexcompute.com/tidy3d/examples/notebooks/ParameterScan/) or [adjoint optimization](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin1Intro/) can be applied." + "Define the geometric parameters of the sensor. These values have been optimized in the [reference](https://doi.org/10.1364/OE.423141). If further optimization is needed, [parameter sweeps](https://www.flexcompute.com/tidy3d/examples/notebooks/ParameterScan/) or [adjoint optimization](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd1Intro/) can be applied." ] }, { diff --git a/Primer.ipynb b/Primer.ipynb index b208d25a..5ec1a3f7 100644 --- a/Primer.ipynb +++ b/Primer.ipynb @@ -3543,15 +3543,15 @@ "\n", "### Simple Inverse Design \n", "\n", - "The goal of invdes is to provide a simpler interface for setting up most practical inverse design problems. It wraps the lower-level adjoint plugin of Tidy3D to perform the gradient calculations, but allows the user to focus on the important aspects of their design without getting into the details of autograd.\n", + "The goal of invdes is to provide a simpler interface for setting up most practical inverse design problems. It wraps tidy3d's native automatic differentiation support to perform the gradient calculations, but allows the user to focus on the important aspects of their design without getting into the details of autograd.\n", "\n", - "For more details, see the corresponding [tutorial](../notebooks/AutogradPlugin0Quickstart.html).\n", + "For more details, see the corresponding [tutorial](../notebooks/Autograd0Quickstart.html).\n", "\n", "### Adjoint\n", "\n", - "The `adjoint` plugin allows users to write functions involving a Tidy3D `Simulation` run and take efficient gradients of those functions using `jax`. It requires setting up `Simulation` objects using jax-compatible analogues defined in the plugin.\n", + "The native autograd integration allows users to write functions involving a Tidy3D `Simulation` run and take efficient gradients of those functions. Regular `tidy3d` components and `web.run()` are differentiable without any change of syntax.\n", "\n", - "For more details, see the corresponding [tutorial](../notebooks/AutogradPlugin1Intro.html).\n", + "For more details, see the corresponding [tutorial](../notebooks/Autograd1Intro.html).\n", "\n", "\n", "### Resonance Finder\n", diff --git a/SbendCMAES.ipynb b/SbendCMAES.ipynb index c74f614a..92dadf1f 100644 --- a/SbendCMAES.ipynb +++ b/SbendCMAES.ipynb @@ -48,21 +48,19 @@ "\n", "`Tidy3D` is a powerful tool for photonic design optimization due to its fast speed and high throughput. Besides CMA-ES, we have demonstrated particle swarm optimizations of a [polarization beam splitter](https://www.flexcompute.com/tidy3d/examples/notebooks/ParticleSwarmOptimizedPBS/) and a [bullseye cavity](https://www.flexcompute.com/tidy3d/examples/notebooks/BullseyeCavityPSO/), genetic algorithm optimization of an [on-chip reflector](https://www.flexcompute.com/tidy3d/examples/notebooks/GeneticAlgorithmReflector/), and direct binary search optimization of an [optical switch](https://www.flexcompute.com/tidy3d/examples/notebooks/OpticalSwitchDBS/). Furthermore, we also have a growing list of gradient-based adjoint optimization examples including\n", "\n", - "1. [Mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin3InverseDesign/),\n", + "1. [Mode converter](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd3InverseDesign/),\n", "\n", - "2. [Waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin5BoundaryGradients/),\n", + "2. [Waveguide taper](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd5BoundaryGradients/),\n", "\n", - "3. [Metalens](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin7Metalens/),\n", + "3. [Metalens](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd7Metalens/),\n", "\n", - "4. [Waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin8WaveguideBend/), \n", + "4. [Waveguide bend](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd8WaveguideBend/), \n", "\n", - "5. [Multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin9WDM/),\n", + "5. [Multiplexer](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd9WDM/),\n", "\n", - "6. [Y-branch](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin10YBranchLevelSet/),\n", + "6. [Y-branch](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd10YBranchLevelSet/),\n", "\n", - "7. [MZI circuit](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin11CircuitMZI/),\n", - "\n", - "8. [Light extractor](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin12LightExtractor/)." + "7. [Light extractor](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd12LightExtractor/)." ] }, { diff --git a/StripToSlotConverters.ipynb b/StripToSlotConverters.ipynb index 91048a2f..deef71a7 100644 --- a/StripToSlotConverters.ipynb +++ b/StripToSlotConverters.ipynb @@ -1301,7 +1301,7 @@ "source": [ "Different designs of the converters have their advantages and disadvantages. The choice of the design should be based on fabrication capability, constraints on device footprint, and the required coupling efficiency. In this notebook, we only simulated the ideal designs. To be more practical, simulations that consider the fabrication constraints need to be performed. As introduced in the referenced papers, the pointy tips of the tapers will have a finite width due to the finite fabrication resolution. Simulations with more realistic device geometry will be extremely useful for design and testing.\n", "\n", - "In addition, the design parameters used in this notebook are optimized for the specific waveguide widths, thickness, and materials. For a different platform, the parameters need to be re-optimized, which can be done using the adjoint method as provided in Tidy3D's adjoint plugin. Users follow a similar procedure as introduced in the [tutorial](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin5BoundaryGradients/) of optimizing a waveguide taper." + "In addition, the design parameters used in this notebook are optimized for the specific waveguide widths, thickness, and materials. For a different platform, the parameters need to be re-optimized, which can be done using the adjoint method as provided in tidy3d's native automatic differentiation integration. Users follow a similar procedure as introduced in the [tutorial](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd5BoundaryGradients/) of optimizing a waveguide taper." ] }, { diff --git a/VortexMetasurface.ipynb b/VortexMetasurface.ipynb index 34b01055..cb396e96 100644 --- a/VortexMetasurface.ipynb +++ b/VortexMetasurface.ipynb @@ -18,7 +18,7 @@ "\"Schematic\n", "\n", "\n", - "For more examples involving metamaterials and metasurfaces, please refer to our [example library](https://www.flexcompute.com/tidy3d/learning-center/example-library/), were you can find interesting case studies such as [Gradient metasurface reflector](https://www.flexcompute.com/tidy3d/examples/notebooks/GradientMetasurfaceReflector/), [Dielectric metasurface absorber](https://www.flexcompute.com/tidy3d/examples/notebooks/DielectricMetasurfaceAbsorber/), [Tunable chiral metasurface based on phase change material](https://www.flexcompute.com/tidy3d/examples/notebooks/TunableChiralMetasurface/) and a [inverse-design-optimized diffractive metasurface](https://www.flexcompute.com/tidy3d/examples/notebooks/AutogradPlugin13Metasurface/).\n", + "For more examples involving metamaterials and metasurfaces, please refer to our [example library](https://www.flexcompute.com/tidy3d/learning-center/example-library/), were you can find interesting case studies such as [Gradient metasurface reflector](https://www.flexcompute.com/tidy3d/examples/notebooks/GradientMetasurfaceReflector/), [Dielectric metasurface absorber](https://www.flexcompute.com/tidy3d/examples/notebooks/DielectricMetasurfaceAbsorber/), [Tunable chiral metasurface based on phase change material](https://www.flexcompute.com/tidy3d/examples/notebooks/TunableChiralMetasurface/) and a [inverse-design-optimized diffractive metasurface](https://www.flexcompute.com/tidy3d/examples/notebooks/Autograd13Metasurface/).\n", " \n", "\n", "If you are new to the finite-difference time-domain (FDTD) method, we highly recommend going through our [FDTD101](https://www.flexcompute.com/fdtd101/) tutorials. \n", diff --git a/misc/import_file_mapping.json b/misc/import_file_mapping.json index f484a307..c16d7cfe 100644 --- a/misc/import_file_mapping.json +++ b/misc/import_file_mapping.json @@ -1,43 +1,134 @@ { - "8ChannelDemultiplexer.ipynb": [ "8ChannelDemultiplexer.gds"], - "90OpticalHybrid.ipynb": [ "mmi_stl.stl", "optical_hybrid_stl.stl"], - "AutogradPlugin3InverseDesign.ipynb": [ "inv_des_mode_conv.gds"], - "AutogradPlugin6GratingCoupler.ipynb": [ "invdes_gc.json", "inverse_designed_gc.gds"], - "AutogradPlugin8WaveguideBend.ipynb": [ "inverse_des_wg_bend.gds"], - "AutogradPlugin9WDM.ipynb": [ "inv_des_wdm.gds"], - "AutogradPlugin10YBranchLevelSet.ipynb": [ "y_branch_fab.pkl", "inv_des_ybranch.gds"], - "AutogradPlugin12LightExtractor.ipynb": [ "qe_light_coupler.pkl", "inv_des_light_extractor.gds"], - "Autograd6GratingCoupler.ipynb": [ "grating_coupler_history_autograd.pkl"], - "CMOSRGBSensor": [ "red_eps.csv", "green_eps.csv", "blue_eps.csv"], - "DifferentialStripline.ipynb": [ "stripline_fem_mode.csv", "stripline_fit_mode.txt", "stripline_fem_sparam_long.csv", "stripline_fit_sparams_long.txt"], - "GroundedCPWViaFence.ipynb": [ "gcpw_sain_experimental.csv", "gcpw_sain_simulated.csv"], - "CPWRFPhotonics1.ipynb": [ "cpw_fem_mode.csv", "cpw_fit_mode.csv", "cpw_fem_sparam.csv", "cpw_fit_sparam" ], - "CPWRFPhotonics2.ipynb": [ "seg_fem_sparam.csv" ], - "SMAEdgeMount.ipynb": [ "SMA_model.stl" ], - "EdgeFeedPatchAntennaBenchmark.ipynb": [ "edge_feed_patch_fem.csv", "edge_feed_patch_fem_gain.csv"], - "HybridMicrostripCPWBandpassFilter.ipynb": [ "mccpw_fem.csv"], - "MicroringRFElectrode.ipynb": [ "mrr_fem_sparam.csv", "mrr-electrode.gds"], - "WPDHarmonicSuppression1.ipynb": [ "wpd-part1-fem.csv"], - "WPDHarmonicSuppression2.ipynb": [ "wpd-part2-fem.csv"], - "WPDHarmonicSuppression3.ipynb": [ "wpd-part3-fem.csv"], - "Fitting.ipynb": [ "nk_data.csv"], - "FocusedApodGC.ipynb": [ "Focusing_GC.gds"], - "GDSImport.ipynb": [ "coupler.gds"], - "GDSExport.ipynb": [ "dc_export_gds.gds"], - "Near2FarSphereRCS.ipynb": [ "mie_bRCS_phi0_2lambda_epsr4.txt", "mie_bRCS_phi90_2lambda_epsr4.txt"], - "NonHermitianMetagratings.ipynb": [ "Cr_Sytchkova.csv"], - "OptimizedL3.ipynb": [ "optimized_L3_holes.txt"], - "PlasmonicNanoparticle.ipynb": [ "mie_plasmonic_flux_abs.txt", "mie_plasmonic_flux_scat.txt", "mie_plasmonic_RCS.txt"], - "PlasmonicYagiUdaNanoantenna.ipynb": [ "McPeak.csv"], - "STLImport.ipynb": [ "box.stl", "box_with_hole.stl", "box_with_indent.stl", "icecream_nonunionized.stl", "icecream_unionized.stl", "two_boxes.stl"], - "RadiativeCoolingGlass.ipynb": [ "mat_SiO2.csv", "mat_Al2O3.csv"], - "XarrayTutorial.ipynb": [ "gaussian_beam_data.h5", "mmi_simulation_data.h5", "waveguide_mode_data.h5"], - "TunableChiralMetasurface.ipynb": [ "GST_A_nk.csv", "GST_C_nk.csv"], - "MoS2Waveguide.ipynb": [ "MoS2_nk.csv"], - "FreeFormCoupler.ipynb": [ "chip_to_chip_coupler.stl"], - "UnstructuredData.ipynb": [ "unstructured_grid.vtu"], - "MMIMeepBenchmark.ipynb": [ "MeepMMI.txt"], - "Autograd13Metasurface.ipynb": [ "logo.png"], - "DirectionalCoupler.ipynb": [ "coupler.gds"], - "MultipoleExpansion.ipynb": [ "mie_electric_dipole", "mie_magnetic_dipole", "mie_electric_quadrupole", "mie_magnetic_quadrupole"] -} + "8ChannelDemultiplexer.ipynb": [ + "8ChannelDemultiplexer.gds" + ], + "90OpticalHybrid.ipynb": [ + "mmi_stl.stl", + "optical_hybrid_stl.stl" + ], + "Autograd6GratingCoupler.ipynb": [ + "grating_coupler_history_autograd.pkl" + ], + "CMOSRGBSensor": [ + "red_eps.csv", + "green_eps.csv", + "blue_eps.csv" + ], + "DifferentialStripline.ipynb": [ + "stripline_fem_mode.csv", + "stripline_fit_mode.txt", + "stripline_fem_sparam_long.csv", + "stripline_fit_sparams_long.txt" + ], + "GroundedCPWViaFence.ipynb": [ + "gcpw_sain_experimental.csv", + "gcpw_sain_simulated.csv" + ], + "CPWRFPhotonics1.ipynb": [ + "cpw_fem_mode.csv", + "cpw_fit_mode.csv", + "cpw_fem_sparam.csv", + "cpw_fit_sparam" + ], + "CPWRFPhotonics2.ipynb": [ + "seg_fem_sparam.csv" + ], + "SMAEdgeMount.ipynb": [ + "SMA_model.stl" + ], + "EdgeFeedPatchAntennaBenchmark.ipynb": [ + "edge_feed_patch_fem.csv", + "edge_feed_patch_fem_gain.csv" + ], + "HybridMicrostripCPWBandpassFilter.ipynb": [ + "mccpw_fem.csv" + ], + "MicroringRFElectrode.ipynb": [ + "mrr_fem_sparam.csv", + "mrr-electrode.gds" + ], + "WPDHarmonicSuppression1.ipynb": [ + "wpd-part1-fem.csv" + ], + "WPDHarmonicSuppression2.ipynb": [ + "wpd-part2-fem.csv" + ], + "WPDHarmonicSuppression3.ipynb": [ + "wpd-part3-fem.csv" + ], + "Fitting.ipynb": [ + "nk_data.csv" + ], + "FocusedApodGC.ipynb": [ + "Focusing_GC.gds" + ], + "GDSImport.ipynb": [ + "coupler.gds" + ], + "GDSExport.ipynb": [ + "dc_export_gds.gds" + ], + "Near2FarSphereRCS.ipynb": [ + "mie_bRCS_phi0_2lambda_epsr4.txt", + "mie_bRCS_phi90_2lambda_epsr4.txt" + ], + "NonHermitianMetagratings.ipynb": [ + "Cr_Sytchkova.csv" + ], + "OptimizedL3.ipynb": [ + "optimized_L3_holes.txt" + ], + "PlasmonicNanoparticle.ipynb": [ + "mie_plasmonic_flux_abs.txt", + "mie_plasmonic_flux_scat.txt", + "mie_plasmonic_RCS.txt" + ], + "PlasmonicYagiUdaNanoantenna.ipynb": [ + "McPeak.csv" + ], + "STLImport.ipynb": [ + "box.stl", + "box_with_hole.stl", + "box_with_indent.stl", + "icecream_nonunionized.stl", + "icecream_unionized.stl", + "two_boxes.stl" + ], + "RadiativeCoolingGlass.ipynb": [ + "mat_SiO2.csv", + "mat_Al2O3.csv" + ], + "XarrayTutorial.ipynb": [ + "gaussian_beam_data.h5", + "mmi_simulation_data.h5", + "waveguide_mode_data.h5" + ], + "TunableChiralMetasurface.ipynb": [ + "GST_A_nk.csv", + "GST_C_nk.csv" + ], + "MoS2Waveguide.ipynb": [ + "MoS2_nk.csv" + ], + "FreeFormCoupler.ipynb": [ + "chip_to_chip_coupler.stl" + ], + "UnstructuredData.ipynb": [ + "unstructured_grid.vtu" + ], + "MMIMeepBenchmark.ipynb": [ + "MeepMMI.txt" + ], + "Autograd13Metasurface.ipynb": [ + "logo.png" + ], + "DirectionalCoupler.ipynb": [ + "coupler.gds" + ], + "MultipoleExpansion.ipynb": [ + "mie_electric_dipole", + "mie_magnetic_dipole", + "mie_electric_quadrupole", + "mie_magnetic_quadrupole" + ] +} \ No newline at end of file