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.
powerful tools for efficient laser development and laser science
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.
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 forDesigning Optical Multilayer Structures

## Demo File: Air-spaced Etalon

Here, we analyze an air-spaced etalon, consisting of two simple mirrors with some air space in between. That design can be described as a single structure, which includes one “layer” of air:

```d_units: nm
l_units: nm

l_Bragg := 1000  { Bragg wavelength }
N_Bragg := 2  { number of layer pairs }
d := 0.1 mm / d_units  { distance between the mirrors (in d_units) }

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

The first diagram shows the transmittivity profile:

```diagram 1:

"Transmissivity Profile"

x: 990, 1010
"wavelength (nm)", @x
y: 0, 100
"transmissivity (%)", @y
frame
hx
hy

f: 100 * T(x), color = red, width = 3, step = 1
```

We see the transmission peaks corresponding to resonances of the structure.

A second diagram shows the transmittivity for a variable angle of incidence:

```diagram 2:

"Transmissivity for Different Angles of Incidence"

"(for p polarization)"

x: 990, 1010
"wavelength (nm)", @x
y: -5, +5
"angle of incidence (°)", @y
frame
hx
hy

cp: color_I(T_p(x, y * deg))
```

We see that the resonances move to shorter wavelengths when the etalon is tilted. Also, we see that a Gaussian beam with 100 μ beam radius, for example, having a beam divergence of only 3.2 mrad = 0.18°, will experience a nearly constant transmissivity over its angular range, as long as the angle of incidence is not too large.

The third diagram plots the group delay in transmission as a function of wavelength, which is highest on the resonances (which are shown with the dotted curve):

```diagram 3:

"Group Delay"

x: 990, 1010
"wavelength (nm)", @x
y: -2, +2
"T_g (ps)", @y
frame
hx
hy
legpos 420, 150
clip

f: T_g_t(x) / ps,
color = green, width = 3

f: CS_y1 + T(x) * (CS_y2 - CS_y1), style = dotted

f: 0
```

Next we look at the group delay dispersion, which is essentially the frequency derivative of the group delay:

```diagram 4:

"Chromatic Dispersion"

x: 998, 1002
"wavelength (nm)", @x
y: -2, +2
"GDD (ps^2)", @y
frame
hx
hy
legpos 420, 150
clip

f: GDD_t(x) / ps^2, color = blue, width = 3, step = 1, maxconnect = 1

f: CS_y1 + R(x) * (CS_y2 - CS_y1), style = dotted

f: 0
```

We can also show how the field intensity is in and around the lower mirror:

```diagram 6:

"Field Penetration"

x: 990, 1010
"wavelength (nm)", @x
y: -500, +2000
"depth in the mirror structure (nm)", @y
frame

! begin  { show the color scale on the right side of the diagram }
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(color_I((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: color_I((R(x); E2(y) / 4))  { color plot }

; Show the layer boundaries:
f: 0
f: get_z(j), style = solid, color = lightgray, for j := 2 to nolayers()
f: get_z(2 * N_Bragg + 1)

"substrate", 200c, (-200)c
"mirror", 200c, (0.5 * get_z(2 * N_Bragg + 1))c
"air", 200c, (get_z(2 * N_Bragg + 1) + 200)c
```

Finally, we explore what happens to an ultrashort pulse which is transmitted through the etalon. Although RP Coating does not have explicit ultrashort pulse features, its powerful script language makes it easy to simulate such things.

We first define the incident pulse with a duration of 2 ps:

```A0 := 1  { peak amplitude }
tau0 := 2000 fs  { duration }
l0 := 1000 nm  { center wavelength }
f0 := c / l0  { center frequency }
A0%(t) := A0 / cosh(1.76 * t / tau0)  { envelope function }
E0(t) := Re(A0%(t) * expi(2pi * f0 * t))  { electric field }
```

Then we define one complex array for the complex amplitudes in the time domain, and another one for the frequency domain:

```T := 20 ps  { width of the time range }
N := 2^10  { number of points }
dt := T / N  { temporal resolution }
t1 := -T / 2 + dt  { beginning of time trace }
t2 := T / 2  { end of time trace }
df := 1 / T  { frequency resolution }
f2 := (N / 2) * df  { end of frequency trace }
f1 := -f2 + df  { beginning of frequency trace }
defarray A%[0, T - dt, dt] (periodic)
defarray A_f%[f1, f2, df] (periodic)
```

Now we do the actual calculation: store the initial amplitudes in the time domain, do a fast Fourier transform (FFT) to get to the frequency domain, apply the effect of transmission through the etalon there, and transform back to the time domain:

```calc
begin
for t := t1 to t2 step dt do A%[t] := A0%(t);
FFT_n(A%[], A_f%[], +1);
for f := f1 to f2 step df do A_f%[f] := t%(c / (f0 + f) / l_units) * A_f%[f];
FFT_n(A_f%[], A%[], -1);
end
```

Finally, we can define functions for the field at the output and use these for plots:

```A%(t) := A%[t]
E(t) := Re(A%(t) * expi(2pi * f0 * t))

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
f: -abs(A0%(x * fs)), color = lightgray, step = 1
f: abs(A%(x * fs)), color = blue, step = 1
f: -abs(A%(x * fs)), color = blue, step = 1
```

We obtain the following:

The transmitted pulse (in blue) is delayed against the incident pulse (gray). This is because it takes several round trips in the resonant structure until the internal field is fully built up.

We now do the same again for a pulse with a duration of only 200 fs. This leads to several transmitted pulses, separated by one round-trip time in the structure:

(Note that the fast electric field oscillations cannot be resolved with the limited resolution of the graphics windows.)

As the bandwidth of the pulse is of the order of the free spectral range, we cannot expect that we simply get a single pulse out, which is delayed by the group delay at the center wavelength.