ExperimentConfiguration#
Module: iqm.cpc.core.config
- class iqm.cpc.core.config.ExperimentConfiguration(config)#
Bases:
objectGeneral configuration for
Experimentobjects.- Top-level keys
'user','dut_label','settings','components', and'component_groups' are reserved for the attributes below, and are optional.
- Top-level keys
- Any other top-level keys generate
ExperimentDefaultsConfigurationinstances for specific Experimentclasses.
- Any other top-level keys generate
Attributes
Property to return list of component names in experiment configuration.
Unique identifier for this ExperimentConfiguration.
Username.
DUT label.
Mapping from chip component names to the station control controllers they use.
Mapping from component group names to their definitions.
Controller settings.
Defined quantum operations
Gate implementation calibration data.
Experiment characterization data.
The stage settings data.
Methods
Add conventional controller mapping if
controller_mappingis"qpu_convention".Helper method for filtering components based on what operations they have defined.
Register a new gate implementation for this session.
Set calibration data for this session.
Set this gate implementation as default for this session.
Validate controller maps against controller names in station_control.
- id#
Unique identifier for this ExperimentConfiguration.
- components: dict[str, Any]#
Mapping from chip component names to the station control controllers they use.
- component_groups: dict[str, ComponentGroup]#
Mapping from component group names to their definitions.
- gate_definitions#
Defined quantum operations
- add_conventional_controller_mapping(station_control)#
Add conventional controller mapping if
controller_mappingis"qpu_convention".If the configuration is set to follow the standard QPU controller naming convention, extend the
controllersandcomponent_groupsbased on the convention. Components given explicitly have priority.The convention is that components map their functions to controller names with the following pattern:
For qubits:
drive: <qubit_name>__driveflux: <qubit_name>__flux
For couplers:
flux: <coupler_name>__fluxreadout: <coupler_name>__readout(if connected)
For probelines:
readout: <probeline_name>__readouttwpa: <probeline_name>__twpa
- Parameters:
station_control (StationControlClient) – Station instance.
- Return type:
None
- validate_controllers(station_control)#
Validate controller maps against controller names in station_control.
- Parameters:
station_control (StationControlClient) – Station instance.
- Raises:
ValueError – if the station does not have a controller required by the naming convention.
- Return type:
None
- property component_names: list[str]#
Property to return list of component names in experiment configuration.
- filter_components(*filter_groups)#
Helper method for filtering components based on what operations they have defined.
The user can define several groups of operation requirements. Requirement groups can contain requirements that are either of the type str or any function of the type Callable[str, bool]. If a str requirement is given, it will be interpreted as a check whether this particular operation name is defined for a given component.
For example, the group [lambda c: c != ‘readout, ‘flux’] resolves to the components that do not have a readout operation but have a flux operation.
Requirement groups that contain just one requirement (of either type) can be given as a plain value instead of wrapping it into a list.
- register_gate_implementation(gate_name, impl_name, impl_class, *, set_as_default=False, quantum_op=None)#
Register a new gate implementation for this session. See
register_implementation().
- set_calibration_data_for_gate_implementation(gate_name, impl_name, calib_data)#
Set calibration data for this session.
Inheritance
