The Thin-film Software RP Coating (original) (raw)

RP Coating — Advanced Software for

Designing Optical Multilayer Structures

Overview Purpose Model Interface Demos Versions

The Basic Concept of the User Interface

This software can be controlled with simple forms, where one just enters a couple of input parameters, start the calculation and obtains various outputs:

See an example of such a form (a demo file delivered with the software), which can be used for designing anti-reflection coatings. You simply enter the requirements (up to 3 target wavelengths, a bandwidth, angle of incidence, polarization) in addition to some structural parameters (chosen materials, number of layers etc.) and a few numerical parameters (number of Monte-Carlo trials):

form for anti-reflection coating

It is important to note that the forms and the underlying calculations are not hard-coded. You obtain script files, i.e., text files which define a multilayer structure, all the calculations and the generated graphical diagrams, and (optionally) a custom form.**You can modify such scripts such that they meet your specific needs.**The user interface of the software provides powerful editors and a lot of additional helpful features for modifying such scripts or developing new scripts.

Scripting gives you enormous flexibility. With that, you can implement even most sophisticated models; you can even do full-blown programming. Competing programs which do not offer scripting cannot compete with RP Coating in terms of flexibility:

Note that competing software products usually offer only hard-coded standard forms, which you cannot adapt to your needs. You just have to hope that they will provide everything you will need.

The Script Language

The script language of RP Coating is very powerful. Each input script can contain

Instead of using a custom form, you can also simply define the input parameters within the script. However, it is often preferable to make a custom form. For example, it easily allows you to switch between different parameter sets, which you can save in files.

Of course, you can store frequently used script parts in external files and easily call them in your main script.

The following code snippets show you that the script language is easy to use.

Simple Bragg Mirror

The first example shows how a simple Bragg mirror is defined:

l_Bragg := 1000 nm  { Bragg wavelength }
N_Bragg := 8  { number of layer pairs }

beam from superstrate
substrate: BK7
for j := 1 to N_Bragg do
begin
  * SiO2, d = l/4 at l_Bragg
  * TiO2, d = l/4 at l_Bragg
end
superstrate: air

Chirped Mirror

A second example shows the definition of a chirped mirror, where all layer thickness values vary systematically within the coating:

l_Bragg0 := 1000 nm  { Bragg wavelength in the middle }
dl := 5 nm  { change in Bragg wavelength with each layer pair }
N_Bragg := 8  { number of layer pairs }
l_B(j) := l_Bragg0 + (j - N_Bragg / 2) * dl  { Bragg wavelength for layer pair j }
d_SiO2(j) := (var l; l := l_B(j); l / 4 / n_SiO2(l))
d_TiO2(j) := (var l; l := l_B(j); l / 4 / n_TiO2(l))

beam from superstrate
substrate: BK7
for j := 1 to N_Bragg do
begin
  * SiO2, d = d_SiO2(j)
  * TiO2, d = d_TiO2(j)
end
superstrate: air

You see that it is straightforward to implement different types of chirps, add some more layers, etc. That flexibility is usually not obtained for competing products.

Numerical Optimization

Here is a little code for a numerical optimization:

l_HR := 1064  { HR wavelength }
l_HT := 808   { HT wavelength }
FOM():= { merit function }
  sqrt(sum(d := -20 to +20 step 5, T(l_HR + d)^2)
      +sum(d := -20 to +20 step 5, R(l_HT + d)^2))

optimize coating for minimum of FOM()

The defined merit function would be zero for a mirror with vanishing transmission around 1064 nm and vanishing reflectivity around 808 nm — that is the design target of a dichroic mirror used for injecting pump light into a Nd:YAG laser. The command “optimize” modifies the structure such that the value of that merit function is minimized.

Displaying a Reflection Spectrum

Finally, we show a little code for showing a reflection spectrum:

diagram 1:

"Reflectivity Profile"

x: lambda_min, lambda_max
"wavelength (nm)", @x
y: 0, 100
"reflectivity (%)", @y
frame
hx
hy

f: 100 * R(x),
  color = red, width = 3

Script Editors

For editing script code, the software offers powerful editors and related tools. A screen shot shows an editor:

script editing in RP Coating

Some great features of such editors:

code snippets library

Graphical Output

Your script can define several diagrams for visualizing the results of the calculations. Examples are shown on the pages for various example cases. Each diagram is shown in a separate window. Below you see an example of such a graphics window, showing what optical intensities occur in a Bragg mirror for different wavelengths.

field penetration into a Bragg mirror

Those graphics windows have plenty of convenient features:

Comprehensive Documentation

RP Coating comes with very well worked out documentation, which allows you to have a quick start and work efficiently even when doing sophisticated modeling:

interactive help system of RP Coating

Technical Support

Any remaining problems can be addressed with the technical support. We make sure that any problems you may have will soon be solved.

If you have any further questions or need a quotation: Contact us