Software … powerful tools for your research & development!

# RP Coating – Advanced Software forDesigning Optical Multilayer Structures

## Demo File: Thin-film Plate Polarizer

With this demo file, we can design thin-film plate polarizers, having a dielectric coating on one side only. The angle of incidence is chosen to be Brewster's angle, such that the reflection for p polarization at the uncoated back side vanishes. We thus need a coating which has a high reflectivity for s polarization at the design wavelength of 1064 nm, and a low reflectivity for p polarization.

In the form, one can select the materials, enter a few design parameters and select some graphical diagrams:

The form and the calculations are not hard-coded, but implemented in the form of a script. In the following, we reveal some details of the implementation.

The basic idea for the coating structure is to use something similar to that of a Bragg mirror, where the design wavelength is within the reflection band for s polarization but just outside that band for p polarization. A real Bragg mirror, however, is not very suitable due to the substantial reflection peaks outside the main reflection band. It is much better to use a long-wave pass filter, which is a slightly modified version of a Bragg mirror: the two outer high-index layers have a thickness of only λ / 8 instead of λ / 4:

```l := 1064  { operation wavelength }
theta := arctan(n_BK7(l * l_units))
N_Bragg := 10  { no layer pairs }
l_B := 1020  { Bragg wavelength for normal incidence }

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

Then we define a figure-of-merit function describing the design goal:

```FOM() := sum(l := 1060 to 1070 step 2, R_p(l,theta)^2 + T_s(l,theta)^2)
```

As always, that function is made such that it would return 0 for ideal performance, but gives positive “penalties” for any deviations.

We can then use a simple local optimization to further improve the performance:

```optimize coating for minimum of FOM()
```

The first diagram made shows the reflectivity profile:

```diagram 1:

"Reflectivity Profile"

x: 700, 1200
"wavelength (nm)", @x
y: 0, 100
"reflectivity (%)", @y
frame
hx
hy
legpos 420, 150

f: 100 * R_p(x, theta), "p polarization",
color = red, width = 3, step = 1

f: 100 * R_s(x, theta), "s polarization", style = dashed,
color = red, width = 3, step = 1

! begin  { indicate the design wavelength }
setcolor(gray);
line(l, l + i * CS_y2)
end
```

We then test the sensitivity to angle changes:

```diagram 2:

"Variation of the Angle of Incidence"

x: 50, 60
"angle of incidence (°)", @x
y: 0, 100
"reflectivity (%)", @y
frame
hx
hy

f: 100 * R_s(l, x * deg), "s polarization",
color = red, width = 3
f: 100 * R_p(l, x * deg), "p polarization",
color = red, width = 3, style = dashed

! begin
setcolor(gray);
line(theta / deg,theta / deg + i * CS_y2);
end
```

We see that the reflectivity for p polarization would rise for substantially smaller angles, where the reflectivity on the back side of the substrate would also rise.

Finally, we show the design of the obtained structure:

```diagram 3:

x: -500, get_d(0) + 500
"position (nm)", @x
y: 0, 3
"refractive index (nm)", @y
frame

! begin
for j := 1 to nolayers() do
begin
var g;
g := if get_material\$(j) = "TiO2" then 0.8 else 0.9;
setcolor(rgb(g, g, g));
box(get_z(j), get_z(j + 1) + i * CS_y2);
end;
draw_cs(); { draw the coordinate system again }
end

[get_d(j):f0:"nm"], (get_z(j) + 0.5 * get_d(j))l, (0.03 * CS_y2)c,
direction = 90, for j := 1 to nolayers()
"substrate", (-200)l, (0.03 * CS_y2)c, direction = 90
"superstrate", (get_d(0) + 200)l, (0.03 * CS_y2)c, direction = 90

f: n(x,l), step = 1, color = blue
```