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 backside 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  { operating wavelength }
theta := arctan(n_BK7(l * l_units))
N_Bragg := 10  { number of 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

The Bragg wavelength is chosen relatively small: 1020 nm for normal incidence, which shifts to even shorter wavelengths for angled incidence. However, this was found to work best for achieving low reflectivity for p polarization, while the reflectivity is still high for s polarization.

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
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
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
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 backside 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", @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
design of a thin-film plate polarizer

(back to the list of example cases)

Questions and Comments from Users

Here you can submit questions and comments. As far as they get accepted by the author, they will appear above this paragraph together with the author’s answer. The author will decide on acceptance based on certain criteria. Essentially, the issue must be of sufficiently broad interest.

Please do not enter personal data here. (See also our privacy declaration.) If you wish to receive personal feedback or consultancy from the author, please contact him, e.g. via e-mail.

Spam check:

By submitting the information, you give your consent to the potential publication of your inputs on our website according to our rules. (If you later retract your consent, we will delete those inputs.) As your inputs are first reviewed by the author, they may be published with some delay.