qdflow.physics.simulation

This module contains the physics simulation.

It defines the ThomasFermi class, which is responsible for simulating a quantum dot nanowire and calculating the charge density, sensor readout, current, and state of the system.

Examples

>>> from qdflow.physics import simulation
>>> from qdflow import generate
>>> phys_params = generate.default_physics(n_dots=2)
>>> tf_simulation = simulation.ThomasFermi(phys_params)

This creates a default set of physical parameters defining a double-dot device, and then creates an instance of the ThomasFermi class with the specified physical parameters.

>>> output = tf_simulation.run_calculations()
>>> output.island_charges
array([2, 1])

This will run the simulation. The results are returned in a ThomasFermiOutput dataclass. In this example, the stable charge configuration has 2 electrons in the left dot and 1 in the right dot. This result will vary if a different set of physical parameters phys_params are supplied to the ThomasFermi constructor.

Functions

calc_K_mat(x, K_0, sigma)

Calculates the Coulomb interaction matrix.

calc_V(gate_param_list, x, y, z[, ...])

Calculates the potential due to a set of gates.

calc_V_gate(gate_params, x, y, z[, ...])

Calculates the potential due to a single gate.

calc_effective_peak_matrix(gate_param_list)

Calculates a correction matrix for gate potentials due to induced charges.

is_transition(dot_charges_1, ...)

Determines if a transition occured between two points.

Classes

GateParameters([mean, peak, rho, h, screen])

Set of physical parameters defining a single gate.

NumericsParameters([...])

Set of options for numeric calculations.

PhysicsParameters([x, V, q, gates, ...])

Set of physical parameters of a quantum dot nanowire.

ThomasFermi(physics[, numerics])

Thomas-Fermi simulation of a quantum dot nanowire.

ThomasFermiOutput([island_charges, sensor, ...])

Output of Thomas Fermi calculations.

Exceptions

ConvergenceWarning

A warning raised when the Thomas Fermi calculation of n(x) does not converge before reaching the maximum number of iterations.