Skip to content

cglosser/QuEST

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI Article

QuEST: The Quantum Electromagnetics Simulation Toolkit

tube

Simulation software to model the evolution & electromagnetic interactions of two-level quantum dots. Designed and built at Michigan State University.

Prerequisites

Building

QuEST relies on CMake to generate appropriate compile scripts. To build the executable, first run

mkdir build
cd build

followed by

cmake $PATH_TO_QUEST && make

This will attempt to build

  • quest (simulation executable)
  • qtest (unit test executable)
  • point_gen (utility to quickly generate distributions of points)
  • siloify (utility to convert quest output to the SILO file format for use in e.g. VisIt)

Running

QuEST requires three files to specify the parameters of a simulation: input.cfg, dots.cfg, and pulse.cfg. Of these, input.cfg has the most flexibility; you can specify alternate paths to the other configuration files as well as modify the simulation parameters (speed of light, number of particles, timestep, etc.). Run ./quest --help for details of the possible parameter options.

dots.cfg contains a list of quantum dots, one-per-line, each with the following format:

x y z omega_0 T1 T2 dx dy dz
──┬── ───┬─── ──┬── ───┬────
  │      │      │      └──── transition dipole moment
  │      │      └─────────── decay time constants   
  │      └────────────────── transition frequency
  └───────────────────────── spatial coordinates

pulse.cfg specifies the incident Gaussian pulse(s) with the following format:

E_0 delay sigma omega_L kx ky kz px py pz
─┬─ ──┬── ──┬── ───┬─── ───┬──── ───┬────
 │    │     │      │       │        └──── polarization vector (normalized)
 │    │     │      │       └───────────── wavevector
 │    │     │      └───────────────────── laser frequency
 │    │     └──────────────────────────── pulse width (dimensionless)
 │    └────────────────────────────────── peak shift
 └─────────────────────────────────────── amplitude

With all three input files in place, simply run the simulation with ./quest. The executable will read everything in, perform the calculation with a percentage complete indicator, and then produce output.dat which contains the trajectory of the matrix elements for every particle in the system.

Contributing

Please see CONTRIBUTING.md for details on submitting changes.