This is the website for PHIsim version 3. This site is in the process of being adapted for version 3.
Version 2 is no longer supported.
To be finalized on this site:
Tutorial files and pictures (links to files, schematic and text check, description and use of Python script)
Page PHIsimv3 program
Example (MZI with Phase modulators)
This website describes a simulation software package for semiconductor integrated optical circuits suitable for the Windows operating (7 and upwards) systems.
The simulation is a travelling wave finite time difference simulation of an InP based optical integrated circuit. It can simulate single transverse mode optical circuits with passive waveguides, 1x 2 and 2x 2 couplers, MxN couplers (user specified coupler), e-o phase modulators, optical amplifiers and saturable absorbers. The software produces time traces of optical output from the circuit at two points in the circuit. It can handle optical input at those points. The final state of the device is also available. One can decide to store photon and carrier densities as well as optical phases within the circuit over a period of time to have data for a video of the circuit. Input to and output from the software is through ASCII (.txt) files.
Disclaimer: There is no warranty of any kind that the software is suitable for purpose or that its results are accurate.
This software is a bit a poor man's version of software such as PICwave from Photon Design which has of course many more capabilities as well as a decent user interface. Another freely available laser circuit simulator is FreeTWM which is actually much more advanced than the program described here. Other commercial circuit simulators are available from VPIphotonics and Lumerical.
However specific to the PHIsim program is the the amplifier modelling used. It is unique in that it includes two photon effects as well as the Kerr effect in the optical amplifiers and has the possibility to include carrier generation and absorption effects in the passive waveguides.
For a list of changes in the software please look here.
This software runs a simulation of an integrated optical circuit that may contain passive waveguide structures, EO phase modulator, and optical amplifier sections through which light travels in a single transverse mode. It is a travelling wave model. The propagation equations are solved in time on a grid of fixed optical path length. Each part in the circuit of the grid is called a segment. The time it takes the light to travel this path length (segment) is the time step in the integration. Then the fields are propagated in space. There are different types of segment (see the input file description for the device). The length of a segment is defined by the user and it is an integer times the (chosen) central wavelength. So the phase difference (modulo 2pi) for the central carrier wavelength at each segment border of a passive element is zero.
In the model there are two fields described for the single transverse mode. One for each direction, named LR (left to right) and RL (right to left). All properties of the light are represented in the electric fields amplitude and phase. Inside the program we are calculating in number of photons (this is proportional to the square of the electric field). The simulation describes only a single polarization.
The phase step in each segment is the same for all wavelengths. This is an approximation. All wavelengths have the same refractive index. This is an approximation. The change in refractive (group) index caused by modulators or charge carriers in amplifiers or absorbers, is taken into account only for the phase; it is neglected for the propagation of energy. This is a minor approximation since the index changes are in the order of a few times 10-4.
There are different types of segments in the program which allow for the simulation of a number of components that can be connected to form a single circuit. Input time dependent optical fields to the circuit can presented to the circuit. The number of optical in and outputs is currently limited, this will be extended in the future.
Currents to optical amplifiers and voltages on phase modulators can be defined to be DC or can be time dependent.
For learning how to use the software one can start reading the tutorial. This has not been finalized yet though, it is still under development. In order to simulate a circuit one first has to set-up an ASCII input file that describes the circuit. How to write this file is explained on the page 'device input file'. Then a program named PHIsim_inputv3.exe needs to be run. This program reads the device_input_file presented, as well as a file with parameters of the simulator. The contents of the parameter file, that is also an input file to the simulator (actually it is mainly for the simulator), are described here.
PHIsim_inputv3.exe generates 1) an input file for the actual simulator named devicefile.txt, 2) an input file (a .gv file) with information of a circuit diagram and 3) a logfile named PHIsim_inputv3_log.txt.
The generated input file devicefile.txt is described on this page. For users it should not be necessary to look into this file, which contains a description of every segment in the simulation, but for debugging it can be useful.
PHIsim_input.exe also generates an input file (a .gv file) for the Graphviz application to produce a diagram of the circuit so the device_input file for PHIsim_input.exe can be checked. (Please note that for Windows it is best to download version 2.38 via this link. This version has the program gvedit.exe which is easiest to use to generate the graphs. The current Windows installers do not install gvedit.)
The generated PHIsim_inputv3_log.txt file contains all output (including error messages) that has also been sent to the console window by the program.
Then the actual simulator program PHIsim_v3.exe can be run. In addition to the parameter file and the devicefile.txt file it requires a three more input files that need to be prepared.
The first one is a file describing the time dependent optical input fields and (optional) time dependent currents (SOA) and voltages (PM).
The second file is a file containing carrier densities at the start of the simulation needs to be available. If no data are available the input can be very simple. An example is available.
The third file is a file containing photon densities at the start of the simulation needs to be available. If no data are available the input can be very simple. An example is available.
When the actual simulator PHIsim_v3 is run, a number of output files are generated:
confirm_input.txt - this file contains all the input parameters used (can be used to check or to keep together with simulation results)
PHIsimout.txt (this name is an input parameter in the parameter input file) - This file contains the optical output fields (power in W and Phase for each field) for each time step in the simulation.
PHIsimout_opt.txt (this name is derived from the input parameter in the parameter input file) This output file contains the optical power of all segments at the end of the simulation. This file can function as an input file for photon density data to PHsim_v3.
PHIsimout_car.txt - this output file contains the carrier concentrations of all segments at the end of the simulation. This file can function as an input file for carrier data to PHIsim_v3.
PHIsimv3_log.txt - this is a file with a copy of all output sent to the console of the PHsim_v3 program.
Files with data for videos can also be generated. See also PHIsim_v3 program . These files can be used to make videos and can be view using the tool PHIsim_view_v3. This can be a really useful tool I found.
To generate the input file for the optical and optional current and voltage data, to run the programs PHIsim_input and PHIsim2.0, to view the results and e.g. output spectrum one can use e.g. a MATLAB/Octave program or use Python or MathCAD. A MATLAB/Octave program octave_run_PHIsim.m and Python tools are presented with the examples as a way to run the simulation. See Running PHIsim and the Examples. But there are of course other ways.
PHIsim_inputv3, PHIsim_v3 and PHIsim_view_v3 are programs written in C and are developed using LabWindows/CVI from NI. The source code is available on request (see contact).
Diagram of the circuit layout as produced by Graphviz using the output file from PHIsim_input. It shows the different circuit components with their ports, input/output points, (current/voltage) sources and how they are linked.