Simulation software to model the evolution & electromagnetic interactions of two-level quantum dots. Designed and built at Michigan State University.
- C++14-compatible compiler (tested with GCC and Clang)
- Eigen3 (at least v3.2.2)
- Boost (at least v.1.55.0):
- SILO (optional)
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 convertquest
output to the SILO file format for use in e.g. VisIt)
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.
Please see CONTRIBUTING.md for details on submitting changes.