Skip to content

feat(eim): variational effective-index method for 2D FDTD #156#161

Draft
thanojo wants to merge 7 commits into
mainfrom
156-variational-effective-index-approximation-for-2d-fdtd
Draft

feat(eim): variational effective-index method for 2D FDTD #156#161
thanojo wants to merge 7 commits into
mainfrom
156-variational-effective-index-approximation-for-2d-fdtd

Conversation

@thanojo

@thanojo thanojo commented Jun 4, 2026

Copy link
Copy Markdown

Closes #156 by adding a variational effective-index method (varEIM) that derives the in-plane permittivity for 2D FDTD from the vertical slab mode of the 3D stack (Hammer & Ivanova 2009), instead of bulk indices.

  • src/gsim/meep/eim.py: variational_effective_permittivity(), 1D finite-difference slab solver, build_eps_z from the layer stack, and a zero-dispersion fit_medium stub.
  • nbs/meep_ybranch_veim.py: Y-branch 2D varEIM vs 3D comparison notebook (+ docs nav entry).

This is a first cut — more to do:

  • Dispersive fit: eps_eff(lambda) -> Sellmeier -> Lorentzian poles (replace the fit_medium stub).
  • Integrate into the solver workflow (e.g. sim.solver(is_3d=False, eim="variational")).
  • Tests against the paper examples (Bragg grating, ring FSR, strip-to-slot counter-example).
  • TM polarization (different weight kernel); full spatial eps_eff(x,y) map.

Scope now: TE-only, single reference mode, single wavelength.

Separate finding (not in this PR): 3D waveguide-port S-params under-read by several dB since the Apr-22 "right-size port monitors" change — the in-plane port_margin undersizes the 3D eigenmode source/monitors. Worth its own issue.

@github-actions github-actions Bot added the enhancement New feature or request label Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: variational effective index approximation for 2D FDTD

1 participant