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.
- 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.
- 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.
- class nanotune.device.device.ReadoutMethods(value)[source]
Bases:
Enum
Enumerates readout methods used in nanotune.
- 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
- 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.