RP Photonics logo
RP Photonics
Modeling & Design Software
Technical consulting services on lasers, nonlinear optics, fiber optics etc.
Profit from the knowledge and experience of a top expert!
Powerful simulation and design software.
Make computer models in order to get a comprehensive understanding of your devices!
Success comes from understanding – be it in science or in industrial development.
The famous Encyclopedia of Laser Physics and Technology – available online for free!
The ideal place for finding suppliers for many photonics products.
Advertisers: Make sure to have your products displayed here!
powerful tools for efficient laser development and laser science
This page gives you an overview on our software products.
RP Fiber Calculator is a convenient tool for calculations on optical fibers.
RP Fiber Power is an extremely flexible tool for designing and optimizing fiber devices.
RP Resonator is a particularly flexible tool for laser resonator design.
RP ProPulse can simulate the pulse evolution e.g. in mode-locked lasers and sync-pumped OPOs.
RP Coating is a particularly flexible design tool for dielectric multilayer systems.
RP Q-switch can simulate the power evolution in Q-switched lasers.
Most of our software products support a powerful script language, which gives you an extraordinary degree of flexibility.
Here you learn about software license conditions, updates and upgrades, etc.
Competent technical support is a key quality associated with software from RP Photonics.
RP Photonics has distributors in various countries.
The RP Photonics Software News keep you updated on our developments and give the users additional interesting hints.
Here you can make inquiries e.g. concerning technical details, prices and quotations.
en | de

RP Coating – Advanced Software for
Designing Optical Multilayer Structures

The Physical Model

In an optical thin-film multilayer structure, consisting of a sequence of layers made from different materials, the refractive index contrast at the interfaces between different layers leads to optical reflections. Such reflections from many different interfaces interfere with each other, and overall one can obtain a rather complex situation. Depending on the involved wavelengths and polarization directions, the overall behavior of the device can be very different.

RP Coating uses an efficient matrix formalism to calculate the mentioned interference effects. The user, however, does not have to deal in any way with such details; one only needs to provide a description of the coating structure and further inputs for determining optimizations, graphical outputs, etc.

There are few limitations:

  • The calculations can be done in the full wavelength ranges for which refractive index data are available.
  • Large angles of incidence, leading to total internal reflection, are no problem.
  • All materials may have optical losses, except the medium from which the incident beam comes.
  • All materials need to be optically isotropic, or otherwise oriented such that the simple description with a refractive index is correct.

The model allows for optical materials with an additional parameter – for example, a packing density or a chemical composition parameter – which influences the refractive index. For example, this allows one to design rugate filters where the refractive index varies continuously rather than in steps.

Material Data

It is essential to have refractive index data of all involved materials. The software is delivered with such data for various common materials.

Due to the great flexibility of the used script language, the user can easily add further material data. For each material, one defines a function for the wavelength-dependent refractive index, and possibly another function for the wavelength-dependent optical losses. For example, the index of Schott SF8 glass can be defined as follows:

n_SF8(lambda) := 
   { high-index Schott glass, data from Schott catalog }
   const B1 = 1.49514446,
         B2 = 2.62529687e-1,
         B3 = 9.69567597e-1,
         C1 = 1.14990201e-2,
         C2 = 5.17170156e-2,
         C3 = 1.13458641e2;
   var l2;
   l2 := (lambda / 1e-6)^2;
   sqrt(B1 * l2 / (l2 - C1) + B2 * l2 / (l2 - C2) + B3 * l2 / (l2 - C3) + 1);

Of course, it is also no problem to use tabulated data. For example, one may read such data from a text file into an array and define a function which provides interpolated values from that array.

Here is an example for a semiconductor material (AlxGa1−xAs) with a composition parameter x:

n_AlGaAs(l,x) := 
  { Refractive index of AlGaAs for wavelength l in nm; x = content of Al (e.g. 0.25 for 25%). }
    Data from M. A. Afromowitz, Solid State Commun. 15, 59 (1974). }
  var E0, Ed, Eg2, eta, Ef2, M1, M3, E2;
  E0 := 3.65 + 0.871 * x + 0.179 * x^2;
  Ed := 36.1 - 2.45 * x;
  Eg2 := (1.424 + 1.266 * x + 0.26 * x^2)^2;
  eta := pi * Ed / (2 * E0^3 * (E0^2 - Eg2));
  Ef2 := (2 * E0^2 - Eg2);
  M1 := (Ef2^2 - Eg2^2) * eta / (2 * pi);
  M3 := (Ef2 - Eg2) * eta / pi;
  E2 := (h * c / (l * 1e-9) / e)^2;  { photon energy }
  sqrt(1 + M1 + M3 * E2 + eta / pi * E2^2 * ln((Ef2 - E2) / (Eg2 - E2)));

Of course, the value of x may be different for each layer.

Computation Speed

RP Coating is very much optimized not only for convenience, but also for high speed of the numerical calculations. This has been achieved with the use of optimized algorithms which have been implemented efficiently. Substantial computation times occur only for numerical optimizations where a large number of parameters needs to be varied.