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.

**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 pecewise 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. The examples cover band-structure analysis and visualization of the associated FB-modes.

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.

**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.