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
-
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
-
getall(param)[source]¶ Return all stored values for a particular parameter.
Parameters: param (str) – start of one of the variable names. Returns: values corresponding to the parameter that was queried. Return type: vals (list)
-
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.
Parameters:
-
-
class
qtt.simulation.dotsystem.GateTransform(Vmatrix, sourcenames, targetnames)[source]¶ Bases:
object-
transformGateScan(vals2D, nn=None)[source]¶ Get a list of parameter names and [c1 c2 c3 c4] ‘corner’ values to generate dictionary self.vals2D[name] = matrix of values.
Parameters: - vals2D (dict) – keys are the gate names, values are matrices with the gate values.
- nn – TODO.
Returns: tranformed gate values.
Return type:
-
-
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)