An Octave & MATLAB toolbox for calculating properties of thin film optical interference coatings.
Functional surfaces consisting of multiple thin layers made from different materials are used in numerous applications to modify surface properties. Multi-layers are very important in optics where they are used to modify the response of material interfaces to light. An example are anti-reflection coatings, which attenuate the reflection of light at an air-glass interface. Photo-lithography is another area where thin film coatings are very important. In photo-lithography a substrate is coated with a stack of resist materials, and the quality of a lithographic exposure strongly depends on the optical properties of the resist stack and on its careful optimization. This toolbox can be used for the calculation of spectral properties and swing curves of multilayer coatings. Ellipsometric functions, coating colors, admittance diagrams, reflectance amplitude diagrams, and much more can be calculated. The toolbox can optimize the thickness of layers with user-defined merit functions using several optimization algorithms (sequential quadratic programming, differential evolution, Levenberg-Marquardt). A needle method function can be used for the optimal placement of additional layers in a thin film stack. Several collections of complex refractive index spectra are available for the toolbox. While this toolbox duplicates some functionality that is available in other free software (e.g. FreeSnell, or OpenFilters), it is useful for those, who, like myself, are more comfortable with Octave or MATLAB. The toolbox may also have uses in education.
Development versions are stored on GitHub and can be downloaded with:
git clone https://github.com/ulfgri/tftb-toolbox.git