This repository contains the core classes and functions I wrote to produce the simulations presented in my PhD thesis. Some basic quantum-modelling tools, such as operator matrix construction, solving unitary time evolution, solving Lindblad master equation, and calculating radiation spectrum, are provided in this repository. Although the codes provided here can be tailored for more general uses, they were written specifically to do quantum simulations of flux qubits, YSO:Er3+ ions, and combinations of the two. Coupled systems a flux qubit and paramagnetic ions are referred to in the thesis as flux qons. A flux qon with YSO:Er3+ could be used to perform quantum frequency conversions between the microwave and the fiber-optic domain. For more information on the theory and dynamics of flux qons, please refer to my PhD thesis. Some examples are given below to show how the codes in this repository can be implemented. These examples are simplified forms of the directives I used in my PhD work. The codes used to generate the figures in my PhD thesis are given in PhDWork folder and explained in the last section of this page.
If you use any of the materials in this repository, please consider citing my PhD thesis:
Lim, H. (2017). Erbium for optical modulation and quantum computation. PhD thesis, School of Physics, The University of Melbourne. Retrieved from http://hdl.handle.net/11343/220532.
This software is licensed under the GNU General Public License (version 3).
- MATLAB R2017a - R2018a
- MatCommon
- PhysConst
- MatGraphics - required for doing the examples
- MatVerCon - required for doing the PhD work
- ResFileSys - required for doing the PhD work
- Download or git-clone this repository and other repositories listed in the Requirements.
- Add the repositories to the MATLAB's search path via
addpath(genpath( ... ))
OR this version control system.
Examples/YSOEr_energy_vs_angle.m
Examples/unitary_downconversion.m
Examples/transmission_spectrum.m
In order to run the scripts in the PhDWork folder, the following needs to be set up first in your system.
- Download or git-clone this repository and all the repositories listed in the Requirements.
- Place the
.m
files from MatVerCon in the default working directory of your MATLAB. - For each downloaded repository except MatVerCon, place the contents in a directory structure as follows:
{MATLAB_default_working_dir}/Packages/FluxQon/v1.0.0/
{MATLAB_default_working_dir}/Packages/MatCommon/v1.0.0/
...
- Edit
librarypath.m
in MatVerCon so that the function returns a string that points to{MATLAB_default_working_dir}/Packages
. - Move the contents in
FluxQon/v1.0.0/PhDWork
to a folder, say{Your_home_folder}/Projects/
. - Edit
basepath.m
in ResFileSys so that the function returns a string that points to the project folder:{Your_home_folder}/Projects
.
The scripts in the PhDWork folder perform numerical simulations that produce the figures in my PhD thesis Chapter 5 and 6 as outlined below.
Date ID | Figure number |
---|---|
20160625 | 5.2.4 |
20160715 | 5.2.6, 5.2.7 |
20160925 | 5.1.1 |
20161215 | 5.3.1, 5.3.2 |
20170621 | 6.2.1 -- 6.2.3 |
20170626 | 6.3.13 |
20170627 | 6.3.14, 6.3.15 |
20170628 | 6.3.16 |
20180501 | 6.3.1 -- 6.3.8, 6.3.12 |
20180502 | 6.3.9 -- 6.3.11 |
20180521 | 6.4.4, 6.4.7 |
20180522 | 6.4.2 |
20180525 | 6.4.5, 6.4.6, 6.4.8, 6.4.9 |
20180603 | 6.4.3 |
Some of the simulations require about 100GB of RAM. You will also need hundreds of CPU cores, otherwise the simulations will take years to complete. To run the simulations, run the following on your MATLAB console.
addpackage('ResFileSys');
openproject('hlim_FluxQon');
runall;