2.5D LDOS cavity optimizerhoodlab · 780 nm

Exact x/y/z reduction for centered-emitter discovery

Reflection-symmetry reduction for the 780 nm campaign

Decision

The centered-emitter 2.5D discovery solver now uses the exact field sector that is even under x, y, and z reflection. This is accepted for the next reduced atom-coupling campaign. The full-vector staggered-Yee validator still uses its full field domain; a half-domain Yee implementation remains a separate, high-priority discretization change.

What is reduced

For the enforced reflection-symmetric density and centered scalar source, the Fourier x/y coefficients and vertical FEM nodes form an invariant even sector. Orthonormal reflection projectors are applied to the stiffness, dielectric mass, outgoing DtN self-energy, source, and both adjoint paths. Fields are lifted back to the full physical grid before localization, overlap, and topology-gradient calculations.

The current 10 x 4 x 9 Fourier/FEM launch profile changes from 1,701 to 275 linear unknowns, a 6.18545x reduction. The factor approaches eight as the three retained orders grow.

Equivalence and derivative gates

The fixed smoke validation passes all existing analytic and gradient checks plus the new parity/full equivalence checks:

CheckResult
full/reduced atom-response relative error2.0922e-15
full/reduced atom-gradient relative error2.0497e-15
lifted real-space field correlation1.000000000000
parity-basis DtN derivative error3.4785e-10
parity-basis complete nonlinear-Q gradient error2.6956e-5
repository unit tests57 / 57 pass

On the small 1,701-unknown launch benchmark with one numerical thread, one centered-atom primal plus reused-factor Hermitian adjoint changed from 1.47 to 0.81 seconds. Peak RSS changed from 160,560 to 99,820 KiB. Fixed interpreter, assembly, and topology costs dominate this small case, so wall time and RSS do not yet scale like the 6.185x algebraic reduction.

Why the 3D validator is not switched yet

The vector solver stores electric components on staggered Yee sublattices and uses one-sided boundary closures. A scalar-style array reflection is therefore not a commuting symmetry of its discrete matrix. Trial projection of that matrix changes the driven resonance rather than merely block-diagonalizing the same solve. Enabling it would violate the mode-identity and cross-basis rules.

The correct next implementation is a parity-compatible half-domain Yee operator with component-specific electric/magnetic boundary parity. It must be treated as a new basis: transfer density only, reacquire the source-coupled mode, compare complex vector fields on a common physical sampling grid, and repeat the atom-gradient, pole, and grid/domain gates before using it for a claim.

Reproduction

OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 \
python validate_25d.py --quick \
  --output outputs_scaleup_780/parity_25d_validation

python optimize_atom_25d.py \
  --config configs/atom_780_25d_parity_scaleup.json \
  --output outputs_atom_780_25d \
  --steps 1 --gradient-check smoke

The second command is the next optimization command only after the five full-vector launch gates pass. Q remains a separately reacquired diagnostic; the retained objective is the centered-emitter response at exactly 780 nm.