1. SystemΒΆ

Note

It is assumed that pyofss has been imported using

>>> from pyofss import *

Every pyofss simulation begins with a system. To generate a system with a default domain:

>>> sys = System()

which is equivalent to

>>> sys = System( Domain() )

Various modules may be added to the system such as pulse generators, fibres, and filters. Once a module has been generated, add it to the system. As an example, to construct a Gaussian pulse generator and add it to the system:

>>> gaussian = Gaussian()
>>> sys.add( gaussian )

It is also possible to directly add a module using:

>>> sys.add( Gaussian() )

Once all modules have been added, run the simulation

>>> sys.run()

This generates a field which is modified by each module it propagates through.

The output field may be accessed using:

>>> sys.field

A field will generally be an array of complex values. There are utility functions which allow calculating the temporal and spectral power:

>>> P_t = temporal_power( sys.field )
>>> P_nu = spectral_power( sys.field )

There is also a plotter which allows a range of plots to be generated. As an example, the temporal and spectral power of the resulting field may be plotted in a “double” plot:

from pyofss import *
sys = System( Domain() )
sys.add( Gaussian() )
sys.run()
double_plot( sys.domain.t, temporal_power(sys.field),
             sys.domain.nu, spectral_power(sys.field, True),
             labels['t'], labels['P_t'], labels['nu'], labels['P_nu'] )

(Source code, png, hires.png, pdf)

_images/system-1.png

Previous topic

Pyofss tutorial

Next topic

2. Domain

This Page