# RP ProPulse – Numerical Simulation of Pulse Propagation

Overview | Purpose | Model | Interface | Demos | Versions |

## The Physical Model

### Time and Frequency Domain

**RP ProPulse** describes the state of an optical pulse at some location in a system with a complex amplitude *A*(*t*) in the time domain, or an amplitude *A*(*f*) in the frequency domain.
These amplitudes are directly related to the electric field.
The Fast Fourier Transform (FFT) algorithm is used for switching from one domain to the other, as required.
The user of the software does not have to deal with that, as the software automatically calculates the field in the required domain, when a function call accesses some pulse property.
For example, the software will calculate the temporal trace (if it has not been calculated already) when the user requests the power or phase versus time, and it calculates the frequency trace when the power spectral density is requested.

### Numerical Sampling

In each domain, the complex amplitudes are stored at equidistant locations within some range. The finer the sampling in the time domain, the larger is the accessible range of optical frequencies or wavelengths. The larger the sampled time range, the finer is the frequency resolution.

Typically, a pulse would be sampled at 256, 512 or 1024 locations.
This is sufficient for modeling the performance of common mode-locked lasers, for example, and will lead to very rapid calculations.
However, up to 2^{18} = 262,144 sampling points can be used for extreme cases, for example for octave-spanning supercontinuum generation.

The user is responsible for choosing a numerical resolution which is sufficiently high for obtaining the required accuracy. However, it is possible to automatically adapt the resolution to given model parameters, using some simple script commands.

### Optical Components and Operators

The user can define a laser resonator, for example, which can contain a virtually unlimited number of *optical components*, such as laser crystals, mirrors, modulators, saturable absorbers, etc.
Some air space can also be regarded as an optical component, if its chromatic dispersion or nonlinearity is relevant.

In a ring laser, in each resonator round-trip the pulse will propagate through all these components in the given order, whereas in a linear resonator it will be reflected at some end mirror and again pass the other components on the backward path. The software automatically takes this into account, and it allows the user to access the pulse properties at any location between the optical components (on the forward or backward path).

Each optical component can have multiple properties, which are described in the software with so-called *operators*.
For example, a laser mirror may have operators for wavelength-dependent losses and for chromatic dispersion.
A laser crystal may have an operator for the laser gain (wavelength-dependent amplification, with a wide choice of options for the gain saturation behavior), and possibly additional operators for chromatic dispersion, the Kerr nonlinearity or even a non-instantaneous nonlinear response describing stimulated Raman scattering (SRS).
Other operators describe two-photon absorption, parametric amplification, second-harmonic generation, pulse compression (even with automatic optimization of chromatic dispersion), or the addition of quantum noise.
The enormous choice of operators, combined with the uttermost flexibility of the script language, allows one to model an enormous range of devices and physical effects.

### Computation Speed

**RP ProPulse** is very much optimized not only for convenience, but also for high speed of the numerical calculations.
This has been achieved with a combination of measures, including a neat design of the general concept and data structures, and also the use of optimized algorithms.
Users are often amazed about the speed of this software.

If you have any **further questions** or need a **quotation**: