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 Resonator – Advanced Software for
Laser Resonator Design and Optimization

Example Case: Ring Resonator

We consider a ring resonator with a bow-tie geometry, containing a laser crystal with variable focusing power. The script first defines some parameters and then the resonator setup:

; ----------------------
; Resonator parameters:
a := 10 cm
b := 8 cm
R1 := 40 cm
R2 := R1
theta := 6 deg
d := 2 * b * cos(2 * theta) - a
l_cr := 5 mm  { length of crystal }
n_cr := 1.82  { refractive index of crystal }
F_cr := 3  { focusing power of crystal }
; ----------------------
resonator: ring
* mirror (M1): R = R1
* air: d = (a - l_cr) / 2, "(a - l_cr) / 2"
* prism (Crystal): l = l_cr, d = 2 mm, theta = 0, alpha = 0, n = n_cr, n2 = F_cr / l_cr
* air: d = (a - l_cr) / 2, "(a - l_cr) / 2"
* mirror (M2): R = R2, theta = theta
* air: d = b, "b"
* mirror (M3): theta = -theta
* air: d = d, "d"
* mirror (M4)
resonator end

Note that the closing air space is added automatically. Also, the software automatically adjusts the incidence angles on mirrors M1 and M4 such that the beam path is closed.

First, we want to have the resonator setup shown graphically in order to check that everything has been defined correctly:

diagram 1, size_px = (600, 180):
draw resonator, "Resonator Setup", showfocus

The result:

ring resonator setup

Now we plot the beam radius vs. position:

diagram 2:
"Beam Radius vs. Position"
x: 0, L_res / mm
"z position (mm)", @x
y: 0, 400
f: w(x * mm,lambda_ref) / um, "w(z) (µm)", color = blue, width = 3
ShowLine(z) := line(z / mm, z / mm + i * w(z, lambda_ref) / um)
! ShowLine(zm[M1])
"M1", ((z := zm[M1]) / mm)l, (w(z, lambda_ref) / um + 10)b
! ShowLine(zm[M2])
"M2", ((z := zm[M2]) / mm)c, (w(z, lambda_ref) / um + 10)b
! ShowLine(z1[Crystal])
! ShowLine(z2[Crystal])
"crystal", ((z := zm[Crystal]) / mm)c, (w(z, lambda_ref) / um + 10)b
! ShowLine(zm[M3])
"M3", ((z := zm[M3]) / mm)c, (w(z, lambda_ref) / um + 10)b
! ShowLine(zm[M4])
"M4", ((z := zm[M4]) / mm)c, (w(z, lambda_ref) / um + 10)b
"M1", ((z := L_res) / mm)r, (w(z, lambda_ref) / um + 10)b

Some additional lines of code draw vertical lines and text labels, indicating the positions of the optical elements. For convenience, the function ShowLine(z) has been defined.

beam radius in ring resonator

Next, we plot the beam radius at the laser crystal as a function of the dioptric power of the crystal:

diagram 3:
"Variation of the Dioptric Power of the Crystal"
x: -15, +10
"dioptric power of the crystal (1 / m)", @x
y: 0, 600
f: (F_cr := x; Init(0); w(zm[Crystal],lambda_ref)) / um, "w(z) (µm)",
   color = blue, width = 3,
   init F_cr0 := F_cr,
   finish (F_cr := F_cr0; Init(0))
variation of dioptric power of the crystal

Since RP Resonator V3, there is also a version of the script with a custom form:

form for ring resonator

This means that you don't any more have to edit the input values (arm lengths, angles, etc.) in the script code, but simply in the form.

(back to the list of example cases)