yeh_tm.needle

yeh_tm.needle(S, w, Q, eps, d=0.01, dQ=0.01, Qid=4, keep_first_fixed=True, max_num_layers=100, max_num_iterations=10, min_layer_thickness=0.001)

Simplified implementation of the needle algorithm for thin film design. See Appl. Opt. 35, 5484 (1996) for details. This is the only function to be called directly by the user. Given an initial layer stack and some target values, the algorithm tries to replicate the target by insertion of additional layers and thickness optimization.

Changed in version 11-05-2015: Changed input parameters to allow multiple materials.

Parameters:
  • S (System) – Initial optical system containing the layer stack.
  • w (array) – List of frequencies where a target is specified.
  • Q (array) – List of target values at the given frequencies (same shape as w).
  • eps (array) – List of possible dielectric functions to choose from (min 2).
  • d (float) – Thickness of the needle layer. Usually around 10nm (default 0.01 assumes units are um).
  • dQ (float) – Allowed design tolerance of the target (in absolute units).
  • Qid (int) – Identifier of the quantity that should be used for calculation of the merit function. (0 = Rxx, ..., 7 = Tyy).
  • keep_first_fixed (bool) – Set to True if first layer should not be modified.
  • max_num_layers (int) – Maximum number of layers permitted (default 100).
  • max_num_iterations (int) – Maximum number of iterations (default 10).
  • min_layer_thickness (float) – Minimum thickness of a layer. If, after thickness optimization, a layer turns out thinner, it is discarded and the resulting stack simplified (default 1e-3, i.e. 1nm assuming units are um).
Returns:

System class instance with optimized design.