| title | Full-vector modes by finite differences | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| module | mode::vector | |||||||||||||||||||||||||
| summary | The modes of any waveguide cross-section, anisotropic and lossy media included, from the transverse magnetic field on a rectilinear grid. | |||||||||||||||||||||||||
| order | 5 | |||||||||||||||||||||||||
| papers |
|
|||||||||||||||||||||||||
| validation |
|
|||||||||||||||||||||||||
| examples |
|
The unknowns are the transverse magnetic field,
Fallahkhair, Li and Murphy discretize the coupled equations for
The modes nearest a guess come from shift-and-invert Arnoldi, restarted by
Krylov–Schur, so 20 to 50 of them hold a space of fixed size; every mode in a region of the
complex modes_above (a modes job's modes_above).
VectorMode::residual measures a mode against the matrix assembled afresh,
"modes" job records it for every mode, and
the studio's Solver panel shows it.
-
Convention: the paper uses
$e^{+j\omega t}$ . Its eigenvalue equations hold in photonoxide's$e^{-i\omega t}$ when written with that convention's permittivity: loss is$+i$ , and a gyrotropic term the paper writes as$+j\Delta$ is$-i\Delta$ here. -
A misprint: Eq. (31) divides by
$v_{12}$ , which the paper never defines. It is$v_{21}$ , as the matching term of Eq. (30) shows under the mirror$x \to -x$ . A test checks that a structure and its mirror image have the same modes, to 1e-10. - Edges: beyond each edge the field is zero, or a mirror wall reflects it, or a PML absorbs it.
A guided mode's
modes returns every mode its count asks for, so asked for more modes than the guide has it
returns these after the guided ones. guided_modes keeps only the guided ones: of the count
solved, those with CrossSection::surrounding_index, the highest index of
the media around the guides; fewer than the count when fewer are guided, none when none is, and
nothing more solved to make the count up. VectorMode::is_guided asks it of one mode. The media
around the guides are those at the window's open edges (a wall is a plane of symmetry through
the guides, not their surroundings): the substrate, the cladding and the layers' backgrounds.
Where a guide runs into an edge, as a rib's slab does, the fastest wave along that edge is the
slab's own mode, solved on the edge's cells by the same scheme, and a mode below it leaks into
the slab, so a window's side should stay clear of every guide but a slab. The façade's
vector_modes (Python's and MATLAB's) keeps the modes of a closed window by this rule. A
"modes" job keeps a count's modes by the same rule, reading the media from its stack: the
layers' backgrounds, and the substrate and cladding its window reaches, the same index on the
built-in jobs' cross-sections (a test checks it). modes_above with the surrounding index as
its threshold gives every guided mode, however many.
Leaky modes need an open window: a PML inside the edges absorbs what reaches them,
and then modes finds a leaky mode with its loss, as the leaky-wire benchmark below does. The
PML's own modes come too, their loss large. Neither is a guided mode, so guided_modes leaves
both out; with PMLs, ask modes for them.
- Interfaces: second order, in both orientations. A slab turned on its side converges onto the exact slab at orders 2.00 / 2.01 / 2.00; at a 2.5 nm grid the error is 4e-5 (TE) and 5e-6 (TM).
- Corners converge more slowly, as with standard finite differences: their fields' derivatives are singular. On Hadley's four corner problems (series-expansion indices good to 1e-8), about first order at convex corners (a high-index quadrant: boxes, strips), with the error changing sign on the way, and 1.8 falling towards 1.4 at concave ones. Hadley's own equations, on the same grid and unknowns, reach about second order there and sixth at straight interfaces: see high-accuracy modes, for uniform grids of lossless isotropic media.
- The book's strip (500 × 220 nm, 3.473 in 1.444, 1550 nm): TE-like 2.447067, 2.445713, 2.444396, 2.443506 at 20, 10, 5, 2.5 nm, against the book's 2.443 (Lumerical, 20 nm mesh, good to about 1e-3).
graded_nodes builds a grid fine in a box around the core and growing gently away from it,
the interfaces on nodes; keep the growth to a few hundredths per µm, since the scheme loses
accuracy where neighbouring spacings differ much. Refining at the corners alone doesn't pay:
the core's interior must stay resolved. Because the corners converge at a steady low order,
richardson extrapolates from three grids, each half the last, with the order fitted.
On Bienstman et al.'s leaky SOI wire (silicon against air, the hardest corners), the order is 0.67: +4.0e-3, +2.5e-3, +1.5e-3 at 5, 2.5 and 1.25 nm in Re, and 0.97, 0.98, 0.99 of the loss. Extrapolated: 2.412289 + 2.9207e-8 i, against the benchmark's 2.412372 + 2.9135e-8 i (CAMFR and the aperiodic Fourier modal method), 8e-5 and 0.25 % away. The loss also needs the oxide and substrate resolved: grading to 40 nm there misstates it by 3 %, to 10 nm by 0.3 %.
- A uniform box has its exact discrete eigenvalues, to 1e-9.
- The slab limit, at second order, against the exact slab (both orientations).
- Hadley's four corner problems within 1e-4 at an 80 × 80 grid, and 5e-5 at 160 × 160.
- Chrostowski and Hochberg's strip within 3e-3 at 5 nm.
- Bienstman et al.'s leaky wire, extrapolated: within 8e-5 in Re and 0.25 % in the loss.