This repository contains the source code used to produce the results for the bachelor thesis (in Python3) in the main directory and the source code of the bachelor thesis itself (in LaTeX) in thesis folder.
Thesis text and code comments are in Polish.
Swarm algorithms were used to control the dispersion in DBR mirrors in order to obtain ultrashort pulses. At the beginning, swarm algorithms were presented and tested if they really work. After that, the transition matrix method for determining the reflectivity and group delay dispersion for the given structure was shown, as well as the goal function. Then, 3 different approaches for representing the working variable of the algorithm for resolving the problem of finding DBR mirrors with possibly smallest value of group delay dispersion were presented, along with the corresponding results. The best results were observed in the first and easiest approach, that consisted in using layers' thickness, however it requires to start the calculations from a known, well optimised, structure. Observing the remaining results, it is clear that this method is working and the algorithm tends to generate better structures.
The integral text of the thesis can be found in this pdf file or compiled from source.
The project was originally run on a computer cluster at Lodz University of Technology. It consists of the following files:
- si: definition of the job to be run on the cluster,
- dbr.py: class defining a DBR mirror,
- si_mpi.py: the main script containing an implementation of swarm algorithm,
- tools.py: function for creating a new directory,
- dbr.txt: the initial DBR structure,
- dbr_opt.txt: the initial optimised DBR structure,
- args.txt: arguments to be passed to the main algorithm.