FluxMultiplexer_SampleLinear#

class iqm.pulse.gates.flux_multiplexer.FluxMultiplexer_SampleLinear(parent, name, locus, calibration_data, builder)#

Bases: GateImplementation

Linear flux pulse multiplexed (user for correcting flux crosstalk).

The required calibration data is the flux cross-talk correction matrix, where the element \(C_ij\) represents the correction needed for flux component i arising from the crosstalk caused by flux component j, so that after the corrections, the flux pulse played at i is \(f(t) = A_i w_i(t) + \sum_j C_ij A_j w_j(t)\), where \(A_j`\) is the flux pulse amplitude for j and \(w_j(t)\) the (normalized) waveform.

The flux crosstalk correction matrix is given in a sparse form via two calibration parameters (we do not support dict- or xarray-valued Parameters yet…). Parameter matrix_index lists the relevant (non-zero) elements of the matrix as a flat np.array of strings of the form <flux component i>__<flux component j>. Parameter matrix_elements lists the corresponding matrix values \(C_ij\) (the lengths of these arrays must match).

TODO: this is for now an experimental R&D implementation, and everything here is subject to change still

Module: iqm.pulse.gates.flux_multiplexer

Attributes

parameters

Required calibration data, may be nested

Methods

get_custom_locus_mapping

Locus is "global" (the whole QPU) represented by an empty tuple for now.

Parameters:
parameters: NestedParams = {'matrix_elements': Parameter(name='matrix_elements', label='Flux crosstalk correction sparse matrix elements', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.NDARRAY: 2>, element_indices=None), 'matrix_index': Parameter(name='matrix_index', label='Flux crosstalk correction sparse matrix index', unit='', data_type=<DataType.STRING: 3>, collection_type=<CollectionType.LIST: 1>, element_indices=None)}#

Required calibration data, may be nested

classmethod get_custom_locus_mapping(chip_topology, component_to_channels)#

Locus is “global” (the whole QPU) represented by an empty tuple for now.

Parameters:
Return type:

dict[tuple[str, …] | frozenset[str], tuple[str, …]] | None