PhysicsRandomization
- class qdflow.generate.PhysicsRandomization(num_x_points=151, num_dots=2, barrier_current=1, short_circuit_current=10000000000.0, num_sensors=1, multiply_gates_by_q=True, dot_spacing=200, x_margins=200, gate_x_variations=0, q=-1, K_0=5, sigma=60, mu=0.5, g_0=0.0065, V_L=-0.01, V_R=0.01, beta=100, kT=0.01, c_k=1.2, screening_length=100, rho=15, h=80, rho_variations=0, h_variations=0, plunger_peak=-7, plunger_peak_variations=0, external_barrier_peak_variations=2.0, barrier_peak=5.0, internal_barrier_peak_variations=0, sensor_y=-250, sensor_y_variations=0, sensor_x_variations=0, WKB_coef=0.01, v_F=30000000000000.0)
Bases:
objectMeta-parameters used to determine how random
PhysicsParametersshould be generated.Several attributes will not be randomized, and will be passed directly to the generated
PhysicsParametersobject.All other attributes should either be provided a single value (if no randmization is needed), or a
distribution.Distribution, from which the value will be drawn.- Parameters:
num_x_points (int) – The resolution of the x-axis. This value is not randomized.
num_dots (int) – The number of dots. This value is not randomized.
barrier_current (float) – An arbitrary low current set to the device when in barrier mode. This value is not randomized.
short_circuit_current (float) – An arbitrary high current value given to the device when in open / short circuit mode. This value is not randomized.
num_sensors (int) – The number of sensors to include. This value is not randomized.
multiply_gates_by_q (bool) – Whether to multiply barrier_peak, plunger_peak, barrier_peak_variations, plunger_peak_variations, and external_barrier_peak_variations by q, changing the sign if
q == -1. Default True.dot_spacing (float | Distribution[float]) – The average distance (in nm) between dots.
x_margins (float | Distribution[float]) – The length (in nm) of the nanowire to model on either end of the system. The total length of the nanowire will be:
2 * (x_margins) + (num_dots - 1) * (dot_spacing).gate_x_variations (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length equal to the total number of gates (barrier and plunger), giving the offset of the x-coordinate of each gate (in nm) relative to their positions if they were evenly spaced with spacing
dot_spacing. If a float distribution is provided, an ndarray of the appropriate size will be generated by repeatedly drawing from the distribution.q (float | Distribution[float]) – The charge of a particle, -1 for electrons, +1 for holes.
K_0 (float | Distribution[float]) – The electron-electron Coulomb interaction strength (in meV * nm).
sigma (float | Distribution[float]) – The softening parameter (in nm) for the el-el Coulomb interaction used to avoid divergence when \(x_1 = x_2\).
sigmashould be on the scale of the width of the nanowire.mu (float | Distribution[float]) – The Fermi level (in meV).
g_0 (float | Distribution[float]) – The coefficient of the density of states.
V_L (float | Distribution[float]) – The voltage applied to left lead (in mV).
V_R (float | Distribution[float]) – The voltage applied to right lead (in mV).
beta (float | Distribution[float]) – The inverse temperature
1/(k_B T)used to calculaten(x).kT (float | Distribution[float]) – The temperature
(k_B T)used in the transport calculations.c_k (float | Distribution[float]) – The coefficient (in meV*nm) that determines the kenetic energy of the Fermi sea on each island.
screening_length (float | Distribution[float]) – The screening length (in nm) for the Coulomb interaction.
rho (float | Distribution[float]) – The radius (in nm) of the cylindrical gates.
h (float | Distribution[float]) – The distance (in nm) of the gates from the nanowire.
rho_variations (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length equal to the total number of gates (barrier and plunger), giving a correction (in nm) which will be added to
rhofor each gate. If a float distribution is provided, an ndarray of the appropriate size will be generated by repeatedly drawing from the distribution.h_variations (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length equal to the total number of gates (barrier and plunger), giving a correction (in nm) which will be added to
hfor each gate. If a float distribution is provided, an ndarray of the appropriate size will be generated by repeatedly drawing from the distribution.plunger_peak (float | Distribution[float]) – The peak value (in mV) of the potential at the nanowire due to the plunger gates.
plunger_peak_variations (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length equal to the number of plunger gates, giving a correction (in mV) which will be added to
plunger_peakfor each gate. If a float distribution is provided, an ndarray of the appropriate size will be generated by repeatedly drawing from the distribution.barrier_peak (float | Distribution[float]) – The peak value (in mV) of the potential at the nanowire due to the barrier gates.
external_barrier_peak_variations (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length 2, giving a correction (in mV) which will be added to
barrier_peakfor each external barrier gate. If a float distribution is provided, an ndarray of the size 2 will be generated by drawing from the distribution twice.internal_barrier_peak_variations (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length equal to the number of internal barrier gates, giving a correction (in mV) which will be added to
barrier_peakfor each gate. If a float distribution is provided, an ndarray of the appropriate size will be generated by repeatedly drawing from the distribution.sensor_y (float | Distribution[float]) – The average y-coordinate (in nm) of the sensors.
sensor_y_variation (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length equal to the total number of sensors, giving a correction (in nm) which will be added to
sensor_yfor each sensor. If a float distribution is provided, an ndarray of the appropriate size will be generated by repeatedly drawing from the distribution.sensor_x_variation (float | ndarray[float] | Distribution[float] | Distribution[ndarray]) – An array with length equal to the total number of sensors, giving the offset of the x-coordinate of each sensor (in nm) relative to their positions if they were evenly spaced along the nanoire. If a float distribution is provided, an ndarray of the appropriate size will be generated by repeatedly drawing from the distribution.
WKB_coef (float | Distribution[float]) – Coefficient (with units \(\frac{1}{nm\sqrt{meV}}\)) which goes in the exponent while calculating the WKB probability, setting the strength of WKB tunneling.
WKB_coefshould be equal to \(\sqrt{2m}{\hbar}\), where \(m\) is the effective mass of a particle, and :math`hbar` is the reduced Planck’s constant.v_F (float | Distribution[float]) – The fermi velocity (in nm/s).
- __init__(num_x_points=151, num_dots=2, barrier_current=1, short_circuit_current=10000000000.0, num_sensors=1, multiply_gates_by_q=True, dot_spacing=200, x_margins=200, gate_x_variations=0, q=-1, K_0=5, sigma=60, mu=0.5, g_0=0.0065, V_L=-0.01, V_R=0.01, beta=100, kT=0.01, c_k=1.2, screening_length=100, rho=15, h=80, rho_variations=0, h_variations=0, plunger_peak=-7, plunger_peak_variations=0, external_barrier_peak_variations=2.0, barrier_peak=5.0, internal_barrier_peak_variations=0, sensor_y=-250, sensor_y_variations=0, sensor_x_variations=0, WKB_coef=0.01, v_F=30000000000000.0)
Methods
copy()Creates a copy of a
PhysicsRandomizationobject.default()Creates a new
PhysicsRandomizationobject with default values.from_dict(d)Creates a new
PhysicsRandomizationobject from adictof values.to_dict()Converts the
PhysicsRandomizationobject to adict.