Skip to content

Source

engines/quan_loncar_meep_lab/notes/device23_pole_two_branches.md · assembled 2026-09-05 15:34 UTC.


Invalidated 2026-08-02. Every solve in this note ran through a layered mirror that was PEC over the cladding and a magnetic wall through the beam core; see stack_pole_fails_its_control.md. The two families below are an artifact of that mixed boundary scattering the mode, not a property of the article. On the repaired solver the same selective fidelity returns 756.734 nm at Q 1640.617 where it previously returned 779.431 nm at Q 52.939. The reasoning about what a scalar five-point selector can and cannot identify still stands; the numbers do not. Kept because the elimination it records is what led to the control that found the bug.

The Device23 pole disagreement is two branches, not one unconverged one

Eleven solves of the same article. They do not scatter. They fall into two families separated by a gap no solve lands in, and the selector reports whichever family the mesh happens to favour.

point geometry lambda (nm) Q Ey loc dof
exact_ellipses OCC 761.943 108.024 0.330 513,738
baseline level set 765.439 120.639 0.785 619,474
recorded p1_c16 level set 765.439 120.639 (legacy) 619,474
air_maxh 0.36 um level set 765.469 121.209 0.811 619,790
pml 0.6 um thick level set 766.671 125.029 0.298 673,554
air_maxh 0.11 um level set 767.295 132.444 0.508 721,298
cavity order 2 level set 767.718 93.229 0.770 977,034
exact_ellipses air 0.16 OCC 774.702 55.196 0.459 556,290
air_maxh 0.16 um level set 774.763 54.358 0.662 659,420
pml order 2 level set 776.562 55.910 0.627 646,937
recorded selective level set 779.431 52.939 0.619 1,004,130

Branch A spans 761.94--767.72 nm with Q between 93 and 132. Branch B spans 774.70--779.43 nm with Q between 52.9 and 55.9. Nothing lands in the 7 nm between them.

Branch B is the tight one. Four discretizations that share almost nothing -- a level set and exact OCC ellipses, a three-times finer ambient mesh, order two in the PML, and the selective fidelity that raised two regions at once -- agree on Q to within 5.6%. That is what a converged mode looks like.

So the 2.3x that started this was never a convergence failure. The all-order-one run found branch A and the selective run found branch B, and comparing their Q values compared two different modes.

What this costs the campaign

The pole certificate cannot tell the two apart. Branch B passes the 0.55 Ey-monitor localization gate at 0.619 and sits inside the 2% wavelength window; so does branch A at 0.785. A gate that admits either is not selecting a mode, and the optimizer's acceptance contract depends on tracking one specific branch across every step it takes. Under a change as inert as doubling the absorber thickness, the reported localization moved from 0.785 to 0.298 -- the same nominal branch family, a different mode.

The Ey-monitor ratio is a scalar heuristic sampled at five points. It was built to reject obviously delocalized candidates, and it does that. It cannot identify a mode, and it is being asked to.

What it does not explain

Neither branch is anywhere near the validated Q of 1113. Branch B is converged, cheap to reach, and 20x too low. Refinement moves the local answer away from the reference rather than toward it, and the geometry representation is now exonerated: exact ellipses and the settled level set agree to 1.5% at the refined air mesh (55.196 against 54.358) and to 12% at the coarse one, where both are on the unconverged branch A anyway.

So the 21x gap is not discretization and not the aperture approximation. What remains is the physics setup or the reference itself: the half-y symmetry parity, the substrate treatment, the domain length against a mode that may not be as confined as the FDTD article's, or what Tidy3D's 1113 was measured on.

The control that does not exist

build_stack_pole appears in no test and no benchmark. Every certified pole in this engine came through the membrane path. Before more effort goes into explaining why the stack pole disagrees with Tidy3D on Device23, it should be made to reproduce one number that is already known -- the membrane path's own certified silicon result, expressed as a single-layer stack in air. If it reproduces that, the disagreement is Device23-specific and the substrate or the symmetry is the place to look. If it does not, the stack path itself is the finding and nothing built on top of it counts.

Reproducing

engines/quan_loncar_meep_lab/tools/probe_device23_pole_convergence.py \
  --points baseline air_maxh_0p16 pml_order_2 exact_ellipses_air_0p16 \
  --output probe.json

Each point runs as its own process. The baseline reproduces the recorded Q 120.63887 at 765.4386892 nm exactly, so differences between points are signal rather than run-to-run noise.