The items below represent extensions of the Metric core modules; elaborate documentation is not available. Still the routines might be useful to external users by means of the corresponding example programs. For further details on the underlying theory we refer to the related publications.

Plane wave propagation through dielectric multilayer stacks

Simulation of angled plane wave incidence on dielectric multilayer stacks, actually an "abuse" of the of the containers for modes and modearrays, and of the visualization facilities. The routines implement a standard transfer matrix algorithm.

Example files: pwslab.cpp,
pwslabsc.cpp,
pwres.cpp.

Relevant source files:
slaref.h,
slaref.cpp.

Conventional coupled mode theory

An implementation of conventional coupled mode theory (CMT) for the guided wave propagation along multiple, evanescently coupled parallel cores. Routines for determining supermodes and their propagation are provided, that allow to predict the power transmission, and to establish the scattering matrix of the coupler section.

Example file: convcmt.cpp.

Relevant source files:
cmt.h,
cmt.cpp.

Hybrid analytical / numerical coupled mode theory

A general version of coupled-mode-theory (HCMT) for 2-D frequency domain scattering problems. The field templates combine waves associated with the optical channels in the structure with coefficient functions of (in principle) arbitrary coordinates. Upon 1-D discretizations of these amplitude functions into finite elements, a Galerkin procedure reduces the problem to a system of linear equations in the element coefficients. A variational approach is implemented as an alternative. Containers for the constituting elements and for the overall field representation are provided, including the solver procedures and visualization facilities.

Classes: `HcmtElement`

, `HcmtField`

.

Example files:
crhcmt.cpp;
mrres.cpp,
mrspec.cpp,
mrspecI.cpp;
molec.cpp,
molecSM.cpp,
molecSMwg.cpp.

Relevant source files:
cmt.h,
cmt.cpp.

Variational 2-to-1D effective index reduction of integrated optical scattering problems

Routines that implement a variational variant of an effective index method,
here for the 2D-to-1D dimensionality reduction of propagation problems,
typically in waveguide Bragg gratings. The approach requires that a dominant
direction (*z*) of mainly guided wave propagation can be identified in the
structure, with identical input and output cores. The assumption of a uniform
field shape along the perpendicular direction (*x*) in the form
of a guided mode profile then leads, through variational restriction,
to a problem of 1-D wave propagation through a dielectric multilayer
stack with a well defined effective permittivity profile. Solver procedures
and visualization facilities are included as methods of the
container for the overall field.

Class: `EimField`

.

Example file: grasy.cpp.

Relevant source files:
eim.h,
eim.cpp.

VEIMS mode solver for 3D channel waveguides

The simplest variant of a variational, effective-index-like mode solver
for 3D dielectric integrated optical waveguides with rectangular 2D cross
sections. A component-wise separable field template combines slab modes
into semi-vectorial approximations of the true 3D mode
profiles. Constituents are the properly polarized modes of a vertical
(*x*-axis) 1D reference refractive index profile, typically
the layering of the core region of the 3D channel, and the (nonstandard)
1D modes associated with a resulting horizontal (*y*-axis)
effective permittivity profile. Containers for 3D modes and arrays of
3D modes are provided, along with procedures
for access and evaluation of mode profiles and mode overlaps (optical power),
and for mode profile visualization. Similarities exist with the
implementation of the
Wave Matching Method (WMM).

Classes: `EIMode`

, `EIModeArray`

.

Example files:
strip.cpp, rib.cpp.

Relevant source files:
veims.h,
veims.cpp.

Floquet-Bloch modes of rectangular periodic waveguides

Computation of guided Floquet-Bloch modes associated with rectangular dielectric structures with 1-D periodicity. The solver relies on a piecewise bidirectional expansion into slab eigenmodes (BEP), with Dirichlet conditions imposed at the uper and lower boundaries of a finite computational window that extends over one period. Alternatively, quadridirectional expansion (QUEP) and vectorial solutions for oblique propagation (vBEP, vQUEP) are supported. The examples cover the band-structure analysis and visualization of FB-modes, for scalar analysis of polarized waves.

Classes: `FBMode`

, `FBModeArray`

.

Example files:
bsa.cpp, fbmprop.cpp.

Relevant source files:
fbmode.h,
fbmode.cpp.

Bend modes supported by curved 2-D dielectric multilayer slab waveguides

Bend mode analysis of curved dielectric multilayer slab waveguides with 1-D radial cross sections. The solver predicts complex propgation constants / phase and attenuation constants for a standard frequency domain setting with given real frequency. Cylindrical coordinates are introduced; the solver relies on a transfer-matrix procedure for the radial problem with piecewise constant refractive index. Eigenvalues are identified by a (somewhat heuristic) search procedure in the complex plane. Containers for bend modes and arrays of bend modes are provided, including facilities for detailed field visualization.

Classes: `BDMode`

, `BDModeArray`

.

Example files:
bif.cpp, bwg.cpp.

Relevant source files:
bend.h,
bend.cpp;
cylfunc.h,
cylfunc.cpp.

Whispering gallery resonances of circular 2-D dielectric multilayer cavities

Computation of the whispering-gallery resonances supported by circular dielectric multilayer cavities in 2-D. The solver predicts complex eigenfrequencies, and associated resonance wavelengths and quality factors (Q-factors) for the "quasi-normal modes" within a certain wavelength interval, or close to a target wavelength. Cylindrical coordinates are introduced; the solver relies on a transfer-matrix procedure for the radial problem with piecewise constant refractive index. Eigenvalues are identified by a (somewhat heuristic) search procedure in the complex plane. Containers for whispering-gallery-modes (WGMs) and arrays of these are provided, including facilities for detailed field visualization.

Classes: `WGMode`

, `WGModeArray`

.

Example files:
disk.cpp, ring.cpp.

Relevant source files:
wgm.h,
wgm.cpp;
cylfunc.h,
cylfunc.cpp.

Guided modes of circular multi-step-index optical fibers

Computation of the modes of circular dielectric optical fibers with radially piecewise constant refractive index profiles. The solver predicts effective indices and propagation constants of TE-, TM-, and general hybrid modes supported by the fiber structure. Cylindrical coordinates are introduced; the solver relies on a transfer-matrix procedure for the vectorial radial problem with piecewise constant refractive index. An ansatz of exponential dependence on the azimuthal angle leads, for nonzero angular mode order, in the first place to orbital-angular-momentum (OAM) modes. Superpositions of degenerate solutions with opposite angular orders allow to assemble modes of EH- and HE-type. Eigenvalues are identified by a (somewhat heuristic) search procedure. Containers for fiber modes and arrays of these are provided, including facilities for detailed field visualization.

Classes: `FIMode`

, `FIModeArray`

.

Example files:
smf.cpp, tube.cpp.

Relevant source files:
fim.h,
fim.cpp;
cylfunc.h,
cylfunc.cpp.

Bound and leaky modes of complex waveguides

Eigenmodes of optical multilayer step-index slab waveguides made from media with in general complex refractive index and complex permittivity. The solver calculates complex effective indices, or phase propagation and attenuation constants, respectively; facilities for the inspection of the corresponding optical field patterns are provided. Bound and leaky modes of structures with loss or gain can be identified, as well as the bound solutions related to the propagation of surface-plasmon-polaritons (SPPs) along metal-dielectric interfaces.

Classes: `cWaveguide`

, `cSmPiece`

, `cMode`

, `cModeArray`

.

Example files:
cwg.cpp,
sppm.cpp,
lwg.cpp.

Relevant source files:
cplxwg.h,
cplxwg.cpp.