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

Demo File: Gires–Tournois interferometer

Here, we analyze the characteristics of a Gires–Tournois interferometer, which could be used for dispersion compensation in a mode-locked laser, for example. It consists of a Bragg mirror, one thicker layer and a thin top layer. Effectively, it is like a Fabry–Pérot interferometer operated in reflection, where the back mirror has a high reflectivity. The overall reflectivity is then high for all wavelengths in some range, and is hardly affected by the resonances. Due to the interference effect from the top mirror, however, one obtains a periodic variation of the phase change and thus chromatic dispersion.

We first describe the structure:

d_units: nm
l_units: nm
 
l_Bragg := 1000  { Bragg wavelength }
N_Bragg := 10  { no layer pairs }
d_t := 3.25 * l_Bragg / n_SiO2(l_Bragg * l_units)  { thickness of thick SiO2 layer }
 
beam from superstrate
substrate: BK7
for j := 1 to N_Bragg do
begin
* TiO2, l / 4 at l_Bragg
* SiO2, l / 4 at l_Bragg
end
* SiO2, d = d_t
* TiO2, l / 4 at l_Bragg
superstrate: air

The first diagram shows the reflectivity profile:

diagram 1:
 
"Reflectivity Profile"
 
x: 800, 1200
"wavelength (nm)", @x
y: 0, 100
"transmissivity (%)", @y
frame
hx
hy
 
f: 100 * R(x), color = red, width = 3, step = 1
reflectivity profile of a GTI

A second diagram shows the group delay versus wavelength, which is highest on the resonances:

diagram 2:
 
"Group Delay in Reflection"
 
x: 800, 1200
"wavelength (nm)", @x
y: -150, +150
"T_g (fs)", @y
frame
hx
hy
clip
 
f: T_g_r(x) / fs, color = green, width = 3
 
f: CS_y1 + R(x) * (CS_y2 - CS_y1), style = dotted
 
f: 0
group delay at a GTI

The third diagram plots the group delay dispersion as a function of wavelength:

diagram 3:
 
"Group Delay Dispersion"
 
x: 800, 1200
"wavelength (nm)", @x
y: -2000, +2000
"GDD (fs^2)", @y
frame
hx
hy
clip
 
f: GDD_t(x) / fs^2,
  color = blue, width = 3, step = 1, maxconnect = 1
 
f: CS_y1 + R(x) * (CS_y2 - CS_y1), style = dotted
 
f: 0
group delay dispersion of a GTI

Next we look at intensity patterns versus wavelength:

diagram 4:
 
x: 800, 1200
"wavelength (nm)", @x
y: -500, d_tot + 1500
"depth in the mirror structure (nm)", @y
frame
 
! begin  { show the color scale }
    var x1, x2;
    x1 := CS_x2 + 0.02 * (CS_x2 - CS_x1);
    x2 := CS_x2 + 0.04 * (CS_x2 - CS_x1);
    for y := CS_y1 to CS_y2 step (CS_y2 - CS_y1) / 500 do
    begin
      setcolor(colorscale((y - CS_y1) / (CS_y2 - CS_y1)));
      line(x1 + i * y,x2 + i * y);
    end;
    setcolor(black);
  end
 
! (set_dir(1); R(lambda_t))
 
cp: colorscale((R(x); E2(y) / 4))  { color plot }
 
; Show the layer boundaries:
f: get_z(j), style = solid, color = lightgray, for j := 1 to nolayers()
f: 0
f: get_z(nolayers() + 1)
 
"substrate", 200c, (-200)c
"superstrate", 150, (d_tot + 200)c
field intensity distribution at a GTI

One can see that the reflection phase changes rapidly around the resonances, but stays approximately constant in other regions.

Finally, we simulate the propagation of an ultrashort pulse through the structure. Although RP Coating has no explicit functions for such purposes, we can do that with a few lines of script code. We define some arrays for the time- and frequency-dependent complex amplitudes, also for the complex electric field in the whole structure for all optical frequencies (for later use, see below). Then we do the actual calculation and display the reflected pulse:

diagram 5:
 
"Reflection of Ultrashort Pulse"
 
x: -200, +200
"time (fs)", @x
y: -1, 1
"electric field strength (a. u.)", @y
frame
hx
hy
 
; Parameters of the test pulse:
A0 := 0.9 { peak amplitude }
tau0 := 10 fs { FWHM duration }
l0 := 1000 nm { center wavelength }
f0 := c / l0 { center frequency }
A0%(t) := A0 / cosh(1.76 * t / tau0) { complex amplitude in time domain }
E0(t) := Re(A0%(t) * expi(-2pi * f0 * t)) { electric field }
 
["l0 = ", l0:d3:"(n)m",
  ", tau0 = ", tau0:d3:"s",
  ", T_g = ", T_g_r(l0 / l_units):d3:"s",
  ", GDD = ", GDD_r(l0 / l_units) / fs^2:f0:"fs^2"]
 
; Numerical parameters:
T := 3000 fs
N := 2^10
dt := T / N
t1 := -T / 2 + dt
t2 := T / 2
df := 1 / T
f2 := (N / 2) * df
f1 := -f2 + df
f_max := 1 / dt - df
defarray A%[0, T - dt, dt] (periodic) { amplitudes in time domain }
defarray A0_f%[0, f_max, df] (periodic) { amplitudes in frequency domain }
defarray A_f%[0, f_max, df] (periodic) { amplitudes in frequency domain }
 
z_max := d_tot * d_units + 3 um
dz := 30 nm
dz := z_max / round(z_max / dz)
defarray E%[0, z_max, dz; f1, f2, df]
 
calc
  begin
    for t := t1 to t2 step dt do A%[t] := A0%(t);
    FFT_n(A%[], A0_f%[], +1);
    for f := f1 to f2 step df do
    begin
      A_f%[f] := r%(c / (f0 + f) / l_units) * A0_f%[f];
      for z := 0 to z_max step dz
      do E%[z,f] := E_plus%(z / d_units) + E_minus%(z / d_units);
    end;
    FFT_n(A_f%[], A%[], -1);
  end
 
A%(t) := A%~[t] { final amplitude }
E(t) := Re(A%(t) * expi(-2pi * f0 * t))
 
I(z,t) := 
  { intensity at position z and time t }
  begin
    var E%;
    E% := sum(f := f1 to f2 step df,
            A0_f%[f] * E%[z,f] * expi(-2pi * (f0 + f) * t));
    abs2(E%) / N;
  end
 
f: E0(x * fs), color = lightgray, step = 1
f: E(x * fs), color = blue, step = 1
 
f: abs(A0%(x * fs)), color = lightgray, step = 1 { envelope of initial pulse }
f: -abs(A0%(x * fs)), color = lightgray, step = 1
 
f: abs(A%(x * fs)), color = blue, step = 1 { envelope of final pulse }
f: -abs(A%(x * fs)), color = blue, step = 1

As the chosen input pulse (blue curve) is rather short, we obtain a sequence of output pulses:

ultrashort pulse reflected on a GTI

The next diagram shows the time-resolved field intensity distribution:

diagram 6:
 
"Ultrashort Pulse in the GTI Structure"
 
x: -50, +100
"t (fs)", @x
y: 0, z_max / um
"z (┬Ám)", @y
frame
hx
hy
 
! I_max := maxf(I(z,0), z in [0, z_max], xtol = 0.1 nm, divide = round(10 * z_max / l0))
cp: colorscale(I(y * um,x * fs) / I_max)
 
"air", 100, (d_tot * nm / um + 0.3)c
f: d_tot * nm / um { indicate the surface of the GTI }
"GTI", 100, (d_tot * nm / um - 0.3)c
ultrashort pulse in a GTI

One can see how the incoming pulse (upper left part) causes a first reflected pulse at the input face, then a stronger pulse via reflection at the bottom Bragg mirror, and further weaker pulses which do multiple round trips in the structure. For the given very short input pulse, these reflected pulses stay well separated in time. Normally, a GTI would be used with much longer pulses, so that all reflected pulses overlap strongly in time. In that situation, the pulse bandwidth is smaller than the bandwidth of the GTI resonances.

arrow