RP ProPulse – Numerical Simulation of Pulse Propagation
Overview | Purpose | Model | Interface | Demos | Versions |
Example Case: Active Mode Locking
In this simple example, we consider an actively mode-locked laser. The laser resonator is described in the script as follows:
resonator: ring * Crystal: gain(l) = g(l) [P_sat_av = P_sat_g, KK = 0] * Modulator: mod(t) = t_mod(t) * OC: T_out = T_OC resonator end
This refers to some variable values, the definitions of which are not shown here. The gain function g(l) has a limited bandwidth of 0.2 nm, and the modulator modulates the resonator round-trip losses with 100 MHz and peak losses of 10%.
The initial pulse duration was chosen to be somewhat longer than in the steady state. It is found that the steady-state value of the pulse duration agrees with the result of Kuizenga–Siegman theory (see the diagram below).
The script code required for that diagram is pretty simple:
; --------------------------- diagram 1: "Evolution of Pulse Parameters" x: 0, 20000 "number of round trips", @x y: 0, 300 "pulse duration (ps)", @y frame legpos 200, 160 hx hy tau_th := 0.45 * ((0.5 * T_OC) / (0.25 * A_mod))^0.25 / sqrt(f_mod * df_g) { theoretical value for steady-state pulse duration according to Kuizenga-Siegman theory } f: tau_th / ps, "steady-state value from theory", style = dashed, width = 3 f: (getpulse(x / rt_per_step,0); tau()) / ps, "numerical simulation", color = blue, width = 3
Also, we can see the temporal pulse profile after 2000 resonator round trips (which are calculated within a few seconds on an ordinary PC):