Geometric-phase metalens — focal distance and spot size#
validated · 2026-08-28
This case compares a local FDTDX result with pinned reference data generated by Tidy3D. The originating Tidy3D example is Metalens.ipynb, pinned at commit c37c785d52e9.
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.
This page is the compact benchmark record. The linked notebook is the primary scientific documentation and contains the actual simulation evidence.
What is exercised#
A compact 7x7 version retains the official 600 nm, NA=0.5 phase law, 410x85x600 nm TiO2 pillars, silica substrate, and circular input. A pulsed phasor monitor records the x-z intensity map; the propagating focal maximum, transverse FWHM, and focal-core contrast over the same 1 um aperture are compared.
This case runs at its declared full benchmark resolution (resolution factor 1.0).
Reconstruction choices#
The official device dimensions, material stack, excitations, and measured observable are retained where they determine the physics. The local scene uses 145 × 145 × 254 cells and the common port/source normalization machinery. Geometry is rasterized as connected material before placement when touching polygons would otherwise introduce grid-snapping seams.
The field panel above is explicitly a schematic of the device and propagation path. The curves and scalar values in the result panel are executed benchmark outputs: solid circles are FDTDX; dashed crosses are the frozen Tidy3D reference.
Recorded result#
Metric |
Observed / error |
Reference / limit |
Error |
Effective budget |
Result |
|---|---|---|---|---|---|
|
1.9625 |
1.85 |
0.1125 |
0.448 |
PASS |
|
0.502048 |
0.497904 |
0.00414467 |
0.224686 |
PASS |
|
1.92435 |
1.87628 |
0.0480716 |
0.437628 |
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 device_metalens
Implementation and provenance: benchmarks/cases/device_metalens/case.yaml, benchmarks/cases/device_metalens/run.py, benchmarks/goldens/device_metalens.npz.