Encyclopedia … combined with a great Buyer's Guide!

Modeling of Pulse Amplification

This is part 3 of a tutorial on pulse amplification modeling from Dr. Paschotta. The tutorial has the following parts:

1:  Models for different pulse duration regimes
2:  Gain saturation
3:  Simulating pumping and pulse amplification
4:  Multimode amplifiers
5:  Amplified spontaneous emission
6:  Bulk amplifiers

Part 3: Simulating Pumping and Pulse Amplification

Typically, pumping and pulse amplification occur on very different time scales:

  • Pumping will typically be done within a time of the order of the upper-state lifetime of the amplifier medium. In the case of a fiber amplifier, that will normally be hundreds of microseconds to a couple of milliseconds.
  • The amplified pulses often have durations of nanoseconds, picoseconds or even femtoseconds.

Even with pulsed pumping, in the case of diode-pumped fiber amplifiers we are normally applying a pumping time far longer than the pulse duration.

Therefore, it is in most cases appropriate to separately simulate these two things:

  • For pumping within e.g. hundreds of microseconds, without any signal light being present yet, we can use a rather coarse temporal resolution, e.g. around 10% of the upper-state lifetime. More precisely, in cases with pump saturation (resulting from pump powers reaching or exceeding the pump saturation power) we should use a shorter effective lifetime, given by <$\tau_\textrm{eff} = 1 / (1 / \tau_\textrm{upper} + P_\textrm{pump} / E_\textrm{sat})$>. This correction is particularly important for pulsed pumping.
  • For pulse amplification, we need a much higher temporal resolution – typically of the order of 1/10 of the pulse duration or less. The numerical steps should be so short that gain saturation within one step is not very strong. (You may apply the formula as above, adapted to the signal peak power – which may be orders of magnitude higher than the pump power and makes the upper-state lifetime irrelevant in that case.)

If you wanted to simulate everything in a single time trace, that would need to contain a huge number of points, resulting in a highly inefficient calculation concerning memory and computation time – except if some (possible cumbersome) automatic adaptation of temporal step size is used.

Note also that diagrams for such combined time traces would be problematic: you cannot graphically resolve the pulse on such a time scale. So you better plot the evolution of gain during the pumping time and then in a separate diagram the time dependence during pulse amplification.

Repetitive Amplification

In a simple situation, we would

  • start with the unpumped amplifier, for example,
  • then apply pumping for some time (possibly followed by some waiting time where we lose part of the energy by spontaneous emission),
  • and finally simulate the pulse amplification,

and do all that just once. However, often we need to deal with repetitive amplification, in most cases with a constant pulse repetition rate. It may then not suffice to simulate one pulse amplification cycle because it depends on how much excitation of the laser-active ions is left over after each cycle.

If we need to analyze the full temporal evolution – e.g. starting with the unpumped amplifier –, we can simply proceed as follows:

  • Initialize the initial state (e.g. unpumped amplifier, i.e., zero excitations, or pumped amplifier).
  • Repeatedly simulate pumping and subsequent pulse amplification, possibly plotting and/or storing the results.

For an example case, the following diagram shows the evolution of pulse energy within the first 10 pulses, where the initial state of the amplifier was determined by pumping for a long time without an input signal:

evolution of pulse energy and gain
Figure 1: Evolution of pulse energy and amplifier gain in the first 10 amplification cycles.

Within around 10 cycles, the pulse energy converges to its steady-state value. In this case, we had a saturation parameter of 0.62 at the amplifier output, i.e., substantial but not very strong saturation by a single pulse.

It may seem surprising that the gain (green curve) levels off relatively sharply despite a repetition rate as high as 10 kHz (i.e., with a pulse spacing of only ≈10% of the upper-state lifetime); this is because gain saturation is caused by ASE (see part 5).

In cases with very small saturation parameter, as we typically experience with input signals from a mode-locked laser at its full pulse repetition rate, it takes a far larger number of amplification cycles to reach the steady state – possibly many thousands. If just the steady state is of interest, we should use a much more efficient technique:

  • Use a continuous-wave amplifier model, where the signal input power is the average power of the pulse train.
  • Do a single pulse amplification cycle, starting with the excitations from that continuous-wave model.

Well, that approach may fail e.g. if we have femtosecond pulses with a substantial change of pulse energy and pulse shape during the propagation, which cannot be reproduced by the continuous-wave model. For such cases, here is a more sophisticated trick to greatly speed up finding the steady state:

  • Do the simulation with a e.g. 1000 times reduced pulse repetition rate.
  • Keep the pulse energy as before, but artificially increase the effect of gain saturation by the same factor of 1000.

That way, you can find the steady state simulating 1000 times fewer pulse amplification cycles. Only, that factor should be chosen low enough such that the saturation parameter (also adapted with that factor) stays well below 1; a value of the order of 0.1 will be appropriate.

Note: if you would simply increase the pulse energy by a factor of 1000, you would get terribly strong nonlinear effects and no realistic results at all. You want to maintain the original peak power in your simulation, but nevertheless increase the effect of gain saturation – with a simple manipulation in the equations. Our RP Fiber Power software has a function set_gain_sat() for introducing such a factor for gain saturation.

It may also be convenient to program a function which finds the steady state. For example, it may simulate repeated pumping and amplification cycles until a set of pulse parameters (energy, duration, bandwidth) does not change substantially anymore. In RP Fiber Power, the scripting capability makes the easy; the user can do that without having our source code.

Here is an example for how to implement such a function, assuming that functions SimulatePumping() and SimulatePulsePropagation() have already been defined, and implementing the above described trick to minimize the number of simulated cycles:

FindSteadyState() :=
  { Find the steady state,
    i.e., simulate pulse amplification / pumping cycles
    until the relative change of pulse energy is small.
    Directly begin with amplification, assuming that pumping has already been done.
    Return the obtained output pulse energy. }
    global signal, T_pump;
    const accuracy = 0.2e-3;
    var E_s_out, E_last, NoCycles, N_b;
    E_s_out := E_p();
    NoCycles := 0;
      N_b := round(0.05 * E_sat(signal) / E_s_out); { pulses in one bunch to simulate }
      if N_b < 1 then N_b := 1;
      E_last := E_s_out;
      SimulatePumping(N_b * T_pump);
      E_s_out := E_p();
    until abs(E_s_out - E_last) < accuracy * E_last and NoCycles >= 3;

Pulsed Pumping

In many cases, fiber amplifiers are continuously pumped. For low pulse repetition rates, however, that may not be efficient: if the pumping time is the upper-state lifetime or more, a lot of excitation is lost before it can be utilized. One can then apply pulsed pumping: after each pulse, first wait for a while without pumping, then turn the pump on for a while, then inject the next signal pulse.

This is of course not difficult to simulate. Basically, we just begin each “pumping” cycle with some waiting time, after which we switch the pump on. Similarly, we might use pump pulses with some non-rectangular temporal shape. Only if the pump pulse duration gets rather short (and the pump power correspondingly high), we again need to consider the required temporal resolution, and possibly simulate pumping and waiting periods separately with different temporal resolution.


A few conclusions from this part of the tutorial:

  • It is generally advisable to simulate pumping and pulse amplification separately with different temporal resolutions.
  • For repetitive pumping, we should distinguish different regimes concerning saturation parameter and apply suitable simulation approaches. With such techniques, computation times can be kept rather low.

Go to Part 4: Multimode amplifiers or back to the start page.


Share this with your friends and colleagues, e.g. via social media:

These sharing buttons are implemented in a privacy-friendly way!

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; we would otherwise delete it soon. (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.

Your question or comment:

Spam check:

  (Please enter the sum of thirteen and three in the form of digits!)

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.