Skip to content

Campaign: quan_loncar_meep_lab/device23_freeform_maxq

Assembled 2026-09-05 15:01 UTC.

Engine: quan_loncar_meep_lab · path: engines/quan_loncar_meep_lab/campaigns/device23_freeform_maxq/

README

Device23 free-form max-Q campaign

Ascend the quality factor of the tracked Device23 cavity pole with a regularized free-form level-set boundary. Q is the only objective. V and the feedthrough coupling are recorded at every accepted step and steer nothing.

Why Q alone

The composite Q/V/beta optimizer in engines/design23_v1 stalled at accepted step 7 because two of its three gradient terms are not gradients: dlogV and dlogbeta are minimum-norm secants fitted to the history of accepted steps. At the stall, 83.7% of the search direction came from the beta secant, which overestimated the measured response by 129x, and truncating the secant to its numerical rank fixed the magnitude but left the composite slope pointing uphill. The evidence is in the public gradient note.

dQ needs no such fitted secant. The eigenproblem is complex-symmetric, so the left eigenvector is the transpose of the right one and the eigenvalue derivative falls out of the mode alone -- one eigensolve per candidate, no adjoint. It has passed the original dilation check, at ratio 0.90 to 0.91 and monotone toward it as the step shrinks (the refinement note). That check now counts only as candidate evidence: optimization-grade status requires the multi-geometry, two-discretization, five-random-direction certificate generated by tools/certify_pole_gradient_campaign.py.

What this campaign is evidence for, and what it is not

It is: evidence that free-form boundary motion can raise the Q of a localized cavity mode in a real multilayer device, measured rather than predicted, at a fixed and separately certified fidelity.

It is not: a claim about Device23's absolute Q. That number is not converged. Across a 2.5x range of unknowns on the repaired solver the certified fidelity returns Q = 1461, 1886, 1641 non-monotonically at residuals of 1e-9 or better, so any single value is one sample of an unconverged family. This campaign holds the fidelity fixed and reports the change.

Because a fixed mesh can in principle be climbed as an artifact, the improvement is not final until the start and end geometries are re-measured at the two neighbouring mesh rungs (curvature_safety 1.0 and 1.4) and the gain survives. That control is four extra solves and is required before the result is quoted anywhere.

Launch configuration

setting value why
seed field benchmarks/design23_20260801/device23_40hole_settled_field.npz sha256 430d03f2...4b8e2c, hash-identical to the certified pole artifact
design benchmarks/design23_20260801/device23_40hole_fdtd_seed.json the 40-hole step-6 geometry, Tidy3D Q=1113.0 at 770.03 nm
fidelity device23_p1p5_pml2_cavity2_x1p4 the fidelity the pole certificate was issued on
curvature_safety 2.0 (default) 1,004,130 unknowns, 575 s per solve
minimum feature 70 nm the seed's own minimum void is 76.9 nm; an 80 nm floor would reject the seed
island pruning 80 nm area-equivalent threshold, not minor diameter
minimum localization 0.55 the campaign's Ey-monitor branch gate; the seed sits at 0.702
wavelength penalty 0 the resonance is free to move and is recorded

Cost scales with the mesh rung: 184 s at curvature_safety 1.0, 317 s at 1.4, 575 s at 2.0. All compute is local NGSolve H(curl); no Tidy3D simulation is submitted and no FlexCredits are spent.

Acceptance

A candidate replaces the incumbent only when the lower confidence bound of at least two paired, equally settled pole re-solves exceeds the measured dlogQ noise floor on the tracked branch, with localization above 0.55 and the minimum-feature, island and regularization checks passing. Candidate and incumbent hashes, all replicate samples, and the confidence-bound decision are retained. Rejected steps halve the trust amplitude and stay in the history with their reason. The analytic gradient supplies direction only; its magnitude is never used as an acceptance prediction.

Run

PYTHONPATH=package/quan_meep/src \
  python tools/run_quality_refinement.py \
  benchmarks/design23_20260801/device23_40hole_settled_field.npz \
  --design benchmarks/design23_20260801/device23_40hole_fdtd_seed.json \
  --stack --settings device23_p1p5_pml2_cavity2_x1p4 \
  --minimum-feature-nm 70 --minimum-island-nm 80 \
  --minimum-localization 0.55 --wavelength-penalty 0 \
  --input-is-settled --acceptance-replicates 2 \
  --acceptance-confidence-z 1.96 \
  --logq-noise-floor <measured_paired_dlogQ_floor> \
  --iterations 60 \
  --output runs/<run_id>/stage_refine.json \
  --final-field runs/<run_id>/refined_field.npz