Custom Forms in Software From RP Photonics: Forms Which Can Be Tailored to Specific Applications. (original) (raw)

Some of our software supports custom forms:

The Principle of Custom Forms

Custom forms are forms which can be tailored to your specialized needs. They are not defined in the software itself, but rather within scripts. (Below we show you some simple examples.) In contrast to the source code of our software, such scripts can be viewed, modified or made from scratch by any user. That opens very interesting options:

You will love these custom forms! They provide an amazing combination of flexibility and ease of use. As a power user, you will probably soon make custom forms for all sorts of purposes – possibly even outside the specific technical context of the software.

Example 1 with RP Fiber Power: Fiber Amplifier

Below you see a custom form made with RP Fiber Power for calculations on Yb-doped fiber amplifiers, which is provided with the software as a demo file. If one opens that script, the software immediately goes into “custom form mode”, i.e., it displays that form. If you enter some input values and “execute” the form, you see the following:

custom form for fiber amplifier calculations

The input values are stored in a separate data file. You can easily switch between different data sets.

The software can also generate one or more graphical diagrams (not shown here) – just as you can get with any scripts.

Here you can see part of the code defining the above form:

Custom form:
--------------------------------------------------------------
$font: "Arial", bold, size = 24
Fiber Amplifier for Pulses
$font: "Courier New", size = 11, space = 2.1
$box "Fiber", size = (630, 0)
Fiber type:  ###################################### <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>i</mi><mi>n</mi><mi>p</mi><mi>u</mi><mi>t</mi><mo stretchy="false">(</mo><mi>c</mi><mi>o</mi><mi>m</mi><mi>b</mi><mi>o</mi><mi>b</mi><mi>o</mi><mi>x</mi><mo>:</mo><mo stretchy="false">(</mo><mi>F</mi><mi>i</mi><mi>b</mi><mi>e</mi><mi>r</mi><mi>L</mi><mi>i</mi><mi>s</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">input (combobox: (FiberList</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">in</span><span class="mord mathnormal">p</span><span class="mord mathnormal">u</span><span class="mord mathnormal">t</span><span class="mopen">(</span><span class="mord mathnormal">co</span><span class="mord mathnormal">mb</span><span class="mord mathnormal">o</span><span class="mord mathnormal">b</span><span class="mord mathnormal">o</span><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.13889em;">F</span><span class="mord mathnormal">ib</span><span class="mord mathnormal" style="margin-right:0.02778em;">er</span><span class="mord mathnormal">L</span><span class="mord mathnormal">i</span><span class="mord mathnormal">s</span><span class="mord mathnormal">t</span></span></span></span>)) fiber$
     Length: #########  Numerical steps: ######  (in z direction)
$input L_f:d6:"m", min = 0, max = 1000
$input No_z_steps:f0, min = 10, max = 500
$box end
$box "Operation parameters", size = (630, 0)
Pump power:  left:   ############ at ############
$input P_p_l_in:d6:"W", min = 0, default = 0
$input l_p_l:d6:"(n)m", default = 0
             right:  ############ at ############
$input P_p_r_in:d6:"W", min = 0, default = 0
$input l_p_r:d6:"(n)m", default = 0
Pumping time:        ############ (0 = continuous pumping)
$input t_pump:d6:"s", min = 0, default = 0, hint = "time interval before pulse where we pump the amplifier"
--------------------------------------------------------------

You can see here that it is not very difficult to define such a form. You could easily add some more input fields and get additional things calculated and displayed.

Of course, all relevant details are well explained in the PDF manual as well as in the context-sensitive online help system. If you encounter any problems, you will get help via the technical support.

Several demo files for RP Fiber Power contain custom forms; they are designed for calculations on fiber amplifiers, tapered fibers, actively Q-switched Nd:YAG lasers, regenerative amplifiers, generation of parabolic pulses, etc.

Example 2 with RP Fiber Power: Regenerative Amplifier

The following screen shot shows another example for custom form, made for calculations on regenerative amplifiers. This form is also provided with the software as a demo file. It makes extensive use of tab controls, allowing one to enter quite some number of inputs and see output data on a limited space on the screen.

custom form for a regenerative amplifier

Example 3 with RP Resonator: Focusing of a Laser Beam

The following screenshot shows a simple form for calculating the propagation of a laser beam through one or two lenses:

custom form for single-pass beam propagation

One simply enters the initial beam parameters, the focal lengths of the two lenses and their positions, and the software calculates the evolution of beam radius. It can even show the beam graphically, using the nice feature that images can be displayed where the color of each pixel is determined by a mathematical expression – in this case, using the Gaussian intensity profile with a _z_-dependent value of the beam radius.

Example 4 with RP Resonator: Bow-tie Ring Resonator

This example concerns a bow-tie ring resonator:

custom form for a ring resonator

Here, a background image is used, and the input fields are positioned such that the user immediately sees to which arm length or angle some input corresponds.

Example 5 with RP Coating: AR Coating

This example concerns the design of anti-reflection coatings with the software RP Coating.

custom for an anti-reflection coating

Here, you can choose two optical materials and enter parameters like the number of layer pairs and the wanted wavelength ranges with suppressed reflections.

Nice Features of Custom Forms

Custom forms can have many very handy features, some of which are listed in the following:

Due to such features, it is really fun to work with this software!

Also keep in mind that custom forms are in no way limited to some specific set of calculations. The script language supported by our software is extremely powerful and allows you to implement basically any calculations. So you may start using such custom forms even for calculations totally outside the technical context of this software or even outside the area of physics.