qtt.simulation package¶
Modules related to simulation
Submodules¶
qtt.simulation.classicaldotsystem module¶
Classical Quantum Dot Simulator
@author: lgnjanssen / eendebakpt / hensgens
-
class
qtt.simulation.classicaldotsystem.ClassicalDotSystem(name='dotsystem', ndots=3, ngates=3, maxelectrons=3, **kwargs)[source]¶ Bases:
qtt.simulation.dotsystem.BaseDotSystem-
calculate_energies(gatevalues)[source]¶ Calculate the energies of all dot states, given a set of gate values. Returns array of energies.
-
calculate_ground_state(gatevalues)[source]¶ Calculate the ground state of the dot system, given a set of gate values. Returns a state array.
-
findcurrentoccupancy(exact=True)[source]¶ Find electron occupancy
- Parameters
exact (bool) – If True then average over all ground states
-
-
class
qtt.simulation.classicaldotsystem.DoubleDot(name='doubledot', **kwargs)[source]¶ Bases:
qtt.simulation.classicaldotsystem.ClassicalDotSystemClassical simulation of double dot
-
class
qtt.simulation.classicaldotsystem.MultiDot(name='multidot', ndots=6, maxelectrons=3, **kwargs)[source]¶
qtt.simulation.dotsystem module¶
Simulation of a coupled dot system.
-
class
qtt.simulation.dotsystem.BaseDotSystem[source]¶ Bases:
objectBase class for the dot simulation classes.
Based on the arguments the system calculates the energies of the different dot states. Using the energies the ground state, occupancies etc. can be calculated. The spin-state of electrons in the dots is ignored.
The main functionality:
Build a Hamiltonian from the number of dots
Solve for the eigenvalues and eigenstates of the Hamiltonian
Present the results.
The model used is [reference xxx].
-
H¶ Hamiltonian of the system.
- Type
array
-
energies¶ calculated energy for each state (ordered).
- Type
array
-
states¶ eigenstates expressed in the basis states.
- Type
array
-
stateprobs¶ TODO.
- Type
array
-
stateoccs¶ TODO.
- Type
array
-
nstates¶ for each state the number of electrons.
- Type
array
-
abstract
calculate_ground_state(gatevalues)[source]¶ Calculate ground state for a set of gate values.
-
makebasis(ndots, maxelectrons=2)[source]¶ Define a basis of occupancy states with a specified number of dots and max occupancy.
The basis consists of vectors of length (ndots) where each entry in the vector indicates the number of electrons in a dot. The number of electrons in the total system is specified in nbasis.
-
class
qtt.simulation.dotsystem.DotSystem(name='dotsystem', ndots=3, **kwargs)[source]¶ Bases:
qtt.simulation.dotsystem.BaseDotSystem-
calculate_energies(gatevalues)[source]¶ Calculate energies of the different states in the system.
- Parameters
gatevalues (list) – values for the chemical potentials in the dots.
-
calculate_ground_state(gatevalues)[source]¶ Calculate the ground state of the dot system, given a set of gate values.
- Parameters
gatevalues (list) – values for the chemical potentials in the dots.
- Returns
a state array.
- Return type
array
-
initSparse()[source]¶ Create sparse structures. Constructing a matrix using sparse elements can be faster than construction of a full matrix, especially for larger systems.
-
static
inter_site_charging_name(dot1, dot2=None)[source]¶ Return name for nearest - neighbour charging energy.
-
makeparamvalues1D(paramnames, startend, npoints)[source]¶ Get a list of parameter names and [start end] values to generate dictionary self.vals1D[name] = vector of values.
-
makeparamvalues2D(paramnames, cornervals, npointsx, npointsy)[source]¶ Get a list of parameter names and [c1 c2 c3 c4] ‘corner’ values to generate dictionary self.vals2D[name] = matrix of values.
-
simulatehoneycomb(verbose=1, usediag=False, multiprocess=False)[source]¶ Loop over the 2D matrix of parameter values defined by makeparamvalues2D, calculate the ground state for each point, search for transitions and save in self.honeycomb.
-
simulatehoneycomb_original(verbose=1, usediag=False)[source]¶ - Loop over the 2D matrix of parameter values defined by makeparamvalues2D, calculate the ground state
for each point, search for transitions and save in self.honeycomb.
-
-
class
qtt.simulation.dotsystem.GateTransform(Vmatrix, sourcenames, targetnames)[source]¶ Bases:
object
-
qtt.simulation.dotsystem.setDotSystem(ds, gate_transform, gv)[source]¶ Set dot system values using gate transform.
qtt.simulation.virtual_dot_array module¶
Virtual version of a linear dot array
The system consists of:
a linear array of dots
a magic top gate that always works
2 barriers gates and 1 plunger gate for each dot
a sensing dot that always works
There are virtual instruments for
DACs: several virtual IVVIs
Virtual Keithleys (1 and 2 for the SDs, 4 for the ohmic)
A virtual gates object
-
class
qtt.simulation.virtual_dot_array.DotModel(name, verbose=0, nr_dots=3, maxelectrons=2, sdplunger=None, **kwargs)[source]¶ Bases:
qcodes.instrument.base.InstrumentSimulation model for linear dot array
The model is intended for testing the code and learning. It does _not simulate any meaningful physics.
-
qtt.simulation.virtual_dot_array.gate_boundaries(gate_map)[source]¶ Return gate boundaries
- Parameters
gate_map (dict) –
- Returns
gate_boundaries (dict)
-
qtt.simulation.virtual_dot_array.generate_configuration(ndots)[source]¶ Generate configuration for a standard linear dot array sample
- Parameters
ndots (int) – number of dots
- Returns
number_dac_modules (int) gate_map (dict) gates (list) bottomgates (list)