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

The Script Language in Software from RP Photonics

All the software products of RP Photonics work with a powerful script language, which is briefly described here. Whereas in RP Q-switch you can only utilize the mathematical functions, and RP Fiber Calculator is limited in a similar way, all other products can execute complex scripts which allow for full-blown programming by the user.

Some people asked whether they can use MATLAB, for example, for processing of inputs or outputs of RP Software. The answer:

In the end, you might completely work without MATLAB or similar, even in applications not related at all to the physics simulations.

Typical Applications

The script language can be used for many purposes. Some examples are:

  • You can pre-process input data. You can calculate the inputs for some simulation from inputs given in a different form. Apply any set of equations or even iterative procedures to process your data.
  • Similarly, you can post-process output data. For example, if RP Coating produces the design of a multilayer structure, you may output that in any form – say, with thickness values in any units, in reversed order, only those layers consisting of a certain material, or whatever you need.
  • Generate diagrams as needed. For example, plot any quantity as a function of any other quantity, or make color diagrams, where the color of each pixel is calculated according to its coordinates.
  • Handle files in the most flexible manner. Read in files with any known text or binary format and get your inputs from those. For example, read measured data from all files matching a mask like Data*.dat in order to plot them together with your calculated data. Similarly, write outputs into files with any text or binary format.

The Arithmetics

Our software provides very powerful arithmetics. Some key features:

  • There is a wide range of mathematical standard functions e.g. for trigonometry, logarithms, random numbers (e.g. with Gaussian probability distribution), etc.
  • Complete complex arithmetics are offered.
  • There are multidimensional arrays with linear, quadratic and spline interpolation. For example, read measured data points into an array and interpolate the data with cubic splines. Also, do multi-dimensional fast Fourier transforms (FFT).
  • There are various functions for numerical purposes, such as finding roots, minima or maxima, derivatives and integrals, and even for integrating differential equations.
  • There are functions to process whole arrays in one go; e.g., multiply each element of an array with the corresponding value in another array, or sum up all elements of an array, or find the maximum in an array.

Processing of Strings

  • You can handle strings of basically arbitrary length, limited only by your computer's main memory.
  • There are many string functions, e.g. for getting or replacing parts of strings, converting strings to upper or lower case, formatting date and time values, etc.
  • You can even use regular expressions for finding, replacing and extracting text parts. For example, you could easily extract all h1 headings from an html file.
  • Numerical values can be formatted as strings, e.g. with a given number of digits and given units.

Control Structures

Even within mathematical expressions, you can control the flow of operation with

  • if-then-else statements
  • while-do, repeat-until and for loops

For example, in RP ProPulse or RP Fiber Power you may propagate an ultrashort pulse through a laser resonator until the pulse energy, duration and bandwidth do no more change significantly, i.e., the steady state has been reached.


You can read and write files with arbitrary text or binary format (e.g. MATLAB files) – variable by variable for complex formats, or all into one numerical array or string. For text files, you can also exploit the powerful string functions, including the use of regular expressions. For example, with just a few lines of code you may load an XML file and extract the contents of a certain tag.

Specialized Functions for Physics

Each program supports specialized functions for the relevant physics simulations. For example, RP Fiber Power offers far over 100 functions for purposes like changing input powers of a fiber device, extracting calculated powers and excitation densities, starting dynamical simulations or ultrashort pulse propagation, etc. Such functions can then be used within any mathematical expression, for example for the ordinate values in a function plot.

User-defined Functions

Define your own functions for all sorts of purposes. For example, in RP Fiber Power you may define a function which first generates a Gaussian pulse with a given energy and duration, then propagates that pulse through the fiber, and finally returns the duration of the output pulse. In RP Coating, there are functions for modifying layer thickness values and for extracting all optical properties of the coating. Such functions can then be used, for example, in plots.

Functions, and even any begin-end block within any expression, can contain local variables, avoiding unintended interactions with global variables.

Numerical Optimization

You may numerically optimize some user-defined figure-of-merit function, using either local optimization with a gradient method or a Monte-Carlo algorithm, starting with many random sets of parameters. Your figure-of-merit function can set values in your physical model, utilize any calculated results, and put them together to describe exactly what you need to optimize.


With a few commands, you can create a diagram:

  • Define a coordinate system with lots of options to control its exact appearance.
  • Define function plots and parametric plots, or color plots.
  • Draw points as rectangles, triangles, circles, stars, etc., for example in order to indicate data points.
  • Write text into diagrams, with calculated values, font types and sizes, etc.

Advantages of Scripting

The use of scripts instead of a purely graphical user interface are manifold:

  • The extremely powerful scripting features give you an extraordinary flexibility. You can do real programming in order to implement all sorts of algorithms. The detailed documentation, the demo files and the technical support make sure that you will be successful.
  • The scripts naturally document all your work. If you read your script a year later, you will clearly see what you have done. It would be much more tedious to inspect dozens of interactive forms in order to reconstruct that.
  • You can easily reuse some script parts (of your own or from demo scripts), either by copying them into other scripts or by making include files.

In RP Fiber Power, you can even start your work with interactive forms, and the script code is created automatically. Additional script commands can be inserted via the forms. At any point, you may take the obtained script and edit that further.

For additional information, please see some postings in our newsletters: