RP Photonics

Software … powerful tools for your research & development!


RP Coating – Advanced Software for
Designing 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.

polarizing plate

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

form for designing thin-film plate polarizers

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
* SiO2, l / 4 at l_B
* TiO2, l / 4 at l_B
* 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
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 }
    line(l, l + i * CS_y2)
reflectivity profile of a thin-film plate polarizer

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
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
    line(theta / deg,theta / deg + i * CS_y2);
angular sensitivity of a thin-film plate polarizer

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
! begin
    for j := 1 to nolayers() do
      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);
    draw_cs(); { draw the coordinate system again }
 (get_z(j) + 0.5 * get_d(j))c, (0.1 * CS_y2)b, direction = 90,
 for j := 1 to nolayers()
"substrate", (-200)c, (0.1 * CS_y2)b, direction = 90
"superstrate", (get_d(0) + 200)c, (0.1 * CS_y2)b, direction = 90
f: n(x,l), step = 1, color = blue
design of a thin-film plate polarizer