A C++ object-oriented interactive simulation tool built on the microscopically computed semiconductor material optical response and highly efficient digital filter-based numerical algorithms provides a modular integrated optical system design tool
The simulator runs on a fast PC. The user can set up an optical system prior to startup that can include semiconductor or fiber amplifier/laser modules, internal gratings (DFB or DBR) and contacts (single, multiple, forward/reverse bias), external optics such as mirrors, beam splitters etc. Critical system parameters can be adjusted on-the-fly.
![]() |
![]() |
|
|
The IPSS(1D) is built around platform independent subsystems, such as CORBA for communications between the processes, Python for scripting the definition of a system and as a GUI builder, and a set of C++ libraries that code the hierarchy of modules available for simulation and allows integration of existing C/Fortran code. |
|
In order to represent a real optical system with IPSS(1D), it is necessary to apply the Module-Interface abstraction. In the Module-Interface abstraction, every component, such as a laser or cavity, is a optical module, and every interface, such as a mirror or the natural interface between two materials, is an optical interface. |
|
Optical modules are connected to each other one through an optical interface. Modules are "spatial entities" where the optical field must be represented with at least two spatial values. Interfaces by the other hand, have no spatial dimension, and the optical fields in it correspond to boundary conditions.
Each optical module is responsible for computing the optical field in its spatial extension, and for propagating the optical field through their ports. Each interface is responsible for computing the boundary conditions for the modules connected to it, and for propagating those values through its layers.