Lectures πŸ“–#

Welcome to our lecture series!

FDTD 101#

FDTD 101 is an introduction to the Finite-Difference Time-Domain Method for Electromagnetics. We will walk you through the basics of setting up and running electromagnetic simulations using the FDTD method. Through this course, you will gain a knowledge of the fundamental concepts behind electromagnetic simulation as well as many advanced topics worth considering when you set up your simulations.

Lecture 1: Introduction to FDTD Simulation

Lecture 2: Using FDTD to Compute a Transmission Spectrum

Lecture 3: Applying FDTD to Photonic Crystal Slab Simulation

Lecture 4: Prelude to Integrated Photonics Simulation: Mode Injection

Lecture 5: Modeling dispersive material in FDTD

Lecture 6: Introduction to perfectly matched layer (PML)

Lecture 7: Time step size and CFL condition in FDTD

Lecture 8: Numerical dispersion in FDTD

Lecture 9: Dielectric constant assignment on Yee grids

Lecture 10: Introduction to subpixel averaging

Future-Ready FDTD Workshop#

The Future-Ready FDTD Workshop Series is a collaborative effort between Tidy3D, iOptics, and Optica. The series aims to present a range of workshops focused on FDTD simulations for photonic devices. The workshop sessions took place from February 9th to March 8th, 2024, and covered theoretical foundations of concepts such as the FDTD method, Bragg filters and reflectors, multimode photonic design, photonic crystals, and inverse design. Each session included a live demonstration of setting up and running an FDTD simulation. Additionally, a challenge was proposed to enhance participants’ skills. Challenge solutions are available upon request through our technical support.

Lecture 1: The FDTD Method Demystified

Lecture 2: Multimode Photonics Design Made Easy

Lecture 3: Designing Filters and Reflectors with Bragg Gratings

Lecture 4: Photonic Crystal Slabs Controlling and Confining Light on the Nanoscale

Lecture 5: Inverse Design in Photonics An Introduction

More lectures coming soon!

Inverse design in photonics#

Adjoint optimization is a powerful tool that has gained significant attention in the photonics community. It leverages the adjoint method, a mathematical technique used to calculate gradients or derivatives of performance metrics with respect to design parameters. This method is particularly useful in photonics, where devices often have a large number of design parameters and complex performance metrics. This course is designed to provide a comprehensive understanding of the principles and applications of adjoint optimization in the field of photonics.

Lecture 1: Introduction to Inverse Design In Photonics

Lecture 2: Adjoint Method

Lecture 3: Adjoint Optimization

Lecture 4: Fabrication Constraints

Lecture 5: Shape Optimization

Lecture 6: Level Set Parameterization

More lectures coming soon!

Fabrication-aware inverse design#

The October 9, 2025 seminar walks through a complete dual-layer grating coupler workflow: start from a uniform baseline, pull a strong seed design with Bayesian optimization, switch to adjoint gradients for per-tooth control, study fabrication sensitivities, and close the loop with measurement-driven calibration. Everything runs inside Tidy3D, so you can rerun the exact same jobs or adapt the utilities to your own device stack.

Seminar recording: YouTube link

Notebook lineup#

Getting the code#

The notebooks are available in the Tidy3D notebooks repository. You will need the .ipynb files as well as the helper scripts setup.py and optim.py to run the examples.

How to run the series#

  1. Install tidy3d and bayesian-optimization (pip install tidy3d bayesian-optimization) and configure your API key.

  2. Execute the notebooks in order; each step writes results into results/ and later notebooks assume those JSON files exist.

Supporting assets#

  • setup.py - shared simulation builders, fabrication constraints, and helper functions.

  • optim.py - a lightweight, autograd-friendly Adam implementation with parameter clipping.

  • results/ - JSON checkpoints (Bayes best point, adjoint refinements, robust design) consumed by subsequent notebooks.