# Fourier2D¶

<optical solver="Fourier2D">

Corresponding Python class: optical.slab.Fourier2D.

Vectorial optical solver based on the plane-wave reflection transfer method.

Attributes: name (required) – Solver name.
Contents:
<geometry>

Geometry for use by this solver.

Attributes: ref (required) – Name of a Cartesian2D geometry defined in the  section.
<mesh>

Optional Ordered, Regular mesh used by this solver.

Attributes: ref (required) – Name of a Ordered, Regular mesh defined in the  section.
<expansion>

Details on Fourier expansion used in computations

Attributes: lam0 – This is a wavelength at which refractive index is retrieved from the structure. If this parameter is None, material parameters are computed each time, the wavelenght changes even slightly (this is most accurate, but can be very inefficient. (float [nm]) update-gain – If this attribute is set to ‘yes’, material parameters are always recomputed for layers with gains. This allows to set ‘lam0’ for better efficiency and still update gain for slight changes of wavelength. (bool, default is ‘no’) size – Expansion size. (int, default 12) refine – Number of refinement points for refractive index averaging. (int, default 32) ft – Type of the Fourier transform. Analytic transform is faster and more precise, however it ignores temperature and gain distributions. (‘discrete’ or ‘analytic’, default is ‘discrete’) dct – Type of discrete cosine transform for symmetric expansion. (‘1’ or ‘2’, default 2) smooth – Smoothing parameter for material boundaries (increases convergence). (float, default 0.0) group-layers – Should similar layers be grouped for better performance. (bool, default is ‘yes’) temp-diff – Maximum temperature difference between the layers in one group. If a temperature in a single layer varies vertically more than this value, the layer is split into two and put into separate groups. If this is empty, temperature gradient is ignored in layers grouping. (float [K]) temp-dist – Approximate lateral distance of the points in which the temperature is probed to decide about the temperature difference in one layer. (float [µm], default 0.5 µm) temp-layer – Minimum thickness of sublayers resulting from temperature-gradient division. (float [µm], default 0.05 µm)
<mode>

Mode properties.

Attributes: lam – Light wavelength. (float [nm]) k-long – Longitudinal wave-vector component. (float, default 0) k-tran – Transverse wave-vector component. (float, default 0) symmetry – Mode symmetry. Specify a symmetric field component here (e.g. ‘Etran’, ‘Hx’). (‘none’, ‘Etran’, ‘Elong’, ‘Ex’, ‘Ey’, ‘Ez’, ‘Er’, ‘Ep’, ‘Et’, ‘El’, ‘Htran’, ‘Hlong’, ‘Hx’, ‘Hy’, ‘Hz’, ‘Hr’, ‘Hp’, ‘Ht’, or ‘Hl’, default is ‘none’) polarization – Mode polarization. Give an existing field component here (e.g. ‘Etran’, ‘Hx’). (‘none’, ‘Etran’, ‘Elong’, ‘Ex’, ‘Ey’, ‘Ez’, ‘Er’, ‘Ep’, ‘Et’, ‘El’, ‘Htran’, ‘Hlong’, ‘Hx’, ‘Hy’, ‘Hz’, ‘Hr’, ‘Hp’, ‘Ht’, or ‘Hl’, default is ‘none’) emission – Direction of the useful light emission. Necessary for the over-threshold model to correctly compute the output power. Currently, the fields are normalized only for top and bottom emission. (‘undefined’, ‘top’, or ‘bottom’, default is ‘undefined’)
<interface>

Matching interface position in the stack.

Attributes: position – Interface will be located as close as possible to the vertical coordinate specified in this attribute. (float [µm]) object – Name of the geometry object below which the interface is located. (geometry object) path – Optional path name, specifying particular instance of the object given in the object attribute. (geometry path)
<pml>

Side absorbing perfectly matched layer boundary conditions parameters.

Attributes: factor – PML scaling factor. (complex, default 1.0) shape – PML shape order (0 → flat, 1 → linearly increasing, 2 → quadratic, etc.). (float, default 1) dist – PML distance from the structure. (float [µm], default 0.5 µm) size – PML size. (float [µm], default 1.0 µm)
<transfer>

Vertical field transfer settings.

Attributes: method – Layers transfer algorithm. Can be either reflection transfer, admittance/impedance transfer or automatic, in which case the reflection computations will use reflection transfer and eigenmode search is done with admittance transfer. Reflection transfer can have optional suffix -admittance (default) or -impedance, in which case the admittance/impedance matching is done at interface (for eigenmode search). You should prefer admittance if electric field is expected to have significant horizontal components (particularly at the interface) i.e. for TE-like modes and impedance for TM-like modes. (‘auto’, ‘admittance’, ‘impedance’, ‘reflection’, ‘reflection-impedance’, or ‘reflection-admittance’, default is ‘auto’) determinant – This attribute specified what is returned by the get_determinant method. Regardless of the determinant type, its value must be zero for any mode. Depending on the determinant type value, the computed value is either the characteristic matrix eigenvalue with the smallest magniture or the full determinant of this matrix. (‘eigenvalue’, ‘full’, or ‘eigen’, default is ‘eigenvalue’)
<vpml>

Vertical absorbing perfectly matched layer boundary conditions parameters.

Attributes: factor – PML scaling factor. (complex, default is ‘(1-2j)’) dist – PML distance from the structure. (float [µm], default 10.0 µm) size – PML size. (float [µm], default 2.0 µm)
<root>

Parameters of the global root-finding algorithm.

Attributes: method – Root finding algorithm (Muller’s method or Broyden’s method). (‘muller’, ‘broyden’, or ‘brent’, default is ‘muller’) tolx – Maximum change of the argument which is allowed for convergent solution. (float, default 1e-06) tolf-min – Minimum value of the determinant sufficient to assume convergence. (float, default 1e-07) tolf-max – Maximum value of the determinant required to assume convergence. (float, default 1e-05) maxstep – Maximum step in one iteration of root finding. Significant for the Broyden method only. (float, default 0.1) maxiter – Maximum number of root finding iterations. (int, default 500) alpha – Parameter ensuring sufficient decrease of determinant in each step (Broyden method only). (float, default 1e-07) lambda – Minimum decrease ratio of one step (Broyden method only). (float, default 1e-08) initial-range – Initial range size (Muller method only). (complex, default 0.001)
<mirrors>

Front and back mirror losses.

Attributes: R1 – Reflectivity of the front mirror. (float) R2 – Reflectivity of the back mirror. (float)