GPU-native inverse design of a high-Q nanobeam cavity

GPU-native inverse design of a high-Q nanobeam cavity#

validated · 2026-08-28

invdesresolution 1invdescavityhigh_qfitted_qautodiffsymmetrybinaryfabrication_constraints

This case checks optimization performance: the best objective reached, not geometry identity or convergence speed.

Open the complete executed tutorial →

Parameters → exact geometry → voxelized material → local FDTDX run → simulated field → quantitative analysis. Every code cell and retained output is visible, and the .ipynb source is downloadable.

Inverse design of a high-Q nanobeam cavity

This page is the compact benchmark record. The linked notebook is the primary scientific documentation and contains the actual simulation evidence.

What is exercised#

Starts from the unchanged documented eight-hole nanobeam cavity. A generic mirror-completion helper fills every nominal period that fits before the non-PML boundary; the silicon beam itself continues through the PML. All ten positive-side hole centers and radii are then independent bounded controls, while x/y field parity generates the other quarters. The objective is a differentiable multi-window pole fit to 0.6 ps of post-source ringdown, and exact checkpointed FDTD supplies the GPU-native gradient. Binary 8x8 subcell circle fills are used in the forward pass, with a smooth straight-through shape derivative and Armijo backtracking. Final metrics come only from a fresh 3 ps rebuild of literal symmetric cylinders analyzed by the independent local ResonanceFinder. The unchanged Q=35125.30 defines the twofold target; the stricter second metric also requires no regression from the unoptimized mirror-completed Q=92493.30 control. Hard center/radius bounds guarantee at least 65 nm silicon bridges; the realized minimum is reported at runtime. A separate held-out 20nm replay with matched 0.30um PML thickness retains a 3.12x optimized/baseline Q ratio; it is documented as robustness evidence, not used as a pass metric because the 500nm beam spans an odd cell count.

This case runs at its declared full benchmark resolution (resolution factor 1.0).

Reconstruction choices#

This is a performance-equivalence reconstruction of the official notebook, not a pixel copy. The design is optimized by differentiating a real FDTDX time-domain solve. No final Tidy3D material pixels are imported. The recorded best result uses a documented Yee grid, — time steps per solve, and 1 local updates, versus — updates in the published Tidy3D run.

The acceptance target is 95% of the published best FOM. Iteration count may be up to three times the Tidy3D count, because device performance—not matching a particular topology or optimizer speed—is the scientific claim. Incident power is calibrated independently, port power is checked for passivity, and wavelength-routing cases share one physical filtering/projection policy.

Recorded result#

Metric

Observed / error

Reference / limit

Error

Effective budget

Result

validated_q_ratio

5.32759

2

-3.32759

PASS

optimized_vs_mirror_completed_control

2.02321

1

-1.02321

PASS

fabrication_violation_nm

0

0

0

1.000e-06

PASS

material_binary_fraction

1

1

0

0

PASS

The table is rendered from progress.json; it is not a hand-written success claim. For metrics that report an error directly, the “observed” column repeats that error and the reference column is the acceptance threshold.

Reproduce#

uv run fdtdx-bench run --case invdes_nanobeam_cavity

Implementation and provenance: benchmarks/cases/invdes_nanobeam_cavity/case.yaml, benchmarks/cases/invdes_nanobeam_cavity/run.py.

Return to the example atlas