Campaign: design23_v1/pure_bfgs_maxQ_diagFDTD¶
Assembled 2026-07-29 15:57 UTC.
Engine: design23_v1 · path: engines/design23_v1/campaigns/pure_bfgs_maxQ_diagFDTD/
campaign.yaml¶
# Design23 pure analytical BFGS + diagnostic FDTD
name: design23_pure_bfgs_maxQ_diagFDTD
device: design23_multilayer_nanobeam
engine:
path: engines/design23/v1.4.0/design23_recentered_optimizer
version: "1.4.0"
seed: seed.json
objective:
type: maximize
formula: "-log(Q)"
notes: "Pure BFGS on analytical Q + gradient; no max-Δnm trust cap."
constraints:
continuum_agreement_max_relative: 0.05
dual_resolution_screen_and_confirm: true
fdtd:
role: diagnostic_only
every_n_accepted_analytical_steps: 3
never_accept_reject_or_rollback: true
budget:
flexcredits_default: 10
entrypoints:
campaign: run_campaign.py
optimizer: run_pure_bfgs.py
dashboard: publish_dashboard.py
docs:
strategy: README.md
README¶
Design23 pure analytical BFGS + diagnostic FDTD¶
Strategy package for testing a simple Design23 optimization path:
- Optimize with BFGS only on the analytical quality factor and its derivative
(objective =
-log Q), using the Design23 v1.4.0 dual-resolution continuum machinery (screen panel + confirmation panel, Armijo, continuum agreement). - Do not use FDTD to accept, reject, roll back, or otherwise steer the optimizer. The analytical path is treated as an exact black-box function.
- Every 3 accepted analytical steps, run a Tidy3D FDTD job as a diagnostic only. The current routine uses a 16 ps auto-14 ringdown with automatic shutoff, followed by an exact-pole coherent E/H, flux, and mode-port measurement for trustworthy mode volume and TE0 beta.
- Stop when a
STOPfile appears or the session spends 10 FlexCredits.
Dashboard¶
Persistent public dashboard (served by the shared hub):
- https://hub.157.173.197.248.sslip.io/hub/runs/20260725T122124Z_design23_pure_bfgs_maxQ/dashboard/
The dashboard is a static run artifact. It remains available after the optimizer exits and does not need a campaign-specific HTTP port.
Shows:
- current state / FlexCredit spend
- analytical Q vs accepted step, with FDTD diagnostic points overlaid
- parameter deltas vs seed (gaps, mean radius, ellipticity)
- Tidy3D
plot_field|E|² midplanes (XY + XZ) for initial and latest diagnostic FDTD (geometry overlay viaeps_alpha)
Run¶
cd design23_analytical_bfgs_diagnostic
../.venv/bin/python -u run_campaign.py \
--flexcredit-cap 10 \
--diagnostic-every 3 \
--run-time-ps 16 \
--steps-per-wavelength 14
Stop:
Layout¶
| Path | Role |
|---|---|
run_campaign.py |
Outer loop: BFGS batches ↔ diagnostic FDTD, budget, STOP |
run_pure_bfgs.py |
Pure analytical BFGS (no FDTD gate) |
diagnostic_fdtd.py |
Tidy3D submit + hi-res dashboard_xy / dashboard_xz monitors |
extract_field_plots.py |
Post-seed, Hann-projected resonant field panels cropped to monitor bounds |
publish_dashboard.py |
Writes dashboard/live.json |
dashboard/index.html |
Static UI |
seed.json |
Materialized Design23 seed (verified FDTD Q ≈ 2.09e4) |
Engine code is imported from
design23_recentered_bfgs_v1.4.0/design23_recentered_optimizer/ (not forked).
The observable definition, publication gates, confidence wording, historical
late-tail failure, convergence evidence, and remaining limitations are
documented in docs/workflow/fdtd-verification.md.