nanotune.device.device

class nanotune.device.device.NormalizationConstants(transport: Tuple[float, float] = (0.0, 1.0), sensing: Tuple[float, float] = (0.0, 1.0), rf: Tuple[float, float] = (0.0, 1.0))[source]

Bases: object

Container to hold normalization constant.

They are the highest and lowest signals measured, corresponding to pinched-off and open signals. They are typically measured by setting all gates to their lowest allowed values to measure the lower bound, while the upper bound is measured with all gates set to their highest allowed voltages.

Parameters
  • transport – constants for DC transport.

  • sensing – constants for charge sensing (transport or other).

  • rf – constants for reflectometry measurements.

transport: Tuple[float, float] = (0.0, 1.0)
sensing: Tuple[float, float] = (0.0, 1.0)
rf: Tuple[float, float] = (0.0, 1.0)
update(new_constants: Union[Mapping[str, Sequence[float]], NormalizationConstants]) None[source]

Updates normalization constant. Raises an error if input is not a dict or NormalizationConstants instance.

Parameters

new_constants – new normalization constants. If they don’t contain all constants, only those specified are updated with all other keeping their previous values.

class nanotune.device.device.Readout(transport: Optional[Union[GroupedParameter, Parameter]] = None, sensing: Optional[Union[GroupedParameter, Parameter]] = None, rf: Optional[Union[GroupedParameter, Parameter]] = None)[source]

Bases: object

Container grouping readout of a device.

Parameters
  • transport – parameter to read out for DC transport.

  • sensing – parameter to read out for charge sensing (transport or other).

  • rf – parameter to read out for reflectometry measurements.

transport: Optional[Union[GroupedParameter, Parameter]] = None
sensing: Optional[Union[GroupedParameter, Parameter]] = None
rf: Optional[Union[GroupedParameter, Parameter]] = None
available_readout() Dict[str, GroupedParameter][source]

Gets readout parameters which are not None.

Returns

Dict – mapping string identifier, e.g. “transport” onto a QCoDeS GroupedParameter.

get_parameters() List[GroupedParameter][source]

Gets list of parameters to read out.

Returns

list – list of those GroupedParameters which are not None.

as_name_dict() Dict[str, str][source]

Gets readout parameter names.

Returns

dict – mapping of string identifiers, e.g. ‘transport’ onto the GroupParameter’s full name (also string).

class nanotune.device.device.ReadoutMethods(value)[source]

Bases: Enum

Enumerates readout methods used in nanotune.

transport: int = 0
sensing: int = 1
rf: int = 2
classmethod list() List[int][source]

Gets attribute values as a list.

classmethod names()[source]

Gets list of attribute names (strings).

class nanotune.device.device.Device(name: str, station: Station, parameters: Optional[Union[Mapping[str, Sequence[str]], Mapping[str, str]]] = None, channels: Optional[Union[MutableMapping[str, MutableMapping[str, Any]], MutableMapping[str, str]]] = None, readout: Optional[Mapping[str, str]] = None, main_readout_method: Union[ReadoutMethods, str] = ReadoutMethods.transport, initial_values: Optional[Mapping[str, Any]] = None, set_initial_values_on_load: bool = False, device_type: Optional[str] = '', initial_valid_ranges: Optional[Mapping[str, Sequence[str]]] = None, current_valid_ranges: Optional[Mapping[str, Sequence[str]]] = None, normalization_constants: Optional[Union[Dict[str, Sequence[float]], NormalizationConstants]] = None, transition_voltages: Optional[Mapping[str, float]] = None, **kwargs)[source]

Bases: DelegateInstrument

Device abstraction with attributes and methods for (dot) tuning.

Parameters
  • name – string identifier, used e.g. when saving tuning results.

  • readout – readout parameters. One QCoDeS GroupedParameter for each readout method (transport, sensing, rf).

  • gates – list of gates; instances of DeviceChannel

  • ohmics – list of ohmics; instances of DeviceChannel

  • gate> (<each) – each gate is added as an attribute with its name, eg. device.top_barrier.

  • ohmic> (<each) – each ohmic is added as an attribute with its name, eg. device.left_ohmic.

  • parameters – mapping parameter names onto parameters, of all parameters.

  • initial_valid_ranges – dict mapping gate IDs onto the gate’s initial valid ranges. This is a valid range known in advance, before any tuning happens. Defaults to the gate’s safety range if not specified.

  • transition_voltages – dict mapping gate IDs onto the gate’s transition voltage. This voltage is typically determined through a fit and can depend on the voltages of other gates.

  • current_valid_ranges – dict mapping gate IDs onto the gate’s current valid range. These ranges will most probably depend on voltages of other gates and will be updated during tuning. These are the ranges which will be swept during measurements. They represent the voltage range in which interesting/desired features are expected.

  • main_readout_method – a ReadoutMethods item indicating which readout signal should be used for tuning decisions. It is added to static metadata.

  • normalization_constants – normalization constants keeping track of highest and lowest signals recorded for all specified readout methods. Required for correct classification and thus need to be updated when settings on measurement instruments change. They are saved to static metadata.

  • quality – quality of device, typically determined during characterization. Only good devices will be tuned.

property normalization_constants: NormalizationConstants
property main_readout_method: ReadoutMethods
ground_gates() None[source]

Sets all gate relays to ground.

float_ohmics() None[source]

Sets all ohmic relays to float.

get_gate_status() Dict[str, Dict[str, Union[Tuple[float, float], float]]][source]

Gets current voltages and valid ranges of all gates in a readable form.

Returns
  • dict – mapping from gate labels to mapping with current valid ranges

  • and voltages. Example

  • `{top_barrier – {current_valid_range: (-0.9, -0.7), voltage: -0.81}}`

all_gates_to_highest() None[source]

Sets all gates to their upper safety limit, the heighest allowed voltage. Voltages are ramped if gate.use_ramp is set to True

all_gates_to_lowest() None[source]

Sets all gates to their lower safety limit, the lowest allowed voltage. Voltages are ramped if gate.use_ramp is set to True

rename_gate_identifier(mapping_to_rename: Union[Mapping[DeviceChannel, Any], Mapping[str, Any], Mapping[int, Any]]) Dict[int, Any][source]

Renames keys of mappings which are some gate identifier to gate IDs. Example: {‘top_barrier’: (-0.9, -0.7)} -> {0: (-0.9, -0.7)}, where 0 is the top barrier’s gate ID.

Parameters

mapping – mapping from either gate ID, gate label or DeviceChannel instance onto some data.

Returns

mapping – mapping from gate ID onto the unchanged data.

initialize_channel_lists(channels_input_mapping) Tuple[List[DeviceChannel], List[DeviceChannel], Dict[int, str], Dict[int, DeviceChannel], Dict[int, DeviceChannel]][source]

Compiled gate and ohmics list as well as mapping between gate IDs and the respective DeviceChannel instances.

get_gate_id(gate_identifier: Union[int, None, str, DeviceChannel]) int[source]